Este posibil ca viteza procesorului să fie exact cea care compromite securitatea? Pentru a înțelege cum își ating procesoarele viteza , trebuie să luăm în considerare faptul că acestea funcționează prin „prezicția viitorului”... Nu, nu sunt magice și nu au un glob de cristal minuscul...
Modul în care funcționează procesoarele este că, în loc să aștepte să vadă ce cale va urma un program, cipul prezice ruta probabilă și o anticipează. Dacă predicția este incorectă, lucrarea este abandonată, dar urmele rămân în memorie. Aici intervine Spectre , una dintre cele mai semnificative vulnerabilități descoperite în ultimii ani. De la descoperirea sa, atacatorii au învățat cum să citească aceste urme, creând variante din ce în ce mai sofisticate; TONTOU este una dintre aceste noi vulnerabilități.
Cercetătorii de la MIT au descoperit TONTOU (Time-of-Neutralization to Time-of-Use - Timpul de neutralizare până la timpul de utilizare), o tehnică nouă și sofisticată de exploatare a vulnerabilităților Spectre v2 , care permite citirea memoriei kernelului din spațiul utilizatorului.
Deși producătorii și dezvoltatorii au conceput diverse mecanisme de protecție împotriva atacurilor predictive de ani de zile, atacatorii au reușit să descopere noi rute, iar acest nou studiu CSAIL demonstrează cum să ocolească aceste protecții.
Cercetătorii au descoperit că există un decalaj de timp inevitabil între momentul în care memoria tampon este golită și momentul în care sunt utilizate predicțiile, iar în acest mic decalaj este injectat cod (uneori doar o mână de instrucțiuni) prin întreruperi de sistem, făcând posibilă recontaminarea hardware-ului și extragerea datelor critice.
În ceea ce privește atacul: perturbări și încălcarea sistemului Safe-RET
AMD are o metodă de apărare împotriva vulnerabilităților SRSO (Speculative Return Stack Overflow) numită Saferet, care curăță mecanismul de predicție imediat înainte de fiecare utilizare. Aceasta lasă o fereastră de vulnerabilitate ce poate fi exploatată în câteva zeci de nanosecunde. Pentru a ataca o fereastră atât de mică, cercetătorii au dezvoltat o tehnică pe care au numit-o Injecție cu întreruperi.
Procesoarele își întrerup constant sarcinile pentru a gestiona întreruperile, iar programele comune pot configura aceste temporizatoare . Având în vedere acest lucru, cercetătorii au ajustat cu precizie un temporizator și, folosind o tehnică de încetinire a procesorului, au provocat întreruperea procesorului exact în momentul nepotrivit . În timpul acestei întreruperi, un atacator poate forța executarea unui număr mare de apeluri, supraîncărcând stiva de adrese. Când execuția eronată se termină, procesorul elimină procesul, dar datele accesate rămân în cache-urile partajate , de unde pot fi extrase prin analizarea timpilor de acces.
Extragerea și testarea parolelor pe sisteme reale
Pentru a demonstra gravitatea erorii TONTOU, echipa a construit o vulnerabilitate funcțională pe un sistem AMD care rula un kernel Linux actual. Primul obstacol a fost ocolirea apărării care randomizează poziția sistemului de operare în memorie, lucru pe care l-au reușit în zece încercări, durând aproximativ nouă minute per test.
Ulterior, au demonstrat un atac local ca utilizator neprivilegiat pentru a determina codul hash al parolei de root, extrăgând cu succes date cu o rată de 5.47 octeți pe secundă, cu o precizie de 91.97%. În 50% din teste (care au durat în medie 18 minute), au detectat și extras cu succes conținutul fișierului cu parole. Deși aceasta este o viteză mică, este mai mult decât suficientă pentru a compromite critic un server.
Impact asupra Intel, AMD și a patch-ului de atenuare
Echipa a testat patru generații de procesoare Intel și AMD, obținând eșecuri de predicție pe ambele arhitecturi. În timp ce tehnica s-a dovedit viabilă pe familiile Zen 1-4 de la AMD , pe cipurile Intel atacul a ocolit două protecții diferite , deși s-a observat un comportament inconsistent între diferite generații Intel, ceea ce sugerează că apărările nominale sunt implementate diferit în hardware.
Ca soluție, cercetătorii sugerează să ștergăm mecanismul de predicție a doua oară după ce întreruperea se termină. Deși această măsură pare viabilă pentru AMD, ar putea fi contraproductivă pentru Intel, deoarece atacul se bazează pe faptul că întreruperea lasă o stare consistentă și ar putea face atacul mai fiabil.
Cercetătorii au anunțat AMD și Intel la începutul lunii februarie, iar responsabilii cu kernelul Linux în martie. Drept urmare, blocarea codului pentru atenuarea vulnerabilității a fost integrată în kernelul Linux pe 5 august.
În final, dacă sunteți interesați să aflați mai multe, puteți găsi detalii la linkul următor.