Dve zraniteľnosti v GRUB2, ktoré vám umožňujú obísť ochranu UEFI Secure Boot

Boli zverejnené informácie o dvoch zraniteľnostiach v zavádzači GRUB2, ktoré môžu viesť k spusteniu kódu pri použití špeciálne navrhnutých fontov a spracovaní určitých sekvencií Unicode. Chyby zabezpečenia možno použiť na obídenie overeného spúšťacieho mechanizmu UEFI Secure Boot.

Identifikované slabé miesta:

  • CVE-2022-2601 – Pretečenie vyrovnávacej pamäte vo funkcii grub_font_construct_glyph() pri spracovaní špeciálne navrhnutých fontov vo formáte pf2, ku ktorému dochádza v dôsledku nesprávneho výpočtu parametra max_glyph_size a pridelenia pamäťovej oblasti, ktorá je zjavne menšia, než je potrebné na prispôsobiť glyfy.
  • CVE-2022-3775 Pri vykresľovaní niektorých sekvencií Unicode v špeciálne štylizovanom písme dochádza k zápisu mimo hraníc. Problém je v kóde spracovania písma a je spôsobený nedostatkom správnych kontrol, aby sa zabezpečilo, že šírka a výška glyfu zodpovedá veľkosti dostupnej bitovej mapy. Útočník môže vytvoriť vstup takým spôsobom, aby spôsobil, že koniec údajov bude zapísaný mimo pridelenej vyrovnávacej pamäte. Treba poznamenať, že napriek zložitosti využívania tejto zraniteľnosti nie je vylúčené, že sa problém prenesie do spustenia kódu.

Oprava bola zverejnená ako oprava. Stav odstraňovania zraniteľností v distribúciách je možné posúdiť na týchto stránkach: Ubuntu, SUSE, RHEL, Fedora, Debian. Na vyriešenie problémov v GRUB2 nestačí iba aktualizovať balík, budete tiež musieť vygenerovať nové interné digitálne podpisy a aktualizovať inštalátory, bootloadery, balíčky jadra, firmvér fwupd a vrstvu shim.

Väčšina distribúcií Linuxu používa malú shim vrstvu digitálne podpísanú spoločnosťou Microsoft na overené spustenie v režime UEFI Secure Boot. Táto vrstva overuje GRUB2 pomocou vlastného certifikátu, ktorý vývojárom distribúcie umožňuje, aby nemali každú aktualizáciu jadra a GRUB certifikovanú spoločnosťou Microsoft. Zraniteľnosť v GRUB2 vám umožňuje dosiahnuť spustenie vášho kódu vo fáze po úspešnom overení shim, ale pred načítaním operačného systému, zaklinenie do reťazca dôveryhodnosti, keď je aktívny režim Secure Boot a získanie plnej kontroly nad ďalším procesom zavádzania, vrátane načítanie iného OS, úprava systému komponentov operačného systému a obídenie Lockdown ochrany.

Na zablokovanie zraniteľnosti bez odvolania digitálneho podpisu môžu distribúcie použiť mechanizmus SBAT (UEFI Secure Boot Advanced Targeting), ktorý je podporovaný pre GRUB2, shim a fwupd vo väčšine populárnych distribúcií Linuxu. SBAT bol vyvinutý v spolupráci so spoločnosťou Microsoft a zahŕňa pridávanie ďalších metadát do spustiteľných súborov komponentov UEFI, ktoré zahŕňajú informácie o výrobcovi, produkte, komponente a verzii. Uvedené metadáta sú certifikované digitálnym podpisom a môžu byť samostatne zahrnuté do zoznamov povolených alebo zakázaných komponentov pre UEFI Secure Boot.

SBAT vám umožňuje blokovať používanie digitálnych podpisov pre jednotlivé čísla verzií komponentov bez toho, aby ste museli odvolávať kľúče pre Secure Boot. Blokovanie zraniteľností cez SBAT si nevyžaduje použitie zoznamu zrušených certifikátov UEFI (dbx), ale vykonáva sa na úrovni nahradenia interného kľúča na generovanie podpisov a aktualizáciu GRUB2, shim a iných bootovacích artefaktov dodávaných distribúciami. Pred zavedením SBAT bola aktualizácia zoznamu zrušených certifikátov (dbx, UEFI Revocation List) nevyhnutnou podmienkou úplného zablokovania zraniteľnosti, pretože útočník bez ohľadu na použitý operačný systém mohol použiť zavádzacie médium so starou zraniteľnou verziou GRUB2 certifikovaný digitálnym podpisom na kompromitáciu UEFI Secure Boot.

Zdroj: opennet.ru

Pridať komentár