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 hatalara dikkat çekilir. Nedir bu OPSEC diye merak edenleriniz için operasyon güvenliği (OPSEC), gerçekleştirilen operasyona dair kritik bilgilerin korunarak karşı istihbarat birimleri tarafından ele geçirilmesini engellemektir.
2-4 Ekim 2019 tarihinde Londra’da katıldığım Virus Bulletin etkinliğinde Kaspersky tarafından gerçekleştirilen Who is SandCat: an unveiling of a lesser-known threat actor başlıklı sunumda, Özbekistan istihbarat birimi olduğu düşünülen SandCat grubunun yaptığı OPSEC hatalarına yer verildi. Telemetry özelliği aktif olan Kaspersky Antivirüs yazılımı yüklü sistemlerde 0. gün istismar kodlarını test eden grubun bu testlerde kullandığı komuta kontrol merkezinin adresini askeri birimin adıyla (Military Unit 02616) kayıt etmiş olması, bu grubun OPSEC konusunu pek önemsemediğine işaret ediyordu. Fırsattan istifade etmeyi bilen Kaspersky araştırmacıları bu grup tarafından kullanılan 0. gün istismar kodlarını Kaskersky Antivirüs yüklü sistemden alıp, analiz edebilmişti.
VirusTotal üzerinde fırsat buldukça tehdit avına çıkan bir siber güvenlik araştırmacısı olarak geçtiğimiz aylarda ben de OPSEC konusuna dikkat etmeyen bir zararlı yazılım geliştiricisi ile karşılaştım.
fatura1.exe isimli zararlı yazılımı analiz sistemimde çalıştırdığımda karşıma sahte bir telefon faturası ve uyarı mesajı çıktı. fatura1.exe dosyasını RDG Packer Detector aracı ile incelediğimde aracın C# programlama dili ile geliştirildiğini öğrendim. ILSpy kaynak kodu çeviricisi ile kodlara kısaca göz attığımda kodların gizlendiğini (obfuscation) gördüm. Kaynak kodunu okunaklı hale getirmek için de4dot aracından faydalandım.
Kaynak koduna göz attığımda AES ile şifrelenmiş olan verileri çözen s_method2() fonksiyonu dikkatimi çekti. dnSpy hata ayıklayıcısı ile Main() fonksiyonunu adım adım analiz etmeye başladıktan kısa bir süre sonra s_method0() fonksiyonunun şifrelenmiş verileri çözüp byte_0 değişkenine atadıktan sonra bunu bir dosyaya kaydedip çalıştırdığını farkettim. Bunu öğrendikten sonra byte_0 değişkeninde yer alan veriyi diske kaydedip analiz etmeye karar verdim.
Bu dosyayı da dnSpy ve ayrıca ANY.RUN kum havuzu sistemi ile analiz ettiğimde Project Evrial isimli bir parola ve kripto para cüzdanı hırsızının (stealer) kırılmış sürümü (cracked) olduğunu gördüm.
Analiz neticesinde komuta kontrol merkezinin adresini (http://zmcoin.tk) tespit ettikten sonra komuta kontrol merkezini ziyaret etmeye karar verdim. Dizin listeme özelliğinin (directory browsing) aktif olması sayesinde zararlı yazılım tarafından çalınan dosyaları klasörde görüntüleyebildim. Dosyaları tarihe göre sıralayıp en eski tarihteki dosyayı indirip incelemeye başladığımda art niyetli kişinin bu zararlı yazılımı ilk olarak kendi test sisteminde test ettiğini gördüm. Tabii bu test sistemi üzerinde sadece zararlı yazılımı test etmekle kalmayıp şahsi işlerini de gerçekleştirdiği (OPSEC FAIL) için zararlı yazılım işletim sistemi üzerinde kendisine ait isim, soyad, e-posta adresi vb. bilgileri de çalmış ve kendi kazdığı kuyuya kendisi düşmüştü. :)
Görüleceği üzere operasyon güvenliğine önem vermeyen art niyetli kişiler sayesinde gerçekleştirilen siber operasyonlara ve operasyonu gerçekleştirenlere dair önemli bilgileri elde etmek mümkün olabilmektedir.
Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.