Sızma Testi

Güvenlik cihazlarınızın ve güvenlik yazılımlarınızın sizi gerçekten koruduklarından emin misiniz? Her şirketin güvenlik risklerine karşı kontrole ihtiyacı var.

Penetration Testing veya Pentest olarak bilinen bu kavram Türkçe'de Sızma Testi olarak kullanılmaktadır. Bilgi teknolojilerinin hızla gelişmesi ve bilgiye erişimin kolaylaşması, bilgilerinizin güvenliğini de o denli önemli kılmaktadır. Sistemlere saldıran kötü amaçlı kişilerin sayısı, bilgi ve becerisi, zamanı ve motivasyonu her zaman güvenlik uzmanlarının sahip olduğu zaman, bilgi ve motivasyonun üzerindedir. Hackerların önüne geçebilmek adına, sistemleri onlar gibi düşünebilen ve hareket edebilen kişiler tarafından teste tabi tutmak önemli bir zorunluluk haline gelmektedir.

Bilişim alanındaki temel güvenlik yaklaşımını ikiye ayırabiliriz. Bunlardan biri savunmacı güvenlik olarak adlandırılan defensive security, diğeri ise proaktif güvenlik olarak adlandırılan offensive security’dir. Pentest çalışmaları ise offensive security anlayışının bir sonucu olarak ortaya çıkmıştır.

Pentest, hedef olarak belirlenmiş sistemlere saldırgan bakış açısıyla yaklaşarak teknik olarak olası bütün yöntemlerin denenip sızılması ve sistemlerin ele geçirilmesi işlemidir. Sızma Testi kapsamında risklerin, zayıflıkların meydana getirebileceği zararlar, saldırganların ulaşabilecekleri noktaların analizi yapılarak sistemler tam bir denetime tabi tutulur.

Penetration Testing (Sızma testleri) ve Vulnerability Assessment (Zafiyet değerlendirme/tarama) birbirine benzeyen fakat farklı kavramlardır. Zafiyet tarama işlemi hedef sistemlerdeki güvenlik zafi- yetlerinin, açık kaynak veya ücretli otomatize zafiyet tarama yazılımları kullanılarak bulunması ve raporlanması işlemidir. Pentest çalışmalarında ise amaç zafiyet bulmaktan öte bulunan zafiyeti değerlendirip sistemlere erişim yollarının keşfedilmesi ve yetkili erişimler elde etmektir. Hedef sistemler üzerinde gerçekleştirilebilecek ek işlemlerin (sisteme sızma, bilgilere erişme, etkiyi tanımlama) belirlenmesidir.

SIZMA TESTİ VE ZAAFİYET TARAMASI

Aşağıda anlatılan ve grafiği çizilen senaryo zafiyet taraması (vulnerability scanning/assessment) ile hiçbir şekilde keşfedilip, gerçekleştirilemez. Klasik bir sızma testinde görülebilecek bu senaryoyu açıklamak gerekirse;

• Ilk adımda iç ağa dahil olan biri farklı yöntemler ile uygulanabilecek Man In The Middle – Ortadaki Adam saldırısıyla üzerine aldığı trafik içerisinden, kurumlarda sıkça kullanılan, MS SQL Veritabanı sistemine ait yetkili kullanıcının parolasını elde etmiştir.
• Veya basit ve tahmin edilebilir bir parolanın kullanılması sonucu saldırgan, kaba kuvvet saldırılarıyla MS SQL Veritabanındaki bir kullanıcıya ait parolayı bulmuştur.
• Saldırgan, veritabanı kullanıcısına ait elde etmiş olduğu parola ile veritabanı uygulaması tarafında gerekli modüllerin aktifleştirilmesi sonrasında sistem üzerinde komut çalıştırabilecek hale gelmiştir.
• Yetki yükseltme saldırılarından sonra sistem üzerinde istenilen işlemler yapılabilir hale gelinmiştir. Bu aşamada makinede lokal veya sonradan oturum açmış kullanıcılara ait parolaların açık hali veya hashlenmiş hali elde edilmiştir.
• Aynı parolaların farklı sistemlerde kullanılmasından dolayı saldırgan, elde etmiş olduklarıyla başka sistemlerede erişim elde edecektir.
• Bu şekilde alanın genişletilmesi ile saldırgan Domain üzerinde Administrator yetkisine sahip bir kullanıcının bilgilerine eriştikten sonra Active Directory üzerinde kendisine ait Domain Admin yetkisine sahip bir kullanıcı oluşturup, tüm domain sistemlerini ele geçirecektir.

PENTEST METODOLOJİSİ

Genel olarak bir Pentest çalışmasındaki uygulamış olduğumuz adımları, metodolojiyi, aşağıdaki gibi sıralayabiliriz:

• Kapsam Belirleme (Scope)
• Bilgi Toplama (Reconnaissance, Discovery)
• Keşif ve Tarama (Enumeration)
• Zafiyet Taraması ve Analizi (Vulnerability Scanning)
• İstismar Etme (Exploitation)
• Yetki Yükseltme, Yayılma (Post Exploitation)
• Bilgi, DökümanToplama (Post Exploitation)
• İzleri Temizleme (Clearing Tracks)
• Raporlama(Reporting)

Kapsam Belirleme (Scope): Müşteri ile yapılan toplantılar sonrası teste tabi tutulacak sistemlerin tipi, sayısı belirlenir. Test sırasında ortaya çıkan fakat kapsamda belirlenmemiş varlıklar müşteri ile yapılan görüşmeler sonrasında test kapsamına alınabilir veya hariç tutulabilir. Kapsam belirlenip işlemler başlamadan önce yapılan testler ve sonucunda elde edilecek bilgilerin korunmasını sağlayan Gizlilik Sözleşmesi - Non Disclosure Agreement (NDA) imzalanır.

Bilgi Toplama (Reconnaissance, Discovery): Hedef ağ ve sistemler hakkında bilgi toplama aşaması. Internet üzerinden, halka açık kaynaklardan OSINT (Open Source Intelligence) yöntemleriyle hedef kurum hakkında elde edilebilecek kişisel bilgiler, domain adresleri, IP adres aralıkları, cihaz listeleri vb. bilgiler elde edilir. Elde edilen bilgiler ve iç ağ testlerinde kullanılacak IP aralıkları ile canlı sistemler keşfedilir.

Keşif ve Tarama (Enumeration, Scanning): Elde edilen aktif sistemler üzerindeki açık portlar tespit edilir. Sistemlerde bulunan açık portların üzerindeki mevcut servislerin isimleri ve işletim sistemi versiyonları keşfedilir.

Zafiyet Taraması ve Analizi (Vulnerability Scanning): Keşfedilen sistemlerdeki mevcut servislerin ve işletim sisteminin bilinen açıklıkları ücretli ve açık-kaynak kodlu zafiyet tarama araçları ile taranır. Buna ek olarak manuel bir şekilde de servisler üzerinde zafiyet analizi yapılır. Sistemler üzerinde bulunan öntanımlı kullanıcıların analizi, zayıf parola denemeleri yapılır. İstismar Etme (Exploitation): Tespit edilen işletim sistemi ve servis versiyonları için zafiyetlerin istismar edilmesi aşamasıdır. Keşif ve zafiyet tarama adımlarında elde edilen bilgiler dahilinde istismar edilebilecek sistemler veya servisler üzerinde özelleştirilen exploit kodları denenip, sistemlere sızılmaya çalışılır. Parola korumalı ve sistem üzerinde komut çalıştırma özelliğine sahip uygulamalar üzerinde ise önceki aşamalarda elde edilen bilgiler kullanılarak zincirleme bir saldırı ile sistemlerde komut çalıştırılmaya ve istismar edilmeye çalışılır.

Yetki Yükseltme, Yayılma (Post Exploitation): Erişim elde edilen sistemlerde yetki yükseltme işlemleri ile sistem tarafındaki kısıtlar atlatılmaya çalışılır. Linux sistemler için root, Windows sistemler için NT AUTHORITY\SYSTEM yetkileri elde edilmeye çalışılır. Erişim elde edilen sistemler üzerinden, pivot noktası olarak kullanarak, direkt olarak erişilmeyen diğer network/networklere yayılma işlemleri yapılarak tüm sistemlerin ele geçirilmesi denenir. Bilgi, Döküman Toplama (Post Exploitation): Erişim elde edilen sistemlerde çalışan uygulamalara ait giriş bilgileri elde edilir. Önceki adımda elde edilen yüksek yetkiler ile sistemler üzerinde şifrelenmiş veya açık bir şekilde bulunabilen parolalar elde edilir. Sistemler içerisinde bulunan önemli dosyaların, dökümanların bir kopyası alınarak şifrelenmiş bir şekilde müşteriye kanıt olması açısından test sonunda teslim edilir.

İzleri Temizleme (Clearing Tracks): Sızma testi sırasında ve yayılma aşamasında kullanılan zararlı yazılımlar, arka kapılar sistemler üzerinden temizlenir.

Raporlama (Reporting): Elde edilen bilgilerin ve dökümanların düzgün bir formata dönüştürülerek müşteriye sunulması adımıdır. Oluşturulan bu raporda, yönetici özeti ve ayrıntılı zafiyet açıklamalarını içeren alanlar bulunmaktadır.