Noul atac NetSpectre nu cere victimei să descarce sau să execute coduri rău intenționate

Securitate / Noul atac NetSpectre nu cere victimei să descarce sau să execute coduri rău intenționate

NetSpectre Bombardează porturile mașinilor pentru a câștiga intrarea

4 minute citite

Un nou atac CPU din clasa Spectre a primit atenție din partea oamenilor de știință academici, deoarece au lansat recent o lucrare de cercetare intitulată „NetSpectre: Citește memoria arbitrară prin rețea”, care intră în detalii detaliate despre modul în care funcționează această clasă de atac CPU.



Ceea ce face ca noul atac Spectre CPU să fie un pic înfricoșător este că acesta nu necesita atacatorul să-și păcălească victima descărcând și rulând scripturi rău intenționate pe computerul lor sau chiar accesând un site web care rulează JavaScript rău intenționat în browserul utilizatorului.

NetSpectre va bombarda pur și simplu porturile de rețea ale unei mașini până când va găsi o cale de a-și atinge obiectivele.



„Atacurile spectrului determină o victimă să efectueze speculativ operațiuni care nu ar avea loc în timpul procesării strict serializate în ordine a instrucțiunilor programului și care scurg informațiile confidențiale ale victimei printr-un canal ascuns către un atacator”



Cu toate acestea, NetSpectre nu vine fără propriile defecte. Are o viteză de exfiltrare incredibil de lentă, în jur de 15 biți pe oră pentru ca atacurile să fie efectuate printr-o conexiune de rețea și să vizeze datele stocate în memoria cache a procesorului.



În lucrarea de cercetare, academicienii au reușit să realizeze până la 60 de biți / oră cu o variantă specială a NetSpectre care vizează datele procesate prin modulul AVX2 al procesorului, care este specific procesorelor Intel.

În ambele cazuri, NetSpectre este considerat în prezent prea lent pentru a fi valoros pentru atacatori, ceea ce înseamnă că NetSpectre este doar un teoretic amenințare, nu ceva din care companiile ar trebui să se refugieze tocmai acum . Cu toate acestea, pe măsură ce tehnologia avansează, vitezele de exfiltrare vor crește, fără îndoială, și atunci avem o nouă clasă de atacuri viabile și incredibil de ușor de realizat de CPU de care să vă faceți griji.

Noul atac NetSpectre este legat de vulnerabilitatea Spectre V1 (CVE-2017-5753) pe care cercetătorii Google au dezvăluit-o la începutul acestui an (2018). Aceasta înseamnă că toate CPU-urile care ar putea fi afectate de Spectre V1 sunt, de asemenea, considerate a fi NetSpectre, dacă este implementat cu firmware-ul OS și CPU corespunzător.



În prezent, există două variante de atac pentru NetSpectre: extragerea datelor din sistemul țintă și întreruperea de la distanță a ASLR (Address Space Layout Randomisation) pe sistemul țintă.

Lanțul evenimentelor pentru primul tip de atac merge astfel:

  1. Mistrain predictor ramură.
  2. Resetați starea elementului microarhitectural.
  3. Scurgeți puțin elementul microarhitectural.
  4. Expuneți rețeaua starea elementului microarhitectural.
  • La pasul 1, atacatorul greșește predictorul de ramură al victimei pentru a rula un atac Spectre. Pentru a greși greșit predictorul sucursalei, atacatorul folosește dispozitivul de scurgere cu indici valabili. Indicii valabili asigură că predictorul de ramură învață să ia întotdeauna ramura, adică predictorul de ramură speculează că condiția este adevărată. Rețineți că acest pas se bazează doar pe dispozitivul de scurgere. Nu există feedback către atacator și, prin urmare, starea microarhitecturală nu trebuie resetată sau transmisă.
  • În pasul 2, atacatorul trebuie să reseteze starea microarhitecturală pentru a permite codificarea biților scurși folosind un element microarhitectural. Acest pas depinde în mare măsură de elementul microarhitectural folosit, de exemplu, atunci când utilizează cache-ul, atacatorul descarcă un fișier mare de la victimă; dacă se folosește AVX2, atacatorul așteaptă pur și simplu mai mult de 1 milisecundă. După acest pas, toate cerințele sunt îndeplinite pentru a se scurge puțin de la victimă.
  • În pasul 3, atacatorul exploatează vulnerabilitatea Spectre pentru a scurge un singur bit de la victimă. Deoarece predictorul de ramură este greșit la pasul 1, furnizarea unui index în afara limitelor gadgetului de scurgere va rula calea în limitele și va modifica elementul microarhitectural, adică bitul este codificat în elementul microarhitectural.
  • La pasul 4, atacatorul trebuie să transmită informațiile codificate prin rețea. Acest pas corespunde celei de-a doua faze a atacului Spectre original. Atacatorul trimite un pachet de rețea care este gestionat de dispozitivul de transmisie și măsoară timpul de la trimiterea pachetului până la sosirea răspunsului.

Metoda de atac nr. 2: Înlăturarea ASLR de la distanță

  1. Mistrain predictor ramură.
  2. Accesați un index în afara limitelor pentru a memora în cache o locație de memorie (cunoscută).
  3. Măsurați timpul de execuție al unei funcții prin rețea pentru a deduce dacă accesul în afara limitelor a stocat în cache o parte din aceasta.

Contramăsuri ale spectrului

Intel și AMD recomandă utilizarea instrucțiunii lfence ca o barieră împotriva speculațiilor. Această instrucțiune trebuie inserată după verificarea limitelor critice de securitate pentru a opri execuția speculativă. Cu toate acestea, adăugarea acestui lucru la fiecare verificare a limitelor are o performanță semnificativă.

Deoarece NetSpectre este un atac bazat pe rețea, acesta nu poate fi prevenit doar prin atenuarea Spectre, ci și prin contramăsuri pe stratul de rețea. Un banal atac NetSpectre poate fi ușor detectat printr-o protecție DDoS, deoarece mai multe mii de pachete identice sunt trimise de la aceeași sursă.

Cu toate acestea, un atacator poate alege orice compromis între pachete pe secundă și biți scurtați pe secundă. Astfel, viteza la care sunt scurtați biții poate fi redusă pur și simplu sub pragul pe care monitorizarea DDoS îl poate detecta. Acest lucru este valabil pentru orice monitorizare care încearcă să detecteze atacurile în curs, de exemplu, sistemele de detectare a intruziunilor.

Deși, teoretic, atacul nu este prevenit, la un moment dat atacul devine irealizabil, deoarece timpul necesar scurgerii un pic crește drastic. O altă metodă pentru a atenua NetSpectre este de a adăuga zgomot artificial latenței rețelei. Deoarece numărul măsurătorilor depinde de varianța latenței rețelei, zgomotul suplimentar necesită ca un atacator să efectueze mai multe măsurători. Astfel, dacă varianța latenței rețelei este suficient de mare, atacurile NetSpectre devin imposibile datorită numărului mare de măsurători necesare.