Ranjivost u AMD CPU-ima koja vam omogućava da zaobiđete zaštitni mehanizam SEV (Secure Encrypted Virtualization)

Istraživači iz Helmholtz centra za informacionu sigurnost (CISPA) objavili su novi metod napada CacheWarp kako bi kompromitovali sigurnosni mehanizam AMD SEV (Secure Encrypted Virtualization) koji se koristi u virtuelizacijskim sistemima za zaštitu virtuelnih mašina od smetnji hipervizora ili administratora host sistema. Predloženi metod omogućava napadaču koji ima pristup hipervizoru da izvrši kod treće strane i poveća privilegije u virtuelnoj mašini zaštićenoj pomoću AMD SEV.

Napad se zasniva na iskorišćavanju ranjivosti (CVE-2023-20592) uzrokovane nepravilnim radom keš memorije tokom izvršavanja instrukcije INVD procesora, uz pomoć koje je moguće postići neusklađenost podataka u memoriji i kešu , i zaobilaznim mehanizmima za održavanje integriteta memorije virtuelne mašine, implementiranim na osnovu ekstenzija SEV-ES i SEV-SNP. Ranjivost pogađa AMD EPYC procesore od prve do treće generacije.

Za treću generaciju AMD EPYC procesora (Zen 3), problem je riješen u novembarskom ažuriranju mikrokoda koje je AMD juče objavio (popravka ne rezultira bilo kakvom degradacijom performansi). Za prvu i drugu generaciju AMD EPYC (Zen 1 i Zen 2) zaštita nije obezbeđena, jer ovi CPU ne podržavaju SEV-SNP ekstenziju, koja obezbeđuje kontrolu integriteta za virtuelne mašine. Četvrta generacija AMD AMD EPYC “Genoa” procesora zasnovanih na “Zen 4” mikroarhitekturi nije ranjiva.

AMD SEV tehnologiju koriste za izolaciju virtuelnih mašina od strane provajdera oblaka kao što su Amazon Web Services (AWS), Google Cloud, Microsoft Azure i Oracle Compute Infrastructure (OCI). AMD SEV zaštita je implementirana putem šifriranja na nivou hardvera memorije virtuelne mašine. Dodatno, ekstenzija SEV-ES (Encrypted State) štiti CPU registre. Samo trenutni gostujući sistem ima pristup dešifrovanim podacima, a kada druge virtuelne mašine i hipervizor pokušaju da pristupe ovoj memoriji, dobijaju šifrovani skup podataka.

Treća generacija AMD EPYC procesora uvela je dodatnu ekstenziju, SEV-SNP (Secure Nested Paging), koja osigurava siguran rad tablica stranica ugniježđene memorije. Pored opšte šifrovanja memorije i izolacije registara, SEV-SNP implementira dodatne mere za zaštitu integriteta memorije sprečavanjem promena na VM od strane hipervizora. Ključevima za šifrovanje se upravlja na strani zasebnog PSP (Platform Security Processor) procesora ugrađenog u čip, implementiranog na bazi ARM arhitekture.

Suština predložene metode napada je korištenje INVD instrukcije za poništavanje blokova (linija) u kešu prljavih stranica bez dampiranja podataka akumuliranih u kešu u memoriju (povratni upis). Dakle, metoda vam omogućava da izbacite promijenjene podatke iz keša bez promjene stanja memorije. Za izvođenje napada, predlaže se korištenje softverskih izuzetaka (ubacivanje greške) za prekid rada virtualne mašine na dva mjesta: na prvom mjestu, napadač poziva instrukciju “wbnoinvd” da resetuje sve operacije pisanja memorije akumulirane u keš memoriju, a na drugom mjestu poziva “invd” instrukciju za vraćanje operacija pisanja koje se ne odražavaju u memoriji u staro stanje.

Da biste provjerili vaše sisteme na ranjivosti, objavljen je prototip eksploatacije koji vam omogućava da ubacite izuzetak u virtuelnu mašinu zaštićenu preko AMD SEV-a i vratite promjene u VM koje nisu vraćene na memoriju. Vraćanje promjene može se koristiti za promjenu toka programa vraćanjem stare povratne adrese na stog ili za korištenje parametara za prijavu stare sesije koja je prethodno bila provjerena vraćanjem vrijednosti atributa provjere autentičnosti.

Na primjer, istraživači su demonstrirali mogućnost korištenja metode CacheWarp za izvođenje Bellcore napada na implementaciju RSA-CRT algoritma u ipp-crypto biblioteci, što je omogućilo povrat privatnog ključa zamjenom greške prilikom izračunavanja digitalnog potpis. Takođe pokazuje kako možete promijeniti parametre za verifikaciju sesije na OpenSSH kada se daljinski povezujete na gostujući sistem, a zatim promijeniti stanje verifikacije kada pokrećete sudo uslužni program da biste dobili root prava u Ubuntu 20.04. Eksploatacija je testirana na sistemima sa AMD EPYC 7252, 7313P i 7443 procesorima.

izvor: opennet.ru

Dodajte komentar