LVI és una nova classe d'atacs al mecanisme d'execució especulativa a la CPU

Publicat informació sobre una nova classe d'atacs LVI (Injecció de valor de càrrega, CVE-2020-0551) sobre el mecanisme d'execució especulativa a les CPU Intel, que es pot utilitzar per filtrar claus i dades secretes dels enclavaments Intel SGX i altres processos.

Una nova classe d'atacs es basa en la manipulació de les mateixes estructures microarquitectòniques utilitzades en els atacs MDS (Mostreig de dades microarquitectòniques), Spectre i Meltdown. Al mateix temps, els nous atacs no estan bloquejats pels mètodes de protecció existents contra Meltdown, Spectre, MDS i altres atacs similars. La protecció LVI eficaç requereix canvis de maquinari a la CPU. Quan s'organitza la protecció de manera programàtica, afegint la instrucció LFENCE pel compilador després de cada operació de càrrega des de la memòria i substituint la instrucció RET per POP, LFENCE i JMP, es registra massa sobrecàrrega; segons els investigadors, la protecció completa del programari provocarà una disminució de rendiment de 2 a 19 vegades.

Part de la dificultat per bloquejar el problema es compensa amb el fet que actualment l'atac és més teòric que pràctic (l'atac és teòricament possible, però molt difícil d'implementar i només reproduïble en proves sintètiques).
Intel apropiada el problema té un nivell de perillositat moderat (5.6 sobre 10) i alliberat actualitzant el firmware i l'SDK per a l'entorn SGX, en què intentava bloquejar l'atac mitjançant una solució alternativa. Els mètodes d'atac proposats actualment només són aplicables als processadors Intel, però no es pot descartar la possibilitat d'adaptar LVI per a altres processadors als quals siguin aplicables atacs de classe Meltdown.

El problema va ser identificat l'abril passat per la investigadora Jo Van Bulck de la Universitat de Lovaina, després del qual, amb la participació de 9 investigadors d'altres universitats, es van desenvolupar cinc mètodes bàsics d'atac, cadascun dels quals permet l'existència de mètodes més específics. opcions. De manera independent, al febrer d'aquest any, investigadors de Bitdefender també descobert una de les variants d'atac LVI i ho va informar a Intel. Les variants d'atac es distingeixen per l'ús de diferents estructures microarquitectòniques, com ara el buffer d'emmagatzematge (SB, Store Buffer), el buffer d'ompliment (LFB, Line Fill Buffer), el buffer de canvi de context FPU i la memòria cau de primer nivell (L1D), utilitzats anteriorment. en atacs com ZombieLoad, Ridl, Polsim radioactiu, LazyFP, Prefiguració и Desglaç.

LVI és una nova classe d'atacs al mecanisme d'execució especulativa a la CPU

El principal honors El LVI contra els atacs de MDS és que MDS manipula la determinació del contingut de les estructures microarquitectòniques que romanen a la memòria cau després de la manipulació d'errors especulatius o les operacions de càrrega i emmagatzematge, mentre que
Els atacs LVI permeten que les dades de l'atacant s'insereixin en estructures microarquitectòniques per influir en l'execució especulativa posterior del codi de la víctima. Mitjançant aquestes manipulacions, un atacant pot extreure el contingut de les estructures de dades privades en altres processos quan executa cert codi al nucli de la CPU objectiu.

LVI és una nova classe d'atacs al mecanisme d'execució especulativa a la CPU

Per problema d'explotació en el codi del procés de víctima hauria de reunir-se seqüències especials de codi (gadgets) en què es carrega un valor controlat per l'atacant, i la càrrega d'aquest valor provoca excepcions (falla, avortament o assistència), descartant el resultat i tornant a executar la instrucció. Quan es processa una excepció, apareix una finestra especulativa durant la qual es filtren les dades processades al gadget. En particular, el processador comença a executar un fragment de codi (gadget) en mode especulatiu, després determina que la predicció no estava justificada i torna les operacions al seu estat original, però les dades processades durant l'execució especulativa es dipositen a la memòria cau L1D. i buffers microarquitectònics i està disponible per a la seva recuperació mitjançant l'ús de mètodes coneguts per determinar dades residuals a través de canals de tercers.

L'excepció "d'assistència", a diferència de l'excepció de "falla", la gestiona internament el processador sense trucar als controladors de programari. L'assistència es pot produir, per exemple, quan cal actualitzar el bit A (Accedit) o ​​D (Brutat) de la taula de pàgines de memòria. La principal dificultat per dur a terme un atac a altres processos és com iniciar l'ocurrència de l'assistència manipulant el procés víctima. Actualment no hi ha maneres fiables de fer-ho, però és possible que es trobin en el futur. La possibilitat de dur a terme un atac fins ara s'ha confirmat només per als enclavaments Intel SGX, altres escenaris són teòrics o reproduïbles en condicions sintètiques (requereix afegir determinats gadgets al codi)

LVI és una nova classe d'atacs al mecanisme d'execució especulativa a la CPU

LVI és una nova classe d'atacs al mecanisme d'execució especulativa a la CPU

Possibles vectors d'atac:

  • Fuga de dades de les estructures del nucli al procés a nivell d'usuari. La protecció del nucli de Linux contra els atacs Spectre 1, així com el mecanisme de protecció SMAP (Supervisor Mode Access Prevention), redueixen significativament la probabilitat d'un atac LVI. Pot ser necessari afegir protecció addicional al nucli si s'identifiquen mètodes d'atac LVI més senzills en el futur.
  • Fuga de dades entre diferents processos. L'atac requereix la presència de determinades peces de codi a l'aplicació i la definició d'un mètode per llançar una excepció al procés objectiu.
  • Fuga de dades de l'entorn amfitrió al sistema convidat. L'atac es classifica com a massa complex i requereix diversos passos difícils d'implementar i prediccions d'activitat al sistema.
  • Fuga de dades entre processos en diferents sistemes convidats. El vector d'atac està a prop d'organitzar la fuga de dades entre diferents processos, però a més requereix manipulacions complexes per evitar l'aïllament entre els sistemes convidats.

Publicat per investigadors alguns prototips amb una demostració dels principis per dur a terme un atac, però encara no són aptes per dur a terme atacs reals. El primer exemple us permet redirigir l'execució de codi especulatiu en el procés de la víctima, de manera similar a la programació orientada al retorn (ROP,Programació orientada al retorn). En aquest exemple, la víctima és un procés especialment preparat que conté els gadgets necessaris (aplicar un atac a processos reals de tercers és difícil). El segon exemple ens permet endinsar-nos en els càlculs durant el xifratge AES dins de l'enclavament Intel SGX i organitzar una fuga de dades durant l'execució especulativa d'instruccions per restaurar el valor de la clau utilitzada per al xifratge.


Font: opennet.ru

Afegeix comentari