BadRAM rünnak, mis võimaldab ümber minna AMD CPU SEV-SNP autentimismehhanismile

Leuveni, Lübecki ja Birmingham'i ülikoolide teadlaste rühm on välja töötanud BadRAM rünnaku meetodi (CVE-2024-21944), mis võimaldab ületada autentimise mehhanismi ja ohustada keskkondi, mis on kaitstud AMD protsessorites SEV-SNP laienduse kasutamisega. Rünnaku teostamiseks peab kurjategija, välja arvatud harvadel juhtudel, omama füüsilist juurdepääsu mälumoodulitele ning suutma käivitada koodi nullkaitsest tasandil (ring0) serveris, mis käitab kaitstud külgkeskkondi.

AMD SEV (Secure Encrypted Virtualization) laiendused on suunatud virtuaalmasinate mälutegevuse terviklikkuse tagamisele ning nende kaitsmisele süsteemi hosti administraatori sekkumise ja analüüsi eest, kes võib hüperviisori tasemel koodi käitada. Alguses piirdus AMD SEV kaitse külalissüsteemi mälusisalduse krüpteerimise ja registrite isoleerimisega, kuid hiljem rakendati AMD EPYC protsessorites täiendavat SEV-SNP (Secure Nested Paging) laiendust mälu pesatabelite turvaliseks haldamiseks, mis garanteerib mälutegevuse terviklikkuse ja ei lubanud hüperviisoril teha muudatusi külalissüsteemi mälus.

AMD SEV-SNP mehhanism loodi, et spioonid või andmekeskuste ja pilveteenuste töötajad, kus töötavad kaitstud külgsüsteemid, ei saaks sekkuda külgsüsteemi toimimisse. Pakutud BadRAM rünnakutehnika võimaldab ümber käia antud garantiidega, muutes DDR4 või DDR5 mälumoodulite SPD (Serial Presence Detect) metaandmeid. Eduka rünnaku korral saab küberkurjategija üle kirjutada külgsüsteemi mälu krüpteeritud andmed (šifrite tasemel, dekrüpteerimise võimaluseta) ja mööduda atesteerimismehhanismist, näiteks peites tagaukse sisestamise kaitstud virtuaalmasinasse, kasutades SEV-SNP tehnoloogiat.

Rünnak põhineb SPD vale mälu parameetrite esitlemisel, mis sunnib protsessorit pöörduma mitteeksisteerivatele aadressidele, mis kajastuvad olemasolevates mälupiirkondades. Ründaja saab SPD-d kohandada nii, et mälumoodul tagastab protsessorile suuruse, mis ületab mälumooduli tegelikke omadusi. Pärast seda saab ründaja luua kaardistuse välja mõeldud mitteeksisteerivast mälust reaalsele alale DRAM-is, mis on juba krüpteeritud kaitstud külalissüsteemides. Tulemuseks on olukord, kus erinevad aadressid viitavad ühele ja samale füüsilisele mälule (kaks ala peegeldatakse ühele alale DRAM-kiibil), st välja mõeldud peegelduse mäluaadressile pääseb ligi juba kasutusel olevale reaalsele mälule ja kõrvaldatakse protsessori mälukaitse mehhanismid.

BadRAM rünnak, mis võimaldab ümber minna AMD CPU SEV-SNP autentimismehhanismile

Rünnaku sooritamiseks piisab, kui kokku koguda lihtne programmeerija, mille maksumus on umbes 10 dollarit, ja mis koosneb Raspberry Pi Pico mikrokontrollerist, DDR4/DDR5 moodulite pesast ja toiteallikast. Rünnaku teostamiseks kasutatavad tööriistad, tuuma moodul ja ekspluateerimise prototüübid on saadaval GitHubis.

BadRAM rünnak, mis võimaldab ümber minna AMD CPU SEV-SNP autentimismehhanismile

Mõnede tootjate kiipide puhul, kus SPD ümberkirjutamine ei ole keelatud, on rünnaku sooritamine võimalik tarkvaraliselt, ilma füüsilise juurdepääsuta serverile. Näiteks saab tarkvara abil muuta Corsairi RGB-valgustusega mälu moodulite parameetreid. Kui rakendada täielikult tarkvaralist rünnakut, võib süsteem olla kompromiteeritud, näiteks pahatahtliku BIOS-i uuenduse tõttu või administraatorite sekkumise kaudu. serverite pilveteenustes.

BadRAM rünnak, mis võimaldab ümber minna AMD CPU SEV-SNP autentimismehhanismile

Meetodi töö tõenduseks on näidatud kahte rünnakut. Esimeses rünnakus näidatakse salakirja korduvate esitamise võimalust — AMD SEV kasutamisel hoitakse andmeid mälus krüpteeritud kujul ja ründaja ei suuda selle sisu määrata, kuid tal on võimalus lugeda krüpteeritud andmeid ja seejärel asendada need muu krüpteeritud sisuga.

Teises rünnakus parodiseeritakse SEV-SNP sertifitseerimismehhanismi ületamise võimalust, mis pakub krüptograafilist tõendit virtuaalmasina terviklikkuse kohta, mis töötab kaitstud keskkonnas. Ründaja saab kinni püüda korrektse virtuaalmasina sertifitseerimisaruande ja seejärel asendada selle kompromiteeritud virtuaalmasina jaoks, näiteks peites tagaukse jäljed.

Probleem mõjutab 3. ja 4. põlvkonna AMD EPYC seeria protsessoreid, mille koodinimed on Milan, Milan-X, Genoa, Bergamo, Genoa-X ja Siena. AMD on juba välja andnud SEV-firmware'i värskenduse, milles on rakendatud ALIAS_CHECK kontroll, mis takistab mälu manipuleerimist, mis on seotud käsitletava rünnakuga.

Inteli pakutavad tehnoloogiad Scalable SGX ja TDX on rünnakute suhtes kaitstud, kuna vajalikud kontrollid on algselt olemas. Klassikaline tehnoloogia Intel SGX, mille Intel 2021. aastal aegunuks kuulutas, on osaliselt rünnaku eeltingimustes (sarnaselt varem tuntud rünnakule MemBuster, ründaja võib analüüsida krüpteeritud mälu juurdepääse, st on võimalik vaid krüpteeritud teksti lugemine, kuid mitte selle üle kirjutamine). ARM-i protsessorite CCA (Confidential Compute Architecture) laienduste testimist ei ole läbi viidud.

Lisaks teatatakse veel ühest haavatavusest, mis on seotud AMD SEV-SNP-ga. Haavatavus tuvastati AMD arenduses oleva QEMU emulaatori forkis, mis on ette nähtud käivitamiseks virtuaalmasinad SEV-SNP. Probleem võimaldab host- keskkonna administraatoril saada root-juurdepääsu külalisoperatsioonisüsteemidele manipulatsioonide kaudu ACPI tabelitega. Haavatavus tuleneb sellest, et külalisoperatsioonisüsteemi laadimisel viiakse läbi Linuxi tuuma, algse RAM-diski ja tuuma parameetrite terviklikkuse kontrollimine, kuid ACPI tabeleid ei arvesse võeta, mille kaudu hüpervisor võib esitada spetsiaalselt vormindatud AML (ACPI Masinakoodi) koodi, mis on mõeldud täitmiseks külalis keskkonnas. On väidetud, et probleem ei ole QEMU-spetsiifiline ja avaldub igasugustes hüpervisorites ja emulaatorites, kuna Linuxi tuum usaldab igasuguseid ACPI andmeid, mis on saadud hüpervisorilt.

Vaata videot
Vaata videot


Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster