LummaC2 obfuscator, daha geniş bir dönüşüm kümesinin parçası olan ve analistlerin ikili dosya üzerinde tersine mühendislik yapmasını zorlaştıran, çalma bileşeni için özel olarak tasarlanmış yeni bir kontrol akışı koruma şeması kullanır.
Analiz için özel bir kod çözücü gerektiren, derleyici tarafından oluşturulan orijinal kodla karıştırılmış karartılmış kod sunar.
Bazı korumalar kötü amaçlı yazılımın belirli bileşenlerine göre uyarlandığından, obfuscator’ın yazarları LummaC2 hırsızı hakkında derin bir anlayışa sahip görünüyor.
Dispatcher, kötü amaçlı yazılım tarafından kullanılan ve atlama hedeflerini dinamik olarak hesaplayan talimatlar ekleyerek bir işlevin orijinal kontrol akışını bozan bir tür şaşırtma tekniğini engeller.
Küçük İşletmelerin Gelişmiş Siber Tehditlere Karşı Nasıl Korunacağı Konusunda Ücretsiz Web Semineri -> Ücretsiz Kayıt
Analiz, üç ana dağıtıcı blok düzenini tanımlar: kayıt tabanlı (en yaygın), bellek tabanlı ve karma sıra; burada kayıt tabanlı düzen, hesaplamalar için kayıtları kullanır ve bir kayıt değerine atlayarak sona erer.
Bellek tabanlı düzenler hem yazmaçları hem de yığın değerlerini kullanır ve karışık sıralı düzenler her ikisinin öğelerini birleştirir ve dağıtımcı talimatlarını orijinal talimatlarla serpiştirerek kod gizlemeyi çözmeyi zorlaştırır.
Gizleyici, standart, döngü ve sistem çağrısı türlerine ayrılan hassas kod mantığını korumak için koşullu dağıtıcıları kullanır; burada standart dağıtıcılar genel koşullu atlamaları yönetirken döngü dağıtıcıları döngü yürütmeyi kontrol eder.
Sistem çağrısı dağıtıcıları, Sistem çağrısı başarısını belirlemek için NTSTATUS kodlarını değerlendirir ve gizleme aracı, koşulun sonucuna göre indekslenen bir dal hedefleri tablosu oluşturur.
Gizleyici, durum kodunu değerlendirerek ve tabloyu indeksleyerek, hassas mantığı analizden etkili bir şekilde gizleyen uygun dalı yürütür.
Orijinal talimatlar ile karartıcı tarafından enjekte edilenler (gönderici talimatları) arasında ayrım yapmak için Triton ile sembolik yürütme kullanıldığından, bir fonksiyonun kontrol akışının gizliliğini kaldırmaya yönelik bir yöntem.
Nihai atlama hedefini etkileyen talimatları belirlemek için dolaylı bir atlamanın hedef kaydında geriye doğru dilimleme gerçekleştirilir.
İşleme sırasında oluşturulan sembolik ifadelerin analiz edilmesiyle, manipülasyondan sorumlu dağıtıcı talimatları izole edilir ve orijinal fonksiyon akışı kesin olarak belirlenir; bu, dağıtıcı talimatlarının yerleşiminden bağımsız olarak etkilidir.
Gizlemeyi kaldırma süreci, orijinal talimatların kurtarılması ve derinlik öncelikli arama algoritması kullanılarak akışın kontrol edilmesiyle başlar.
Koşullu atlamalar, koşulun karşılandığı varsayılarak ve karşılık gelen yol araştırılarak gerçekleştirilir ve alternatif yollar daha sonra keşfedilmek üzere saklanır.
Gizlemesi kaldırılmış işlev daha sonra orijinal talimatların üzerine yazılarak ve dolaylı atlamaları doğrudan olanlarla veya koşullu atlama çiftleriyle değiştirerek yeniden oluşturulur.
Son olarak, belleğe referans veren talimatların uzaklıkları, yeni konumlarını yansıtacak şekilde ayarlanır; bu, karışıklıkları etkili bir şekilde ortadan kaldırır ve orijinal işlevin anlambilimini geri yükler.
Mandiant araştırmacıları, obfuscator’ın dolaylı atlamaları tarafından gizlenen orijinal talimatları tanımlayan, dağıtıcı blokları başarıyla kaldıran ve programın gerçek kontrol akışını ortaya çıkaran, geriye doğru dilimleme ve sembolik yürütme kullanarak LummaC2 için bir kod çözme aracı geliştirdi.
Gizlemesi kaldırılmış işlevler daha sonra IDA Pro kullanılarak kurtarılabilir ve derlenebilir, bu da analistlerin LummaC2’nin işlevlerini anlamalarını sağlar; bu da LummaC2 vaka çalışmasının ötesinde ikili analiz için geriye doğru dilimlemenin etkinliğini vurgular.
ANY.RUN’un Yeni Güvenli Tarama Aracını Kullanarak Şüpheli Bağlantıları Analiz Edin: Ücretsiz Deneyin