BadRAM-angreb, der tillader omgåelse af SEV-SNP attesteringsmekanismen i AMD CPU'er

En gruppe forskere fra Leuven, Lübeck og Birmingham universiteterne har udviklet en angrebsmetode kaldet BadRAM (CVE-2024-21944), der gør det muligt at omgå autentifikationsmekanismen og kompromittere miljøer, der er beskyttet med SEV-SNP-udvidelsen i AMD-processorer. For at gennemføre angrebet skal angriberen, med få undtagelser, have fysisk adgang til hukommelsesmodulerne samt evnen til at udføre kode på ring 0-niveau på serveren, der kører de beskyttede gæste-miljøer.

AMD SEV (Secure Encrypted Virtualization) udvidelser sigter mod at levere garantier for integriteten af virtuelle maskiners hukommelse samt beskyttelse mod indgriben og analyse fra administratoren af værtsystemet, der kan køre kode på hypervisor-niveau. Oprindeligt var beskyttelsen fra AMD SEV begrænset til kryptering af indholdet i gæsternes hukommelse og isolering af registre, men senere blev SEV-SNP (Secure Nested Paging) udvidelsen implementeret i AMD EPYC-processorerne for sikkert at arbejde med indlejrede hukommelsesside-tabeller, hvilket garanterer bevarelsen af hukommelsesintegritet og forhindrer ændringer i gæstens hukommelse fra hypervisoren.

AMD SEV-SNP-mekanismen blev skabt for at forhindre efterretningstjenester eller personale fra datacentre og cloud-udbydere, hvor beskyttede gæstesystemer kører, i at blande sig i driften af gæstesystemet. Den foreslåede BadRAM-angrebsmetode giver mulighed for at omgå de stillede garantier ved at ændre SPD (Serial Presence Detect) metadataene i DDR4- eller DDR5-hukommelsesmodulerne. Ved et vellykket angreb kan angriberen overskrive de krypterede data i gæsternes hukommelse (på kryptoteks-niveau, uden mulighed for dekryptering) og omgå attestationsmekanismen, f.eks. for at skjule indførelsen af en bagdør i en virtuel maskine, der er beskyttet ved hjælp af SEV-SNP-teknologi.

Angrebet er baseret på at vise falske parametre for hukommelsesmodulet i SPD, hvilket får processoren til at tilgå ikke-eksisterende adresser, der reflekterer eksisterende områder af hukommelsen. Angriberen kan justere SPD på en måde, så hukommelsesmodulet returnerer en størrelse til processoren, der overstiger de faktiske specifikationer for modulet. Herefter kan angriberen kortlægge den opfundne ikke-eksisterende hukommelse til et reelt område i DRAM, som allerede er brugt i krypteret form i beskyttede gæstesystemer. Resultatet er en situation, hvor forskellige adresser peger på den samme fysiske hukommelse (to områder reflekteres til et område i DRAM-chippen), dvs. at man kan tilgå den allerede brugte reelle hukommelse på adressen for det falske reflekterede hukommelsesområde og omgå beskyttelsesmekanismerne i CPU'en.

BadRAM-angreb, der tillader omgåelse af SEV-SNP attesteringsmekanismen i AMD CPU'er

For at udføre angrebet er det tilstrækkeligt at samle en simpel programmerer til en pris af omkring 10 dollars, som består af en mikrocontroller Raspberry Pi Pico, en port til DDR4/DD5-moduler og en strømforsyning. De værktøjer, der anvendes til angrebet, kernen moduler og prototyper af exploits er tilgængelige på GitHub.

BadRAM-angreb, der tillader omgåelse af SEV-SNP attesteringsmekanismen i AMD CPU'er

For chips fra nogle producenter, hvor der ikke er udført en låsning af SPD-overskrivning, er det muligt at udføre angrebet softwaremæssigt uden fysisk adgang til serveren. For eksempel kan man programmere parametrene for hukommelsesmodulerne fra Corsair med RGB-belysning. I tilfælde af at gennemføre et fuldt softwarebaseret angreb, kan systemet blive kompromitteret, for eksempel ved at anvende en ondsindet BIOS-opdatering eller ved distraktion fra administratorer. servere i cloud-tjenester.

BadRAM-angreb, der tillader omgåelse af SEV-SNP attesteringsmekanismen i AMD CPU'er

Som bevis for metodearbejdet er der demonstreret to angreb. I det første angreb vises muligheden for at reproduceret krypteksten — ved brug af AMD SEV gemmes dataene i hukommelsen i krypteret form, og angriberen kan ikke bestemme indholdet, men har mulighed for at læse de krypterede data og derefter erstatte dem med andet krypteret indhold.

I den anden angreb demonstreres muligheden for at omgå SEV-SNP attesteringsmekanismen, der giver kryptografisk bekræftelse af integriteten af den virtuelle maskine, der kører i et beskyttet miljø. Angriberen kan opsnappe attesteringsrapporten for den korrekte virtuelle maskine og derefter erstatte den med en kompromitteret virtuel maskine, for eksempel ved at skjule sporene af en bagdør.

Problemet berører 3. og 4. generations AMD EPYC-processorer, som leveres under kode-navnene Milan, Milan-X, Genoa, Bergamo, Genoa-X og Siena. For at blokere sårbarheden har AMD allerede udgivet en SEV-firmwareopdatering, som implementerer ALIAS_CHECK-kontrol, der forhindrer hukommelsesmæssige manipulationer, der er karakteristiske for det pågældende angreb.

De teknologier, som Intel tilbyder, såsom Scalable SGX og TDX, er ikke sårbare over for angrebet, da de nødvendige kontroller er til stede fra starten. Den klassiske Intel SGX-teknologi, som Intel i 2021 klassificerede som forældet, er delvist sårbar over for angreb (analogt med det tidligere kendte MemBuster-angreb kan en angriber analysere adgang til den krypterede hukommelse, dvs. der kan kun læses krypterede data, men ikke skrives om). Test af CCA (Confidential Compute Architecture) udvidelser i ARM's processorer er ikke blevet udført.

Der rapporteres desuden om en anden sårbarhed relateret til AMD SEV-SNP. Sårbarheden er opdaget i den AMD-udviklede fork af QEMU-emulatoren, der er designet til at køre virtual machines med SEV-SNP. Problemet muliggør, at administratoren af værtens miljø kan få root-adgang til gæstesystemerne gennem manipulation med ACPI-tabellerne. Sårbarheden opstår, fordi der ved opstart af gæstesystemet udføres en kontrol af integriteten af Linux-kernen, den indledende RAM-disk og kernens parametre, men ACPI-tabellerne tages ikke i betragtning, gennem hvilke hypervisoren kan præsentere specifikt udformet AML-kode (ACPI Machine Language), der er beregnet til udførelse i gæstemiljøet. Det hævdes, at problemet ikke er specifikt for QEMU og optræder i alle hypervisorer og emulatorer, da Linux-kernen stoler på alle ACPI-data, der modtages fra hypervisoren.

Afspil video
Afspil video


Kilde: opennet.ru
Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster