TONTOU — un atac asupra CPU-urilor Intel și AMD, care permite ocolirea protecției împotriva vulnerabilităților Spectre v2

Cercetătorii de la Institutul Tehnologic din Massachusetts au identificat tehnica de atac TONTOU (Time-of-Neutralization to Time-of-Use), care propune o nouă metodă de exploatare a vulnerabilităților arhitecturale de tip Spectre v2. Vulnerabilitatea oferă posibilitatea de a determina conținutul memoriei nucleului în timpul executării unei exploatări în spațiul utilizatorului. Codul pentru blocarea exploatării vulnerabilității a fost inclus în nucleul Linux pe 5 august și este parte integrantă a versiunilor 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 și 5.10.263.

Cercetătorii au demonstrat posibilitatea de a efectua un atac de către un utilizator local fără privilegii pentru a determina hash-ul parolei utilizatorului root, stocat în fișierul /etc/shadow și încărcat în memorie în timpul autentificării în sistem. Cercetătorii au reușit să obțină o scurgere de date din memoria nucleului cu o rată de 5.47 octeți pe secundă și o precizie de 91.97%. Dintre cele 10 runde de testare a exploatării, care au durat în medie 18 minute, în jumătate din cazuri a fost posibil să se determine existența fișierului /etc/shadow în memorie și să se extragă conținutul acestuia.

Exploatarea a fost demonstrată pe sisteme cu procesoare AMD și poate fi utilizată cu CPU-uri AMD din familiile Zen 1-4. Pe sistemele Intel, atacul este de asemenea realizabil, dar exploatarea este mai complexă. Pentru a proteja împotriva depășirii stivei adreselor de returnare și pentru a bloca vulnerabilitatea SRSO (Speculative Return Stack Overflow), procesoarele AMD utilizează mecanismul de protecție Safe-RET, care șterge bufferul de predicție a ramificărilor după fiecare utilizare și restricționează fereastra de atac la 2 instrucțiuni, executate în câteva zeci de nanosecunde.

Pentru a ocoli această protecție și a extinde fereastra de atac, a fost implementată o tehnică de încetinire a CPU-ului, care permite finalizarea înlocuirii întreruperii la momentul oportun pentru a redirecționa fluxul de execuție în kernel și a utiliza handler-ul de întrerupere pentru a distorsiona înregistrarea în buffer-ul de predicție a ramificațiilor. Pentru a exploata vulnerabilitatea SRSO, atacatorul poate crea condiții în care blocul de predicție a ramificațiilor va efectua în mod speculativ un număr mare de apeluri CALL incorect prezise, suficiente pentru a umple stiva adreselor de returnare și a rescrie punctele de retur corect prezise, plasate la începutul stivei. Prin urmare, elementele inițiale ale stivei pot fi rescrise cu valori alese de atacator, ceea ce va duce ulterior la utilizarea acestor valori înlocuite în execuția speculativă a instrucțiunii RET în contextul altui proces.

Procesorul va determina că predicția ramificării nu s-a justificat și va reveni operația la starea inițială, dar datele procesate în timpul execuției speculative vor rămâne în cache și în buffer-urile microarhitecturale. Dacă blocul executat eronat accesează memoria, atunci execuția sa speculativă va duce la sedimente în cache-ul comun și la date citite din memorie. Pentru extragerea informațiilor din cache poate fi folosită una dintre metodele de determinare a conținutului cache-ului pe baza analizei modificării timpului de acces la datele închise și cele neînchise.

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