Kerentanan ing CPU AMD sing ngidini sampeyan ngliwati mekanisme proteksi SEV (Secure Encrypted Virtualization)

Peneliti ing Pusat Keamanan Informasi Helmholtz (CISPA) nerbitake cara serangan CacheWarp anyar kanggo kompromi mekanisme keamanan AMD SEV (Secure Encrypted Virtualization) sing digunakake ing sistem virtualisasi kanggo nglindhungi mesin virtual saka gangguan dening hypervisor utawa administrator sistem host. Cara sing diusulake ngidini panyerang kanthi akses menyang hypervisor kanggo nglakokake kode pihak katelu lan nambah hak istimewa ing mesin virtual sing dilindhungi nggunakake AMD SEV.

Serangan kasebut adhedhasar panggunaan kerentanan (CVE-2023-20592) sing disebabake dening operasi cache sing salah sajrone nglakokake instruksi prosesor INVD, kanthi bantuan sing bisa entuk data sing ora cocog ing memori lan cache. , lan mekanisme lulus kanggo njaga integritas memori mesin virtual, dipun ginakaken adhedhasar ekstensi SEV-ES lan SEV-SNP. Kerentanan mengaruhi prosesor AMD EPYC saka generasi pisanan nganti generasi katelu.

Kanggo pemroses AMD EPYC generasi katelu (Zen 3), masalah kasebut dirampungake ing nganyari microcode November sing dirilis wingi dening AMD (fix ora nyebabake degradasi kinerja). Kanggo generasi pisanan lan kaloro AMD EPYC (Zen 1 lan Zen 2), proteksi ora diwenehake, amarga CPU iki ora ndhukung extension SEV-SNP, sing nyedhiyakake kontrol integritas kanggo mesin virtual. Generasi kaping papat prosesor AMD AMD EPYC "Genoa" adhedhasar microarchitecture "Zen 4" ora rentan.

Teknologi AMD SEV digunakake kanggo isolasi mesin virtual dening panyedhiya maya kayata Amazon Web Services (AWS), Google Cloud, Microsoft Azure lan Oracle Compute Infrastructure (OCI). Pangreksan AMD SEV dileksanakake liwat enkripsi tingkat hardware saka memori mesin virtual. Kajaba iku, ekstensi SEV-ES (Encrypted State) nglindhungi registrasi CPU. Mung sistem tamu saiki duwe akses menyang data decrypted, lan nalika mesin virtual liyane lan hypervisor nyoba kanggo ngakses memori iki, padha nampa pesawat ndhelik data.

Generasi katelu pemroses AMD EPYC ngenalaken extension tambahan, SEV-SNP (Secure Nested Paging), sing njamin operasi aman saka tabel kaca memori nested. Saliyane enkripsi memori umum lan ndhaptar isolasi, SEV-SNP ngetrapake langkah tambahan kanggo nglindhungi integritas memori kanthi nyegah owah-owahan ing VM dening hypervisor. Tombol enkripsi diatur ing sisih PSP kapisah (Platform Security Processor) prosesor dibangun ing chip, dipun ginakaken ing basis saka arsitektur ARM.

Inti saka metode serangan sing diusulake yaiku nggunakake instruksi INVD kanggo mbatalake blok (garis) ing cache kaca sing reged tanpa mbuwang data sing diklumpukake ing cache menyang memori (tulis-bali). Mangkono, cara kasebut ngidini sampeyan ngilangi data sing wis diganti saka cache tanpa ngganti status memori. Kanggo nindakake serangan, disaranake nggunakake pangecualian piranti lunak (injeksi fault) kanggo ngganggu operasi mesin virtual ing rong panggonan: ing wiwitan, panyerang nelpon instruksi "wbnoinvd" kanggo ngreset kabeh operasi nulis memori sing diklumpukake ing. cache, lan ing panggonan liya nelpon "invd" instruction kanggo operasi nulis bali ora dibayangke ing memori kanggo negara lawas.

Kanggo mriksa sistem kanggo kerentanan, prototipe eksploitasi wis diterbitake sing ngidini sampeyan nglebokake pangecualian menyang mesin virtual sing dilindhungi liwat AMD SEV lan mbaleni owah-owahan ing VM sing durung direset menyang memori. Rollback saka owah-owahan bisa digunakake kanggo ngganti aliran program dening bali alamat bali lawas ing tumpukan, utawa kanggo nggunakake paramèter login saka sesi lawas sing sadurunge wis dikonfirmasi kanthi ngasilake nilai atribut otentikasi.

Contone, peneliti nduduhake kamungkinan nggunakake metode CacheWarp kanggo nindakake serangan Bellcore ing implementasine saka algoritma RSA-CRT ing perpustakaan ipp-crypto, sing ndadekake iku bisa kanggo mbalekake kunci pribadi liwat substitusi kesalahan nalika ngitung digital. teken. Iki uga nuduhake carane sampeyan bisa ngganti paramèter verifikasi sesi menyang OpenSSH nalika nyambungake jarak jauh menyang sistem tamu, banjur ngganti status verifikasi nalika mbukak sarana sudo kanggo entuk hak root ing Ubuntu 20.04. Eksploitasi wis diuji ing sistem kanthi prosesor AMD EPYC 7252, 7313P lan 7443.

Source: opennet.ru

Add a comment