Windows ortamlarında incelenen SLEEPWALKER arka kapısı, bellekte pasif halde bekleyip yalnızca özel hazırlanmış tek bir ağ paketini gördüğünde devreye giriyor. Çalıştırıldıktan sonra komutlarını insan tarafından okunabilir metin yerine, kendisine özgü 23 komutluk bir bytecode diliyle yürütüyor.
Analiz edilen örnek, ESET Management Agent için kullanılan ERAAgent.exe dosyasına yan yükleme yöntemiyle bırakılmak üzere hazırlanmış imzasız 64 bitlik bir Windows DLL’i. Dosya 59.904 bayt boyutunda ve Microsoft’un sistem kütüphanesi dpapi.dll’i taklit ediyor. Aynı yedi veri koruma işlevini dışa aktarıyor, ayrıca ESET Management Agent’tan kopyalanmış bir sürüm kaynağı taşıyor. Dosyada alan adı, IP adresi ya da URL bulunmuyor; dışarıya kendi bağlantısını da kurmuyor.
Bu yapı, enfekte olmuş bir makinenin bilinen kötü niyetli altyapılara çıkış yapmaması nedeniyle klasik bağlantı tabanlı izleme araçlarına karşı sessiz kalabiliyor. Komutlar düz metin olarak değil bytecode biçiminde geliyor. Böylece şifre çözme anahtarı ele geçirilse bile karşıya çıkan opcode dizisi, yalnızca bu dosyanın içinde anlam taşıyan bir yapıda kalıyor.
Dinleme, tetik ve yan yükleme zinciri
Güvenlik araştırmacısı Dominik Reichel, yaklaşımın “fırsatçı bir operasyondan çok, hedefli ve kaynakları güçlü bir faaliyete” uyduğunu söyledi. İncelemenin yalnızca koleksiyon bağlamı olmadan sunulmuş tek bir binary’ye dayandığını belirten Reichel, örneği bilinen herhangi bir aktöre bağlayamadı. Mağdur, sektör ya da ülke de çıkaramadı; örneğin sahaya sürülüp sürülmediği de netleşmedi.
Arka kapının gömülü yapılandırması AES-256-CCM ile çözümleniyor ve tek bir talimat veriyor: belirli paket için makinedeki tüm ağ arayüzlerini süresiz biçimde izle. Dinleyici yalnızca hedeflenen trafiği değil, izlenen her arayüzden geçen her şeyi yakalıyor. Bu nedenle başka bir cihaza adreslenmiş paketler de görünür hale geliyor. Ağ geçidi, VPN sunucusu ya da iki segment arasında köprü görevi gören bir host, başka bir makine için gönderilmiş tetik paketini yakalayabiliyor.
SLEEPWALKER, yalnızca host sürecinin adını kontrol ediyor; imza doğrulaması ya da dosya yolu denetimi yapmıyor. DLL’i ilgili dizine yazmak için yerel yönetici yetkisi gerekiyor ve bu yetkiyi arka kapı kendi başına üretmiyor. Saldırganın o makineye nasıl ulaştığı ve dosyayı nasıl yerleştirdiği bilinmiyor. Bu yüzden SLEEPWALKER, bir giriş vektöründen çok, ele geçirilmiş sisteme sonradan bırakılan bir implant olarak değerlendiriliyor.
Kalıcılık tarafında da tek mekanizma yan yükleme. ESET Management Agent servisi her başladığında DLL yeniden yükleniyor. Bu davranış, ESET yazılımındaki bir zafiyetin değil, Windows’un DLL arama sırasının kötüye kullanılmasına dayanıyor. Başka bir deyişle düzeltilecek bir ürün açığı değil, olay müdahalesi ve sistemi yeniden kurma gerektiren bir bulaşma modeli var.
ESET ürünlerinin bu yöntemle daha önce de istismar edildiği biliniyor. Kaspersky, ToddyCat grubunun şirketin komut satırı tarayıcısındaki search-order kusurunu kullanarak kötü amaçlı bir DLL’i ESET içine yüklediğini açıklamıştı.
23 komut, altı taşıma kanalı ve iki tetik yöntemi
SLEEPWALKER’ın 23 komutluk dili; zamanlama, veri taşımanın birkaç farklı yolu, SHA-256 ile doğrulanan aşamalı dosya teslimi ve kodu doğrudan bellekte çalıştırma yeteneklerini kapsıyor. Bu komutlar TCP, UDP, ICMP, SMB named pipe üzerinden kimlik bilgisiyle yanal hareket, ham promiscuous paket yakalama ve VMware’in Virtual Machine Communication Interface’i yani VMCI üzerinden taşınıyor.
VMCI trafiği ağ bağdaştırıcısından değil sanallaştırma katmanından geçtiği için, iki makine arasındaki klasik paket yakalama bunu hiç görmüyor. Mandiant’ın daha önce belgelediği saldırılarda UNC3886’nın da ele geçirilmiş ESXi hostları ile konuk sanal makineler arasında kalıcılık için VMCI soketlerini kullandığı hatırlatıldı.
Dil içinde diske yazma yapan hiçbir komut yok. Bu da arka kapının beklediği dosyaların başka bir bileşen tarafından önceden yerleştirilmesi gerektiği anlamına geliyor. Tetik mekanizması da iki farklı opcode ile izleniyor. Analiz edilen örnekte saklı opcode yalnızca ham paket dinleyicisini etkinleştiriyor. İkinci bir opcode ise binary içinde yer alan, ancak bu derlemede aktif edilmeyen DNS tabanlı tetikleme işlevini açıyor.
Kimliği doğrulanmamış istemcilerin named-pipe kanalına ulaşabilmesi için SLEEPWALKER, EveryoneIncludesAnonymous kayıt değerini 1 yapıyor ve kendi pipe adını NullSessionPipes altına ekliyor. Temizlik rutinindeki bir ayrıntı ise dikkat çekiyor: yazdığı NullSessionPipes girdisinin başarı durumunu, gerçekten o girdinin önceden mevcut olup olmadığından bağımsız biçimde kaydediyor. Bu da kaldırma sırasında, enfeksiyondan önce var olan meşru bir kaydın silinmesine yol açabiliyor.
Reichel’in paylaştığı host göstergeleri arasında ERAAgent.exe yanında beklenmedik bir dpapi.dll, aynı dizinde beklenmedik bir dpapisvc.dll, SHA-256 değeri d347170752a28e2b8c4b8b9f3cab2e3a6541ba11682c94498d26eb9002779d60, MD5 değeri 2318327b29bb1c0e2d2b5f0211fc7fac, EveryoneIncludesAnonymous değerinin 1 olarak ayarlanması ve NullSessionPipes içinde beklenmedik bir kayıt yer alıyor. Reichel, bu iki kayıt değerinin yalnızca bilinen bir temiz başlangıç noktasıyla karşılaştırıldığında anlam taşıdığını da belirtti.
Yazı, bu göstergeleri arayan bir YARA kuralı ve yalnızca okuma amaçlı bir PowerShell tarayıcısıyla birlikte yayımlandı. Reichel, yayın sırasında bu dosya için tespit kapsamının düşük olduğunu söyledi ancak bu değerlendirme için dayanak paylaşmadı. YARA kuralının kısmen sabit bir AES anahtarına ve derlenmiş protokol koduna baktığını, farklı derleyici ayarlarıyla yapılacak bir yeniden derlemenin bunu bozabileceğini de not etti.
The Hacker News, Reichel’in sitesinde ya da GitHub profilinde yazıda anlatılan analiz aracı ve azaltım rehberinin herkese açık bir sürümünü bulamadığını, 26 Ağustos itibarıyla da ESET’ten örnekle ilgili bir uyarı ya da kamuya açık açıklama gelmediğini aktardı. Reichel, hedef alındığını düşünenlerin kendisiyle doğrudan iletişime geçmesini istedi.
Benzer türde pasif arka kapılar Linux tarafında da görüldü. Rapid7’nin belgelediği üzere Red Menshen, telekom operatörü ağlarında BPFDoor gibi pasif arka kapılar kullandı.
