Vulnerabilitats en el mecanisme MMIO dels processadors Intel

Intel ha revelat informació sobre una nova classe de fuites de dades a través d'estructures microarquitectòniques dels processadors, que permeten, mitjançant la manipulació del mecanisme MMIO (Memory Mapped Input Output), determinar la informació processada en altres nuclis de CPU. Per exemple, les vulnerabilitats permeten extreure dades d'altres processos, enclavaments Intel SGX o màquines virtuals. Les vulnerabilitats només són específiques de les CPU Intel; els processadors d'altres fabricants no es veuen afectats per les vulnerabilitats.

Les vulnerabilitats apareixen en diverses CPU Intel, inclosos els processadors basats en microarquitectures Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake i Rocketlake, així com Xeon EP/EX, Scalable i alguns processadors de servidor Atom. Per dur a terme un atac és necessari l'accés a MMIO, que, per exemple, es pot obtenir en sistemes de virtualització que proporcionen la possibilitat d'accedir a MMIO per als sistemes convidats controlats per l'atacant. També pot ser necessària una correcció per als sistemes que utilitzen enclavaments aïllats Intel SGX (Extensions de la Guàrdia de Programari).

El bloqueig de la vulnerabilitat requereix tant una actualització del microcodi com l'ús de mètodes de protecció de programari addicionals basats en l'ús de la instrucció VERW per esborrar el contingut dels buffers de microarquitectura quan es torna del nucli a l'espai de l'usuari o quan es transfereix el control al sistema convidat. També s'utilitza una protecció similar per bloquejar atacs identificats prèviament de les classes MDS (Mostreig de dades microarquitecturals), SRBDS (Mostreig de dades de memòria intermèdia de registre especial) i TAA (Avortament asíncron transaccional).

Pel que fa al microcodi, els canvis necessaris per implementar la protecció es van proposar a l'actualització del microcodi de maig per a les CPU Intel (IPU 2022.1). Al nucli de Linux, la protecció contra una nova classe d'atacs s'inclou a les versions 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 i 4.9.319. Per comprovar l'exposició del sistema a vulnerabilitats a MMIO i avaluar l'activitat de determinats mecanismes de protecció, s'ha afegit el fitxer “/sys/devices/system/cpu/vulnerabilities/mmio_stale_data” al nucli de Linux. Per controlar la inclusió de la protecció, s'ha implementat el paràmetre d'arrencada del nucli “mmio_stale_data”, que pot prendre els valors “full” (permet la neteja dels buffers quan es mou a l'espai d'usuari i a la VM), “full,nosmt” ( com a "complet" + desactiva, a més, SMT/Hyper- Threads) i "desactivat" (protecció desactivada). S'ofereixen solucions independents per a l'hipervisor Xen i el sistema operatiu Qubes.

L'essència de la classe de vulnerabilitats identificades és que algunes operacions porten a copiar o moure les dades restants després de l'execució en altres nuclis de CPU d'un buffer microarquitectònic a un altre. Les vulnerabilitats a MMIO permeten transferir aquestes dades residuals des de buffers microarquitectònics aïllats a registres visibles per l'aplicació o buffers de CPU. S'han identificat tres mètodes per extreure dades residuals mitjançant MMIO:

  • DRPW (Escriptura parcial del registre del dispositiu, CVE-2022-21166) és un problema amb la gestió incorrecta de les escriptures en alguns registres MMIO. Si la mida de les dades que s'escriuen és inferior a la mida del registre, la informació residual dels buffers d'ompliment també es copia al registre. Com a resultat, un procés que inicia una operació d'escriptura incompleta al registre MMIO pot obtenir dades que queden als buffers de microarquitectura a partir d'operacions realitzades en altres nuclis de CPU.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) és una filtració de dades residuals d'un buffer d'ompliment lligat al nucli resultant del moviment dels buffers intermedis comuns a tots els nuclis.
  • SBDR (Lectura de dades de buffers compartits, CVE-2022-21123): el problema és similar a l'SBDS, però difereix perquè les dades residuals poden acabar en estructures de CPU visibles per a les aplicacions. Els problemes SBDS i SBDR només apareixen als processadors per a sistemes client i a la família de servidors Intel Xeon E3.

Vulnerabilitats en el mecanisme MMIO dels processadors Intel


Font: opennet.ru

Afegeix comentari