En grupp forskare frĂ„n Univeristetet i Leuven, LĂŒbeck och Birmingham har utvecklat en BadRAM attackmetod (CVE-2024-21944) som gör det möjligt att kringgĂ„ autentiseringsmekanismen och kompromettera miljöer skyddade med SEV-SNP-tillĂ€gget i AMD-processorer. För att genomföra attacken mĂ„ste angriparen, med nĂ„gra fĂ„ undantag, fĂ„ fysisk tillgĂ„ng till minnesmodulerna och ha möjlighet att köra kod pĂ„ ring0-nivĂ„n pĂ„ servern som kör de skyddade gĂ€stmijöerna.
AMD SEV (Secure Encrypted Virtualization) -tillÀgg syftar till att ge garantier för minnesintegritet för virtuella maskiner samt skydda dem frÄn ingripande och analys av systemadministratörer som kan köra kod pÄ hypervisor-nivÄ. Ursprungligen var skyddet med AMD SEV begrÀnsat till att kryptera innehÄllet i gÀstsystemets minne och isolera register, men i senare AMD EPYC-processorer implementerades Àven SEV-SNP (Secure Nested Paging) för sÀker hantering av inbÀddade minnestabeller, vilket garanterar minnesintegritet och förhindrar modifieringar av gÀstsystemets minne av hypervisorn.
AMD SEV-SNP-mekanismen har skapats för att sÀkerstÀlla att underrÀttelsetjÀnster eller datacenterpersonal och molnleverantörer som kör skyddade gÀstsysten inte kan infiltrera driften av gÀstsystenet. Den föreslagna BadRAM-attackmetoden möjliggör kringgÄende av de givna garantierna genom att Àndra metadata i SPD (Serial Presence Detect) i DDR4- eller DDR5-minnesmoduler. Vid en framgÄngsrik attack kan angriparen skriva över krypterade data i gÀstsystemets minne (pÄ kryptotextsnivÄ, utan möjlighet till dekryptering) och kringgÄ autentiseringsmekanismen för att till exempel dölja införandet av en bakdörr i en virtuell maskin skyddad av SEV-SNP-teknologin.
Attacken baseras pÄ att stÀlla in falska parametrar för minnesmodulen i SPD, vilket fÄr processorn att referera till icke-existerande adresser som Äterspeglas pÄ existerande minnesomrÄden. Angriparen kan justera SPD pÄ sÄ sÀtt att minnesmodulen returnerar en storlek som överskrider moduls faktiska specifikationer. Efter detta kan angriparen mappa den pÄhittade icke-existerande minneskapaciteten till ett verkligt omrÄde i DRAM, som redan anvÀnds i krypterad form i skyddade gÀstsysten. Detta resulterar i en situation dÀr olika adresser pekar pÄ samma fysiska minne (tvÄ omrÄden Äterspeglas pÄ ett omrÄde i DRAM-chipet), vilket innebÀr att man kan nÄ den redan anvÀnda verkliga minneskapaciteten via en falsk Äterspeglad minnesadress och pÄ sÄ sÀtt kringgÄ minnesskyddsmekanismerna i CPU:n.

För att genomföra attacken rÀcker det med att samla en enkel programmerare som kostar cirka 10 dollar, bestÄende av en mikrokontroller Raspberry Pi Pico, en koppling för DDR4/DD5-moduler och en strömkÀlla. Verktygen som anvÀnds för attacken, kÀrnmodulen och prototyper av exploits finns pÄ GitHub.

För chips frÄn vissa tillverkare dÀr skrivskydd av SPD inte har aktiverats, Àr en attack möjlig att genomföra programvarumÀssigt utan fysisk Ätkomst till servern. Till exempel kan man programvarumÀssigt Àndra parametrarna för minnesmoduler frÄn Corsair med RGB-belysning. Vid en helt programvarubaserad attack kan systemet komprometteras, till exempel genom anvÀndning av en skadlig BIOS-uppdatering eller genom sabotage frÄn administratörer. servrar i molntjÀnster.

Som bevis för metodens effektivitet har tvĂ„ attacker demonstrerats. I den första attacken visades möjligheten att Ă„terskapa krypterad text â vid anvĂ€ndning av AMD SEV lagras data i minnet i krypterad form och angriparen kan inte avgöra innehĂ„llet, men har möjlighet att lĂ€sa de krypterade data och sedan ersĂ€tta dem med ett annat krypterat innehĂ„ll.
I den andra attacken demonstreras möjligheten att kringgÄ SEV-SNP:s autentiseringsmekanism, som ger kryptografisk bekrÀftelse av integriteten för en virtuell maskin som körs i en sÀker miljö. Angriparen kan fÄnga en rapport om autentisering frÄn den korrekta virtuella maskinen och sedan anvÀnda den för den komprometterade virtuella maskinen, till exempel genom att dölja spÄr av en backdoor-intrÄng.
Problemet berör tredje och fjÀrde generationens AMD EPYC-processorer som levereras under kodnamnen Milan, Milan-X, Genoa, Bergamo, Genoa-X och Siena. För att blockera sÄrbarheten har AMD redan slÀppt en SEV-firmwareuppdatering som implementerar ALIAS_CHECK, vilket förhindrar minnesmanipulation som Àr karakteristisk för den aktuella attacken.
De teknologier som erbjuds av Intel, Scalable SGX och TDX, Àr inte sÄrbara för attacken, eftersom de nödvÀndiga kontrollerna finns dÀr frÄn början. Den klassiska teknologin Intel SGX, som Intel 2021 klassade som förÄldrad, Àr delvis sÄrbar (pÄ liknande sÀtt som den tidigare kÀnda MemBuster-attacken, dÀr en angripare kan analysera Ätkomst till krypterat minne, d.v.s. endast lÀsa kryptoteksten, men inte skriva över den). Testning av CCA (Confidential Compute Architecture)-tillÀgg i ARM-processorer har inte genomförts.
Ytterligare en sÄrbarhet rapporteras relaterad till AMD SEV-SNP. SÄrbarheten har upptÀckts i en AMD-fork av emulatorn QEMU, avsedd för körning virtuella maskiner med SEV-SNP. Problemet gör det möjligt för en administratör i vÀrdmiljön att fÄ root-Ätkomst till gÀstsystemen genom manipulation av ACPI-tabeller. SÄrbarheten uppstÄr eftersom en integritetskontroll av Linux-kÀrnan, initial RAM-disk och kÀrnparameter utförs vid start av gÀstsystemet, men ACPI-tabeller beaktas inte, genom vilka hypervisorn kan stÀlla in sÀrskilt utformad AML (ACPI Machine Language) kod avsedd för körning i gÀstmiljön. Det pÄstÄs att problemet inte Àr specifikt för QEMU och förekommer i alla hypervisorer och emulatorer, eftersom Linux-kÀrnan litar pÄ alla ACPI-data som kommer frÄn hypervisorn.


KĂ€lla: opennet.ru
