A Google biztonsági kutatói közzétették a sebezhetőségről (CVE-2024-56161) szóló információkat az AMD processzorokban, amelyek a mikrokód-látható felületet érintik, és lehetővé teszik a digitális aláírás ellenőrzési mechanizmusának megkerülését a mikrokód-frissítések során. A módosított mikrokód betöltése lehetővé teszi az AMD SEV (Secure Encrypted Virtualization) mechanizmusának kompromittálását, amelyet a virtualizáló rendszerek alkalmaznak a virtuális gépek védelme érdekében a hypervisor vagy a hosztrendszer adminisztrátora általi beavatkozástól.
A sebezhetőség rosszindulatú hash-függvény használatából adódik a mikrokód CPU-ba való betöltése utáni digitális aláírás ellenőrző kódjában. A támadáshoz adminisztrátori jogok szükségesek a helyi rendszeren (a kód végrehajtásának lehetősége a nullás védelmi szinten (ring0), anélkül, hogy virtuális gépben lennénk).
A támadás során be lehet avatkozni a védett vendégrendszerek működésébe, amelyeket az AMD SEV (Secure Encrypted Virtualization) és SEV-SNP (Secure Nested Paging) kiterjesztések védelmére hoztak létre, és amelyek a memória integritásának garantálását biztosítják. virtuális gépekhez, izolálva a processzorregisztereket és biztonságos működést biztosítva a beágyazott memóriaoldaltáblák kezelésével. Az AMD SEV mechanizmust azért hozták létre, hogy az adatközpontok és felhőszolgáltatók személyzete ne tudja módosítani vagy elemezni a védett vendégrendszerek memóriatartalmát, valamint ne zavarja meg a számításokat.
A kutatók elkészítettek egy prototípus exploitot, amely lehetővé teszi tetszőleges, digitális aláírás nélküli mikrokód betöltését a CPU-ba. A sebezhetőség veszélyének bemutatására egy mikrokód-frissítést javasoltak, amely megváltoztatja az RDRAND utasítás működési logikáját, amely az egyik entropiaforrásként szolgál a pseudorandom számgenerátorokban, amelyeket a kulcsok létrehozásakor, kriptográfiai műveletek során és véletlenszerű azonosítók generálásakor használnak.
A módosítás azt eredményezi, hogy a RDRAND utasítás csak 4-es számot ad vissza, ahelyett, hogy véletlenszerű sorozatot generálna. A bizalmas számítási rendszerek elleni valós támadások megelőzése érdekében a módosított mikrokód nullázza a CF (carry flag) zászlót, azaz hibásnak jelöli a kibocsátott értéket. További részleteket és eszközöket a módosított mikrokód generálásához március 5-én terveznek nyilvánosságra hozni, hogy a felhasználóknak legyen idejük telepíteni a javítást rendszereikre. A támadás sikeres példája bemutatásra került szerverek az AMD EPYC 7B13 (Milan) és az AMD Ryzen 9 7940HS (Phoenix) processzorokkal.
Az AMD jelentésében szerepel, hogy a sérülékenység az AMD processzorok 1-4. generációs Zen mikroarchitektúrájában jelentkezik. A sérülékenységet orvosló mikrokód frissítése 2024. december 13-án jelent meg az AMD EPYC 7001, 7002 és 7003 sorozatú processzorokhoz (Naples, Rome, Milan és Milan-X), míg december 16-án a 9004 sorozatú processzorokhoz (Genoa, Genoa-X és Bergamo/Siena). A SEV-SNP tanúsítást használó rendszereken a sérülékenység kezeléséhez további AMD SEV firmware frissítés is szükséges (amely a gyártók BIOS frissítéseivel együtt érkezik).
További jelentések érkeztek egy másik AMD processzorokban található sérülékenységről, amely lehetővé teszi a mellékcsatornás támadást a vendég rendszerekben végzett számítások információinak kinyerésére, amelyek az AMD SEV mechanizmusával védettek. A probléma az AMD EPYC processzorok 1-4. generációját érinti, és összefügg a processzor gyorsítótárából történő adatok kinyerésének lehetőségével, amelyek a védett vendég rendszerek működése során halmozódnak fel. A gyorsítótár tartalmának elemzésére használható a Prime+Probe módszer, amely a gyorsítótár kitöltését jelenti egy referenciaérték halmazzal, és a hozzáférés idejének mérésével határozza meg a változásokat a többszöri kitöltés során. Megjegyzik, hogy a támadás blokkolására korábban a Spectre-támadások ellen javasolt módszerek alkalmazhatók.
Forrás: opennet.ru
