Ranljivosti v mehanizmu MMIO procesorjev Intel

Intel je razkril informacije o novem razredu uhajanja podatkov skozi mikroarhitekturne strukture procesorjev, ki omogočajo, da z manipulacijo mehanizma MMIO (Memory Mapped Input Output) določijo informacije, ki se obdelujejo v drugih jedrih CPE. Na primer, ranljivosti omogočajo pridobivanje podatkov iz drugih procesov, enklav Intel SGX ali virtualnih strojev. Ranljivosti so značilne samo za procesorje Intel; ranljivosti ne vplivajo na procesorje drugih proizvajalcev.

Ranljivosti se pojavljajo v različnih procesorjih Intel, vključno s procesorji, ki temeljijo na mikroarhitekturah Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake in Rocketlake ter Xeon EP/EX, Scalable in nekaterih strežniških procesorjih Atom. Za izvedbo napada je potreben dostop do MMIO, ki ga je na primer mogoče pridobiti v virtualizacijskih sistemih, ki omogočajo dostop do MMIO za sisteme za goste, ki jih nadzoruje napadalec. Popravek bo morda potreben tudi za sisteme, ki uporabljajo izolirane enklave Intel SGX (Software Guard Extensions).

Blokiranje ranljivosti zahteva tako posodobitev mikrokode kot uporabo dodatnih metod zaščite programske opreme, ki temeljijo na uporabi navodil VERW za brisanje vsebine mikroarhitekturnih medpomnilnikov ob vrnitvi iz jedra v uporabniški prostor ali pri prenosu nadzora na gostujoči sistem. Podobna zaščita se uporablja tudi za blokiranje predhodno identificiranih napadov razredov MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) in TAA (Transactional Asynchronous Abort).

Na strani mikrokode so bile spremembe, potrebne za izvedbo zaščite, predlagane v majski posodobitvi mikrokode za procesorje Intel (IPU 2022.1). V jedru Linuxa je zaščita pred novim razredom napadov vključena v izdajah 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 in 4.9.319. Za preverjanje izpostavljenosti sistema ranljivostim v MMIO in ovrednotenje aktivnosti določenih zaščitnih mehanizmov je jedru Linuxa dodana datoteka “/sys/devices/system/cpu/vulnerabilities/mmio_stale_data”. Za nadzor vključitve zaščite je implementiran zagonski parameter jedra "mmio_stale_data", ki lahko sprejme vrednosti "full" (omogoča čiščenje medpomnilnikov pri premikanju v uporabniški prostor in v VM), "full,nosmt" ( kot »full« + dodatno onemogoči SMT/Hyper-Treads) in »off« (zaščita onemogočena). Na voljo so ločeni popravki za hipervizor Xen in operacijski sistem Qubes.

Bistvo ugotovljenega razreda ranljivosti je v tem, da nekatere operacije vodijo do kopiranja ali premikanja podatkov, ki ostanejo po izvedbi na drugih CPU jedrih, iz enega mikroarhitekturnega medpomnilnika v drugega. Ranljivosti v MMIO omogočajo prenos teh preostalih podatkov iz izoliranih mikroarhitekturnih vmesnih pomnilnikov v aplikacijsko vidne registre ali vmesne pomnilnike CPU. Ugotovljene so bile tri metode za pridobivanje preostalih podatkov prek MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) je težava z nepravilnim obravnavanjem zapisov v nekatere registre MMIO. Če je velikost zapisanih podatkov manjša od velikosti registra, se preostale informacije iz polnilnih medpomnilnikov prav tako prekopirajo v register. Posledično lahko proces, ki sproži nepopolno operacijo pisanja v register MMIO, pridobi podatke, ki ostanejo v mikroarhitekturnih medpomnilnikih iz operacij, izvedenih na drugih jedrih CPE.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) je uhajanje preostalih podatkov iz polnilnega medpomnilnika, vezanega na jedro, ki je posledica premika iz vmesnih medpomnilnikov, ki so skupni vsem jedrom.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) – težava je podobna SBDS, vendar se razlikuje po tem, da lahko preostali podatki končajo v strukturah CPE, vidnih aplikacijam. Težave s SBDS in SBDR se pojavljajo samo na procesorjih za odjemalske sisteme in na družini strežnikov Intel Xeon E3.

Ranljivosti v mehanizmu MMIO procesorjev Intel


Vir: opennet.ru

Dodaj komentar