Ranjivosti u MMIO mehanizmu Intelovih procesora

Intel je otkrio informacije o novoj klasi curenja podataka kroz mikroarhitektonske strukture procesora, koje omogućuju, kroz manipulaciju mehanizma MMIO (Memory Mapped Input Output), određivanje informacija koje se obrađuju na drugim CPU jezgrama. Na primjer, ranjivosti dopuštaju izdvajanje podataka iz drugih procesa, Intel SGX enklava ili virtualnih strojeva. Ranjivosti su specifične samo za Intel CPU-e; procesori drugih proizvođača nisu zahvaćeni ranjivostima.

Ranjivosti se pojavljuju u različitim Intel CPU-ima, uključujući procesore temeljene na Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake i Rocketlake mikroarhitekturama, kao i Xeon EP/EX, Scalable i nekim Atom poslužiteljskim procesorima. Za izvođenje napada potreban je pristup MMIO-u koji se, primjerice, može dobiti u virtualizacijskim sustavima koji daju mogućnost pristupa MMIO-u za gostujuće sustave kojima napadač upravlja. Popravak bi također mogao biti potreban za sustave koji koriste Intel SGX (Software Guard Extensions) izolirane enklave.

Blokiranje ranjivosti zahtijeva i ažuriranje mikrokoda i korištenje dodatnih metoda zaštite softvera temeljenih na korištenju VERW instrukcije za brisanje sadržaja mikroarhitektonskih međuspremnika pri povratku iz kernela u korisnički prostor ili pri prijenosu kontrole na gostujući sustav. Slična se zaštita također koristi za blokiranje prethodno identificiranih napada klasa MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) i TAA (Transactional Asynchronous Abort).

Što se tiče mikrokoda, promjene potrebne za implementaciju zaštite predložene su u svibanjskom ažuriranju mikrokoda za Intel CPU (IPU 2022.1). U jezgri Linuxa zaštita od nove klase napada uključena je u izdanja 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 i 4.9.319. Da biste provjerili izloženost sustava ranjivostima u MMIO i procijenili aktivnost određenih zaštitnih mehanizama, datoteka “/sys/devices/system/cpu/vulnerabilities/mmio_stale_data” dodana je u Linux kernel. Za kontrolu uključivanja zaštite implementiran je parametar pokretanja jezgre “mmio_stale_data” koji može poprimiti vrijednosti “full” (omogućuje čišćenje međuspremnika pri prelasku u korisnički prostor i u VM), “full,nosmt” ( kao “full” + dodatno onemogućuje SMT/Hyper-Threads) i “off” (zaštita onemogućena). Odvojeni popravci se nude za hipervizor Xen i operativni sustav Qubes.

Bit identificirane klase ranjivosti je da neke operacije dovode do kopiranja ili premještanja podataka preostalih nakon izvršenja na drugim CPU jezgrama iz jednog mikroarhitektonskog međuspremnika u drugi. Ranjivosti u MMIO-u dopuštaju prijenos ovih preostalih podataka iz izoliranih mikroarhitektonskih međuspremnika u registre vidljive aplikaciji ili CPU međuspremnike. Identificirane su tri metode za izdvajanje preostalih podataka putem MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) je problem s neispravnim rukovanjem zapisima u neke MMIO registre. Ako je veličina podataka koji se upisuju manja od veličine registra, tada se preostale informacije iz međuspremnika za punjenje također kopiraju u registar. Kao rezultat toga, proces koji inicira nepotpunu operaciju pisanja u MMIO registar može dobiti podatke koji su preostali u mikroarhitektonskim međuspremnicima iz operacija izvedenih na drugim CPU jezgrama.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) je curenje zaostalih podataka iz međuspremnika za punjenje vezanog za jezgru koje je rezultat kretanja iz srednjih međuspremnika zajedničkih svim jezgrama.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - problem je sličan SBDS-u, ali se razlikuje po tome što preostali podaci mogu završiti u CPU strukturama vidljivim aplikacijama. Problemi sa SBDS i SBDR pojavljuju se samo na procesorima za klijentske sustave i na obitelji poslužitelja Intel Xeon E3.

Ranjivosti u MMIO mehanizmu Intelovih procesora


Izvor: opennet.ru

Dodajte komentar