Kum Havuzu Tespiti

If you are looking for an English version of this article, please visit here.

8-9 yıl önce yazdığım blog yazılarında (Anti Analiz, Anti Anti-VMWare) zararlı yazılım geliştiren art niyetli kişilerin, zararlı yazılımlarının sanal sistemlerde güvenlik araştırmacıları veya güvenlik sistemleri tarafından analiz edilmesini zorlaştırma, engelleme adına çeşitli yöntemlerden faydalandıklarından bahsetmiştim.

Tabii günümüzde Virtual Desktop Infrastructure (VDI) teknolojilerinin kurumsal ortamlarda son kullanıcılar tarafından yaygın olarak kullanılmaya başlanmasıyla sanal sistemlerin çoğunlukla sunucular veya zararlı yazılım analistleri, güvenlik araştırmacıları tarafından kullanıldığı günler geride kalmaya başladı. Durum böyle olunca da zararlı yazılım geliştiricilerinden kırmızı takım (red team) çalışması gerçekleştiren etik hackerlara kadar hedef sistemleri kendi araçları ile uzaktan yönetmek ancak yakalanmak istemeyenlerin ortak kaygısı, sanal sistemlerde çalışabilen fakat analiz sisteminde çalışmayan araçlar tasarlamak ve geliştirmek olmaya başladı. Gerçekçi bir yaklaşımla analiz sisteminde çalışmayan bir aracın geliştirilmesinin mümkün olamayacağını bilen zararlı yazılım geliştiricileri, yakalandıklarını anlamak ve operasyonlarını durdurmak için VirusTotal üzerinde belli zaman aralıklarında geliştirdikleri zararlı yazılımlarının hash değerlerini aratmaktadırlar. Benzer şekilde mavi takım tarafından yakalanabileceği ihtimalini göz ardı etmeyen kırmızı takım çalışanları ise operasyonlarının sürdürülebilirliğini sağlama adına RedELK gibi projelerden faydalanmaktadırlar.

Zararlı olduğundan şüphe edilen dosyaların son kullanıcılar, güvenlik uzmanları tarafından VirusTotal, Any.Run, Hybrid Analysis, Lastline Analyst, VMRay Analyzer vb. kum havuzu sistemlerine yüklendiğini bildiğim için çok güvendiğimiz bu kum havuzu sistemlerini tespit etmenin pratikte ne kadar kolay veya zor olduğunu araştırmaya ve sizlerle paylaşmaya karar verdim.

Bunun için ilk olarak kum havuzu sistemleri ile ilgili bilgi toplamam (keşif) gerekiyordu. Kum havuza sistemine yüklenen bir yazılım, dinamik analiz esnasında hedef bir sistem (c&c) ile haberleşmeye geçtiğinde kum havuzu sistemi tarafından izlenmekte ve kayıt altına alınmakta kısaca bu sistemler üzerinde internetteki bağlantısına izin verilmektedir. Ben de bu fırsattan istifade ederek hedef işletim sistemi ile ilgili bilgi toplayan bir Microsoft Office makrosu hazırlamaya karar verdim. Makro ile bu işi yapmanın en kolay yolu özellikle hedeflenmiş saldırılarda (APT) yanal hareket (lateral movement) amacıyla kullanılan Windows Management Instrumentation (WMI)‘dan faydalanmaktı. WMI ile ilgili olarak Microsoft’un sitesinde ufak bir araştırma yaptığınızda (Win32 Provider) hedef işletim sistemi ile ilgili çok ama çok sayıda bilgi toplayabildiğinizi görebilirsiniz.

Dünyayı yeniden keşfetmeme adına Google’da ufak bir arama yaptığımda VBA ile WMI üzerinden bilgi toplamaya yarayan basit bir betik ile karşılaştım. Bu betik dosyasına Microsoft’un sayfasında işletim sistemine yönelik olan 25 adet sınıfı ekledikten sonra bu bilgileri https://www.mertsarica.com/macro.php adresine göndermesini sağladım. Antivirüs yazılımları tarafından kolayca tespit edilememesi adına da macro_pack aracı ile makroyu gizledim. (obfuscation)

Sandbox Detection
Sandbox Detection
Sandbox Detection
Sandbox Detection

Mert-Obfuscated25.xlsm dosyasını Any.Run ve VirusTotal’a yükledikten kısa bir süre sonra https://www.mertsarica.com/macro.php dosyasına istekler geldiğini gördüm. Gelen isteklere baktığımda kum havuzu analizi yapan sistemlerle ilgili önümde incelenmesi gereken epey bir bilgi olduğunu gördüm. :)

Bu bilgilere bakarken ilk olarak dikkatimi Select * From Win32_OperatingSystem WMI isteğinin çıktısında yer alan LastBootUpTime değeri çekti. Bu değer, işletim sisteminin en son hangi tarih ve saatte başlatıldığını belirtiyordu. Kum havuzu analizi yapan sistemler zararlı yazılımları analiz etmeden önce işletim sistemini sıfırdan, temiz hali ile başlatmaktadırlar dolayısıyla analizin gerçekleştirildiği işletim sisteminin yeniden başlatılma tarihi (LastBootUpTime) ile analiz tarihi (LocalDateTime) arasında maksimum 30 dakika gibi bir zaman farkı oluşmaktadır. Bu bilgiden de yola çıkarak yazılımın kum havuzunda analiz edildiğini varsaymak mümkümkün olabilmektedir.

Sandbox Detection
Sandbox Detection

Topladığım bilgilere göz atmaya devam ettiğimde LastBootUpTime ile LocalDateTime arasında 4 ay fark olduğunu fark ettiğim bir çıktı ile karşılaştım. 4 ay boyunca yeniden başlatılmayan bir son kullanıcı sistemi (Windows 7) oldukça şüphe çektiği için bu bilgileri yakından incelemeye başladım. Bilindiği üzere çoğu güvenlik araştırmacısının, zararlı yazılım analistinin hali hazırda izole, sanal bir analiz sistemi bulunmaktadır. Bu analiz sistemi zaman kaybetmeme adına her defasında yeniden başlatılmak yerine anlık görüntüden (snapshot) döndürülmektedir. Anlık görüntüden döndürülen bir işletim sisteminin de LastBootUpTime günler geçtikçe geride kalmakta ve bir zararlı yazılım analiz edildiğinde LocalDateTime ile arasındaki zaman farkı kimi zaman ayları bulabilmektedir. Bu bilginin ışığında bir de şüphelendiğim bu çıktının Windows işletim sistemindeki program gruplarına Win32_LogicalProgramGroup dair bilgileri topladığı WMI bölümüne baktığımda bu defa güvenlik araştırmacıları, zararlı yazılım analistleri tarafından sıklıkla kullanılan Immunity Debugger, Process Hacker gibi araçların sistem üzerinde yüklü olduğunu gördüm. Bu da bana Office dosyamın bir tehdit avcısı tarafından analiz edildiği bilgisini sağlamış oldu. :)

Sandbox Detection
Sandbox Detection

Son olarak bir de dikkatimi Select * from Win32_SystemBIOS WMI isteğinin çıktısı çekti. Kum havuzlarından gelen bilgilere baktığımda bir tanesinin BOCHS öykünücüsü (emulator) üzerinde bir diğerinin ise QEMU öykünücüsü üzerinde çalıştığını dolayısıyla bu iki sistemin de kum havuzu sistemine ait olduğunu anlamış oldum.

Sandbox Detection
Sandbox Detection

Ekim ayına kadar geçen zaman zarfında macro.php dosyasına istekte bulunan ip adreslerine baktığımda bunların da kuvvetle muhtemel VMRay, Lastline, Any.RUN, VirusTotal‘a ait kum havuzu sistemlerine ve bir tehdit avcısına ait olduğunu söyleyebilirim.

Sandbox Detection

Sonuca gelecek olursam, geliştirilen bir yazılımın, kodun WMI üzerinden elde ettiği bilgiler sayesinde kum havuzu sistemi üzerinde çalıştığını anlaması pratikte zor görünmüyor dolayısıyla hem bu bilgilerden hem de kum havuzu sistemlerine ait olan ip adreslerinden, ip bloklarından faydalanan art niyetli bir kişinin veya bir kırmızı takım üyesinin kum havuzu analizini atlatmasının mümkün olabileceği asla unutulmamalıdır.

Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

Not: 22 Kasım tarihinde düzenlenen NOPcon Uluslararası Hacker Konferansı’nda bu konuyu değindiğim Kum Havuzu Tespiti başlıklı sunum dosyamı dileyenleriniz buradan indirebilirler.

image_pdfShow this post in PDF formatimage_printPrint this page
2 comments
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hesaplarımızı Nasıl Hackliyorlar?

If you are looking for an English version of this article, please visit here. Başlangıç 25 Ekim 2023 günü saat 11:46’da e-Devlet uygulamasından ve e-posta adresime gelen uyarılardan e-Devlet Kapısı hesabıma üst üste birden fazla defa yanlış parola ile giriş yapılmaya çalışıldığı için hesabımın bir saatliğine geçici olarak kullanıma kapatıldığını…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

SIM Kart Dolandırıcılığı ile Mücadele

If you are looking for an English version of this article, please visit here. Günümüzde, kullandığımız e-posta hesabından sosyal medya hesabına, internet bankacılığı hesabından geliştirdiğimiz yazılımın kaynak kodunu barındırdığımız hesaba kadar giriş (login) esnasında güvenliğimiz için iki faktörlü kimlik doğrulama kullanıyoruz veya kullanmaya zorlanıyoruz. İki faktörlü kimlik doğrulama denildiğinde son…
Read More
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

Operasyon Güvenliği (OPSEC)

If you are looking for an English version of this article, please visit here. Sosyal medyada, ağlarda siber güvenlik uzmanlarını takip ettiğinizde veya siber güvenlik ile ilgili sunumlara göz attığınızda kimi zaman “OPSEC FAIL” şeklinde ibarelere rastlarsınız. Buralarda çoğunluklukla APT grupları tarafından ve/veya zararlı yazılım geliştiricileri tarafından yapılan önemli operasyonel…
Read More