UEFI firmware implant (CosmicStrand)¶
Bir kernel payload'u inject etmek için boot-services ve Windows loader chain'ini hook'layan firmware-resident bir UEFI rootkit; OS reinstall'larını ve disk değişimini atlatır.
Mechanism¶
Note
CosmicStrand, Kaspersky'nin H81 chipset üzerine kurulu Gigabyte ve ASUS anakartlarda değiştirilmiş firmware image'larında bulduğu bir UEFI firmware rootkit'idir. Bir firmware implant'ının tanımlayıcı özelliği işletim sisteminin altında persistence'dır: kötü amaçlı kod firmware'de yaşadığı için (disk üzerinde değil), her boot'ta OS'tan önce çalışır ve Windows'u yeniden kurmak ya da sabit diski değiştirmek onu kaldırmaz.
Implant, trusted boot chain'i bir dizi in-memory hook ile hijack ederek çalışır. Her UEFI/boot aşaması kontrolü bir sonrakine devreder; CosmicStrand her devir-teslimde kendini araya sokar; öyle ki Windows kernel'i çalışmaya başladığında, attacker code zaten ntoskrnl.exe'nin içine örülmüştür. Aşılan güvenlik sınırı, early-boot firmware'inin güvenilir olduğu varsayımıdır: implant root of trust'ın içinde yaşar, dolayısıyla daha sonra yüklenen OS seviyesindeki savunmalar hiçbir zaman temiz bir baseline görmez.
Walkthrough¶
Yüksek seviyeli, Kaspersky'nin kamuya açık Securelist analizinden (kavramsal, bir tarif değil). Her adım bir sonraki aşamayı bulur ve execution'ı yeniden yönlendirir:
- Firmware patch. Malware,
CSMCOREDXE driver'ını değiştirir; entry point'ini, modülün.relocsection'ında taşınan attacker code'a execution'ı yönlendirecek şekilde değiştirir. Kaspersky, firmware'in otomatik bir patcher tarafından değiştirildiğini ve bunun önceden erişimi ima ettiğini belirtir. - Boot-services hook. Belirli caller'ları tanımak ve bir sonraki patch'i hazırlamak için
HandleProtocolboot service'ini hook'lar. - Boot-manager hook. Windows Boot Manager'da bir transfer routine'i (
Archpx64TransferTo64BitApplicationAsm) patch'ler. - OS-loader hook. Windows OS loader'da
OslArchTransferToKernel'i (byte-pattern matching ile) bulur ve hook'lar. - Kernel injection. Kod,
ntoskrnl.exe'nin.textsection'ı içindekiZwCreateSectionpath'inin slack space'ine inject edilir veKiFilterFiberContext, çalışmadan return edecek şekilde değiştirilerekPatchGuardetkisizleştirilir. - Payload retrieval. Bir thread-notify routine'i
winlogon.execontext'inde tetiklenir ve runtime'da asıl payload'u getirmek için C2 (raporlanan domain'ler arasındaupdate.bokts[.]comvar) ile iletişime geçer.
Kaspersky, faaliyeti Çince konuşan bir aktöre atfetti; MyKings botnet ile kod örtüşmesine dikkat çekti ve kurbanlar Çin, Vietnam, İran ve Rusya'da gözlemlendi.
Detection¶
- Firmware integrity / SPI-flash taraması. SPI flash image'ını dump edip analiz et ve DXE modüllerini (özellikle
CSMCORE) known-good bir vendor baseline'ı ile karşılaştır; değiştirilmiş bir entry point ya da eklenmiş.relockodu temel artifact'tır. - Boot-chain integrity. Windows Boot Manager ve OS-loader transfer routine'lerini ve
ntoskrnl.exe'yi beklenen hash'lere karşı doğrula;OslArchTransferToKernelüzerindeki beklenmedik hook'lar ya da patch'lenmiş PatchGuard internal'ları (KiFilterFiberContext) güçlü sinyallerdir. - Behavioral telemetry.
winlogon.exeiçinde çalışan ve dış domain'lere beacon atan bir thread-notify routine'i ya da.textslack space'inde resident kernel kodu, alert almaya değer EDR/host anomalileridir. - Network indicator'ları. Early-session process'lerden bilinen CosmicStrand C2 altyapısına giden outbound bağlantılar.
Mitigation¶
- Verified/Measured boot. Intel Boot Guard (ve doğru yapılandırılmış bir measured-boot/TPM chain'i) yalnızca yetkili firmware'in çalışmasını sağlamaya yardımcı olur; CosmicStrand'in persistence'ı korumasız bir firmware write path'ine bağlıdır. Bu korumaların kendilerinin nasıl baltalanabileceği için bkz.
intel-boot-guard-bypass-key-leakvesecure-boot-bypass. - SPI write protection. BIOS region write protection'larının doğru yapılandırıldığından emin ol; böylece firmware OS'tan yeniden patch'lenemez (bkz.
spi-flash-bios-write-protection-misconfig). - Vendor'dan firmware güncellemeleri. OEM firmware güncellemelerini uygula ve enfeksiyondan şüphelenildiğinde known-good bir image ile reflash et — tek başına OS reinstall etkisizdir.
- PatchGuard / kernel integrity. Kernel-mode code integrity (HVCI), early-boot compromise'dan sonra bile kernel payload'larını inject edip gizlemenin çıtasını yükseltir.