Chyby v mechanizme MMIO procesorov Intel

Intel zverejnil informácie o novej triede únikov dát cez mikroarchitektúrne štruktúry procesorov, ktoré umožňujú manipuláciou s mechanizmom MMIO (Memory Mapped Input Output) určiť informácie spracovávané na iných jadrách CPU. Napríklad zraniteľnosti umožňujú extrahovanie údajov z iných procesov, enkláv Intel SGX alebo virtuálnych strojov. Zraniteľnosť sa týka iba procesorov Intel, procesory iných výrobcov sa netýkajú.

Zraniteľnosť sa objavuje v rôznych procesoroch Intel, vrátane procesorov založených na mikroarchitektúrach Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake a Rocketlake, ako aj na procesoroch Xeon EP/EX, Scalable a niektorých serverových procesoroch Atom. Na uskutočnenie útoku je potrebný prístup k MMIO, ktorý je napríklad možné získať vo virtualizačných systémoch, ktoré poskytujú možnosť prístupu k MMIO pre hosťujúce systémy ovládané útočníkom. Oprava môže byť potrebná aj pre systémy používajúce izolované enklávy Intel SGX (Software Guard Extensions).

Blokovanie zraniteľnosti si vyžaduje aktualizáciu mikrokódu a použitie dodatočných metód ochrany softvéru založených na použití inštrukcie VERW na vymazanie obsahu mikroarchitektonických vyrovnávacích pamätí pri návrate z jadra do užívateľského priestoru alebo pri prenose kontroly do hosťujúceho systému. Podobná ochrana sa používa aj na blokovanie predtým identifikovaných útokov tried MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) a TAA (Transactional Asynchronous Abort).

Na strane mikrokódu boli zmeny potrebné na implementáciu ochrany navrhnuté v májovej aktualizácii mikrokódu pre procesory Intel (IPU 2022.1). V jadre Linuxu je ochrana proti novej triede útokov zahrnutá vo vydaniach 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 a 4.9.319. Na kontrolu vystavenia systému zraniteľnostiam v MMIO a vyhodnotenie aktivity určitých ochranných mechanizmov bol do linuxového jadra pridaný súbor „/sys/devices/system/cpu/vulnerabilities/mmio_stale_data“. Na kontrolu zahrnutia ochrany bol implementovaný bootovací parameter jadra „mmio_stale_data“, ktorý môže nadobúdať hodnoty „full“ (umožňuje čistenie vyrovnávacích pamätí pri prechode do užívateľského priestoru a vo VM), „full,nosmt“ ( ako „plné“ + navyše zakáže SMT/Hypervlákna) a „vypne“ (ochrana vypnutá). Samostatné opravy sú ponúkané pre hypervízor Xen a operačný systém Qubes.

Podstatou identifikovanej triedy zraniteľností je, že niektoré operácie vedú ku kopírovaniu alebo presúvaniu údajov zostávajúcich po spustení na iných jadrách CPU z jednej mikroarchitektonickej vyrovnávacej pamäte do druhej. Zraniteľnosť v MMIO umožňuje prenos týchto zvyškových údajov z izolovaných mikroarchitektonických vyrovnávacích pamätí do aplikačne viditeľných registrov alebo vyrovnávacích pamätí CPU. Na extrakciu zvyškových údajov prostredníctvom MMIO boli identifikované tri metódy:

  • DRPW (Device Register Partial Write, CVE-2022-21166) je problém s nesprávnym spracovaním zápisov do niektorých registrov MMIO. Ak je veľkosť zapisovaných dát menšia ako veľkosť registra, potom sa do registra skopírujú aj zvyškové informácie z vyrovnávacích pamätí. Výsledkom je, že proces, ktorý iniciuje neúplnú operáciu zápisu do registra MMIO, môže získať dáta zostávajúce v mikroarchitektonických vyrovnávacích pamätiach z operácií vykonávaných na iných jadrách CPU.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) je únik zvyškových údajov z plniacej vyrovnávacej pamäte viazanej na jadro, ktorá je výsledkom presunu z medziľahlých vyrovnávacích pamätí spoločných pre všetky jadrá.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) – problém je podobný ako SBDS, ale líši sa tým, že zvyškové dáta môžu skončiť v štruktúrach CPU viditeľných pre aplikácie. Problémy SBDS a SBDR sa vyskytujú iba na procesoroch pre klientske systémy a na rodine serverov Intel Xeon E3.

Chyby v mechanizme MMIO procesorov Intel


Zdroj: opennet.ru

Pridať komentár