Plundervolt este o nouă metodă de atac asupra procesoarelor Intel care afectează tehnologia SGX

Intel a lansat actualizare de microcod care remediază vulnerabilitate (CVE-2019-14607) permițând prin manipularea mecanismului de control dinamic al tensiunii și frecvenței din CPU, inițiați deteriorarea conținutului celulelor de date, inclusiv în zonele utilizate pentru calcule în enclave Intel SGX izolate. Atacul se numește Plundervolt și poate permite unui utilizator local să-și escaladeze privilegiile asupra sistemului, să provoace o refuz de serviciu și să obțină acces la date sensibile.

Atacul este periculos doar în contextul manipulărilor cu calcule în enclavele SGX, deoarece necesită drepturi de root în sistem pentru a fi efectuat. În cel mai simplu caz, un atacator poate realiza denaturarea informațiilor procesate în enclavă, dar în scenarii mai complexe, posibilitatea de a recrea cheile private stocate în enclavă utilizate pentru criptare folosind algoritmii RSA-CRT și AES-NI nu este posibilă. exclus. Tehnica poate fi folosită și pentru a genera erori în algoritmii corecti inițial pentru a provoca vulnerabilități atunci când lucrați cu memorie, de exemplu, pentru a organiza accesul la o zonă din afara limitei buffer-ului alocat.
Cod prototip pentru efectuarea unui atac publicat pe GitHub

Esența metodei este de a crea condiții pentru apariția unor corupții neașteptate a datelor în timpul calculelor în SGX, de care utilizarea criptării și a autentificării memoriei în enclavă nu protejează. Pentru a introduce distorsiunea, s-a dovedit că a fost posibilă utilizarea interfețelor software standard pentru controlul frecvenței și tensiunii, utilizate de obicei pentru a reduce consumul de energie în timpul inactiv al sistemului și pentru a activa performanța maximă în timpul lucrului intens. Caracteristicile de frecvență și tensiune acoperă întregul cip, inclusiv impactul calculului într-o enclavă izolată.

Schimbând tensiunea, puteți crea condiții în care încărcarea nu este suficientă pentru a regenera o celulă de memorie în interiorul procesorului, iar valoarea acesteia se modifică. Diferența cheie față de atac RowHammer este că RowHammer vă permite să schimbați conținutul de biți individuali din memoria DRAM prin citirea ciclică a datelor de la celulele vecine, în timp ce Plundervolt vă permite să schimbați biții din interiorul procesorului atunci când datele au fost deja încărcate din memorie pentru calcul. Această caracteristică vă permite să ocoliți mecanismele de control al integrității și de criptare utilizate în SGX pentru datele din memorie, deoarece valorile din memorie rămân corecte, dar pot fi distorsionate în timpul operațiunilor cu acestea înainte ca rezultatul să fie scris în memorie.

Dacă această valoare modificată este utilizată în procesul de multiplicare a procesului de criptare, rezultatul este respins cu text cifrat incorect. Având capacitatea de a contacta un handler din SGX pentru a-și cripta datele, un atacator poate, provocând eșecuri, să acumuleze statistici despre modificările în textul cifrat de ieșire și, în câteva minute, să restabilească valoarea cheii stocate în enclavă. Textul de intrare original și textul cifrat de ieșire corect sunt cunoscute, cheia nu se modifică, iar ieșirea unui text cifrat incorect indică faptul că un anumit bit a fost distorsionat la valoarea opusă.

După ce s-au analizat perechile de valori ale textelor cifrate corecte și corupte acumulate în timpul diferitelor defecțiuni, folosind metode de analiză diferențială a defecțiunilor (DFA, Analiza diferențială a erorilor) Poate sa prezice cheile probabile utilizate pentru criptarea simetrică AES și apoi, analizând intersecțiile cheilor din diferite seturi, se determină cheia dorită.

Diferite modele de procesoare Intel sunt afectate de problemă, inclusiv procesoare Intel Core cu 6
Generația a 10-a, precum și generațiile a cincea și a șasea de Xeon E3, prima și a doua generație de Intel Xeon Scalable, Xeon D,
Xeon W și Xeon E.

Să vă reamintim că tehnologia SGX (Extensii de protecție software) a apărut în a șasea generație de procesoare Intel Core (Skylake) și ofertele o serie de instrucțiuni care permit aplicațiilor la nivel de utilizator să aloce zone de memorie închise - enclave, al căror conținut nu poate fi citit sau modificat nici măcar de nucleul și codul care rulează în modurile ring0, SMM și VMM. Este imposibil să transferați controlul către codul din enclavă folosind funcții tradiționale de salt și manipulări cu registre și stiva; pentru a transfera controlul către enclavă, se utilizează o nouă instrucțiune special creată care efectuează o verificare a autorității. În acest caz, codul plasat în enclavă poate folosi metode clasice de apelare pentru a accesa funcții din interiorul enclavei și instrucțiuni speciale pentru a apela funcții externe. Criptarea memoriei Enclave este utilizată pentru a proteja împotriva atacurilor hardware, cum ar fi conectarea la un modul DRAM.

Sursa: opennet.ru

Adauga un comentariu