Bezpečnostní výzkumníci z firmy Google zveřejnili informace o zranitelnosti (CVE-2024-56161) v procesorech AMD, která se týká zaváděcího programu mikrokódu a umožňuje obejít mechanismus kontroly digitálního podpisu při aktualizacích mikrokódu. Načtení modifikovaného mikrokódu umožňuje ohrozit mechanismus AMD SEV (Secure Encrypted Virtualization), který se používá ve virtualizačních systémech k ochraně virtuálních strojů před zásahem hypervisoru nebo administrátora hostitelského systému.
Zranitelnost je způsobena použitím nebezpečné hashovací funkce v kódu, který provádí kontrolu digitálního podpisu po načtení mikrokódu do CPU. K provedení útoku je nutné mít admin práva v místním systému (možnost spustit kód na úrovni nultého ochranného okruhu (ring0), přičemž se nenacházíte ve virtuálním stroji).
Během útoku je možné zasáhnout do fungování hostovaných systémů, které jsou chráněny pomocí rozšíření AMD SEV (Secure Encrypted Virtualization) a SEV-SNP (Secure Nested Paging), jež poskytují záruky integrity paměti. virtuálních strojů, izolující procesorové registry a zajišťující bezpečnou práci s vloženými tabulkami stránek paměti. Mechanismus AMD SEV byl navržen tak, aby personál datových center a cloudových poskytovatelů nemohl změnit nebo analyzovat obsah paměti chráněných hostovaných systémů, ani zkreslit výpočty.
Výzkumníci připravili prototyp exploit, který umožňuje načíst libovolný mikrokód do CPU, který není podepsaný digitálním podpisem. K demonstraci nebezpečnosti zranitelnosti bylo navrženo aktualizace mikrokódu, která mění logiku fungování instrukce RDRAND, používané jako jeden ze zdrojů entropie v generátorech pseudonáhodných čísel, jež se používají při formování klíčů, při provádění kryptografických operací a pro generování náhodných identifikátorů.
Zmena vedie k vráteniu inštrukcie RDRAND len čísla 4, namiesto náhodnej sekvencie. Na zabránenie reálnym útokom na systémy dôverného výpočtu upravený mikrokód nulovuje vlajku CF (carry flag), teda označuje vydanú hodnotu za neplatnú. Ďalšie detaily a nástroje na generovanie upraveného mikrokódu plánujú zverejniť 5. marca, aby dali používateľom čas nainštalovať túto opravu na svojich systémoch. Úspešný príklad útoku bol demonštrovaný pre serverov procesory AMD EPYC 7B13 (Milan) a AMD Ryzen 9 7940HS (Phoenix).
V správe spoločnosti AMD sa uvádza, že zraniteľnosť sa prejavuje v procesoroch AMD na báze 1-4 generácií mikroarchitektúry Zen. Aktualizácia mikrokódu na odstránenie zraniteľnosti bola vydaná 13. decembra 2024 pre procesory sérií AMD EPYC 7001, 7002 a 7003 (Naples, Rome, Milan a Milan-X), a 16. decembra pre procesory série AMD EPYC 9004 (Genoa, Genoa-X a Bergamo/Siena). Na odstránenie zraniteľnosti v systémoch, ktoré používajú attestáciu SEV-SNP, je navyše potrebná aktualizácia firmvéru AMD SEV (dodáva sa spolu s aktualizáciami BIOS od výrobcov zariadení).
Ďalej sa uvádza o ďalšej zraniteľnosti v procesoroch AMD, ktorá umožňuje vykonávanie útoku cez vedľajšie kanály na extrakciu informácií o výpočtoch v hostiteľských systémoch, chránených pomocou mechanizmu AMD SEV. Problém sa týka 1-4 generácie procesorov AMD EPYC a súvisí s možnosťou extrakcie z procesorovej cache údajov, ktoré sa usádzajú počas práce chránených hostiteľských systémov. Na analýzu obsahu cache sa môže použiť metóda Prime+Probe, ktorá spočíva vo vyplnení cache referenčným súborom hodnôt a určení zmien cez meranie času prístupu k nim pri opätovnom vyplnení. Uvádza sa, že na blokovanie útoku sú vhodné metódy, ktoré boli predtým navrhnuté na ochranu proti útokom triedy Spectre.
Zdroj: opennet.ru
