Konuyu Okuyanlar: 1 Ziyaretçi

Heartbreaker: Kendini Yeniden Derleyen macOS Fidye Yazılımı ve Davranış Tespiti

Heartbreaker: Kendini Yeniden Derleyen macOS Fidye Yazılımı ve Davranış Tespiti
[Resim: attachment.php?aid=425]

Selamlar,

Patrick Wardle (Objective-See), Heartbreaker adlı, daha önce bilinmeyen bir macOS fidye yazılımını analiz etti. Örnek, imza tabanlı tespitten kaçmak için kendi kaynak kodunu taşıyıp her çalışmada yeniden derleyerek ikili dosyasını (ve dolayısıyla hash'ini) değiştirmeye çalışıyor. Bu, metamorfizmin macOS'ta pek görülmeyen bir örneği. Ama hikâyenin asıl dersi şu: davranış tabanlı tespit, hash değişse de fidye yazılımını yakalar. Burada örneği, zayıf yanlarını ve tespit mantığını ele alıyorum. (Yalnızca savunma ve analiz amaçlı; örnek izole bir sanal makinede incelenmelidir.)

Konuda anlatılacaklar
  1. Heartbreaker ne yapıyor?
  2. Şifreleme ve sabit anahtar hatası
  3. Kalıcılık mekanizması
  4. Metamorfizm: kendini yeniden derleme
  5. RansomWhere? ile davranış tabanlı tespit
  6. Savunma dersleri

1. Ne yapıyor?
Heartbreaker, ad hoc imzalı bir ARM64 Mach-O ikilisi. Çalışınca:
  • Kullanıcının ~/Downloads klasörünü özyinelemeli tarıyor,
  • her dosyayı okuyup içeriğini şifreli veriyle üstüne yazıyor ve .heartbreaker uzantısı ekliyor,
  • Masaüstüne README.txt fidye notu yazıyor ve 0.003 BTC isteyen bir pencere gösteriyor.

2. Şifreleme ve sabit anahtar hatası
Her dosya için AES-256-GCM, taze 12 baytlık nonce ve sabit kodlanmış 32 baytlık bir anahtar kullanıyor. Dosya düzeni:
Kod:
12 bayt nonce || şifremetni || 16 bayt GCM doğrulama etiketi
AES-GCM seçimi yanlış değil; hata, her dosyada (ve muhtemelen her mağdurda) aynı sabit anahtarın kullanılması. Anahtar ikili dosyada açık olduğu için fidye ödemeden bir çözücü yazmak mümkün. Wardle, bu sabit anahtarla çalışan bir Python çözücü gösterdi; GCM doğrulama etiketi, yanlış anahtarda sessiz bozulma yerine doğrulama hatası verdiği için kurtarma güvenli.

3. Kalıcılık
Fidye yazılımları genelde kalıcı olmaz, ama Heartbreaker mimicore::add_to_startup() ile şu yola bir LaunchAgent oluşturuyor:
Kod:
~/Library/LaunchAgents/com.network.startup.plist
RunAtLoad ile her girişe tekrar çalışıp yeni/kurtarılmış dosyaları şifreleme fırsatı arıyor.

4. Metamorfizm
En ilginç kısım: ikili, Rust'ın include_str! makrosuyla kendi main.rs ve build.rs kaynağını içine gömüyor. Çalışınca kaynağı mimicore::morph() ile dönüştürüyor: eski junk fonksiyonları temizliyor, değişken adlarını rastgeleleştiriyor, 15 yeni anlamsız fonksiyon ekliyor, sıraları karıştırıyor, geçici bir Cargo projesi oluşturup cargo build --release ile derliyor ve kendini yeni ikiliyle değiştiriyor. Yeni nesil de aynı kaynağı taşıdığı için süreç teorik olarak tekrarlanabilir. Ama davranış değişmiyor: hâlâ aynı dosyaları, aynı anahtarla şifreliyor.

Not: Referans verilen mimicore reposu artık erişilebilir değil; Wardle, aynı yazarın hâlâ çevrimiçi olan metacore reposundan sürecin nasıl tasarlandığını çıkarıyor.

5. RansomWhere? ile tespit
Wardle'ın açık kaynak aracı RansomWhere?, Heartbreaker'a özgü hiçbir imza içermiyor. Apple'ın Endpoint Security çerçevesini kullanarak, güvenilmeyen bir sürecin dosyaları hızla yüksek entropili (şifreli görünümlü) veriye dönüştürmesini izliyor; eşik aşılınca süreci askıya alıp kullanıcıyı uyarıyor. Metamorfik yeniden derleme bu tespiti etkilemiyor, çünkü tespit ikilinin hash'ine değil, etkisine bakıyor.

6. Savunma dersleri
  1. Yalnızca hash/imzaya güvenmeyin. Basit bir yeniden derleme hash'i değiştirir.
  2. Davranış tabanlı tespit ekleyin. Hızlı, yüksek entropili dosya değişiklikleri güçlü bir fidye göstergesidir.
  3. Offline yedek şart. Davranış tespiti reaktiftir; eşiğe ulaşana kadar az sayıda dosya şifrelenebilir.
  4. En az yetki + LaunchAgent izleme. Beklenmeyen com.*.startup ajanlarını avlayın.
Wardle'ın dürüst uyarısı: hiçbir araç her şeyi durdurmaz; katmanlı savunma şarttır.

Sonuç
Heartbreaker şu anki haliyle büyük bir gerçek dünya tehdidi değil (sadece ~/Downloads'ı hedefliyor, sabit kurtarma anahtarı var, gürültülü bir Rust derleme akışı çalıştırıyor). Ama araştırma örneği olarak değerli: fidye yazılımı ikili kimliğini değiştirse de, bir Mac'i fidyelemek için sonunda dosyaları şifrelemek zorunda; işte tam orada yakalanıyor. Siz fidye tespitinde imzaya mı, davranışa mı güveniyorsunuz?

Yasal uyarı
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.

Kaynaklar


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: