If you are looking for an English version of this article, please visit here.
Yaklaşık bir yıl önce, Tuzak Sistem ile Hacker Avı çalışmamın planlarını yaparken, düşük etkileşimli mi yoksa yüksek etkileşimli mi (high interaction) bir balküpü sistemi kullanmalıyım ikileminde kalmıştım. Aralarındaki temel farka bakıldığında, düşük etkileşimli olan gerçek bir sistemi, servisi simüle ettiği için kurulumu, yönetimi ve güvenliğini sağlamak görece daha kolay diyebiliriz. Yüksek etkileşimli olana bakıldığında ise işin içinde gerçek, canlı bir sistem olduğu için kurulumu ve yönetimi zahmetliyken, güvenliğini sağlamak ise izolasyon sebebiyle bir o kadar zorlaşıyor.
Yönetim gözüyle değerlendirdiğinizde düşük etkileşimli balküpü sistemlerinin kullanımı kulağa çok daha pratik gelebiliyor olsa da balküpü sistemlerini kullanmanın ana amacı, siber saldırganları bu sistemlere çekerek kullandıkları taktikleri, teknikleri ve prosedürleri (TTP) öğrenmek olduğu için yüksek etkileşimli sistemlerin saldırganlar tarafından tespit edilmesi pratikte çok daha zor olabiliyor. 6 ay boyunca çalışan tuzak sistemimi hackleyen onlarca siber saldırganın davranışlarını izlediğimde çoğu siber saldırgan, sistemin tuzak bir sistem olma ihtimaline karşı özel kontroller gerçekleştirmemişti dolayısıyla yüksek etkileşimli yerel balküpü sistemlerini sıkılaştırmak için çok da çaba sarfetmenize gerek kalmayabilir.
Bakıldığında düşük etkileşimli balküpü sistemlerini tespit etmek için saldırganların Nmap aracı ile bir basit bir tarama gerçekleştirilmeleri yeterli olabiliyor bu nedenle balküpü sistemini canlı sistemlerin yanına yerleştirmeden önce tanınmaz hale getirmek kullanan bireyler ve kurumlar için büyük önem taşıyor. Kimi zaman siber saldırganlardan önce USOM, zafiyet barındırdığı gerekçesi ile internet servis sağlayıcısı ile bu sistem özelinde iletişime de geçebiliyor. :)
Balküpü sistemi denilince çoğu kişinin aklına Dionaea gelecektir. Dionaea yukarıdaki ekran görüntüsünden de görüleceği üzere varsayılan (default) olarak kurulduğunda Nmap tarafından kolaylıkla tespit edilebilmektedir. Dionaea’yı tanınmaz hale getirmek için ise internette ufak bir araştırma yaptığınızda eskiden yeniye çok sayıda kaynağa (#1, #2, #3) ulaşabiliyorsunuz. Örneğin MSSQL servisini simüle eden Dionaea’yı tanınmaz hale getirmek için /dionaea/mssql/mssql.py dosyasındaki r.VersionToken.TokenType parametresinin 0x00 olan değerini 0x01 yaptığınızda Nmap artık 1433. bağlantı noktasında çalışan Dionaea’yı tespit edememektedir. Dionaea, zafiyet barındıran servisleri simüle ettiği (low interaction) için bu kaynaklarda yer alan bilgiler ışığında tanınmaz hale gelen Dionaea’yı siber saldırgan gözüyle tespit etmek pratikte aslında ne kadar kolay bunu araştırmaya karar verdim.
Dionaea’yı kurmakla zaman kaybetmemek için Deutsche Telekom tarafından geliştirilen ve üzerinde Dionaea da dahil olmak üzere çok sayıda balküpü sistemi bulunduran T-Pot balküpü sanal sistemini kurdum. Dionaea gibi ufacık tefecik bir balküpü sisteminin MSSQL servisini (TDS protokolü) tam anlamıyla simüle edemeyeceğini düşünerek işe 1433. bağlantı noktasından başlamaya karar verdim.
Bir MSSQL sunucusu ile bir istemcinin uygulama seviyesinde haberleşebilmesi için TDS (Tabular Data Stream) protokolünü kullanması gerekmektedir. TDS protokolü ile MSSQL sunucusuna giriş (login) yapabilmek için ezelden beri mümkün olan iki tür giriş yöntemi bulunmaktadır. Birincisi kullanıcı adı ve parola ile giriş, ikincisi ise windows doğrulama (NTLM) yöntemi ile giriştir. Normal şartlarda TDS protokolüne göre kullanıcı adı ve parola ile giriş yapmaya çalıştığınızda MSSQL sunucusundan gelen yanıtta, jeton olarak (token) LOGINACK_TOKEN (0xAD), windows doğrulama yöntemi ile giriş yapmaya çalıştığınızda ise jeton olarak SSPI TOKEN (0xED) olması gelmesi gerekmektedir ancak Dionaea her iki istek için de aynı sonucu dönmektedir. :)
Windows doğrulama isteğine Microsoft SQL 2008 Server Express sürümünden dönen yanıt
Windows doğrulama isteğine Dionaea’dan dönen yanıt
Durum böyle olunca Python ile pymssql kütüphanesinden de faydalanarak hızlıca bu farkı tespit edebilen dionaea_detector.py adında basit bir araç hazırladım. Bu araç sayesinde Nmap’in tespit edemediği Dionaea bal küpü sistemini basit bir kontrol ile tespit ederek, art niyetli kişilerin pratikte bunu ne kadar basit bir şekilde tespit edebileceklerini öğrenmiş oldum.
Kıssadan hisse, balküpü sistemi kullanmadan önce yüksek ve düşük etkileşimli balkü sistemlerinin artılarını ve eksilerini baştan sona değerlendirip, siber saldırganlar tarafından tespit edilmesi zor olanını tercih etmeniz veya zorlaştırma adına mevcut sistemler üzerinde değişiklikler yapmanız sizin veya kurumunuzun yararına olacaktır.
Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.
Not: Ekran görüntüleri T-Pot 16.10 sürümüne ait olsa da, dionaea_detector.py aracının T-Pot’un son sürümü olan 17.10 sürümü ile gelen Dionaea’yı da başarıyla tespit edebildiği teyit edilmiştir.
5 comments
5
Çok güzel bir yazı olmuş, zevkle okudum. Teşekkürler.
Rica ederim.
4.5
2