Skip to content

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.efi içindeki custom loader, EFI System Partition (ESP) üzerinde cloak.dat adı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)
  1. Administrative/root erişimi olan bir attacker, imzalı reloader.efi'yi ESP üzerinde bir boot uygulaması olarak yerleştiriyor.
  2. İmzasız bir UEFI bootkit içeren, özel hazırlanmış bir cloak.dat bırakıyor.
  3. Reboot'ta firmware reloader.efi'yi (meşru şekilde imzalı) doğrulayıp çalıştırıyor.
  4. 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.efi ve özellikle cloak.dat / cloak64.dat bulunması, standart bir Windows kurulumunda anormaldir. Bu dosya adlarını ve beklenmeyen .efi uygulamalarını avlayın.
  • Known-bad hash'ler: vulnerable reloader.efi binary'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/BootOrder NVRAM 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 (PowerShell Get-SecureBootUEFI dbx, veya Linux'ta dbxtool); 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_20240919 veya 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.

References