Chyby zabezpečení v GRUB2, které vám umožňují obejít UEFI Secure Boot

V bootloaderu GRUB2 bylo opraveno 7 zranitelností, které umožňují obejít mechanismus UEFI Secure Boot a spouštět neověřený kód, například zavést malware běžící na úrovni bootloaderu nebo jádra. Navíc existuje jedna zranitelnost ve vrstvě shim, která také umožňuje obejít UEFI Secure Boot. Skupina zranitelností byla označena kódovým označením Boothole 3, podobně jako podobné problémy dříve identifikované v bootloaderu.

K řešení problémů v GRUB2 a shim budou moci distribuce používat mechanismus SBAT (UEFI Secure Boot Advanced Targeting), který je podporován pro GRUB2, shim a fwupd. SBAT byl vyvinut ve spolupráci se společností Microsoft a zahrnuje přidávání dalších metadat do spustitelných souborů komponent UEFI, které zahrnují informace o výrobci, produktu, komponentě a verzi. Zadaná metadata jsou certifikována digitálním podpisem a mohou být samostatně zahrnuta do seznamů povolených nebo zakázaných součástí pro UEFI Secure Boot.

Většina linuxových distribucí používá malou shim vrstvu digitálně podepsanou Microsoftem pro ověřené spouštění v režimu UEFI Secure Boot. Tato vrstva ověřuje GRUB2 pomocí vlastního certifikátu, který vývojářům distribuce umožňuje nemít každou aktualizaci jádra a GRUB certifikovanou společností Microsoft. Zranitelnosti v GRUB2 vám umožňují dosáhnout spuštění vašeho kódu ve fázi po úspěšném ověření shim, ale před načtením operačního systému, zaklínění se do řetězce důvěry, když je aktivní režim Secure Boot a získání plné kontroly nad dalším procesem spouštění, včetně načtení jiného OS, úprava systému komponent operačního systému a obejití Lockdown ochrany.

K vyřešení problémů v bootloaderu budou muset distribuce vytvořit nové interní digitální podpisy a aktualizovat instalační programy, bootloadery, balíčky jádra, fwupd firmware a shim vrstvu. Před zavedením SBAT byla aktualizace seznamu zneplatněných certifikátů (dbx, UEFI Revocation List) nezbytným předpokladem pro úplné zablokování zranitelnosti, protože útočník, bez ohledu na použitý operační systém, mohl používat zaváděcí médium se starou zranitelnou verzí GRUB2, certifikován digitálním podpisem, aby byl ohrožen UEFI Secure Boot.

Namísto odvolání podpisu vám SBAT umožňuje zablokovat jeho použití pro jednotlivá čísla verzí komponent, aniž byste museli rušit klíče pro Secure Boot. Blokování zranitelností přes SBAT nevyžaduje použití seznamu zneplatněných certifikátů UEFI (dbx), ale provádí se na úrovni nahrazení interního klíče pro generování podpisů a aktualizaci GRUB2, shim a dalších bootovacích artefaktů dodávaných distribucemi. V současné době již byla podpora SBAT přidána do většiny populárních distribucí Linuxu.

Zjištěná zranitelnost:

  • CVE-2021-3696, CVE-2021-3695 jsou přetečení vyrovnávací paměti založené na haldě při zpracování speciálně navržených obrázků PNG, které lze teoreticky použít ke spuštění kódu útočníka a obejití zabezpečeného spouštění UEFI. Je třeba poznamenat, že problém je obtížné zneužít, protože vytvoření funkčního exploitu vyžaduje vzít v úvahu velké množství faktorů a dostupnost informací o rozložení paměti.
  • CVE-2021-3697 – Podtečení vyrovnávací paměti v kódu zpracování obrazu JPEG. Využití problému vyžaduje znalost rozložení paměti a je přibližně na stejné úrovni složitosti jako problém PNG (CVSS 7.5).
  • CVE-2022-28733 – Přetečení celého čísla ve funkci grub_net_recv_ip4_packets() umožňuje ovlivnění parametru rsm->total_len odesláním speciálně vytvořeného paketu IP. Problém je označen jako nejnebezpečnější z prezentovaných zranitelností (CVSS 8.1). Je-li zranitelnost úspěšně zneužita, umožňuje zápis dat za hranici vyrovnávací paměti přidělením záměrně menší velikosti paměti.
  • CVE-2022-28734 - Přetečení jednobajtové vyrovnávací paměti při zpracování odstraněných hlaviček HTTP. Problém může způsobit poškození metadat GRUB2 (zapsání nulového bajtu těsně po konci vyrovnávací paměti) při analýze speciálně vytvořených požadavků HTTP.
  • CVE-2022-28735 Problém v ověřovači shim_lock umožňuje načítání souborů mimo jádro. Tuto chybu zabezpečení lze použít k načtení nepodepsaných modulů jádra nebo neověřeného kódu v režimu UEFI Secure Boot.
  • CVE-2022-28736 Již uvolněný přístup k paměti ve funkci grub_cmd_chainloader() prostřednictvím opětovného spuštění příkazu chainloader, který se používá ke spouštění operačních systémů, které GRUB2 nepodporuje. Zneužití by mohlo vést ke spuštění kódu útočníka, pokud je útočník schopen určit alokaci paměti v GRUB2
  • CVE-2022-28737 – K přetečení vyrovnávací paměti ve vrstvě shim dochází ve funkci handle_image() při načítání a spouštění vytvořených obrazů EFI.

Zdroj: opennet.ru

Přidat komentář