Onderzoekers van het Helmholtz Centrum voor Informatiebeveiliging (CISPA) hebben een nieuwe aanvalsmethode genaamd CacheWarp gepubliceerd, die het mogelijk maakt om het beveiligingsmechanisme AMD SEV (Secure Encrypted Virtualization) te compromitteren. Dit mechanisme wordt gebruikt in virtualisatiesystemen om virtuele machines te beschermen tegen inmenging van de hypervisor of de beheerder van het host-systeem. De voorgestelde methode stelt een aanvaller met toegang tot de hypervisor in staat om kwaadaardige code uit te voeren en privileges in de virtuele machine te verhogen, die beschermd is met AMD SEV.
De aanval is gebaseerd op een kwetsbaarheid (CVE-2023-20592) die is veroorzaakt door een onjuiste werking met de cache tijdens de uitvoering van de processorinstructie INVD. Hiermee kan data-inconsistentie in het geheugen en de cache worden bereikt, en zo kunnen de mechanismen voor geheugenintegriteit die zijn geĆÆmplementeerd op basis van de SEV-ES en SEV-SNP uitbreidingen worden omzeild. De kwetsbaarheid betreft AMD EPYC-processoren van de eerste tot de derde generatie.
Voor de derde generatie AMD EPYC-processoren (Zen 3) is het probleem verholpen in de november-microcode-update die gisteren door AMD is uitgebracht (de patch heeft geen negatieve invloed op de prestaties). Voor de eerste en tweede generatie AMD EPYC-processoren (Zen 1 en Zen 2) is er geen bescherming beschikbaar, omdat deze CPU's geen ondersteuning hebben voor de SEV-SNP-uitbreiding die integriteitscontrole biedt. virtuele machines. De vierde generatie AMD EPYC-processoren, 'Genoa', gebaseerd op de microarchitectuur 'Zen 4', is niet kwetsbaar.
De technologie AMD SEV wordt gebruikt voor de isolatie van virtuele machines door cloudproviders zoals Amazon Web Services (AWS), Google Cloud, Microsoft Azure en Oracle Compute Infrastructure (OCI). De bescherming van AMD SEV wordt gerealiseerd door hardwarematige encryptie van het geheugen van virtuele machines. Bovendien wordt met de SEV-ES (Encrypted State) uitbreiding de bescherming van CPU-registers gerealiseerd. Alleen het huidige gastbesturingssysteem heeft toegang tot de ontsleutelde gegevens, terwijl andere virtuele machines en de hypervisor bij een poging om toegang te krijgen tot dit geheugen een versleutelde gegevensset ontvangen.
In de derde generatie AMD EPYC-processoren is een extra uitbreiding SEV-SNP (Secure Nested Paging) geĆÆmplementeerd, die veilige werking met geneste paginatabellen van geheugen waarborgt. Naast de algemene geheugenversleuteling en de isolatie van registers, bevat SEV-SNP extra middelen voor het beschermen van de integriteit van het geheugen en voorkomt het wijzigingen in de VM door de hypervisor. Het beheer van de versleutelingssleutels gebeurt via een aparte ingebouwde Platform Security Processor (PSP) in de chip, gebaseerd op ARM-architectuur.
De essentie van de voorgestelde aanvalsmethode is het gebruik van de INVD-instructie om blokken (lijnen) in de cache van vuile (dirty) pagina's te annuleren zonder de in de cache verzamelde gegevens naar het geheugen terug te schrijven (write-back). Hierdoor stelt de methode in staat om gewijzigde gegevens uit de cache te verdringen zonder de toestand van het geheugen te wijzigen. Voor de uitvoering van de aanval wordt voorgesteld om software-excepties (fault injection) te gebruiken om de werking van de virtuele machine op twee plaatsen te onderbreken: op de eerste plaats roept de aanvaller de instructie 'wbnoinvd' op om alle verzamelde schrijfoperaties in het geheugen vanuit de cache terug te zetten, en op de tweede plaats roept hij de instructie 'invd' op om niet in het geheugen weerspiegelde schrijfoperaties naar de oude toestand terug te brengen.
Om de systemen op kwetsbaarheden te controleren, is een prototype-exploit gepubliceerd dat het mogelijk maakt om een uitzondering in de virtuele machine, beveiligd via AMD SEV, in te voeren en niet in het geheugen teruggezette wijzigingen in de VM naar de oude toestand terug te draaien. Het terugdraaien van wijzigingen kan worden gebruikt om de uitvoering van een programma te beĆÆnvloeden door het oude retouradres op de stack terug te laten keren of voor het gebruik bij het ingaan van parameters van een oude sessie waarvoor eerder authenticatie heeft plaatsgevonden, door de waarde van de authenticatie-indicator terug te laten keren.
Onderzoek heeft aangetoond dat de CacheWarp-methode kan worden toegepast voor een Bellcore-aanval op de implementatie van het RSA-CRT-algoritme in de ipp-crypto-bibliotheek, waardoor de privƩsleutel kon worden hersteld door foutinjectie bij de berekening van de digitale handtekening. Het werd ook aangetoond hoe sessieparameters van OpenSSH kunnen worden gemanipuleerd tijdens een externe verbinding met een gast systeem en vervolgens de controlewaarde kan worden gewijzigd tijdens het uitvoeren van de sudo-tool om root-rechten in Ubuntu 20.04 te verkrijgen. De exploit is getest op systemen met AMD EPYC 7252, 7313P en 7443-processors.
Bron: opennet.ru
