O altă vulnerabilitate a fost identificată la procesoarele AMD care permite atacurile Meltdown

O echipă de cercetători de la Universitatea Tehnică din Graz (Austria) și Centrul Helmholtz pentru Securitatea Informației (CISPA) a dezvăluit informații despre o vulnerabilitate (CVE-2021-26318) a tuturor procesoarelor AMD care face posibilă realizarea clasei Meltdown. atacuri pe canale laterale (inițial se presupunea că procesoarele AMD nu sunt afectate de vulnerabilitatea Meltdown). În termeni practici, atacul poate fi folosit pentru a stabili canale de comunicare secrete, pentru a monitoriza activitatea în nucleu sau pentru a obține informații despre adresele din memoria kernelului pentru a ocoli protecția KASLR în timp ce exploatează vulnerabilitățile din nucleu.

AMD consideră nepotrivit să ia măsuri speciale pentru a bloca problema, întrucât vulnerabilitatea, ca un atac similar descoperit în august, este de puțin folos în condiții reale, este limitată de limitele actuale ale spațiului de adrese ale procesului și necesită prezența anumitor secvențe gata făcute de instrucțiuni (gadget) în nucleu. Pentru a demonstra atacul, cercetătorii și-au încărcat propriul modul kernel cu un gadget adăugat artificial. În condiții reale, atacatorii pot folosi, de exemplu, vulnerabilitățile care apar în mod regulat în subsistemul eBPF pentru a înlocui secvențele necesare.

Pentru a se proteja împotriva acestui nou tip de atac, AMD a recomandat utilizarea tehnicilor de codare sigure care ajută la blocarea atacurilor Meltdown, cum ar fi utilizarea instrucțiunilor LFENCE. Cercetătorii care au identificat problema recomandă activarea izolației mai stricte a tabelelor de pagini de memorie (KPTI), care anterior era folosită doar pentru procesoarele Intel.

În timpul experimentului, cercetătorii au reușit să scurgă informații din nucleu către un proces din spațiul utilizatorului cu o viteză de 52 de octeți pe secundă, având în vedere prezența unui gadget în nucleu care efectuează operația „if (offset < data_len) tmp = LUT[date[offset] * 4096];” . Au fost propuse mai multe metode pentru preluarea informațiilor prin canale laterale care ajung în cache în timpul execuției speculative. Prima metodă se bazează pe analiza abaterilor în timpul de execuție a instrucțiunii procesorului „PREFETCH” (Prefetch+Time), iar a doua pe modificarea modificării consumului de energie la executarea „PREFETCH” (Prefetch+Power).

Reamintim că vulnerabilitatea clasică Meltdown se bazează pe faptul că, în timpul executării speculative a instrucțiunilor, procesorul poate accesa o zonă privată de date și apoi poate renunța la rezultat, deoarece privilegiile setate interzic un astfel de acces din procesul utilizatorului. În program, blocul executat în mod speculativ este separat de codul principal printr-o ramură condiționată, care în condiții reale se declanșează întotdeauna, dar datorită faptului că instrucțiunea condiționată folosește o valoare calculată pe care procesorul nu o cunoaște în timpul execuției preventive a codul, toate opțiunile de ramură sunt efectuate în mod speculativ.

Deoarece operațiunile executate în mod speculativ folosesc același cache ca instrucțiunile executate în mod normal, este posibil în timpul execuției speculative să se stabilească markeri în cache care reflectă conținutul biților individuali într-o zonă de memorie privată și apoi în codul executat în mod normal pentru a determina valoarea lor prin sincronizare. accesul de analiză la datele din cache și necache.

Sursa: opennet.ru

Adauga un comentariu