Útok BadRAM, ktorý umožňuje obísť mechanizmus certifikácie SEV-SNP v procesoroch AMD

Skupina výskumníkov z Leuven, Lübecku a Birminghamu vyvinula metódu útoku BadRAM (CVE-2024-21944), ktorá umožňuje obísť mechanizmus overovania a skompromitovať prostredia chránené pomocou rozšírenia SEV-SNP v procesoroch AMD. Na vykonanie útoku musí útočník, s výnimkou zriedkavých prípadov, získať fyzický prístup k pamäťovým modulom a mať tiež možnosť vykonávať kód na úrovni nulového prstenca (ring0) na serveri, ktorý vykonáva chránené hosťovské prostredia.

Rozšírenia AMD SEV (Secure Encrypted Virtualization) sú zamerané na poskytovanie záruk integrity pamäte virtuálnych strojov a ochranu proti zásahu a analýze zo strany administrátora hostiteľského systému, ktorý môže vykonávať kód na úrovni hypervízora. Pôvodne ochrana AMD SEV spočívala v šifrovaní obsahu pamäte hosťovského systému a izolácii registrov, no neskôr v procesoroch AMD EPYC bolo ďalej implementované rozšírenie SEV-SNP (Secure Nested Paging) pre bezpečné fungovanie s vnorenými stránkovými tabuľkami, ktoré zaručuje zachovanie integrity pamäte a neumožňuje vykonávať zmeny v pamäti hosťovského systému zo strany hypervízora.

Mechanizmus AMD SEV-SNP bol vytvorený tak, aby spravodajské služby alebo personál dátových centier a cloudových poskytovateľov, v ktorých sú vykonávané chránené hosťovské systémy, nemohli zasahovať do chodu hosťovského systému. Navrhovaná metóda útoku BadRAM umožňuje obísť poskytované záruky prostredníctvom zmeny metadát SPD (Serial Presence Detect) v pamäťových moduloch DDR4 alebo DDR5. Pri úspešnom útoku môže útočník prepísať zašifrované údaje v pamäti hosťovského systému (na úrovni šifrového textu, bez možnosti dešifrovania) a obísť mechanizmus attestation, napríklad na skrytie implantácie backdoora do virtuálneho stroja chráneného technológiou SEV-SNP.

Útok je založený na prezentovaní fiktívnych parametrov pamäťového modulu v SPD, čo núti procesor pristupovať k neexistujúcim adresám, ktoré sa odrážajú na existujúcich oblastiach pamäte. Útočník môže upraviť SPD tak, že pamäťový modul vráti procesoru veľkosť, ktorá presahuje skutočné parametre modulu. Po tom útočník môže mapovať vymyslenú neexistujúcu pamäť na reálnu oblasť v DRAM, ktorá sa už používa v zašifrovanej podobe v chránených hosťujúcich systémoch. Nakoniec vzniká situácia, kedy rôzne adresy odkazujú na jednu a tú istú fyzickú pamäť (dve oblasti sa odrážajú na jednu oblasť v čipe DRAM), t.j. na adresu fiktívnej odrazenej oblasti pamäte je možné pristupovať k už používané reálnej pamäti a obísť mechanizmy ochrany pamäte v CPU.

Útok BadRAM, ktorý umožňuje obísť mechanizmus certifikácie SEV-SNP v procesoroch AMD

Na uskutočnenie útoku stačí zostaviť najjednoduchší programátor za približne 10 dolárov, pozostávajúci z mikrokontroléra Raspberry Pi Pico, konektora pre moduly DDR4/DD5 a zdroja napájania. Nástroje používané na uskutočnenie útoku, modul jadra a prototypy exploitov sú umiestnené na GitHub.

Útok BadRAM, ktorý umožňuje obísť mechanizmus certifikácie SEV-SNP v procesoroch AMD

Pre čipy niektorých výrobcov, kde nie je vykonaná blokáda prepísania SPD, je uskutočnenie útoku možné programovými prostriedkami bez fyzického prístupu k serveru. Napríklad je možné programovo zmeniť parametre pamäťových modulov spoločnosti Corsair so RGB podsvietením. V prípade uskutočnenia plne programového útoku môže byť systém kompromitovaný, napríklad cez aplikáciu škodlivého aktualizácie BIOS alebo cez diverziu zo strany administrátorov. serverov v cloudových službách.

Útok BadRAM, ktorý umožňuje obísť mechanizmus certifikácie SEV-SNP v procesoroch AMD

Ako potvrdenie funkčnosti metódy boli demonštrované dva útoky. V prvom útoku bola preukázaná možnosť opätovného reprodukovania šifrovaného textu — pri použití AMD SEV sú dáta v pamäti uchovávané v zašifrovanej podobe a útočník nemôže určiť obsah, ale má možnosť prečítať zašifrované dáta a následne ich vložiť namiesto iného zašifrovaného obsahu.

V druhej útoku bola demonštrovaná možnosť obísť mechanizmus attestácie SEV-SNP, ktorý poskytuje kryptografické potvrdenie integrity virtuálneho stroja nasadeného v chránenom prostredí. Útočník môže zachytiť správu attestácie správneho virtuálneho stroja a následne ju použiť pre kompromitovaný virtuálny stroj, pričom napríklad skryje stopy zavedenia backdooru.

Problém sa týka 3. a 4. generácie procesorov AMD série EPYC, dodávaných pod kódovými názvami Milan, Milan-X, Genoa, Bergamo, Genoa-X a Siena. Na zablokovanie zraniteľnosti spoločnosť AMD už vydala aktualizáciu firmvéru SEV, v ktorej je implementovaná kontrola ALIAS_CHECK, ktorá zabraňuje manipuláciám s pamäťou, charakteristickým pre túto útok.

Navrhované technológie spoločnosti Intel Scalable SGX a TDX nie sú náchylné na útok, pretože majú potrebné kontroly prítomné od začiatku. Klasická technológia Intel SGX, ktorá bola v roku 2021 premenená spoločnosťou Intel na zastaranú, je čiastočne náchylná na útok (podobne ako predtým známy útok MemBuster, útočník môže analyzovať prístupy k zašifrovanej pamäti, teda je možné iba čítať šifrované dáta, ale nie ich prepísať). Testovanie rozšírení CCA (Confidential Compute Architecture) v procesoroch spoločnosti ARM nebolo vykonané.

Ďalšie správy poukazujú na ďalšiu zraniteľnosť súvisiacu s AMD SEV-SNP. Zraniteľnosť bola identifikovaná vo vyvíjanom AMD forku emulátora QEMU, určeného na spustenie virtuálních strojů s SEV-SNP. Problém umožňuje administrátorovi hostiteľského prostredia získať root prístup k hosťujúcim systémom prostredníctvom manipulácie s tabuľkami ACPI. Zraniteľnosť je spôsobená tým, že pri spustení hosťujúceho systému sa vykonáva kontrola integrity jadra Linux, počiatočného RAM disku a parametrov jadra, ale nezohľadňujú sa tabuľky ACPI, prostredníctvom ktorých môže hypervízor predstaviť špeciálne upravený kód AML (ACPI Machine Language), určený na vykonávanie v hosťujúcom prostredí. Tvrdí sa, že problém nie je špecifický pre QEMU a prejavuje sa v akýchkoľvek hypervízoroch a emulátoroch, pretože jadro Linux dôveruje akýmkoľvek údajom ACPI, ktoré dostáva od hypervízora.

Prehrajte video
Prehrajte video


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster