Vulnerabilitate în CPU AMD care permite ocolirea mecanismului de protecție SEV (Virtualizare Securizată Criptată)

Cercetătorii de la Centrul Helmholtz pentru Securitatea Informației (CISPA) au publicat o nouă metodă de atac numită CacheWarp, care permite compromiterea mecanismului de protecție AMD SEV (Secure Encrypted Virtualization), utilizat în sistemele de virtualizare pentru a proteja mașinile virtuale împotriva intervenției din partea hipervizorului sau a administratorului sistemului gazdă. Metoda propusă permite unui atacator, care are acces la hipervizor, să execute cod străin și să obțină privilegii crescute într-o mașină virtuală protejată prin AMD SEV.

Atacul se bazează pe exploatarea unei vulnerabilități (CVE-2023-20592), cauzată de o manipulare incorectă a cache-ului în timpul execuției instrucțiunii procesorului INVD, prin care se poate obține necorelarea datelor în memorie și cache, ocolind mecanismele de menținere a integrității memoriei pentru mașinile virtuale, implementate pe baza extensiilor SEV-ES și SEV-SNP. Vulnerabilitatea afectează procesoarele AMD EPYC de la prima până la a treia generație.

Pentru procesoarele AMD EPYC de a treia generație (Zen 3), problema a fost rezolvată în actualizarea de microcod din noiembrie, lansată ieri de AMD (corecția nu duce la scăderea performanței). Pentru prima și a doua generație de procesoare AMD EPYC (Zen 1 și Zen 2), nu există protecție, deoarece aceste CPU nu suportă extensia SEV-SNP, care asigură controlul integrității. mașini virtuale. A patra generație de procesoare AMD EPYC „Genoa”, bazată pe microarhitectura „Zen 4”, nu este vulnerabilă.

Tehnologia AMD SEV este utilizată pentru izolarea mașinilor virtuale de către furnizori de cloud precum Amazon Web Services (AWS), Google Cloud, Microsoft Azure și Oracle Compute Infrastructure (OCI). Protecția AMD SEV este realizată prin criptarea la nivel de hardware a memoriei mașinilor virtuale. În plus, prin intermediul extensiei SEV-ES (Encrypted State), se protejează registrele CPU. Accesul la datele decriptate este permis doar sistemului gazdă curent, iar celelalte mașini virtuale și hipervizorul, în cazul în care încearcă să acceseze această memorie, primesc un set de date criptat.

În a treia generație a procesorului AMD EPYC a fost implementat un extensie suplimentară SEV-SNP (Secure Nested Paging), care asigură funcționarea sigură cu tabelele de pagini de memorie înnodat. Pe lângă criptarea generală a memoriei și izolarea registrelor, SEV-SNP include mijloace suplimentare pentru protejarea integrității memoriei, care împiedică modificările în VM din partea hypervisor-ului. Managementul cheilor de criptare se face de partea procesorului PSP (Platform Security Processor) încorporat în cip, realizat pe baza arhitecturii ARM.

Esenta metodei de atac propuse constă în utilizarea instrucțiunii INVD pentru a invalida blocurile (liniile) din cache-ul paginilor murdare (dirty) fără a rescrie datele acumulate în cache în memorie (write-back). Astfel, metoda permite eliminarea datelor modificate din cache, fără a schimba starea memoriei. Pentru a realiza atacul, se propune utilizarea excepțiilor software (fault injection) pentru a întrerupe funcționarea mașinii virtuale în două locuri: în primul loc, atacatorul invocă instrucțiunea „wbnoinvd” pentru a rescrie toate operațiunile de scriere acumulate în cache în memorie, iar în al doilea loc, invocă instrucțiunea „invd” pentru a readuce operațiunile de scriere neînregistrate în memorie la vechiul lor stadiu.

Pentru a-și verifica sistemele de vulnerabilitate, a fost publicat un prototip de exploit care permite executarea unei substituții de excepție în mașina virtuală protejată prin AMD SEV și revenirea la starea veche a modificărilor neînregistrate în memorie în VM. Revenirea modificării poate fi utilizată pentru a schimba fluxul de execuție al programului prin întoarcerea la vechea adresă de întoarcere în stivă sau pentru a fi utilizată la introducerea parametrilor dintr-o sesiune anterioară, pentru care a fost realizată anterior autentificarea, prin returnarea valorii semnului de autenticitate.

De exemplu, cercetătorii au demonstrat posibilitatea aplicării metodei CacheWarp pentru a efectua un atac Bellcore asupra implementării algoritmului RSA-CRT în biblioteca ipp-crypto, ceea ce a permis recuperarea cheii private prin substituirea erorilor în timpul calculului semnăturii digitale. De asemenea, s-a arătat cum pot fi schimbate parametrii de verificare a sesiunii la OpenSSH în timpul unei conexiuni la distanță la sistemul gazdă, iar apoi se poate modifica starea de verificare în timpul execuției utilitarului sudo pentru a obține drepturi root în Ubuntu 20.04. Funcționarea exploit-ului a fost verificată pe sisteme cu procesoare AMD EPYC 7252, 7313P și 7443.

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