“Alaycı Kuş” adlı yeni bir işlem enjeksiyon tekniği, tehdit aktörlerinin EDR’yi (Uç Nokta Tespiti ve Yanıtı) ve diğer güvenlik ürünlerini atlayarak güvenliği ihlal edilmiş sistemlerde kötü amaçlı kodları gizlice yürütmesine izin verebilir.
Siber güvenlik firması Security Joes’daki araştırmacılar, EDR kancalarından kaçınmak ve uzak işlemlere kod enjekte etmek için RWX (okuma, yazma, yürütme) bölümlerine sahip meşru DLL’leri kullanan yöntemi keşfetti.
İşlem enjeksiyonu, işletim sistemi tarafından güvenilen başka bir çalışan işlemin adres alanında rastgele kod yürütme yöntemidir ve bu nedenle tehdit aktörlerine tespit edilmeden kötü amaçlı kod çalıştırma yeteneği verir.
Süreç enjeksiyon tekniklerine örnek olarak DLL enjeksiyonu, PE (taşınabilir yürütülebilir) enjeksiyonu, yansıtıcı DLL enjeksiyonu, iş parçacığı yürütme kaçırma, süreç içi boşaltma, eşleme enjeksiyonu, APC (eşzamansız prosedür çağrısı) enjeksiyonu ve diğerleri dahildir.
Tüm bu tekniklerde, saldırganların Windows API’lerini ve çeşitli sistem çağrılarını kullanması, süreçler/thread’ler oluşturması, işlem belleği yazması vb.
Security Joes, Mockingjay’in diğer yaklaşımlardan ayrıldığını çünkü yaygın olarak kötüye kullanılan Windows API çağrılarını kullanmadığını, özel izinler ayarlamadığını, bellek tahsisi gerçekleştirmediğini ve hatta bir iş parçacığı başlatmadığını ve dolayısıyla birçok olası algılama fırsatını ortadan kaldırdığını söylüyor.
Alaycı Kuş Tasarlamak
Araştırmacıların ilk hedefi, varsayılan bir RWX bölümüne sahip savunmasız bir DLL bulmaktı, böylece ek izinler almak gibi ekstra adımlar gerçekleştirmeden, güvenlik yazılımlarında kırmızı bayraklara yol açabilecek ekstra adımlar gerçekleştirmeden içeriğini kötü amaçlı kod yükleyecek şekilde değiştirebileceklerdi.
Security Joes analistleri, uygun bir DLL arayışında, Visual Studio 2022 Community içinde varsayılan olarak 16 KB boyutunda bir RWX bölümüne sahip msys-2.0.dll DLL’sini keşfetti.
Raporda, “Bu önceden var olan RWX bölümünden yararlanarak, EDR’ler tarafından zaten bağlanmış olabilecek herhangi bir işlevi etkili bir şekilde atlayarak, sunduğu doğal bellek korumalarından yararlanabiliriz.”
“Bu yaklaşım, yalnızca kullanıcı alanı kancalarının getirdiği sınırlamaları ortadan kaldırmakla kalmıyor, aynı zamanda enjeksiyon tekniğimiz için sağlam ve güvenilir bir ortam oluşturuyor.”
Daha sonra ekip, biri kendi kendine enjeksiyon ve diğeri uzaktan işlem enjeksiyonu için olmak üzere iki enjeksiyon yöntemi geliştirdi.
İlk durumda, özel bir uygulama (“nightmare.exe”) güvenlik açığı bulunan DLL’yi iki Windows API çağrısı kullanarak doğrudan kendi bellek alanına yükler ve bellek tahsisi gerçekleştirmeden veya izinleri ayarlamadan RWX bölümüne doğrudan erişim sağlar.
Daha sonra, temiz bir sistem modülü olan NTDLL.DLL sistem çağrı numaralarını çıkarmak için kötüye kullanılır; bunlar daha sonra “Hell’s Gate EDR kancasını kaldırma” tekniği kullanılarak EDR kancalarını atlamak için kullanılır ve enjekte edilen kabuk kodunun algılanmadan çalışmasına izin verir.
İkinci yöntem, uzak bir işleme, özellikle “ssh.exe” işlemine bir yük enjekte etmek için msys-2.0.dll dosyasının TWX bölümünden yararlanmayı içerir.
Özel uygulama, ssh.exe’yi alt işlem olarak başlatır, hedef işlem için bir tanıtıcı açar ve güvenlik açığı bulunan DLL’nin RWX bellek alanına kötü amaçlı kodu enjekte eder.
Son olarak, enjekte edilen kabuk kodu “MyLibrary.dll” DLL dosyasını yükleyerek, bir saldırı örneği olarak saldırganın makinesiyle ters bir kabuk oluşturur.
Testler, hedef süreçte yeni bir iş parçacığı oluşturmayı, bellek ayırmayı veya izinleri ayarlamayı gerektirmeyen bu uzaktan enjeksiyon saldırısının EDR çözümlerinden başarıyla kaçtığını gösterdi.
https://www.youtube.com/watch?v=155OXwnnAyw
Mockingjay’de önerilen her iki yöntem de yanlış yapılandırılmış bir DLL yüklemek ve DLL’nin RWX bölümünün adresini bulmak için ‘LoadLibraryW’, ‘CreateProcessW’ ve ‘GetModuleInformation’ gibi Windows API’lerini kullanır.
Bununla birlikte, EDR’ler genellikle geleneksel işlem enjeksiyon saldırılarında daha yaygın olarak çağrılan ‘WriteProcessMemory’, ‘NtWriteVirtualMemory’, ‘CreateRemoteThread’ veya ‘NtCreateThreadEx’ gibi API’leri izler. Bu nedenle, Mockingjay’in alarm verme olasılığı daha düşüktür.
Joes Security tarafından ‘Mockingjay’in geliştirilmesi, kuruluşların neden yalnızca mevcut EDR çözümlerine güvenmek yerine bütünsel bir güvenlik yaklaşımı benimsemeleri gerektiğinin bir başka göstergesidir.