Tvrdo odstrániteľné zraniteľnosti v GRUB2, umožňujúce obísť UEFI Secure Boot

Bola odhalená informácia o 8 zraniteľnostiach v načítavači GRUB2, ktoré umožňujú obísť mechanizmus UEFI Secure Boot a dosiahnuť spustenie neovereného kódu, napríklad implementáciu malvéru fungujúceho na úrovni načítavača alebo jadra.

Pripomíname, že vo väčšine Linux distribúcií pre overenú bootovanie v režime UEFI Secure Boot sa používa malá vrstva shim, overená digitálnym podpisom spoločnosti Microsoft. Táto vrstva overuje GRUB2 vlastným certifikátom, čo umožňuje vývojárom distribúcií neoverovať každú aktualizáciu jadra a GRUB v spoločnosti Microsoft. Zraniteľnosti v GRUB2 umožňujú dosiahnuť vykonávanie vlastného kódu po úspešnej verifikácii shim, ale pred načítaním operačného systému, a vkliesniť sa do reťazca dôvery pri aktívnom režime Secure Boot, pričom získajú úplnú kontrolu nad ďalším procesom bootovania, vrátane načítania iného operačného systému, modifikácie komponentov operačného systému a obídenia ochrany Lockdown.

Tak ako v prípade vlaňajšej zraniteľnosti BootHole, na blokovanie problému nie je dostatočné aktualizovať načítavač, pretože útočník, bez ohľadu na používaný operačný systém, môže na komprimáciu UEFI Secure Boot použiť bootovacie médium so starou zraniteľnou verziou GRUB2, overenou digitálnym podpisom. Problém sa rieši iba aktualizáciou zoznamu odvolaných certifikátov (dbx, zoznam odvolania UEFI), ale v tomto prípade sa stratí možnosť používať staré inštalačné médiá s Linuxom.

Na systémoch s firmvérmi, v ktorých bol aktualizovaný zoznam odvolaných certifikátov, v režime UEFI Secure Boot sa budú dať načítať iba aktualizované zostavy distribúcií Linux. Distribúcie budú musieť aktualizovať inštalátory, načítavače, balíky s jadrom, firmvér fwupd a shim vrstvu, pričom pre nich vygenerujú nové digitálne podpisy. Používatelia budú musieť aktualizovať inštalačné obrazy a iné bootovacie médiá, ako aj načítať zoznam odvolaných certifikátov (dbx) do firmvéru UEFI. Pred aktualizáciou dbx v UEFI zostáva systém zraniteľný bez ohľadu na inštaláciu aktualizácií v OS. Stav odstránenia zraniteľností je možné hodnotiť na týchto stránkach: Ubuntu, SUSE, RHEL, Debian.

Na vyriešenie problémov, ktoré vznikajú pri šírení odvolaných certifikátov, sa v budúcnosti plánuje implementácia mechanizmu SBAT (UEFI Secure Boot Advanced Targeting), ktorého podpora je zabezpečená pre GRUB2, shim a fwupd. Od nasledujúcich aktualizácií sa bude používať namiesto funkcionality poskytovanej balíkom dbxtool. SBAT bol vyvinutý v spolupráci s Microsoftom a predpokladá pridanie nových metadát do vykonateľných súborov komponentov UEFI, ktoré obsahujú informácie o výrobcovi, produkte, komponente a verzii. Tieto metadáta sú digitálne podpísané a môžu byť navyše zahrnuté do zoznamov povolených alebo zakázaných komponentov pre UEFI Secure Boot. Týmto spôsobom SBAT umožní manipuláciu s číslami verzií komponentov pri ich odvolaní bez potreby regenerácie kľúčov pre Secure Boot a bez vytvárania nových podpisov pre jadro, shim, grub2 a fwupd.

Odhalené zraniteľnosti:

  • CVE-2020-14372 – pomocou príkazu acpi v GRUB2 môže privilegovaný používateľ lokálneho systému naštartovať modifikované tabuľky ACPI umiestnením SSDT (Secondary System Description Table) do priečinka /boot/efi a zmenou nastavení v grub.cfg. Napriek aktivite režimu Secure Boot sa navrhnutý SSDT vykoná jadrom a môže sa využiť na vypnutie ochrany LockDown, ktorá blokuje obchádzanie UEFI Secure Boot. V dôsledku toho môže útočník dosiahnuť načítanie svojho jadrového modulu alebo spustenie kódu prostredníctvom mechanizmu kexec bez overovania digitálneho podpisu.
  • CVE-2020-25632 – prístup k už uvoľnenej oblasti pamäte (use-after-free) v implementácii príkazu rmmod, prejavujúci sa pri pokuse o odobratie akéhokoľvek modulu bez ohľadu na súvisiace závislosti. Zraniteľnosť nevylučuje vytvorenie exploit-u, ktorý môže viesť k vykonaniu kódu obchádzajúceho overenie Secure Boot.
  • CVE-2020-25647 – zápis mimo hraníc buffera vo funkcii grub_usb_device_initialize(), vyvolávanú pri inicializácii USB zariadení. Problém môže byť zneužitý pripojením špeciálne pripraveného USB zariadenia, ktoré poskytuje parametre, ktorých veľkosť nezodpovedá veľkosti buffera vyhradeného pre štruktúry USB. Útočník môže dosiahnuť vykonanie kódu, ktorý nebol overený v Secure Boot, prostredníctvom manipulácií s USB zariadeniami.
  • CVE-2020-27749 — pretečenie vyrovnávacej pamäte vo funkcii grub_parser_split_cmdline(), ktoré môže byť vyvolané uvedením premenných v príkazovom riadku GRUB2 s veľkosťou väčšou ako 1 KB. Zraniteľnosť umožňuje vykonanie kódu obídutím Secure Boot.
  • CVE-2020-27779 — príkaz cutmem poskytuje útočníkovi možnosť odstrániť rozsah adries z pamäte na obídenie Secure Boot.
  • CVE-2021-3418 — zmeny v shim_lock vytvorili ďalší vektor na zneužitie zraniteľnosti z minulého roka CVE-2020-15705. Pri inštalácii certifikátu v dbx, ktorý sa používa na podpisovanie GRUB2, GRUB2 umožnil načítať akékoľvek jadro priamo bez overovania podpisu.
  • CVE-2021-20225 — možnosť zápisu dát mimo vyrovnávacej pamäte pri spúšťaní príkazov s veľmi veľkým počtom možností.
  • CVE-2021-20233 — možnosť zápisu dát mimo vyrovnávacej pamäte kvôli nesprávnemu výpočtu veľkosti vyrovnávacej pamäte pri používaní úvodzoviek. Pri výpočte veľkosti sa predpokladalo, že na únik jednej úvodzovky sú potrebné tri znaky, hoci v skutočnosti sú potrebné štyri.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster