Nedávno byly zveřejněny informace o zranitelnosti (již katalogizováno pod CVE-2021-33164) detekované ve firmwaru UEFI, zjištěná chyba umožňuje spouštění kódu na úrovni SMM (System Management Mode), která má vyšší prioritu než režim hypervizoru a ochranný kruh nula, a poskytuje neomezený přístup k veškerou systémovou paměť.
Zranitelnost, jejíž kódové jméno je RingHopper, je související s možností načasování útoku pomocí DMA (Direct Memory Access) k poškození paměti v kódu běžícím na vrstvě SMM.
Spor zahrnující přístup a ověření SMRAM lze dosáhnout útoky načasování DMA, které závisí na podmínkách TOCTOU (time-of-use). Útočník se může pomocí včasného dotazování pokusit přepsat obsah SMRAM libovolnými daty, což povede k tomu, že útočníkův kód bude spuštěn se stejnými zvýšenými oprávněními, která má CPU (tj. režim Ring -2). Asynchronní povaha přístupu SMRAM prostřednictvím řadičů DMA umožňuje útočníkovi provést takový neoprávněný přístup a obejít kontroly běžně poskytované rozhraním API řadiče SMI.
Technologie Intel-VT a Intel VT-d poskytují určitou ochranu proti útokům DMA pomocí jednotky IOMMU (Input Output Memory Management Unit) k řešení hrozeb DMA. Přestože IOMMU může chránit před hardwarovými útoky DMA, SMI řadiče zranitelné vůči RingHopper mohou být stále zneužity.
Zranitelnosti lze využít z operačního systému pomocí ovladačů SMI zranitelné (System Administration Interrupt), které pro přístup vyžadují administrátorská práva. Útok lze také provést, pokud existuje fyzický přístup v rané fázi spouštěníve fázi před inicializací operačního systému. K zablokování problému se uživatelům Linuxu doporučuje aktualizovat firmware prostřednictvím LVFS (Linux Vendor Firmware Service) pomocí nástroje fwupdmgr (fwupdmgr get-updates) z balíčku fwupd.
Nutnost mít administrátorská práva provést útok omezuje nebezpečí problému, ale nebrání to jeho použití jako zranitelnosti druhého odkazu, aby si zachovali svou přítomnost po zneužití jiných zranitelností v systému nebo pomocí metod inženýrství sociálních médií.
Přístup k SMM (Ring -2) umožňuje spouštění kódu na úrovni, která není řízena operačním systémem, což lze použít k úpravě firmwaru a umístění škodlivého kódu nebo rootkitů skrytých v SPI Flash, které operační systém nezjistí. . a také zakázat ověřování ve fázi spouštění (UEFI Secure Boot, Intel BootGuard) a útoky na hypervizory, aby se obešly mechanismy ověřování integrity virtuálních prostředí.
Problém je způsoben sporem v řadiči SMI (přerušení správy systému), ke kterému dochází mezi kontrolou přístupu a přístupem SMRAM. K určení správného času lze použít analýzu postranního kanálu s DMA mezi kontrolou stavu a použitím výsledku kontroly.
Výsledkem je, že kvůli asynchronní povaze přístupu k SMRAM přes DMA může útočník načasovat a přepsat obsah SMRAM přes DMA a obejít rozhraní API ovladače SMI.
Procesory s podporou Intel-VT a Intel VT-d zahrnují ochranu proti útokům DMA na základě použití jednotky IOMMU (Input Output Memory Management Unit), ale tato ochrana je účinná při blokování hardwarových útoků DMA prováděných s připravenými útočnými zařízeními a nechrání před útoky přes SMI řadiče.
Zranitelnost byla potvrzena v firmware Software Intel, Dell a Insyde (Problém se údajně týká 8 výrobců, ale zbývajících 5 ještě nebylo odhaleno.) firmware AMD, Phoenix a Toshiba nejsou tímto problémem ovlivněny.
zdroj: https://kb.cert.org/