Ağ bölümleme
- Ağı dilimlere ayırıp varsayılan reddet kuralı yazar, akış haritasını Zeek kaydından çıkarır ve dilim sınırındaki yanal hareketi kayıtlarda yakalarsın.
- Düz ağda bir makineye giren saldırgan bütün ağa girmiş sayılır.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Çoğu kurum ağı düzdür. Muhasebe bilgisayarı, üretim sunucusu, kamera kaydedicisi ve yazıcı aynı düzlemde durur. Herhangi bir makineye giren saldırgan hepsine doğrudan ulaşır ve yanal hareket için önünde hiçbir engel yoktur.
Bölümleme bu düzlüğü katlara ayırır. Her bölüm ayrı bir ağ dilimidir ve aralarında yalnız gerekli trafik geçer. Amaç saldırganı her zaman durdurmak değildir.
Amaç onu yavaşlatmak ve her geçişte iz bıraktırmaktır. Mavi takım için ikinci kazanç birincisi kadar değerlidir. Düz ağda göremediğin yanal hareket, bölümlü ağda bir güvenlik duvarı satırına dönüşür. VLAN, DMZ ve VPN tasarımının ayrıntısını Ağ Güvenliği yolundaki Bölütleme, VPN ve sıfır güven modülünde bulursun.
Dilimler ve varsayılan reddet
Bölümlemeyi kurmanın en yaygın yolu VLAN'dır. VLAN, aynı anahtara bağlı makineleri mantıksal olarak ayrı ağlara böler ve her VLAN kendi adres bloğunu taşır. Ama VLAN tek başına bir güvenlik sınırı değildir. Dilimler arasındaki yönlendirici her şeyi geçiriyorsa ağ hâlâ düzdür, yalnız adresleri farklıdır.
Sınırı aradaki erişim listesi ya da güvenlik duvarı kuralı çizer. Kuralları yazarken varsayılanı reddet olarak seç. İzin verilen akışlar tek tek listelenir, geri kalan kapanır. Ters yönde kurulan tasarımda her yeni tehdit için ayrı bir engel yazmak gerekir ve liste hiçbir zaman tamamlanmaz.
VLAN 10 Kullanici 10.20.10.0/24 -> Sunucuya yalniz 443 ve 445 VLAN 20 Sunucu 10.20.20.0/24 -> Veritabanina yalniz 5432 VLAN 30 Veritabani 10.20.30.0/24 -> Disariya cikis YOK VLAN 40 Yonetim 10.20.40.0/24 -> Her yere 22 ve 3389, atlama sunucusundan VLAN 50 IoT/Kamera 10.20.50.0/24 -> Yalniz kendi kaydedicisine
Tabloyu satır satır oku. Kullanıcı dilimi sunuculara yalnız web (443) ve dosya paylaşımı (445) için gider. Sunucu dilimi veritabanına yalnız PostgreSQL portundan (5432) bağlanır.
Kullanıcının veritabanına doğrudan gitmesi için bir neden yoktur, çünkü uygulama zaten aracıdır. Veritabanı diliminin internete çıkışı yoktur ve sızdırma orada kesilir. Yönetim erişimi yalnız atlama sunucusundan gelir.
Kamera dilimi yalnız kendi kaydedicisiyle konuşur. Bu dilim en sık unutulan yerdir, çünkü bu cihazlar güncellenmez ve varsayılan parolayla gelir. Bölümlemeye iki uçtan başlanır: en değerli veriden ve en zayıf cihazlardan. Önce veritabanını ve kimlik sunucusunu ayrı dilime al, sonra kamera, yazıcı ve bina sistemlerini.
Bu tablo makro bölümlemedir: büyük dilimler ve aralarında kurallar. Mikro bölümleme sınırı iş yükünün kendisine kadar indirir. Aynı dilimdeki iki sunucu bile ancak izin verilen portlardan konuşur.
NIST SP 800-207'deki sıfır güven ilkeleri bu yöne işaret eder. Ağ konumu tek başına güven sayılmaz, her erişim kararı oturum bazında verilir ve en az yetkiyle sınırlanır. CISA'nın Sıfır Güven Olgunluk Modeli 2.0, Ağlar sütununda aynı yolu dört aşamayla anlatır.
Geleneksel aşamada geniş çevre ve makro bölümleme vardır. En olgun aşamada uygulama profillerine göre dağıtılmış mikro çevreler ve ihtiyaç anında açılan bağlantılar durur. Çoğu kurum için gerçekçi ilk adım, kritik iş yüklerini yalıtmaktır.
Etkinlik 1 / 7
Bölümler arası trafiği izin durumuna göre ayır.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/6 seçenek yerleşti.
Akış haritası: kim kiminle konuşuyor
Kural yazmadan önce trafiğin gerçek haritasını çıkar. Hangi uygulama hangi sunucuyla konuşuyor? Tahminle yazılan kural üretimi keser ve proje ilk şikâyette durur.
Haritayı birkaç haftalık akış kaydından çıkarmak daha güvenlidir. Zeek, ağ trafiğini izleyip her bağlantı için conn.log dosyasına bir satır yazar. Satırda kaynak adres (id.orig_h), hedef adres (id.resp_h), hedef port (id.resp_p), protokol, süre ve bağlantı durumu bulunur.
Güvenlik duvarı kayıtları da aynı işi görür. Amaç, binlerce bağlantıyı birkaç anlamlı satıra indirmektir. Hangi dilimden hangi dilime, hangi porttan, kaç kez gidildi?
$ zeek-cut id.orig_h id.resp_h id.resp_p < conn.log \
| awk '{ split($1,a,"."); split($2,b,".");
print a[1]"."a[2]"."a[3]".0/24 -> "b[1]"."b[2]"."b[3]".0/24", $3 }' \
| sort | uniq -c | sort -rn | head -5
18342 10.20.10.0/24 -> 10.20.20.0/24 443
6120 10.20.20.0/24 -> 10.20.30.0/24 5432
2207 10.20.10.0/24 -> 10.20.20.0/24 445
1204 10.20.10.0/24 -> 10.20.30.0/24 5432
96 10.20.40.0/24 -> 10.20.20.0/24 22Komutu parça parça oku. zeek-cut, conn.log içinden yalnız üç sütunu seçer: kaynak, hedef ve hedef port. awk iki adresin son sekizlisini atar ve onları /24 dilimine çevirir. sort ve uniq -c aynı satırları sayar, son sort en kalabalık akışı en üste koyar.
Çıktıdaki ilk üç satır tabloyla uyumludur. Kullanıcılar sunuculara 443 ve 445'ten, sunucular veritabanına 5432'den gider. Dördüncü satır ise bir ihlaldir. Kullanıcı diliminden veritabanına doğrudan 1204 bağlantı var.
Ya bir uygulama yanlış kurulmuştur ya da biri veritabanına kendi makinesinden bağlanıyordur. İkisi de bir sahip ve bir gerekçe ister. Haritayı kural yazmadan önce bu tür satırlardan temizlersin.
Etkinlik 2 / 7
Aşağıdaki bağlantı kayıtlarından hangileri, kullanıcı diliminden veritabanı dilimine DOĞRUDAN giden ve segmentasyon kuralını ihlal eden trafiği gösterir?
Yazdıkça eşleşen satırlar işaretlenir. Hedef: yalnız doğru satırlar eşleşsin.
Kuralı yazmak ve doğrulamak
Harita temizlenince kural yazılır. Linux tabanlı bir dilim geçidinde bu iş nftables ile yapılır. Zincirin varsayılan politikası drop olur ve izin verilen akışlar tek tek açılır.
Son satıra bir log kuralı koymak önemlidir. Politika paketi sessizce düşürür, log kuralı ise düşen her denemeyi kayda yazar. Bölümlemenin görünürlük kazancı tam o satırdan gelir.
Kuralı yazdıktan sonra mutlaka doğrula. nft list ruleset komutu çekirdeğe gerçekten yüklenen kuralları sayaçlarıyla gösterir. Dosyada yazan kural ile çekirdekte çalışan kural her zaman aynı değildir. Saha bölümündeki 'Açık Panel' görevinde benzer bir doğrulamayı bir web sunucusunun güvenlik duvarında yaparsın.
$ sudo nft list ruleset
table inet dilim {
chain forward {
type filter hook forward priority filter; policy drop;
ct state established,related accept
ip saddr 10.20.10.0/24 ip daddr 10.20.20.0/24 tcp dport { 443, 445 } accept
ip saddr 10.20.20.0/24 ip daddr 10.20.30.0/24 tcp dport 5432 accept
ip saddr 10.20.40.5 tcp dport { 22, 3389 } accept
log prefix "dilim-red " counter packets 1873 bytes 112380 drop
}
}Çıktıyı satır satır oku. type satırı, zincirin yönlendirilen trafiğe, yani dilimden dilime geçen paketlere baktığını söyler. policy drop varsayılanı reddettir.
İkinci satır, açılmış bir bağlantının dönüş paketlerini geçirir. Bu satır olmazsa her yanıt için ayrı kural gerekir. Sonraki üç satır tablodaki izinlerin aynısıdır. Yönetim izni bütün yönetim dilimine değil, tek bir adrese, atlama sunucusuna (10.20.40.5) verilmiştir.
Son satır kalan her şeyi kayda yazıp düşürür. Sayaç, kurala takılan paketleri gösterir. Kullanıcı diliminden veritabanına giden denemeler artık geçemez ve her biri çekirdek günlüğüne dilim-red önekiyle düşer. Bu satırlar SIEM'e akarsa yanal hareket denemesi alarma dönüşür.
Etkinlik 3 / 7
Yukarıdaki kurallar yüklüyken 10.20.10.22 adresinden 10.20.30.8:5432 adresine yeni bir TCP bağlantısı açılmak istenir. İlk pakete ne olur?
Önce kodu oku, sonra çıktıyı seç.
policy drop;
ct state established,related accept
ip saddr 10.20.10.0/24 ip daddr 10.20.20.0/24 tcp dport { 443, 445 } accept
ip saddr 10.20.20.0/24 ip daddr 10.20.30.0/24 tcp dport 5432 accept
ip saddr 10.20.40.5 tcp dport { 22, 3389 } accept
log prefix "dilim-red " counter dropKural yalnız içeri değil, dışarı da bakar. Veritabanı dilimi için hiçbir çıkış kuralı yazılmadı, bu yüzden oradan internete giden her bağlantı düşer. Saldırgan veritabanına ulaşsa bile veriyi doğrudan dışarı taşıyamaz.
Önce çıkışı olan başka bir dilime atlaması gerekir ve o geçiş de log satırı bırakır. Güncelleme gerekiyorsa veritabanı internete değil, iç ağdaki bir paket aynasına bağlanır. Çıkış süzgeci, saldırı zincirinin son halkasında çalışan ucuz bir sigortadır.
Etkinlik 4 / 7
Veritabanı dilimine giden internet çıkışının kapatılması hangi saldırı adımını doğrudan zorlaştırır?
Yönetim yolu ve kimlik bölümlemesi
Yönetim erişimi tek bir atlama sunucusundan geçer. Yöneticiler önce oraya bağlanır, oradan hedefe gider. Böylece bütün yönetim trafiği tek noktada kayda girer. O nokta da sıkı korunur: çok adımlı doğrulama, oturum kaydı ve dar bir kaynak listesi.
Hedef sunucular yönetim portlarını yalnız atlama sunucusuna açar. Acil durum yolunu da unutma.
Hiçbir yoldan ulaşılamayan bir dilim, olay gecesi müdahaleyi imkânsız hâle getirir. Her dilimde kontrollü ve kayıtlı bir yönetim yolu dursun. Acil durum hesabı ve yolu yazılı olsun, kullanıldığında da alarm üretsin.
Bölümleme yalnız ağ katmanında kalmaz, aynı mantık kimlikte de kurulur. Önceki dersteki erişim modelini hatırla: alan yöneticisi hesabı yalnız kontrol düzlemindeki makinelerde oturum açar. Bunu Windows'ta kullanıcı haklarıyla zorlarsın. Grup İlkesi iş istasyonlarına ve üye sunuculara uygulanır.
Domain Admins grubuna orada üç ret hakkı atanır: 'Deny log on locally', 'Deny log on through Remote Desktop Services' ve 'Deny access to this computer from the network'. Çalınan yönetici kimliği kullanıcı bilgisayarında artık işe yaramaz. Uzaktan çalışma da sınırı kimliğe taşır. Evden bağlanan makine için erişim kararı ağ konumuna değil, kimliğe ve cihazın sağlık durumuna bakar.
Etkinlik 5 / 7
Yönetim erişiminin tek noktadan geçirildiği ara sunucuya ____ sunucusu denir.
Doğu-batı trafiğini izlemek
Çoğu kurum yalnız dışarı giden trafiği, yani kuzey-güney yönünü izler. Yanal hareket ise tamamen iç trafikte, doğu-batı yönünde olur. Dilim sınırı bu yönü görmek için en iyi yerdir. Üç port özellikle izlenir: SMB (445), RDP (3389) ve WinRM (5985, şifreli hâliyle 5986).
Saldırgan çalınan kimlikle uzak masaüstüne bağlandığında ATT&CK bunu T1021.001 olarak izler. SMB yönetim paylaşımları T1021.002, WinRM ise T1021.006 altındadır. Kullanıcı diliminden başka bir kullanıcı makinesine 445 ya da 3389 bağlantısı olağan değildir. Kullanıcı bilgisayarları birbirine dosya paylaşmaz, birbirini de yönetmez.
Ağ kaydını kimlik kaydıyla birleştirince tablo netleşir. Hedef makinedeki 4624 olayı başarılı bir oturum açmayı gösterir ve oturum türünü yazar. Tür 2 klavye başında açılan yerel oturumdur.
Tür 3 ağ oturumudur: SMB paylaşımına ya da WinRM'e bağlanmak bu türü üretir. Tür 10 uzak etkileşimli oturumdur, yani RDP.
Kural iskeleti şöyle kurulur. Dilim sınırında kullanıcıdan kullanıcıya 445, 3389 ya da 5985 bağlantısı görülür. Birkaç dakika içinde hedefte aynı kaynaktan tür 3 ya da tür 10 oturumu açılır. İki sinyal birlikte gelince yanlış alarm oranı düşer ve analist hangi hesabın kullanıldığını hemen görür.
Derinleş:conn_state alanı ne söyler
Zeek'in conn.log kaydındaki conn_state alanı, bağlantının nasıl başlayıp bittiğini kısa bir kodla yazar. SF, bağlantının olağan biçimde açılıp kapandığını gösterir. S0, bağlantı denemesinin görüldüğünü ama karşı taraftan hiç yanıt gelmediğini söyler.
REJ, hedefin denemeyi reddettiğini gösterir. RSTO ve RSTR, bağlantının sırasıyla başlatan ya da yanıtlayan tarafça sıfırlandığını anlatır. OTH ise Zeek'in bağlantının başını görmediği, ortasından yakaladığı akışlardır.
Dilim sınırının hemen arkasındaki bir sensörde bu alan iki iş görür. Kısa sürede çok sayıda farklı hedefe giden S0 ve REJ satırları, kuralın durdurduğu bir tarama denemesini işaret eder. Kurala rağmen SF ile biten bir akış ise kuralın beklediğin gibi çalışmadığını gösterir.
İkinci durum daha tehlikelidir, çünkü sessizdir. Haftalık bir sorguyla dilimler arası SF akışlarını izin listesiyle karşılaştırmak, kural kaymasını erken yakalar.
Etkinlik 6 / 7
4624 olayındaki oturum türlerini anlamlarıyla eşle.
Sık hatalar üç başlıkta toplanır. Birincisi VLAN'ı tek başına sınır sanmaktır. Araya erişim listesi konmazsa dilimler kâğıt üstünde kalır.
İkincisi geçici kuralların kalıcılaşmasıdır. Bir kesinti gecesi her yerden her yere açık bir kural yazılır ve kimse kapatmaz. Her izin satırının bir gerekçesi, bir sahibi ve bir bitiş tarihi olsun.
Yılda bir gözden geçirme bu kaymayı durdurur. Üçüncüsü zayıf cihazları kurumsal düzlemde bırakmaktır. Bir üretim tesisinde kamera kaydedicisi kurumsal ağa doğrudan bağlıydı ve dört yıldır güncellenmemişti. Saldırgan oradan girdi, dosya sunucusuna geçti ve kimse aradaki geçişi göremedi.
Etkinlik 7 / 7
Doğru mu, yanlış mı?
Bölümlü ağda ele geçen bir kameradan dosya sunucusuna uzanma denemesi, dilimler arasındaki güvenlik duvarına takılır ve kayda düşer.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.