AMD CPU ievainojamība, kas ļauj apiet SEV (Secure Encrypted Virtualization) aizsardzības mehānismu

Helmholtz informācijas drošības centra (CISPA) pētnieki ir publicējuši jaunu CacheWarp uzbrukuma metodi, lai apdraudētu AMD SEV (Secure Encrypted Virtualization) drošības mehānismu, ko izmanto virtualizācijas sistēmās, lai aizsargātu virtuālās mašīnas no hipervizora vai resursdatora sistēmas administratora iejaukšanās. Piedāvātā metode ļauj uzbrucējam ar piekļuvi hipervizoram izpildīt trešās puses kodu un palielināt privilēģijas virtuālajā mašīnā, kas aizsargāta, izmantojot AMD SEV.

Uzbrukuma pamatā ir ievainojamības (CVE-2023-20592) izmantošana, ko izraisījusi nepareiza kešatmiņas darbība INVD procesora instrukcijas izpildes laikā, ar kuras palīdzību iespējams panākt datu nesakritību atmiņā un kešatmiņā. , un apiešanas mehānismi virtuālās mašīnas atmiņas integritātes uzturēšanai, kas ieviesti, pamatojoties uz paplašinājumiem SEV-ES un SEV-SNP. Ievainojamība ietekmē AMD EPYC procesorus no pirmās līdz trešajai paaudzei.

Trešās paaudzes AMD EPYC procesoriem (Zen 3) problēma ir atrisināta novembra mikrokoda atjauninājumā, ko vakar izlaida AMD (labojums neizraisa veiktspējas pasliktināšanos). Pirmajai un otrajai AMD EPYC paaudzei (Zen 1 un Zen 2) aizsardzība netiek nodrošināta, jo šie CPU neatbalsta SEV-SNP paplašinājumu, kas nodrošina virtuālo mašīnu integritātes kontroli. Ceturtās paaudzes AMD AMD EPYC “Genoa” procesori, kuru pamatā ir “Zen 4” mikroarhitektūra, nav ievainojami.

AMD SEV tehnoloģiju virtuālās mašīnas izolācijai izmanto mākoņpakalpojumu sniedzēji, piemēram, Amazon Web Services (AWS), Google Cloud, Microsoft Azure un Oracle Compute Infrastructure (OCI). AMD SEV aizsardzība tiek ieviesta, izmantojot virtuālās mašīnas atmiņas aparatūras līmeņa šifrēšanu. Turklāt SEV-ES (šifrētais stāvoklis) paplašinājums aizsargā CPU reģistrus. Tikai pašreizējai viesu sistēmai ir piekļuve atšifrētajiem datiem, un, kad citas virtuālās mašīnas un hipervizors mēģina piekļūt šai atmiņai, tie saņem šifrētu datu kopu.

Trešās paaudzes AMD EPYC procesori ieviesa papildu paplašinājumu SEV-SNP (Secure Nested Paging), kas nodrošina drošu ligzdotu atmiņas lapu tabulu darbību. Papildus vispārējai atmiņas šifrēšanai un reģistra izolācijai SEV-SNP ievieš papildu pasākumus, lai aizsargātu atmiņas integritāti, novēršot hipervizora veiktās izmaiņas VM. Šifrēšanas atslēgas tiek pārvaldītas atsevišķa mikroshēmā iebūvēta PSP (Platform Security Processor) procesora pusē, kas ieviests, pamatojoties uz ARM arhitektūru.

Ierosinātās uzbrukuma metodes būtība ir izmantot INVD instrukciju, lai padarītu nederīgus netīro lapu kešatmiņā esošos blokus (rindas), neizmetot kešatmiņā uzkrātos datus atmiņā (atrakstīšanu). Tādējādi šī metode ļauj izlikt mainītos datus no kešatmiņas, nemainot atmiņas stāvokli. Lai veiktu uzbrukumu, tiek piedāvāts izmantot programmatūras izņēmumus (kļūdu ievadīšanu), lai pārtrauktu virtuālās mašīnas darbību divās vietās: pirmkārt, uzbrucējs izsauc “wbnoinvd” instrukciju, lai atiestatītu visas atmiņas rakstīšanas darbības, kas uzkrātas kešatmiņu un, otrkārt, izsauc invd instrukciju, lai atgrieztu atmiņā neatspoguļotās rakstīšanas darbības vecajā stāvoklī.

Lai pārbaudītu, vai sistēmās nav ievainojamību, ir publicēts ekspluatācijas prototips, kas ļauj ievietot izņēmumu virtuālajā mašīnā, kas aizsargāta ar AMD SEV, un atsaukt izmaiņas virtuālajā mašīnā, kas nav atiestatītas atmiņā. Izmaiņu atcelšanu var izmantot, lai mainītu programmas plūsmu, atgriežot veco atgriešanas adresi stekā vai izmantotu vecas sesijas pieteikšanās parametrus, kas iepriekš tika autentificēti, atgriežot autentifikācijas atribūta vērtību.

Piemēram, pētnieki parādīja iespēju izmantot CacheWarp metodi, lai veiktu Bellcore uzbrukumu RSA-CRT algoritma ieviešanai ipp-crypto bibliotēkā, kas ļāva atgūt privāto atslēgu, izmantojot kļūdu aizstāšanu, aprēķinot digitālo vērtību. parakstu. Tas arī parāda, kā varat mainīt sesijas verifikācijas parametrus uz OpenSSH, kad attālināti izveidojat savienojumu ar viesu sistēmu, un pēc tam mainīt verifikācijas stāvokli, palaižot sudo utilītu, lai iegūtu saknes tiesības Ubuntu 20.04. Ekspluatācija ir pārbaudīta sistēmās ar AMD EPYC 7252, 7313P un 7443 procesoriem.

Avots: opennet.ru

Pievieno komentāru