Chyba zabezpečení v procesorech AMD, která vám umožňuje obejít ochranný mechanismus SEV (Secure Encrypted Virtualization)

Výzkumníci z Helmholtz Center for Information Security (CISPA) zveřejnili novou metodu útoku CacheWarp, která má kompromitovat bezpečnostní mechanismus AMD SEV (Secure Encrypted Virtualization), který se používá ve virtualizačních systémech k ochraně virtuálních strojů před rušením ze strany hypervizora nebo administrátora hostitelského systému. Navrhovaná metoda umožňuje útočníkovi s přístupem k hypervizoru spouštět kód třetí strany a eskalovat oprávnění ve virtuálním počítači chráněném pomocí AMD SEV.

Útok je založen na zneužití zranitelnosti (CVE-2023-20592) způsobené nesprávnou činností cache při provádění instrukce procesoru INVD, pomocí které je možné dosáhnout nesouladu dat v paměti a mezipaměti. a obcházet mechanismy pro zachování integrity paměti virtuálního stroje, implementované na základě rozšíření SEV-ES a SEV-SNP. Tato chyba zabezpečení se týká procesorů AMD EPYC první až třetí generace.

U procesorů AMD EPYC třetí generace (Zen 3) je problém vyřešen v listopadové aktualizaci mikrokódu, kterou včera vydala společnost AMD (oprava nevede k žádnému snížení výkonu). U první a druhé generace AMD EPYC (Zen 1 a Zen 2) není ochrana poskytována, protože tyto CPU nepodporují rozšíření SEV-SNP, které zajišťuje kontrolu integrity virtuálních strojů. Čtvrtá generace procesorů AMD AMD EPYC „Genoa“ založená na mikroarchitektuře „Zen 4“ není zranitelná.

Technologie AMD SEV je používána pro izolaci virtuálních strojů poskytovateli cloudu, jako jsou Amazon Web Services (AWS), Google Cloud, Microsoft Azure a Oracle Compute Infrastructure (OCI). Ochrana AMD SEV je implementována prostřednictvím šifrování paměti virtuálního stroje na úrovni hardwaru. Rozšíření SEV-ES (Encrypted State) navíc chrání registry CPU. K dešifrovaným datům má přístup pouze aktuální hostující systém, a když se další virtuální stroje a hypervizor pokusí o přístup k této paměti, obdrží zašifrovanou sadu dat.

Třetí generace procesorů AMD EPYC představila další rozšíření SEV-SNP (Secure Nested Paging), které zajišťuje bezpečný provoz vnořených tabulek stránek paměti. Kromě obecného šifrování paměti a izolace registrů implementuje SEV-SNP další opatření k ochraně integrity paměti tím, že zabrání změnám na virtuálním počítači hypervizorem. Šifrovací klíče jsou spravovány na straně samostatného procesoru PSP (Platform Security Processor) zabudovaného do čipu, implementovaného na bázi architektury ARM.

Podstatou navrhované metody útoku je použít instrukci INVD ke zneplatnění bloků (řádků) v mezipaměti nečistých stránek, aniž by došlo k ukládání dat nahromaděných v mezipaměti do paměti (zpětný zápis). Metoda tedy umožňuje vyřadit změněná data z mezipaměti beze změny stavu paměti. K provedení útoku se navrhuje použít softwarové výjimky (injekce chyb) k přerušení provozu virtuálního stroje na dvou místech: na prvním místě útočník zavolá instrukci „wbnoinvd“, aby resetoval všechny operace zápisu do paměti nashromážděné v cache a na druhém místě volá instrukci „invd“, která vrací operace zápisu neodražené v paměti do starého stavu.

Aby bylo možné zkontrolovat zranitelnost vašich systémů, byl zveřejněn prototyp exploitu, který vám umožňuje vložit výjimku do virtuálního počítače chráněného pomocí AMD SEV a vrátit změny ve virtuálním počítači, které nebyly resetovány do paměti. Vrácení změny lze použít ke změně toku programu vrácením staré návratové adresy v zásobníku nebo k použití přihlašovacích parametrů staré relace, která byla dříve ověřena vrácením hodnoty atributu ověřování.

Výzkumníci například prokázali možnost použití metody CacheWarp k provedení útoku Bellcore na implementaci algoritmu RSA-CRT v knihovně ipp-crypto, což umožnilo obnovit soukromý klíč pomocí substituce chyb při výpočtu digitálního podpis. Také ukazuje, jak můžete změnit parametry ověřování relace na OpenSSH při vzdáleném připojení k hostujícímu systému a poté změnit stav ověření při spuštění nástroje sudo, abyste získali práva root v Ubuntu 20.04. Využití bylo testováno na systémech s procesory AMD EPYC 7252, 7313P a 7443.

Zdroj: opennet.ru

Přidat komentář