Az AMD CPU-k sérülékenysége, amely lehetővé teszi a SEV (Secure Encrypted Virtualization) védelmi mechanizmus megkerülését

A Helmholtz Center for Information Security (CISPA) kutatói új CacheWarp támadási módszert tettek közzé, amellyel a virtualizációs rendszerekben használt AMD SEV (Secure Encrypted Virtualization) biztonsági mechanizmust védik meg a virtuális gépek hipervizor vagy gazdagép rendszergazdája általi interferencia ellen. A javasolt módszer lehetővé teszi a hipervizorhoz hozzáféréssel rendelkező támadók számára, hogy harmadik féltől származó kódot hajtsanak végre, és jogosultságokat emeljenek ki egy AMD SEV-vel védett virtuális gépen.

A támadás egy sérülékenység (CVE-2023-20592) felhasználásán alapul, amelyet a gyorsítótár hibás működése okozott az INVD processzor utasítás végrehajtása során, és amely segítségével lehetséges a memória és a gyorsítótár adateltérése. , valamint a virtuális gép memóriájának integritásának megőrzését szolgáló bypass mechanizmusok, amelyeket a SEV-ES és SEV-SNP kiterjesztések alapján valósítottak meg. A sérülékenység az AMD EPYC processzorokat az elsőtől a harmadik generációig érinti.

A harmadik generációs AMD EPYC processzorok (Zen 3) esetében a problémát az AMD tegnap kiadott novemberi mikrokódfrissítése oldja meg (a javítás nem eredményez teljesítményromlást). Az AMD EPYC első és második generációja (Zen 1 és Zen 2) esetében nem biztosított a védelem, mivel ezek a CPU-k nem támogatják a SEV-SNP kiterjesztést, amely a virtuális gépek integritásvezérlését biztosítja. A „Zen 4” mikroarchitektúrán alapuló AMD AMD EPYC „Genoa” processzorok negyedik generációja nem sérülékeny.

Az AMD SEV technológiát olyan felhőszolgáltatók használják a virtuális gépek elkülönítésére, mint az Amazon Web Services (AWS), a Google Cloud, a Microsoft Azure és az Oracle Compute Infrastructure (OCI). Az AMD SEV védelmet a virtuális gép memóriájának hardverszintű titkosításával valósítják meg. Ezenkívül a SEV-ES (titkosított állapot) bővítmény védi a CPU-regisztereket. Csak az aktuális vendégrendszer fér hozzá a visszafejtett adatokhoz, és amikor más virtuális gépek és a hypervisor megpróbál hozzáférni ehhez a memóriához, titkosított adatkészletet kapnak.

Az AMD EPYC processzorok harmadik generációja egy további bővítményt, a SEV-SNP-t (Secure Nested Paging) vezette be, amely biztosítja a beágyazott memórialaptáblák biztonságos működését. Az általános memóriatitkosításon és a regiszterek elkülönítésén kívül a SEV-SNP további intézkedéseket hajt végre a memória integritásának védelme érdekében, megakadályozva, hogy a hipervizor módosítsa a virtuális gépet. A titkosítási kulcsok kezelése a chipbe épített külön PSP (Platform Security Processor) processzor oldalán történik, ARM architektúra alapján.

A javasolt támadási módszer lényege, hogy az INVD utasítást használja a piszkos oldalak gyorsítótárában lévő blokkok (sorok) érvénytelenítésére anélkül, hogy a gyorsítótárban felhalmozott adatokat a memóriába ürítené (visszaírás). Így a módszer lehetővé teszi a megváltozott adatok kiürítését a gyorsítótárból a memória állapotának megváltoztatása nélkül. A támadás végrehajtásához szoftveres kivételek (hibainjektálás) alkalmazása javasolt a virtuális gép működésének két helyen történő megszakításához: először is a támadó meghívja a „wbnoinvd” utasítást, hogy visszaállítsa az összes memóriaírási műveletet. a gyorsítótárat, másodsorban pedig meghívja az „invd” utasítást, hogy a memóriában nem tükröződő írási műveleteket a régi állapotba állítsa vissza.

A rendszerek sebezhetőségeinek ellenőrzésére egy kizsákmányoló prototípust tettek közzé, amely lehetővé teszi, hogy kivételt szúrjon be egy AMD SEV-vel védett virtuális gépbe, és visszaállítsa a virtuális gép azon módosításait, amelyek nem lettek visszaállítva a memóriába. A módosítás visszagörgetése felhasználható a program menetének megváltoztatására egy régi visszatérési cím visszaadásával a veremben, vagy egy régi munkamenet bejelentkezési paramétereinek használatával, amelyet korábban hitelesítési attribútumérték visszaadásával hitelesítettek.

Például a kutatók bemutatták annak lehetőségét, hogy a CacheWarp módszerrel Bellcore támadást hajtsanak végre az RSA-CRT algoritmus megvalósítása ellen az ipp-crypto könyvtárban, amely lehetővé tette a privát kulcs visszaállítását hibahelyettesítéssel a digitális számítások során. aláírás. Azt is bemutatja, hogyan módosíthatja a munkamenet-ellenőrzési paramétereket OpenSSH-ra, amikor távolról csatlakozik egy vendégrendszerhez, majd módosíthatja az ellenőrzési állapotot a sudo segédprogram futtatásakor, hogy root jogokat szerezzen az Ubuntu 20.04-ben. Az exploitot AMD EPYC 7252, 7313P és 7443 processzorokkal rendelkező rendszereken tesztelték.

Forrás: opennet.ru

Hozzászólás