Cercetătorii de securitate de la Google au publicat informații despre o vulnerabilitate (CVE-2024-56161) în procesoarele AMD, care afectează încărcătorul microcodului și permite ocolirea mecanismului de verificare a semnăturii digitale în urma actualizărilor de microcod. Încărcarea unui microcod modificat poate compromite mecanismul AMD SEV (Virtualizare Cryptată Securizată), utilizat în sistemele de virtualizare pentru a proteja mașinile virtuale de intervenții din partea hypervisorului sau a administratorului sistemului gazdă.
Vulnerabilitatea este cauzată de utilizarea unei funcții hash nesigure în codul care efectuează verificarea semnăturii digitale după încărcarea microcodului în CPU. Pentru a efectua un atac, este necesară obținerea de drepturi de administrator în sistemul local (capacitatea de a executa cod la nivelul zero al protecției (ring0), fără a fi într-o mașină virtuală).
În timpul atacului, se poate interveni în funcționarea sistemelor gazdă, protejate prin extensiile AMD SEV (Virtualizare Cryptată Securizată) și SEV-SNP (Paginare Criptată Securizată), care oferă garanții privind integritatea memoriei. mașini virtuale, izolând registrele procesorului și asigurând o funcționare sigură cu tabelele de pagini imbricate în memorie. Mecanismul AMD SEV a fost creat pentru a se asigura că personalul centrelor de date și furnizorii de cloud nu pot modifica sau analiza conținutul memoriei sistemelor gazdă protejate, precum și că nu pot distorsiona calculele.
Cercetătorii au pregătit un prototip de exploit, care permite încărcarea unui microcod arbitrar în CPU, fără semnătură digitală. Pentru a demonstra pericolul vulnerabilității, a fost propusă o actualizare a microcodului care schimbă logica instrucțiunii RDRAND, utilizată ca una dintre sursele de entropie în generatoarele de numere pseudo-aleatoare, utilizate în procesul de generare a cheilor, în timpul operațiunilor criptografice și pentru generarea identificatorilor aleatori.
Modificarea duce la restabilirea instrucțiunii RDRAND, returnând doar numărul 4, în locul unei secvențe aleatorii. Pentru a preveni atacurile reale asupra sistemelor de calcul confidențial, microcodul modificat resetează flagul CF (carry flag), adică marchează valoarea returnată ca fiind eronată. Detalii suplimentare și instrumente pentru generarea microcodului modificat vor fi publicate pe 5 martie, pentru a oferi utilizatorilor timp să instaleze patch-ul pe sistemele lor. Un exemplu de atac de succes a fost demonstrat pentru servere procesatoarele AMD EPYC 7B13 (Milan) și AMD Ryzen 9 7940HS (Phoenix).
În raportul companiei AMD se menționează că vulnerabilitatea se manifestă în procesoarele AMD bazate pe arhitectura microprocesorului Zen de generație 1-4. Actualizarea microcodului care remediază vulnerabilitatea a fost lansată pe 13 decembrie 2024 pentru procesoarele din seriile AMD EPYC 7001, 7002 și 7003 (Naples, Rome, Milan și Milan-X), iar pe 16 decembrie pentru procesoarele din seria AMD EPYC 9004 (Genoa, Genoa-X și Bergamo/Siena). Pentru a elimina vulnerabilitatea pe sistemele care utilizează atestarea SEV-SNP, este necesară o actualizare suplimentară a firmware-ului AMD SEV (furnizată împreună cu actualizările BIOS de către producătorii de echipamente).
De asemenea, s-a raportat o altă vulnerabilitate în procesoarele AMD, care permite un atac prin canale laterale pentru extragerea informațiilor despre calcule în sistemele gazdă protejate prin utilizarea mecanismului AMD SEV. Problema afectează procesoarele AMD EPYC de generație 1-4 și este legată de posibilitatea extragerii de date din cache-ul procesorului, care se acumulează în timpul funcționării sistemelor gazdă protejate. Metoda Prime+Probe poate fi folosită pentru a analiza conținutul cache-ului, presupunând umplerea cache-ului cu un set de valori etalon și determinarea modificărilor prin măsurarea timpului de acces la acestea în timpul reumplerii. Se observă că metodele propuse anterior pentru protecția împotriva atacurilor de tip Spectre pot fi utilizate pentru a bloca atacul.
Sursa: opennet.ro
