Forskere fra Helmholtz Center for Information Security (CISPA) har offentliggjort en ny angrebsmetode kaldet CacheWarp, der gør det muligt at kompromittere beskyttelsesmekanismen AMD SEV (Secure Encrypted Virtualization), der anvendes i virtualiseringssystemer for at beskytte virtuelle maskiner mod indblanding fra hypervisoren eller administratoren af værtsystemet. Den foreslåede metode giver en angriber med adgang til hypervisoren mulighed for at opnå udførelse af ondsindet kode og hæve privilegier i en virtuel maskine beskyttet af AMD SEV.
Angrebet er baseret på en sårbarhed (CVE-2023-20592), der skyldes forkert håndtering af cache under udførelsen af processorinstruktionen INVD, hvilket kan føre til datainkonsekvens mellem hukommelsen og cachen, og dermed omgå mekanismerne til opretholdelse af hukommelsens integritet i virtuelle maskiner, implementeret ved hjælp af SEV-ES og SEV-SNP udvidelser. Sårbarheden påvirker AMD EPYC-processorer fra første til tredje generation.
For AMD EPYC-processorer i tredje generation (Zen 3) er problemet blevet løst med den november mikrosoftwareopdatering, der blev udgivet i går af AMD (rettelsen medfører ikke et fald i ydeevnen). For første og anden generation AMD EPYC (Zen 1 og Zen 2) er der ikke planlagt nogen beskyttelse, da disse CPU'er ikke understøtter SEV-SNP-udvidelsen, der sikrer kontrol over integritet. virtual machinesDen fjerde generation af AMD EPYC-processorer "Genoa" baseret på mikroarkitekturen "Zen 4" er ikke sårbar over for denne sårbarhed.
AMD SEV-teknologien anvendes til isolering af virtuelle maskiner af cloud-udbydere som Amazon Web Services (AWS), Google Cloud, Microsoft Azure og Oracle Compute Infrastructure (OCI). Beskyttelsen med AMD SEV er implementeret gennem hardware-kryptering af hukommelsen i virtuelle maskiner. Derudover sikrer SEV-ES (Encrypted State) udvidelsen beskyttelse af CPU-registre. Kun det aktuelle gæstebaserede system har adgang til de dekrypterede data, mens resten virtuelle maskiner og hypervisoren får et krypteret datasæt, når de forsøger at få adgang til disse data.
I tredje generation af AMD EPYC-processorerne er der implementeret en ekstra SEV-SNP (Secure Nested Paging) udvidelse, der sikrer sikker drift med indlejrede side-tabeller. Ud over den generelle hukommelsesenkryptering og isolering af registre, indeholder SEV-SNP yderligere midler til at beskytte hukommelsens integritet, som forhindrer ændringer i VM fra hypervisoren. Håndteringen af krypteringsnøgler sker via en separat processor PSP (Platform Security Processor), som er indbygget i chippen og baseret på ARM-arkitekturen.
Essensen af den foreslåede angrebsmetode er at bruge INVD-instruktionen til at annullere blokke (linjer) i cache af beskidte (dirty) sider uden at nulstille de data, der er gemt i cachen, til hukommelsen (write-back). Dermed tillader metoden at udskille ændrede data fra cachen uden at ændre hukommelsens tilstand. Angrebsmethodikken foreslår at bruge software-undtagelser (fault injection) til at afbryde kørslen af den virtuelle maskine på to steder: i det første tilfælde kalder angriberen instruksen 'wbnoinvd' for at nulstille alle akkumulerede skriveoperationer i cachen til hukommelsen, og i det andet tilfælde kalder de instruksen 'invd' for at bringe de ikke-rapporterede skriveoperationer i hukommelsen tilbage til en gammel tilstand.
For at teste sine systemer for sårbarhed er der offentliggjort en prototype af et exploit, som gør det muligt at udføre et undtagelsessubstitution i en virtuel maskine, der er beskyttet af AMD SEV, og tilbageføre uafleverede ændringer i VM til en tidligere tilstand i hukommelsen. Tilbageførsel af ændringerne kan bruges til at ændre programgennemløbet ved at returnere en gammel returadresse på stakken eller til at anvende parametre fra en gammel session, som tidligere er blevet autentificeret, ved at returnere værdien af autentifikationsflaget.
For example, researchers have demonstrated the possibility of using the CacheWarp method to execute a Bellcore attack on the RSA-CRT algorithm implementation in the ipp-crypto library, allowing the recovery of the private key through error substitution during digital signature calculations. It also showed how one can spoof session verification parameters for OpenSSH when remotely connecting to the guest system, and then alter the verification state while executing the sudo utility to gain root privileges in Ubuntu 20.04. The exploit has been tested on systems with AMD EPYC 7252, 7313P, and 7443 processors.
Kilde: opennet.ru
