SQUIP, un nou atac care afectează procesoarele AMD și duce la scurgeri de date

Un grup de iCercetători de la Universitatea de Tehnologie din Graz (Austria), cunoscut anterior pentru dezvoltarea atacurilor MDS, NetSpectre, Throwhammer și ZombieLoad, a dezvăluit un nou atac pe canalul lateral (CVE-2021-46778) în coada de planificare a procesorului AMD utilizată pentru a programa execuția instrucțiunilor pe diferite unități de execuție ale procesorului.

Atacul, sunat SQUIP, vă permite să determinați datele utilizate în calcule într-un alt proces sau mașină virtuală sau organizarea unui canal de comunicare ascuns între procese sau mașini virtuale care permite schimbul de date fără a trece prin mecanisme de control al accesului la sistem.

Las Procesoare AMD bazate pe microarhitecturile Zen 1, 2 și 3 generație (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) Sunt afectate când este utilizată tehnologia Simultaneous Multithreading (SMT).

CPU-urile moderne folosesc un design superscalar, în care mai multe instrucțiuni sunt executate simultan pentru a maximiza performanța. Aceste procesoare procesează instrucțiunile într-un canal prin mai multe etape: (1) preluare, (2) decodificare, (3) planificare/executare și (4) retragere.

Atacul se bazează pe evaluarea nivelului de apariție a disputei (contention level) în diferite cozi ale planificatorului și se realizează prin măsurarea întârzierilor la inițierea operațiunilor de verificare efectuate într-un alt thread SMT pe același CPU fizic. Pentru analiza conținutului s-a folosit metoda Prime+Probe, care presupune completarea cozii cu un set de valori de referință și determinarea modificărilor prin măsurarea timpului de acces la acestea în momentul reîncărcării.

Etapa de planificare/execuție poate procesa instrucțiuni în afara ordinului pentru a maximiza paralelismul la nivel de instrucțiune. Descriem pe scurt fiecare dintre aceste etape:

-Caută. CPU caută următoarea instrucțiune de executat din memoria cache L1i. 
-Decodare. Pentru a permite o execuție eficientă, instrucțiunile preluate (operații macro) sunt decodificate în una sau mai multe microoperații mai simple (µops) și plasate într-o coadă µop. Aceste µops sunt introduse în backend, unde sunt programate și executate.
-Programează/Execută. Planificatorul(e) urmărește care µop-uri sunt gata pentru execuție (au intrări disponibile) și le programează dinamic (în afara ordinului) la unitățile de execuție disponibile. Un nucleu CPU are mai multe unități de execuție și poate avea mai multe unități aritmetice și logice (ALU), ramuri ale unităților de execuție (BRU), unități de generare de adrese (AGU).

În timpul experimentului, cercetătorii au reușit să recreeze complet cheia RSA privată de 4096 de biți folosit pentru a crea semnături digitale folosind biblioteca criptografică mbedTLS 3.0, care utilizează algoritmul Montgomery pentru a ridica un număr la un modul de putere. Au fost necesare 50.500 de urme pentru a determina cheia.

Timpul total de atac a durat 38 de minute. Sunt demonstrate variante de atac care asigură o scurgere între diferite procese și mașini virtuale controlate de hypervisorul KVM. De asemenea, se arată că metoda poate fi utilizată pentru a organiza transferul secret de date între mașini virtuale la o viteză de 0,89 Mbit/s și între procese la o viteză de 2,70 Mbit/s cu o rată de eroare mai mică de 0,8%.

Nucleul CPU este împărțit în mai multe nuclee logice sau fire, executând fluxuri de instrucțiuni independente, dar partajând resurse precum memoria cache L1i. µops din aceste fire de execuție partajează și unități de execuție dinamic pentru a permite o utilizare totală mai mare. Partiția diferitelor părți ale nucleului.
Se realizează prin schimb competitiv. Arhitecturile AMD Zen permit două fire
pe miez. Aceste fire pot fi dintr-un singur program sau din programe diferite, așa cum sunt gestionate de sistemul de operare.

Procesoarele Intel nu sunt susceptibile atacuri deoarece folosesc o singură coadă de planificare, în timp ce procesoarele AMD vulnerabile folosesc cozi separate pentru fiecare unitate de execuție.

Ca o soluție pentru a bloca scurgerea de informații, Recomandat AMD că dezvoltatorii folosiți algoritmi care efectuează întotdeauna calcule matematice în timp constant, indiferent de natura datelor care sunt prelucrate, și care, de asemenea, evită bifurcarea bazată pe date secrete.

În fine, dacă sunteți interesat să puteți afla mai multe despre acesta, puteți consulta detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.