Teknik yazıların yanında birazda iş hayatına, günlük işlere dair mesajlarda yazayımki verdiğim sözü yerine getirmiş olayım dedim bu nedenle bu seferki yazımda penetrasyon testi hizmeti almadan önce firma seçmek için izlediğimiz yolu sizlerle paylaşırsam faydalı olabileceğini düşündüm. Malum alacağınız hizmet penetrasyon testi olunca testi gerçekleştiren kişinin veya ekibin sertifikaları, referansları, firmanın büyüklüğü bir yana teknik olarak konuya hakimiyeti, uzmanlığı oldukça önemli bu nedenle doğru firmayı seçmeden önce mutlaka honeypot kurar ve firmaların honeypot üzerinde penetrasyon testi gerçekleştirmelerini talep ederiz.

Geçtiğimiz aylarda dört yerli bir yabancı firma ile görüştüm. Ağırlığın yerli firmalar olmasının sebebi tabiiki fiyat ve performans. Yabancı firmalar, dünyanın dört bir yanında bu hizmeti gerçekleştirmeleri nedeniyle haklı olarak geniş danışman kadrolarını, bilgi birikimlerinin fazla olmasını ve isimlerini pazarladıkları için yerli firmalara kıyasla biraz daha pahalıya bu hizmeti veriyorlar ancak günün sonunda rapora bakıldığında yerli firmalar ile aralarında çokta fark olmadığını görebiliyorsunuz.

Honeypot hazırlama kısmına gelecek olursak internette bunun için fazla sayıda kaynak bulunuyor. Google’da ufak bir araştırma yaptığınızda CTF (capture the flag) için hazırlanmış bir çok sanal makina imajı ile karşılaşabilirsiniz. Bir tanesini alarak ihtiyaçlarınız doğrultusunda değiştirerek güzel bir değerlendirme tahtası oluşturabilirsiniz. Bende aynen bu şekilde bir imaj buldum ve üzerini özenle seçilmiş güvenlik zafiyetleri ile tamamladım.

Honeypot’un testi gerçekleştiren firmalar tarafından ele geçirilmesi için kafamda oluşturduğum yol, öncelikle web uygulamasının hack edilmesi, sistem üzerinde uzaktan komut çalıştırılarak sisteme netcat ve benzeri araçlar ile bağlantı kurulması ve daha sonra sistem üzerinde SUID bit’ine sahip olan ve üzerinde format string ve buffer overflow güvenlik zafiyeti bulunan uygulamanın istismar edilerek sunucunun ele geçirilmesi olmuştu. Buffer overflow ve Format String güvenlik zafiyetlerinin istismar edilebilmesi için sistem üzerindeki ön tanımlı korumaları kapatmayıda (Execshield, ASLR vs.) ihmal etmedim.

Öncelikle Honeypot’un işletim sisteminin (Fedora) yama seviyesini local istismar araçları ile istismar edilemeyecek seviyeye getirdim. Sanal makina imajının içerisinde md5 ile hashlenmiş yönetici şifresinin dışarıdan görüntülenmesine olanak sağlayan güvenlik zafiyetine sahip NanoCMS web uygulaması ve bunun dışında bir de eski sürüm Drupal portal bulunuyordu. NanoCMS, Drupal ve sistem üzerinde kurulu olan Mysql şifrelerini test1234, deneme1234 ve 1q2w3e4r gibi oldukça zayıf seçmeye özen gösterdim. Bunun dışında internetten C programlama dili ile kodlanmış bir echoserv daemonu buldum (echoserv dediğimiz servise telnet çektiğinizde ne girdi gönderirseniz çıktı olarak onu alıyorsunuz) ve FreeBSD telnet sunucusu gibi kendisini 65530. portta sunmasını sağladım. Sadece bununla kalmayarak sprintf() gibi tehlikeli fonksiyonlar kullanarak format string ve buffer overflow güvenlik zafiyetlerini itinayla oluşturdum :)

Kısaca en kolay yoldan sunucuyu ele geçirmek için izlenecek yol NanoCMS yönetici şifresinin hash hali alınacak, herhangi bir md5 çözücü ile çözülecek, NanoCMS yönetici paneline uzaktan komut çalıştırmaya imkan tanıyacak php kodu eklenecek ve daha sonrasında apache yetkisi ile uzaktan komut çalıştırılabilecekti. Daha sonra netstat çıktısı ve crontab dosyası incelenerek sistemde echoserv uygulamasının hangi portta hangi klasörde hangi yetki ile çalıştığı tespit edilecek ve istismar edilerek root yetkisi alınabilecekti.

Hazırlıklarımı tamamladıktan sonra her firmaya 48 saat süre vererek penetrasyon testlerini gerçekleştirmelerini ve tespit ettikleri güvenlik zafiyetlerini içeren hem teknik hem yönetsel raporu en geç bir hafta içerisinde göndermelerini talep ettim.

Penetrasyon Testi Bilgilendirme Dokümanı

Raporları incelediğimde yerli firmalardan bir tanesinin diğerlerinden daha iyi olduğu, diğer ikisinin aynı seviyede olduğu, bir tanesinin ise yeterli seviyede olmadığı ortaya çıktı. Beni asıl şaşırtan ise yabancı firmanın yerli firmalar kadar başarılı olamasmaıydı sebebi ise Honeypot üzerinde hem ağ hem web uygulamasına yönelik penetrasyon testi gerçekleştirmelerini talep etmemize rağmen sadece web uygulama penetrasyon testi gerçekleştirmiş olmalarıydı.

Tüm firmalar testlerini gerçekleştirdikten sonra kendilerini değerlendirebilmeleri için daha önce hazırlamış olduğum ufak cevap anahtarını kendileri ile paylaştım.

Sonuç olarak yazının başında da belirttiğim gibi firmaların hizmetlerine dair sizle paylaştıkları örnek raporlar, referanslar kağıt üzerinde dört dörtlük olabilir ancak hazırlamış olduğunuz honeypot üzerinde gerçekleştirecekleri ve size sunacakları rapor sizin için paha biçilmez olabilir…