Sårbarheter i MMIO-mekanismen hos Intel-processorer

Intel har avslöjat information om en ny klass av dataläckor genom mikroarkitektoniska strukturer hos processorer, som gör det möjligt att, genom manipulation av MMIO (Memory Mapped Input Output)-mekanismen, fastställa information som bearbetas på andra CPU-kärnor. Till exempel tillåter sårbarheter att data extraheras från andra processer, Intel SGX-enklaver eller virtuella maskiner. Sårbarheterna är endast specifika för Intel-processorer; processorer från andra tillverkare påverkas inte av sårbarheterna.

Sårbarheterna förekommer i olika Intel-processorer, inklusive processorer baserade på Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake och Rocketlake mikroarkitekturer, samt Xeon EP/EX, Scalable och vissa Atom-serverprocessorer. För att genomföra en attack krävs åtkomst till MMIO, vilket till exempel kan erhållas i virtualiseringssystem som ger möjlighet att komma åt MMIO för gästsystem som styrs av angriparen. En fix kan också krävas för system som använder Intel SGX (Software Guard Extensions) isolerade enklaver.

Blockering av sårbarheten kräver både en mikrokoduppdatering och användning av ytterligare programvaruskyddsmetoder baserade på användningen av VERW-instruktionen för att rensa innehållet i mikroarkitektoniska buffertar när man återvänder från kärnan till användarutrymmet eller när man överför kontroll till gästsystemet. Liknande skydd används också för att blockera tidigare identifierade attacker av klasserna MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) och TAA (Transactional Asynchronous Abort).

På mikrokodsidan föreslogs de ändringar som krävs för att implementera skydd i majmikrokoduppdateringen för Intel-processorer (IPU 2022.1). I Linux-kärnan ingår skydd mot en ny klass av attacker i versionerna 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 och 4.9.319. För att kontrollera systemets exponering för sårbarheter i MMIO och utvärdera aktiviteten hos vissa skyddsmekanismer har filen "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data" lagts till i Linux-kärnan. För att styra införandet av skydd har kärnstartparametern "mmio_stale_data" implementerats, som kan ta värdena "full" (möjliggör rengöring av buffertar när du flyttar till användarutrymme och i VM), "full,nosmt" ( som "full" + inaktiverar dessutom SMT/Hyper-Trådar) och "av" (skyddet inaktiverat). Separata korrigeringar erbjuds för Xen hypervisor och Qubes operativsystem.

Kärnan i den identifierade klassen av sårbarheter är att vissa operationer leder till att data kopieras eller flyttas kvar efter exekvering på andra CPU-kärnor från en mikroarkitektonisk buffert till en annan. Sårbarheter i MMIO gör att denna restdata kan överföras från isolerade mikroarkitektoniska buffertar till applikationssynliga register eller CPU-buffertar. Tre metoder har identifierats för att extrahera restdata genom MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) är ett problem med felaktig hantering av skrivningar till vissa MMIO-register. Om storleken på data som skrivs är mindre än storleken på registret, kopieras även restinformationen från fyllningsbuffertarna till registret. Som ett resultat kan en process som initierar en ofullständig skrivoperation till MMIO-registret erhålla data som finns kvar i de mikroarkitektoniska buffertarna från operationer som utförs på andra CPU-kärnor.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) är ett läckage av restdata från en kärnbunden fyllningsbuffert som är ett resultat av rörelse från mellanbuffertar som är gemensamma för alla kärnor.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - problemet liknar SBDS, men skiljer sig genom att restdata kan hamna i CPU-strukturer som är synliga för applikationer. SBDS- och SBDR-problem förekommer endast på processorer för klientsystem och på Intel Xeon E3-serverfamiljen.

Sårbarheter i MMIO-mekanismen hos Intel-processorer


Källa: opennet.ru

Lägg en kommentar