Ranjivost u AMD CPU-ima koja vam omogućuje zaobilaženje SEV (Secure Encrypted Virtualization) zaštitnog mehanizma

Istraživači u Helmholtz Centru za informacijsku sigurnost (CISPA) objavili su novu metodu napada CacheWarp za kompromitaciju sigurnosnog mehanizma AMD SEV (Secure Encrypted Virtualization) koji se koristi u virtualizacijskim sustavima za zaštitu virtualnih strojeva od smetnji hipervizora ili administratora glavnog sustava. Predložena metoda omogućuje napadaču s pristupom hipervizoru da izvrši kod treće strane i poveća privilegije u virtualnom stroju zaštićenom pomoću AMD SEV-a.

Napad se temelji na iskorištavanju ranjivosti (CVE-2023-20592) uzrokovane neispravnim radom cache memorije tijekom izvođenja INVD procesorske instrukcije, uz pomoć koje je moguće postići neusklađenost podataka u memoriji i cacheu. , i zaobilazni mehanizmi za održavanje integriteta memorije virtualnog stroja, implementirani na temelju proširenja SEV-ES i SEV-SNP. Ranjivost utječe na AMD EPYC procesore od prve do treće generacije.

Za treću generaciju AMD EPYC procesora (Zen 3), problem je riješen u ažuriranju mikrokoda za studeni koje je jučer objavio AMD (popravak ne rezultira nikakvom degradacijom performansi). Za prvu i drugu generaciju AMD EPYC (Zen 1 i Zen 2), zaštita nije osigurana, budući da ti CPU-i ne podržavaju proširenje SEV-SNP, koje pruža kontrolu integriteta za virtualna računala. Četvrta generacija procesora AMD AMD EPYC “Genoa” temeljena na mikroarhitekturi “Zen 4” nije ranjiva.

AMD SEV tehnologiju koriste za izolaciju virtualnog stroja pružatelji usluga oblaka kao što su Amazon Web Services (AWS), Google Cloud, Microsoft Azure i Oracle Compute Infrastructure (OCI). AMD SEV zaštita implementirana je kroz šifriranje memorije virtualnog stroja na hardverskoj razini. Dodatno, proširenje SEV-ES (Encrypted State) štiti CPU registre. Samo trenutni gostujući sustav ima pristup dekriptiranim podacima, a kada druga virtualna računala i hipervizor pokušaju pristupiti ovoj memoriji, primaju šifrirani skup podataka.

Treća generacija AMD EPYC procesora uvela je dodatno proširenje, SEV-SNP (Secure Nested Paging), koje osigurava siguran rad ugniježđenih tablica memorijskih stranica. Uz opću enkripciju memorije i izolaciju registra, SEV-SNP implementira dodatne mjere za zaštitu integriteta memorije sprječavanjem promjena VM-a od strane hipervizora. Enkripcijskim ključevima se upravlja na strani zasebnog PSP (Platform Security Processor) procesora ugrađenog u čip, implementiranog na temelju ARM arhitekture.

Bit predložene metode napada je korištenje INVD instrukcije za poništavanje blokova (linija) u predmemorij prljavih stranica bez izbacivanja podataka nakupljenih u predmemoriju u memoriju (write-back). Dakle, metoda vam omogućuje izbacivanje promijenjenih podataka iz predmemorije bez promjene stanja memorije. Za izvođenje napada predlaže se korištenje softverskih iznimaka (ubacivanje greške) za prekid rada virtualnog stroja na dva mjesta: prvo, napadač poziva instrukciju "wbnoinvd" za resetiranje svih operacija pisanja memorije akumuliranih u predmemoriju, a na drugom mjestu poziva instrukciju "invd" za vraćanje operacija pisanja koje nisu prikazane u memoriji u staro stanje.

Kako biste provjerili svoje sustave na ranjivosti, objavljen je prototip iskorištavanja koji vam omogućuje umetanje iznimke u virtualni stroj zaštićen putem AMD SEV-a i vraćanje promjena u VM-u koje nisu vraćene u memoriju. Vraćanje promjene može se koristiti za promjenu tijeka programa vraćanjem stare povratne adrese na stogu ili za korištenje parametara prijave stare sesije koja je prethodno bila autentificirana vraćanjem vrijednosti atributa provjere autentičnosti.

Na primjer, istraživači su pokazali mogućnost korištenja metode CacheWarp za izvođenje Bellcore napada na implementaciju RSA-CRT algoritma u ipp-crypto biblioteci, što je omogućilo oporavak privatnog ključa kroz zamjenu pogreške prilikom izračuna digitalnog potpis. Također pokazuje kako možete promijeniti parametre provjere sesije u OpenSSH kada se daljinski povezujete sa sustavom za goste, a zatim promijeniti stanje provjere prilikom pokretanja uslužnog programa sudo za dobivanje root prava u Ubuntu 20.04. Eksploatacija je testirana na sustavima s procesorima AMD EPYC 7252, 7313P i 7443.

Izvor: opennet.ru

Dodajte komentar