Retbleed: un nou atac d'execució especulativa que afecta Intel i AMD

Fa poc es va donar a conèixer la notícia de quèe un grup d?investigadors d?ETH Zurich ha identificat un nou atac al mecanisme d'execució especulativa de salts indirectes a la CPU, que permet extreure informació de la memòria del nucli o organitzar un atac al sistema host des de màquines virtuals.

Les vulnerabilitats van rebre el nom en codi Retbleed (ja catalogades sota CVE-2022-29900, CVE-2022-29901) i són de naturalesa similar als atacs de Spectre-v2.

La diferència es redueix a l'organització de l'execució especulativa de codi arbitrari en processar la instrucció ret (retorn), que recupera l'adreça per saltar de la pila, en lloc de saltar indirectament usant la instrucció jmp, carregant l'adreça des de la memòria o un registre de la CPU.

Sobre el nou atac s'esmenta que un atacant pot crear condicions per a una predicció de bifurcació incorrecta i organitzar un salt especulatiu intencionat a un bloc de codi que no està previst per la lògica dexecució del programa.

Al final, el processador determinarà que la predicció de bifurcació no estava justificada i revertirà loperació al seu estat original, però les dades processades durant l'execució especulativa s'assentaran al caixet i els búfers de microarquitectura. Si un bloc executat erròniament realitza un accés a la memòria, llavors la seva execució especulativa conduirà a la instal·lació al cau general i la lectura de dades de la memòria.

Per determinar les dades que queden al cau després de l'execució especulativa d'operacions, l'atacant pot utilitzar mètodes per determinar les dades residuals a través de canals de tercers, per exemple, analitzar canvis en el temps d'accés a dades en memòria cau i no en memòria cau.

Per a l'extracció intencional d'informació d'àrees en un nivell de privilegi diferent (per exemple, de la memòria del nucli), s'utilitzen «dispositius»: seqüències d'ordres presents al nucli, adequades per a la lectura especulativa de dades de la memòria, depenent de les condicions externes que poden ser influenciat per un atacant.

Per protegir-se contra els atacs clàssics de la classe Spectre, que usen instruccions de bifurcació condicional i indirecta, la majoria dels sistemes operatius usen la tècnica «retpoline», que es basa a reemplaçar les operacions de bifurcació indirecta amb la instrucció «ret», per a la qual es requereix una predicció d'estat de pila separada unit s'usa en processadors, no utilitza un bloc de predicció de bifurcació.

A la introducció de retpoline el 2018, es creia que la manipulació d'adreces similar a Spectre no era pràctica per a la bifurcació especulativa amb la instrucció «ret».

Els investigadors que van desenvolupar el mètode datac Retbleed van demostrar la possibilitat de crear condicions de microarquitectura per iniciar una transició especulativa utilitzant la instrucció «ret» i van publicar un conjunt d'eines llest per identificar seqüències d'instruccions (gadgets) adequades per explotar la vulnerabilitat al nucli de Linux en què apareixen aquestes condicions.

Al llarg de l'estudi, es va preparar un exploit funcional que permet, en sistemes amb CPU Intel, des d'un procés sense privilegis a l'espai de l'usuari extreure dades arbitràries de la memòria del nucli a una velocitat de 219 bytes per segon i amb un 98% de precisió.

En els processadors AMD, l'eficiència de l'exploit és molt més gran, ja que la taxa de fugida és de 3,9 KB per segon. Com a exemple pràctic, es mostra com utilitzar l'exploit proposat per determinar el contingut del fitxer /etc/shadow. En sistemes amb CPU Intel, es va realitzar un atac per determinar el hash de la contrasenya de root en 28 minuts i en sistemes amb CPU AMD en 6 minuts.

L'atac es va confirmar per a 6-8 generacions de processadors Intel que es van llançar abans del tercer trimestre de 2019 (inclòs Skylake) i processadors AMD basats en microarquitectures Zen 1, Zen 1+ i Zen 2 que es van llançar abans del segon trimestre de 2021. Als models de processadors més nous, com AMD Zen3 i Intel Alder Lake, així com en els processadors ARM, el problema està bloquejat pels mecanismes de protecció existents. Per exemple, l'ús d'instruccions Indirect Branch Restricted Speculation (IBRS) ajuda a protegir contra un atac.

Es va preparar un conjunt de canvis per al nucli de Linux i l'hipervisor Xen, que bloquegen el problema mitjançant programació a les CPU més antigues. El pegat proposat per al nucli de Linux canvia 68 fitxers, afegeix 1783 línies i elimina 387 línies.

Malauradament, la protecció genera costos generals significatius: als textos realitzats en processadors AMD i Intel, la degradació del rendiment s'estima entre un 14% i un 39%. És més preferible utilitzar protecció basada en instruccions IBRS, disponible a les noves generacions de CPU Intel i suportada des del nucli Linux 4.19.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.