Skip to content

Firmware-targeting ransomware/implant tooling (TrickBoot / TrickBot)

İşletim sisteminin altında firmware persistence'ı ya da yıkıcı "bricking"i mümkün kılmak için SPI flash write-protection'ı yoklayan bir commodity-malware modülü.

Mechanism

Aşılan invariant

Buradaki güvenlik sınırı, platform BIOS/UEFI image'ini saklayan SPI flash üzerindeki firmware write-protection lock'udur. Tasarım gereği, o flash bölgesi yalnızca System Management Mode (SMM)'den ya da authenticated bir firmware update sırasında writable olmalı ve platform, boot'un erken aşamasında bir kez set edildiğinde bölgeyi bir sonraki reset'e kadar değiştirilemez yapması gereken lock bit'leri sunar. Bu lock bit'leri hiç set edilmezse ya da tutarsız set edilirse, kernel/driver ayrıcalığıyla çalışan herhangi bir code firmware'i doğrudan yazabilir — "geçici OS-seviyesi malware" ile "kalıcı, OS-altı implant" arasındaki trust boundary'sini çökertir.

TrickBoot, TrickBot crimeware platformuna eklenen bir reconnaissance/enablement modülüdür. Eclypsium ve Advanced Intelligence tarafından Aralık 2020'de raporlanmış olup, meşru RWEverything RwDrv.sys kernel driver'ının — user mode'a ham hardware erişimi (PCI config space, MMIO) açan signed bir driver — obfuscated bir kopyasını gömer. O driver'ı bir basamak olarak kullanarak modül, chipset'in BIOS write-protection durumunu okur:

  • BIOS Control Register lock-enable (BLE) ve write-protect-enable bit'leri (kavramsal olarak, flash'in locked olup olmadığı).
  • SMM-based BIOS write protection (EISS/SMM_BWP tarzı koruma).
  • read/write-locked flash range'lerini tanımlayan Protected Range register'ları.

Önce desteklenen bir Intel chipset generation'ını (Skylake'ten Comet Lake'e, artı bazı server PCH'leri) doğrulamak için PCI Vendor/Device ID'lerini okuyarak platformu fingerprint eder, çünkü register konumları generation'a göre değişir. Modül gözlemlendiği kadarıyla yalnızca korumanın enabled olup olmadığını kontrol eder; vahşi ortamda firmware'i değiştirmez. Ancak codebase zaten firmware'i okuma, yazma ve erase etme primitive'lerini içerir, onu tehlikeli yapan da budur: vulnerable, unlocked bir platform, kalıcı bir implant'tan ya da yıkıcı bir brick'ten bir adım uzaktadır.

Walkthrough

Public Eclypsium/AdvIntel raporundan üst seviye kavramsal akış:

  1. TrickBot teslim edilir ve code execution elde eder; permadll/TrickBoot modülü fetch edilir.
  2. Modül, bir hardware-access primitive'i elde etmek için gömülü RwDrv.sys'i bir servis olarak drop edip yükler.
  3. Host'u bilinen bir Intel PCH'ye map'lemek ve ilgili flash-control register'larını bulmak için PCI tanımlayıcılarını okur.
  4. O driver aracılığıyla BIOS write-protection lock bit'lerini ve protected-range register'larını sorgular.
  5. BIOS bölgesinin writable olup olmadığını raporlar. Korumasız bir host'ta, gömülü read/write/erase primitive'leri ardından bir firmware implant'ı kurmak (persistence) ya da BIOS bölgesini sıfırlamak (yıkım) için kullanılabilir.

Warning

Threat model "ransomware end-game leverage"dır: firmware'i brick edebilen bir aktör, toplu, kurtarılamaz hardware bricking'inden kaçınmak için ödeme talep edebilir ve firmware implant edebilen bir aktör OS yeniden kurulumu ile disk değişimini atlatır.

Detection

  • Driver telemetry'si: meşru ihtiyacı olmayan endpoint'lerde RwDrv.sys'in (ya da herhangi bir RWEverything tarzı raw-access driver'ının) yüklenmesi; Windows dizinindeki drop edilmiş bir driver'a işaret eden servis oluşturma.
  • Vulnerable-driver / BYOVD sinyalleri: bilinen hardware-access driver'larının non-administrative bir tool chain tarafından side-load edilmesine dair EDR uyarıları.
  • IOCTL davranışı: beklenmedik process'lerden SPI/PCH controller interface'lerini hedef alan DeviceIoControl çağrıları.
  • Firmware integrity baselining: yetkisiz değişikliği yakalamak için SPI flash image'inin known-good golden image'e karşı periyodik olarak yakalanması ve karşılaştırılması (örn. CHIPSEC ile).
  • Bağlam: doğrulanmış bir TrickBot enfeksiyonu olan herhangi bir host, potansiyel bir firmware-compromise adayı olarak ele alınmalı ve buna göre triyaj edilmelidir.

Mitigation

  • Flash write-protection'ı set et ve doğrula: platformun BIOS Control Register'ı (BLE) lock'ladığından, SMM-based korumayı etkinleştirdiğinden ve BIOS bölgesi runtime'da read/write-locked olacak şekilde Protected Range register'larını konfigüre ettiğinden emin ol (yani SPI flash write-protection ve flash-descriptor misconfiguration'larından kaçın).
  • write-protection konfigürasyonunu düzelten firmware update'lerini OEM'den uygula; birçok satıcı disclosure'dan sonra düzeltmeler yayınladı.
  • Vulnerable driver'ları block et: RWEverything-sınıfı driver'ların yüklenmesini engellemek için Microsoft'un vulnerable-driver blocklist'ini / HVCI ve WDAC tarzı policy'leri kullan.
  • Boot-chain hardening: implant edilmiş bir firmware image'i bir sonraki boot'ta verification'da başarısız olsun diye Intel Boot Guard / verified boot etkinleştir (bu savunmanın sınırları için bkz. Boot Guard TOCTOU vulnerability).
  • Incident response: TrickBot'tan etkilenen estate'ler için IR playbook'larına firmware integrity verification (CHIPSEC tarzı) ekle; compromise'den şüphelenilen yerlerde trusted bir image'den reflash et.

İlgili criminal-tooling girişine bakın: Conti firmware-targeting tooling.

References