İçeriğe geç
Sedat Özdemir
Yazılar

assumed-breach

Eskiden Raporu Verip Kaçardık, Şimdi İçeride Beraber Yaşıyoruz: Modern Pentestin Evrimi

Siber güvenlikte 'bir kere test yapalım, bir sene rahat edelim' devri kapandı. Artık sızma testleri bir kontrol listesinden ziyade, içerideki saldırganla satranç oynamaya dönüştü.

Sedat Özdemir
· 4 dk okuma

Hatırlarsınız, çok değil beş altı yıl önce sızma testi dediğimiz şey, bir tarayıcıyı (Nessus, OpenVAS ne varsa artık) kurumsal ağa salıp, çıkan 'high' ve 'critical' bulguları güzel bir PDF'e dönüştürüp müşterinin masasına bırakmaktan ibaretti. 'Bakın SSL sürümünüz eski, hadi kapatın bunu' der, kahvemizi içer, ofisimize dönerdik. Ama artık kimse sadece 'yaması eksik sunucu' peşinde koşmuyor; çünkü saldırganlar artık kapıyı kırmak yerine, içeriye girmiş gibi davranıp (assume breach) sessizce ilerlemeyi tercih ediyor.

Bugün 'testCompany' gibi büyük bir yapıda Red Team Lead olarak sahaya indiğimde, karşılaştığım en büyük fark şu: Artık zaafiyet avcılığı yapmıyoruz, bir senaryoyu yaşıyoruz. Artık trend, kapıyı kimin açık bıraktığından ziyade, o kapıdan giren kişinin sistemin en mahrem köşelerine kadar nasıl ulaştığını anlamak üzerine kurulu.

'Assumed Breach' Neden Yeni Standart Oldu?

Bir sabah uyandınız ve en kritik sunucunuzda garip bir trafik gördünüz. Saldırgan içeriye bir şekilde sızmış; belki bir oltalama (phishing) e-postasıyla bir çalışanın bilgisayarını ele geçirdi, belki de VPN parolasını bir şekilde (spray attack vs.) tahmin etti. İşte modern pentest burada başlar. Biz buna 'Assumed Breach' diyoruz. Yani, 'Saldırgan zaten içeride, şimdi ne yapabilir?' sorusuna yanıt arıyoruz.

Bu yaklaşım, kurumun savunma kapasitesini (Detection & Response) ölçmek için paha biçilmez. Sadece dışarıdaki duvarın sağlamlığına bakmıyoruz, evin içindeki sensörlerin çalışıp çalışmadığını, güvenlik ekibinin (Blue Team) o davetsiz misafiri ne kadar sürede fark ettiğini ölçüyoruz.

Lateral Movement: Sessizce Yan Odaya Geçmek

İçeriye bir kez sızdıktan sonra (diyelim ki bir kullanıcı bilgisayarı), saldırganın ilk işi yetki yükseltmek (Privilege Escalation) ve ağda yanlara doğru hareket etmektir (Lateral Movement). Eskiden bu işler psexec ile paldır küldür yapılırdı ama bugün EDR (Endpoint Detection and Response) çözümleri anında tepenize biner.

Bugünlerde biz Red Team tarafında daha çok 'Living off the Land' (LotL) dediğimiz yöntemleri kullanıyoruz. Yani sistemde zaten var olan araçları (PowerShell, WMI, Certutil vb.) kullanarak iz bırakmamaya çalışıyoruz.

Şöyle bir senaryo düşünelim; testCompany ağında düşük yetkili bir kullanıcısın. Hedefin Domain Admin olmak değil, sadece finans birimindeki bir dosya sunucusuna erişmek. Bakalım Blue Team şu basit ama etkili komutu fark edecek mi?

# Defanged/Zararsızlaştırılmış Örnek
# Amacımız: Bellekteki (LSASS) kimlik bilgilerini doğrudan dumplamak yerine,
# sistemde kayıtlı olan servis hesaplarını sessizce listelemek.

Get-WmiObject -Class Win32_Service | Where-Object {$_.StartName -ne 'LocalSystem'} | Select-Object Name, StartName, PathName | Export-Csv -Path "C:\Users\Public\Documents\service_inventory.csv"

Burada saldırgan aslında hiçbir 'malware' çalıştırmadı. Sadece WMI kullanarak sistemdeki servisleri listeledi. Eğer bu servislerden biri zayıf yapılandırılmış bir dosya yoluna sahipse (Unquoted Service Path), saldırganın ekmeğine yağ sürülmüş demektir.

Teknik Bir Bakış: Kerberoasting ve Savunma

Modern Active Directory ortamlarında vazgeçilmezimiz: Kerberoasting. Bir kullanıcı hesabı olarak, ağdaki servis hesapları (SPN) için bilet (Ticket) talep edip, bu biletin şifresini kendi makinemizde kırmaya çalışıyoruz. En sevdiğim yanı; bu işlem tamamen legal bir Windows trafiği gibi görünür.

# Defanged/Zararsızlaştırılmış Mock Komut
# Bir servis hesabı için TGS (Ticket Granting Service) bileti istemek

Request-SPNTicket -ServiceAccount "sql_svc_test" -OutputFormat Hashcat > ticket_for_cracking.txt

Bu saldırıyı engellemenin yolu 'yamalamak' değil, 'sıkılaştırmak' (Hardening). Eğer servis hesaplarınızın parolaları 25 karakterden uzun ve karmaşıksa, biz o bileti kırmak için süper bilgisayarlar da kullansak başarılı olamayız. İşte modern pentest raporunda 'Şu yamayı geç' yerine 'Servis hesaplarının şifreleme politikasını güncelleyin' dememizin sebebi budur.

EDR'ı Atlatmak mı, EDR ile Dans Etmek mi?

Artık hiçbir profesyonel 'ben EDR'ı %100 atlatırım' demez. Elbet bir yerde yakalanırsınız. Önemli olan, yakalanana kadar ne kadar veri topladığınız ve yakalandığınızda Blue Team'in ne kadar hızlı aksiyon aldığıdır.

Bir keresinde testCompany (tamamen hayali bir senaryo!) benzeri bir yapıda, EDR'ın sadece belirli klasörleri (örneğin Downloads veya Temp) çok sıkı denetlediğini fark etmiştik. Biz de payload'umuzu hiç beklenmedik, sistemin kendi 'custom' uygulamalarının çalıştığı bir dizine koyarak 48 saat boyunca kimseye fark edilmeden içeride kalabilmiştik. Bu, bir 'zayıflık' değil, bir 'konfigürasyon eksikliği'dir ve ancak gerçek bir senaryo bazlı pentest ile ortaya çıkar.

Savunma Ekiplerine (Blue Team) Birkaç Tavsiye

Pentest ekipleri olarak biz sizin düşmanınız değiliz, en iyi antrenman arkadaşınızız. Bir bulgu raporlandığında 'Nasıl olur da bunu görmeyiz?' diye hayıflanmak yerine, o tekniğin 'artifakt'larını inceleyin.

Örneğin, birisi lsass.exe sürecine erişmeye çalıştığında (mimikatz gibi araçlarla), Sysmon veya EDR loglarınızda şu Event ID'yi arıyor musunuz?

  • Sysmon Event ID 10: ProcessAccess (TargetImage: C:\Windows\system32\lsass.exe)

Eğer bu log geliyorsa ama kimse bakmıyorsa, dünyanın en iyi güvenlik duvarına sahip olmanızın hiçbir anlamı kalmıyor.

Pentestin Geleceği: Sürekli Doğrulama

Yılda bir kez yapılan pentest, sadece o günkü halinizin fotoğrafını çeker. Oysa ertesi gün yeni bir 'Zero-day' çıkabilir veya bir stajyer yanlışlıkla bir S3 bucket'ını dünyaya açabilir. Bu yüzden artık 'Continuous Security Validation' (Sürekli Güvenlik Doğrulaması) konuşuyoruz.

Artık otomatize edilmiş Breach and Attack Simulation (BAS) araçları ile sızma testi tekniklerini her gün, her saat sistemlerinizde koşturup savunma kalkanlarınızın hala ayakta olup olmadığını kontrol etmeniz gerekiyor. Biz Red Team ekipleri de bu araçların yazdığı 'oyun kitaplarını' (Playbooks) güncel tutmak ve en yeni tehditleri sisteme entegre etmekle yükümlüyüz.

Sonuç yerine şunu söyleyeyim; siber güvenlik bir varış noktası değil, bitmek bilmeyen bir maraton. Ve bu maratonda 'güvendeyim' dediğiniz an, geride kaldığınız andır. Bizler 'testCompany' içinde her gün bu maratonu koşuyoruz, bazen biz geçiyoruz, bazen savunma ekibi bizi yakalıyor ama günün sonunda kazanan her zaman kurumun güvenliği oluyor.

Hadi, şimdi gidin ve servis hesaplarınızın parolalarını en son ne zaman değiştirdiğinize bir bakın. Belki de bir sonraki pentestte ilk oradan geliriz, kim bilir?

İlgili yazılar