Skip to content

Windows Secure Kernel Mode VBS downgrade EoP (CVE-2024-21302)

Admin yetkisine sahip bir aktör, Virtualization-Based Security (VBS) binary'lerini eski, vulnerable sürümlere geri alarak secure kernel'ı "unpatch" eder; OS ise hâlâ kendisini fully updated olarak raporlar.

Mechanism

Invariant: patch'lenmiş bir security boundary patch'li kalmalı

VBS, bir Secure Kernel (securekernel.exe) ve Isolated User Mode'u (IUM, örn. Credential Guard'ın LSAISO'su) hypervisor'ın arkasında izole eder; böylece compromise olmuş bir normal-world kernel bile bunların secret'larını okuyamaz. Buradaki örtük invariant, o boundary'yi zorlayan code'un güncel ve güvenilir olmasıdır.

CVE-2024-21302 bu invariant'ı memory'ye değil version'a saldırarak kırar. SafeBreach'in "Windows Downdate" araştırması (Alon Leviev), Windows servicing path'inin daha eski VBS bileşenlerini kurmaya zorlanabileceğini gösterdi. Daha derin root cause, Leviev'in False File Immutability (FFI) adını verdiği bir bug class'ı: code, write-sharing'i reddetmenin bir dosyayı immutable yaptığını varsayıyordu; oysa dosya hâlâ swap/redirect edilebiliyordu. Mevcut secure-mode dosyalarını (secure kernel, IUM process'leri, ci.dll) daha önce patch'lenmiş-ama-vulnerable sürümlerle değiştirerek bir attacker, zaten düzeltilmiş bug'ları yeniden devreye sokar ve VBS'i bypass edebilir — üstelik bunların hepsi olurken update/scan tooling sistemi "fully updated" görür. Açık, mevcut administrator privilege'larını gerektirir; dolayısıyla initial access değil, bir elevation/defense-downgrade'dir.

Walkthrough

Sadece kavramsal — kamuya açık disclosure'a defender bakışı

  1. Attacker zaten local admin'e sahip. Hedef admin kazanmak değil, VBS ile korunan secret'ları (örn. Credential Guard) alt etmek.
  2. Downgrade tekniğini kullanarak attacker, VBS ile ilgili binary'lerin (secure kernel, IUM image, code-integrity DLL) eski signed kopyalarını hazırlar. Dosyalar Microsoft-signed meşru eski build'ler olduğu için signature check'ler geçer.
  3. Servicing/boot path, downgrade edilmiş bileşenleri bir sonraki boot'ta yüklemeye yönlendirilir; böylece secure world, bilinen ve zaten açıklanmış zayıflıkları olan code'u çalıştırır.
  4. Yeniden devreye sokulan vulnerability daha sonra VBS boundary'sini geçmek için exploit edilir (izole secret'ları okumak / Hypervisor-protected Code Integrity'yi zayıflatmak).
  5. Update ve recovery araçları sistemi patch'li olarak raporlamaya devam eder ve stealth sağlar.

Detection

  • VBS/secure-mode binary'leri (securekernel*.exe, IUM image'ları, ci.dll, hypervisor) üzerinde file integrity monitoring (FIM) — yalnızca en son update'in eksikliğini değil, herhangi bir version regression'ını veya modifikasyonunu flag'le.
  • OS bileşenlerinin version downgrade'lerine alert ver: kurulu dosya version'larını beklenen baseline ile karşılaştır; çekirdek güvenlik binary'leri build'in baseline'ından daha eski olan, "updated" gözüken bir sistem anormaldir.
  • Boot/servicing path'inde tampering ve admin token'larıyla çalışırken component store'lara yapılan beklenmedik write'lara dikkat et.
  • SafeBreach'in tavsiyesi: EDR/endpoint çözümleri, tanımlı bir security boundary'yi görünür şekilde geçmeyenler de dâhil, downgrade prosedürlerinin kendisini izlemeli ve tespit etmelidir.

Mitigation

  • Microsoft'un update'ini uygula. VBS hardening mitigation'ı, startup sırasında eski VBS sistem dosyalarının yüklenmesini engelleyen ve policy'yi UEFI firmware üzerinden cihaza kilitleyen Microsoft-signed bir revocation policy (SkuSiPolicy.p7b) ile gelir ve rollback'i önler.
  • VBS'i güçlü bir konfigürasyonla etkinleştir: UEFI lock'u ve "Mandatory" enforcement flag'ini aç ki VBS konfigürasyonu sessizce zayıflatılamasın (UEFI lock bir kez ayarlandığında VBS config modifiye edilemez). Revocation policy'yi dikkatli uygula — yanlış uygulanması boot failure'lara yol açabilir.
  • Defense in depth: least privilege uygula ki attack'in varsaydığı admin token'ı daha az aktör tutsun; servicing path'i koru; Secure Boot'u açık tut.

References

See also