Plundervolt és un nou mètode d'atac als processadors Intel que afecta la tecnologia SGX

Intel alliberat actualització de microcodi que soluciona vulnerabilitat (CVE-2019-14607) permetent mitjançant la manipulació del mecanisme de control dinàmic de tensió i freqüència a la CPU, inicieu danys al contingut de les cel·les de dades, incloses les àrees utilitzades per als càlculs en enclavaments Intel SGX aïllats. L'atac s'anomena Plundervolt i, potencialment, permet a un usuari local augmentar els seus privilegis al sistema, provocar una denegació de servei i obtenir accés a dades sensibles.

L'atac només és perillós en el context de manipulacions amb càlculs en enclavaments SGX, ja que requereix drets d'arrel al sistema per dur-lo a terme. En el cas més senzill, un atacant pot aconseguir la distorsió de la informació processada a l'enclavament, però en escenaris més complexos, la possibilitat de recrear les claus privades emmagatzemades a l'enclavament utilitzades per al xifratge mitjançant els algorismes RSA-CRT i AES-NI no és. exclosos. La tècnica també es pot utilitzar per generar errors en algorismes inicialment correctes per provocar vulnerabilitats quan es treballa amb memòria, per exemple, per organitzar l'accés a una àrea fora del límit del buffer assignat.
Codi prototip per realitzar un atac publicat a GitHub

L'essència del mètode és crear condicions per a que es produeixin corrupcions inesperades de dades durant els càlculs a SGX, de les quals no protegeix l'ús del xifratge i l'autenticació de memòria a l'enclavament. Per introduir la distorsió, va resultar que era possible utilitzar interfícies de programari estàndard per controlar la freqüència i la tensió, normalment utilitzades per reduir el consum d'energia durant el temps d'inactivitat del sistema i activar el màxim rendiment durant el treball intensiu. Les característiques de freqüència i tensió abasten tot el xip, inclòs l'impacte de la informàtica en un enclavament aïllat.

En canviar la tensió, podeu crear condicions en què la càrrega no és suficient per regenerar una cèl·lula de memòria dins de la CPU i el seu valor canvia. Diferència clau amb l'atac RowHammer és que RowHammer us permet canviar el contingut de bits individuals a la memòria DRAM llegint cíclicament dades de les cèl·lules veïnes, mentre que Plundervolt us permet canviar els bits dins de la CPU quan les dades ja s'han carregat de la memòria per al seu càlcul. Aquesta característica us permet evitar el control d'integritat i els mecanismes de xifratge utilitzats a SGX per a dades a la memòria, ja que els valors a la memòria romanen correctes, però es poden distorsionar durant les operacions amb ells abans que el resultat s'escrigui a la memòria.

Si aquest valor modificat s'utilitza en el procés de multiplicació del procés de xifratge, la sortida es rebutja amb un text xifrat incorrecte. Tenint la capacitat de contactar amb un gestor a SGX per xifrar les seves dades, un atacant pot, causant errors, acumular estadístiques sobre els canvis en el text xifrat de sortida i, en pocs minuts, restaurar el valor de la clau emmagatzemada a l'enclavament. Es coneix el text d'entrada original i el text xifrat de sortida correcte, la clau no canvia i la sortida d'un text xifrat incorrecte indica que s'ha distorsionat algun bit al valor contrari.

Després d'haver analitzat els parells de valors de textos xifrats correctes i corruptes acumulats durant diverses fallades, utilitzant mètodes d'anàlisi diferencial de fallades (DFA, Anàlisi de fallades diferencials) llauna predir claus probables utilitzades per al xifratge simètric AES i, després, analitzant les interseccions de claus en diferents conjunts, determineu la clau desitjada.

Diversos models de processadors Intel es veuen afectats pel problema, incloses les CPU Intel Core amb 6
10a generació, així com la cinquena i sisena generacions de Xeon E3, la primera i segona generacions d'Intel Xeon Scalable, Xeon D,
Xeon W i Xeon E.

Us recordem que la tecnologia SGX (Programari Guard Extensions) va aparèixer als processadors Intel Core de sisena generació (Skylake) i ofertes una sèrie d'instruccions que permeten que les aplicacions a nivell d'usuari assignin àrees de memòria tancades: enclavaments, el contingut dels quals no es pot llegir ni modificar ni tan sols pel nucli i el codi que s'executen en els modes ring0, SMM i VMM. És impossible transferir el control al codi de l'enclavament mitjançant funcions de salt tradicionals i manipulacions amb registres i la pila; per transferir el control a l'enclavament, s'utilitza una instrucció nova especialment creada que realitza una comprovació d'autoritat. En aquest cas, el codi col·locat a l'enclavament pot utilitzar mètodes de trucada clàssics per accedir a funcions dins de l'enclavament i instruccions especials per cridar funcions externes. El xifratge de memòria Enclave s'utilitza per protegir-se d'atacs de maquinari, com ara la connexió a un mòdul DRAM.

Font: opennet.ru

Afegeix comentari