Nieuwe kwetsbaarheid in AMD SEV legt versleutelde VM’s bloot

Een groep academici heeft een nieuwe ‘softwarefoutaanval’ op AMD’s Secure Encrypted Virtualization (SEV)-technologie onthuld die mogelijk door bedreigingsactoren kan worden uitgebuit om gecodeerde virtuele machines (VM’s) te infiltreren en zelfs privilege-escalatie uit te voeren.

De aanval heeft de codenaam gekregen CacheWarp (CVE-2023-20592) door onderzoekers van het CISPA Helmholtz Center for Information Security. Het heeft gevolgen voor AMD-CPU’s die alle varianten van SEV ondersteunen.

“Voor dit onderzoek hebben we specifiek gekeken naar AMD’s nieuwste TEE, AMD SEV-SNP, waarbij we vertrouwden op de ervaring van eerdere aanvallen op Intel’s TEE”, vertelde beveiligingsonderzoeker Ruiyi Zhang aan The Hacker News. “We hebben de ‘INVD’-instructie gevonden [flush a processor’s cache contents] zou kunnen worden misbruikt onder het dreigingsmodel van AMD SEV.”

SEV, een uitbreiding op de AMD-V-architectuur en geïntroduceerd in 2016, is ontworpen om VM’s te isoleren van de hypervisor door de geheugeninhoud van de VM te versleutelen met een unieke sleutel.

Het idee is, in een notendop, om de VM te beschermen tegen de mogelijkheid dat de hypervisor (dwz de monitor van de virtuele machine) kwaadaardig kan zijn en dus niet standaard kan worden vertrouwd.

SEV-SNP, dat Secure Nested Paging (SNP) bevat, voegt “sterke geheugenintegriteitsbescherming toe om kwaadaardige hypervisor-gebaseerde aanvallen zoals het opnieuw afspelen van gegevens, het opnieuw toewijzen van geheugen en meer te helpen voorkomen om een ​​geïsoleerde uitvoeringsomgeving te creëren”, aldus AMD.

Maar CacheWarp maakt het volgens Zhang mogelijk om de integriteitsbescherming te omzeilen en escalatie van bevoegdheden en uitvoering van code op afstand in de beoogde virtuele machine te bereiken –

De instructie `INVD` zet alle gewijzigde inhoud in de cache neer zonder ze terug naar het geheugen te schrijven. De aanvaller kan dus alle schrijfbewerkingen van gast-VM’s laten vallen en de VM gaat verder met architectonisch verouderde gegevens. In het artikel demonstreren we dat via twee primitieven, ’timewarp’ en ‘dropforge’.

Voor de timewarp kunnen we als volgende stap resetten wat de computer in het geheugen heeft opgeslagen. Hierdoor voert de computer code uit die hij eerder uitvoerde, omdat hij een verouderd zogenaamd retouradres uit het geheugen leest. De computer reist zo terug in de tijd. De oude code wordt echter uitgevoerd met nieuwe gegevens (de retourwaarde van een andere functie), wat tot onverwachte effecten leidt. We gebruiken deze methode om OpenSSH-authenticatie te omzeilen en in te loggen zonder het wachtwoord te kennen.

Met een andere methode, genaamd “Dropforge”, kan de aanvaller wijzigingen in de gegevens van gast-VM’s opnieuw instellen. Met één of meerdere drops kan de aanvaller de logische stroom van gastuitvoering op een exploiteerbare manier manipuleren. Neem het binaire bestand `sudo` als voorbeeld. Er wordt een retourwaarde opgeslagen in het geheugen (stack), zodat de aanvaller deze kan resetten naar een initiële waarde. De initiële waarde “0” geeft ons echter beheerdersrechten, zelfs als dat niet het geval is.

Met deze combinatie hebben we onbeperkt toegang tot de virtuele machine.

Succesvolle exploitatie van de architecturale bug zou een aanvaller in staat kunnen stellen de controlestroom van een programma te kapen door terug te keren naar een vorige staat, en de controle over de VM over te nemen. AMD heeft sindsdien een microcode-update uitgebracht om het ‘misbruik van instructies’ te verhelpen.

“Een team van Google Project Zero en Google Cloud security heeft vorig jaar de nieuwste versie van AMD’s TEE (SEV-SNP) gecontroleerd”, aldus Zhang. “AMD beweert ook dat SEV-SNP alle aanvallen op de integriteit voorkomt. Onze aanval breekt echter de integriteit ervan.”

CISPA-onderzoekers onthulden eerder deze augustus ook een op software gebaseerde power side-channel aanval gericht op Intel-, AMD- en Arm-CPU’s, genaamd Collide+Power (CVE-2023-20583), die zou kunnen worden ingezet om gevoelige gegevens te lekken door de isolatiebescherming te doorbreken.

Thijs Van der Does