LVI — o nouă clasă de atacuri asupra mecanismului de execuție speculativ în CPU

Au fost publicate informații despre o nouă clasă de atacuri LVI (Load Value Injection, CVE-2020-0551) asupra mecanismului de execuție speculativă în CPU-ul Intel, care pot fi utilizate pentru a organiza scurgeri de chei și date secrete din enclavele Intel SGX și din alte procese.

Noua clasă de atacuri se bazează pe manipularea acelorași structuri microarhitecturale ca și în atacurile MDS (Microarchitectural Data Sampling), Spectre și Meltdown.În plus, noile atacuri nu sunt blocate de metodele de protecție existente împotriva Meltdown, Spectre, MDS și altor atacuri similare. Pentru a asigura o protecție eficientă împotriva LVI este necesară modificarea hardware-ului în CPU. Implementarea protecției pe cale software, prin adăugarea instrucțiunii LFENCE de către compilator după fiecare operație de încărcare din memorie și înlocuirea instrucțiunii RET cu POP, LFENCE și JMP, generează costuri excesiv de mari - cercetătorii estimează că protecția software completă va conduce la o scădere a performanței cu 2-19 ori.

Parțial, dificultatea de blocare a problemei este compensată de faptul că, în prezent, atacul este mai mult teoretic decât practic (atacul este teoretic posibil, dar foarte dificil de realizat și reproducibil doar în teste sintetice).
Compania Intel i-a atribuit problemei un nivel moderat de pericol (5.6 din 10) și a lansat actualizarea firmware-ului și SDK-ului pentru mediul SGX, în care s-a încercat blocarea desfășurării atacului prin metode ocolitoare. Metodele de atac propuse sunt aplicabile doar procesorilor Intel pentru moment, dar nu se exclude posibilitatea de adaptare a LVI și pentru alte procesoare, la care se aplică atacurile de tip Meltdown.

Problema a fost identificată în aprilie anul trecut de către cercetătorul Jo Van Bulck de la Universitatea Leuven, după care, cu participarea a 9 cercetători din alte universități, au fost dezvoltate cinci metode fundamentale de realizare a atacurilor, fiecare dintre ele permițând existența unor variante mai specifice. variantes.Independent, în februarie a acestui an, cercetătorii de la Bitdefender au raportat s-a descoperit una dintre variantele atacului LVI și au notificat Intel. Variantele atacurilor se diferențiază prin utilizarea unor structuri microarhitecturale diferite, cum ar fi buffer-ul de stocare (SB, Store Buffer), buffer-ul de umplere (LFB, Line Fill Buffer), buffer-ul de schimbare a contextului FPU și cache-ul de nivel 1 (L1D), folosite anterior în atacuri precum ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow. și Meltdown.

LVI - o nouă clasă de atacuri asupra mecanismului de execuție speculativă în CPU.

Principala diferență. Atacurile LVI de la MDS manipulează definirea conținutului structurilor microarhitecturale care rămân în cache după procesarea speculativă a excepțiilor (fault) sau a operațiunilor de load și store, în timp ce
atacurile LVI permit substituirea datelor atacatorului în structurile microarhitecturale pentru a influența executarea speculativă ulterioară a codului victimei. Prin aceste manipulări, atacatorul poate extrage conținutul structurilor de date inaccesibile din alte procese în timpul executării unui cod specific pe nucleul țintă al CPU-ului.

LVI - o nouă clasă de atacuri asupra mecanismului de execuție speculativă în CPU.

Pentru exploatarea problemei în codul procesului-victimă trebuie să apară secvențe speciale de cod (gadget-uri), în care se încarcă o valoare controlată de atacator, iar încărcarea acestei valori duce la generarea de excepții (fault, abort sau assist), care resping rezultatul și execută din nou instrucțiunea. Atunci când se procesează excepția, apare o fereastră speculativă, timp în care datele procesate în gadget devin accesibile. În special, procesorul începe să execute în mod speculativ un fragment de cod (gadget), apoi determină că predicția nu a fost corectă și anulează operațiile la starea inițială, dar datele prelucrate în timpul execuției speculative rămân în cache L1D și în buferele microarhitecturale și sunt disponibile pentru preluare prin metode cunoscute de determinare a datelor reziduale prin canale secundare.

Excepția „assist”, spre deosebire de „fault”, este procesată în interiorul procesorului fără a apela la gestionarii programatici. Assist poate apărea, de exemplu, când trebuie actualizat bitul A (Accessed) sau D (Dirty) în tabela paginilor de memorie. Principala dificultate în efectuarea unei atacuri asupra altor procese constă în modul de inițiere a apariției assist, manipulând procesul victimei. În prezent, nu există metode fiabile pentru a face acest lucru, dar este posibil ca în viitor să apară astfel de metode. Posibilitatea de a efectua un atac a fost confirmată până acum doar pentru enclavele Intel SGX, iar celelalte scenarii rămân teoretice sau reproducibile în condiții sintetice (fiind necesară adăugarea în cod a unor gadget-uri specifice).

LVI - o nouă clasă de atacuri asupra mecanismului de execuție speculativă în CPU.

LVI - o nouă clasă de atacuri asupra mecanismului de execuție speculativă în CPU.

Posibilele vectori de atac:

  • Scurgerea datelor din structurile nucleului în procesele la nivel de utilizator. Mecanismele de protecție împotriva atacurilor de tip Spectre 1 din nucleul Linux, precum și mecanismul de protecție SMAP (Prevenirea Accesului în Modul Supraveghetor) reduc semnificativ probabilitatea atacului LVI. Implementarea unei protecții suplimentare în nucleu poate fi necesară în viitor, în cazul în care se identifică metode mai simple de desfășurare a atacului LVI.
  • Scurgerea datelor între diferite procese. Pentru atac, este necesară existența unor fragmente de cod în aplicație și determinarea metodei de generare a excepției în procesul țintă.
  • Scurgerea datelor din mediu-hospitabil în sistemul gazdă. Atacul este clasificat ca fiind prea complex, necesitând efectuarea unor pași dificili și previziuni ale activității din sistem.
  • Scurgerea datelor între procese în diferite sisteme gazdă. Vectorul de atac este similar cu organizarea scurgerii datelor între diferite procese, dar necesită, de asemenea, realizarea unor manevre complexe pentru a ocoli izolarea între sistemele gazdă.

Cercetătorii au publicat Voi menționa că nu ne referim la sharding, adică distribuirea datelor între diferite baze de date sau servere. Pentru că, chiar și împărțind datele pe prototipuri cu demonstrarea principiilor efectuării atacului, dar acestea nu sunt încă potrivite pentru desfășurarea unor atacuri reale. Primul exemplu permite redirecționarea execuției speculativă a codului în procesul-victimă, similar cu programarea orientată pe returnare (ROP, Programare Orientată pe Returnare). În acest exemplu, procesul-victimă este o entitate pregătită special, care conține gadgeturile necesare (aplicarea atacului asupra proceselor externe reale este dificilă). Al doilea exemplu permite infiltrarea în calculele de criptare AES în cadrul enclavei Intel SGX și organizarea scurgerii de date în timpul execuției speculative a instrucțiunilor pentru a recupera valoarea cheii utilizate pentru criptare.


Redați video

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster