Chyby vo firmvéri UEFI založenom na frameworku InsydeH2O, ktorý umožňuje spustenie kódu na úrovni SMM

V rámci InsydeH2O, ktorý používajú mnohí výrobcovia na vytvorenie firmvéru UEFI pre svoje zariadenia (najbežnejšia implementácia systému UEFI BIOS), bolo identifikovaných 23 zraniteľností, ktoré umožňujú spúšťanie kódu na úrovni SMM (System Management Mode), ktorá má vyššiu prioritu (Ring -2) ako režim hypervízora a nulový kruh ochrany a neobmedzený prístup k celej pamäti. Problém sa týka firmvéru UEFI, ktorý používajú výrobcovia ako Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel a Bull Atos.

Využitie zraniteľností si vyžaduje lokálny prístup s právami správcu, vďaka čomu sú tieto problémy populárne ako zraniteľnosti druhej úrovne, ktoré sa používajú po zneužití iných zraniteľností v systéme alebo po použití metód sociálneho inžinierstva. Prístup na úrovni SMM vám umožňuje spúšťať kód na úrovni, ktorú nekontroluje operačný systém, čo je možné použiť na úpravu firmvéru a ponechanie skrytého škodlivého kódu alebo rootkitov v SPI Flash, ktoré operačný systém nezistí, ako aj na deaktiváciu overovania vo fáze zavádzania (UEFI Secure Boot, Intel BootGuard) a útokov na hypervízory s cieľom obísť mechanizmy na kontrolu integrity virtuálnych prostredí.

Chyby vo firmvéri UEFI založenom na frameworku InsydeH2O, ktorý umožňuje spustenie kódu na úrovni SMM

Zneužitie zraniteľností je možné vykonať z operačného systému pomocou neoverených obslužných programov SMI (System Management Interrupt), ako aj vo fáze pred spustením operačného systému počas počiatočných fáz zavádzania alebo návratu z režimu spánku. Všetky zraniteľnosti sú spôsobené problémami s pamäťou a sú rozdelené do troch kategórií:

  • SMM Callout - vykonanie vášho kódu s právami SMM presmerovaním vykonávania obsluhy prerušení SWSMI na kód mimo SMRAM;
  • Poškodenie pamäte, ktoré umožňuje útočníkovi zapisovať svoje údaje do SMRAM, špeciálnej izolovanej oblasti pamäte, v ktorej sa vykonáva kód s právami SMM.
  • Poškodenie pamäte v kóde spustenom na úrovni DXE (Driver eXecution Environment).

Na demonštráciu princípov organizácie útoku bol zverejnený príklad exploitu, ktorý umožňuje prostredníctvom útoku z tretieho alebo nulového kruhu ochrany získať prístup k DXE Runtime UEFI a spustiť váš kód. Využívanie manipuluje s pretečením zásobníka (CVE-2021-42059) v ovládači UEFI DXE. Počas útoku môže útočník umiestniť svoj kód do ovládača DXE, ktorý zostane aktívny aj po reštarte operačného systému, alebo vykonať zmeny v oblasti NVRAM SPI Flash. Počas vykonávania môže kód útočníka vykonať zmeny v privilegovaných pamäťových oblastiach, upraviť služby EFI Runtime a ovplyvniť proces zavádzania.

Zdroj: opennet.ru

Pridať komentár