Sårbarheder i MMIO-mekanismen i Intel-processorer

Intel har afsløret information om en ny klasse af datalæk gennem mikroarkitektoniske strukturer af processorer, som tillader, gennem manipulation af MMIO (Memory Mapped Input Output) mekanismen, at bestemme information behandlet på andre CPU-kerner. For eksempel tillader sårbarheder, at data kan udtrækkes fra andre processer, Intel SGX-enklaver eller virtuelle maskiner. Sårbarhederne er kun specifikke for Intel CPU'er; processorer fra andre producenter påvirkes ikke af sårbarhederne.

Sårbarhederne optræder i forskellige Intel CPU'er, herunder processorer baseret på Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake og Rocketlake mikroarkitekturer, samt Xeon EP/EX, Scalable og nogle Atom-serverprocessorer. For at udføre et angreb kræves adgang til MMIO, som fx kan opnås i virtualiseringssystemer, der giver mulighed for at få adgang til MMIO for gæstesystemer styret af angriberen. En rettelse kan også være påkrævet for systemer, der bruger Intel SGX (Software Guard Extensions) isolerede enklaver.

Blokering af sårbarheden kræver både en mikrokodeopdatering og brug af yderligere softwarebeskyttelsesmetoder baseret på brugen af ​​VERW-instruktionen til at rydde indholdet af mikroarkitektoniske buffere, når der returneres fra kernen til brugerområdet, eller når kontrollen overføres til gæstesystemet. Lignende beskyttelse bruges også til at blokere tidligere identificerede angreb af klasserne MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) og TAA (Transactional Asynchronous Abort).

På mikrokodesiden blev de nødvendige ændringer for at implementere beskyttelse foreslået i maj-mikrokodeopdateringen til Intel CPU'er (IPU 2022.1). I Linux-kernen er beskyttelse mod en ny klasse af angreb inkluderet i udgivelser 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 og 4.9.319. For at kontrollere systemets eksponering for sårbarheder i MMIO og evaluere aktiviteten af ​​visse beskyttelsesmekanismer, er filen "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data" blevet tilføjet til Linux-kernen. For at kontrollere inklusion af beskyttelse er kernestartparameteren "mmio_stale_data" blevet implementeret, som kan tage værdierne "fuld" (muliggør rensning af buffere ved flytning til brugerrum og i VM), "full,nosmt" ( som "fuld" + deaktiverer desuden SMT/Hyper-Tråde) og "fra" (beskyttelse deaktiveret). Separate rettelser tilbydes til Xen-hypervisoren og Qubes-operativsystemet.

Essensen af ​​den identificerede klasse af sårbarheder er, at nogle operationer fører til kopiering eller flytning af data, der er tilbage efter udførelse på andre CPU-kerner fra en mikroarkitektonisk buffer til en anden. Sårbarheder i MMIO gør det muligt at overføre disse resterende data fra isolerede mikroarkitektoniske buffere til applikationssynlige registre eller CPU-buffere. Tre metoder er blevet identificeret til at udtrække resterende data gennem MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) er et problem med forkert håndtering af skrivninger til nogle MMIO-registre. Hvis størrelsen af ​​de data, der skrives, er mindre end størrelsen af ​​registret, så kopieres restinformationen fra udfyldningsbufferne også ind i registret. Som et resultat heraf kan en proces, der initierer en ufuldstændig skriveoperation til MMIO-registeret, opnå data, der er tilbage i de mikroarkitektoniske buffere fra operationer udført på andre CPU-kerner.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) er en lækage af resterende data fra en kernebundet fyldbuffer, der er et resultat af bevægelse fra mellemliggende buffere, der er fælles for alle kerner.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - problemet ligner SBDS, men adskiller sig ved, at resterende data kan ende i CPU-strukturer, der er synlige for applikationer. SBDS- og SBDR-problemer forekommer kun på processorer til klientsystemer og på Intel Xeon E3-serverfamilien.

Sårbarheder i MMIO-mekanismen i Intel-processorer


Kilde: opennet.ru

Tilføj en kommentar