Secure Boot bypass via custom PE loader (CVE-2024-7344, Howyar reloader)¶
Microsoft tarafından imzalı bir UEFI recovery uygulaması (
reloader.efi) kendi PE loader'ını taşıyor ve basit XOR encoding ile gizlenmiş bir blob'u (cloak.dat) hiçbir Secure Boot integrity kontrolü yapmadan yüklüyor — meşru şekilde imzalı bir app'i evrensel bir Secure Boot bypass'ına dönüştürüyor.
Mechanism¶
Note
Secure Boot'un invariant'ı şudur: pre-OS ortamında çalıştırılan her PE
image, çalışmadan önce firmware allow-list'ine (DB) karşı doğrulanır.
Platform bunu, kod standart UEFI Boot Services LoadImage() / StartImage()
yolu üzerinden yüklendiğinde uygular; bu yol Security2 Architectural Protocol
(gSecurity2) ile danışır ve trusted bir key ile imzalanmamış her şeyi
reddeder.
CVE-2024-7344, bu invariant'ı trusted, Microsoft tarafından imzalı bir
uygulamanın içinden kırıyor. Recovery utility reloader.efi, bir sonraki
aşamanın payload'u için LoadImage/StartImage çağırmıyor. Bunun yerine
gömülü bir image'ı doğrudan map'leyip çalıştıran kendi custom PE loader'ını
implemente ediyor ve signature-verification çağrısını tamamen atlıyor.
reloader.efi'nin kendisi geçerli şekilde imzalı olduğundan (Microsoft'un
third-party UEFI CA'sı üzerinden) sorunsuz yükleniyor — ve ardından
attacker'ın seçtiği keyfi, imzasız kodu çalıştırıyor.
Kavramsal ders: loader'ı imzalamak, loader sonradan signature'ları yeniden
kontrol etmeden başka kod yüklüyorsa hiçbir işe yaramaz. Trust, elle yazılmış
bir loader üzerinden transit etmez. Bu,
secure-boot-bypass-via-misused-nvram-variable
ile aynı failure sınıfı ve
baton-drop-windows-boot-manager-rollback
rollback'i (BlackLotus'un in-the-wild kullandığı initial foothold) ile aynı
pattern: imzalı bir UEFI bileşeni bypass primitive'i haline geliyor.
Walkthrough¶
ESET'in herkese açık disclosure'ı (CVE-2024-7344) akışı kavramsal düzeyde anlatıyor — burada yalnızca detection ve anlama amacıyla gösterilmiştir:
reloader.efiiçindeki custom loader, EFI System Partition (ESP) üzerindecloak.datadında bir payload dosyası arıyor;\EFI\Microsoft\boot\veya\EFI\boot\gibi konumlarda.cloak.dat, kriptografik bir signature ile değil, basit (single-byte XOR) encoding ile gizlenmiş gömülü bir UEFI uygulaması taşıyor.- Loader blob'u decode ediyor, PE'yi manuel olarak map'liyor ve entry point'ine Security2 protocol'ünü çağırmadan atlıyor; yani hiçbir DB/DBX kontrolü çalışmıyor.
Yüksek seviyeli mantıksal adımlar (temsili, çalışan bir exploit değil)
- Administrative/root erişimi olan bir attacker, imzalı
reloader.efi'yi ESP üzerinde bir boot uygulaması olarak yerleştiriyor. - İmzasız bir UEFI bootkit içeren, özel hazırlanmış bir
cloak.datbırakıyor. - Reboot'ta firmware
reloader.efi'yi (meşru şekilde imzalı) doğrulayıp çalıştırıyor. reloader.efi'nin custom loader'ıcloak.dat'ten imzasız payload'u çalıştırıyor ve Secure Boot hâlâ "enabled" iken pre-OS code execution elde ediyor.
ESET, aynı vulnerable loader'ın birden fazla recovery-software vendor'ı (Howyar SysReturn ve birkaçı daha) tarafından dağıtıldığını bildirdi; yani tek bir imzalı binary geniş ölçüde taşınabilir bir bypass'tı. Disclosure sırasında in-the-wild exploitation raporlanmadı, ancak teknik BlackLotus sınıfı implant'lar gibi bootkit'leri yerleştirmek için yeniden kullanılabilir.
Detection¶
- ESP hijyeni: EFI System Partition üzerinde
reloader.efive özelliklecloak.dat/cloak64.datbulunması, standart bir Windows kurulumunda anormaldir. Bu dosya adlarını ve beklenmeyen.efiuygulamalarını avlayın. - Known-bad hash'ler: vulnerable
reloader.efibinary'lerinin yayınlanmış Authenticode hash'leri var; varlıklarında alert üretin. - Boot-config sapması: firmware boot order'ı veya bir non-OS recovery
loader'a işaret eden
BootXXXX/BootOrderNVRAM girdileri. - Measured boot / TPM: PCR değerlerindeki (özellikle PCR 4 — boot application measurement'ları) known-good baseline'a göre değişiklikler, değiştirilmiş bir pre-OS zinciri olduğunu gösterir.
- dbx durumu: Microsoft Ocak 2025 revocation hash'lerinin gerçekten platform
dbx'inde mevcut olduğunu doğrulayın (PowerShellGet-SecureBootUEFI dbx, veya Linux'tadbxtool); yoklukları makinenin hâlâ exploitable olduğu anlamına gelir.
Mitigation¶
- Revocation'ı uygulayın. Microsoft, vulnerable uygulama hash'lerini
14 Ocak 2025 Patch Tuesday'inde gönderilen
dbx/DBX güncellemeleri üzerinden revoke etti. Tam güncel Windows'ta bu otomatik uygulanır; uygulandığını doğrulayın. - Vendor yazılımını düzeltilmiş bir sürüme güncelleyin (ör. Howyar SysReturn
10.2.023_20240919veya sonrası) ki kurulu olan loader vulnerable olmasın. - Defense in depth: BitLocker (TPM+PIN) ve HVCI'ı enabled tutun ki post-exploitation bir bootkit ek bariyerlerle karşılaşsın; ESP integrity'sini izleyin.
- Vendor'lar için tasarım dersi: imzalı bir UEFI app içinde asla elle PE
loader yazmayın — her aşamada Secure Boot verification çalışsın diye daima
LoadImage/StartImage'a devredin.