Před několika týdny jsme zde na blogu sdíleli novinky o Chyba zabezpečení EntrySign což umožňuje vyhnout se mechanismu ověřování digitálního podpisu během aktualizací mikrokódu v procesorech AMD.
Co? Zpočátku to vypadalo jako chyba omezená na generace Zen 1 až Zen 4, Nyní se rozšiřuje na čipy tak aktuální jako Ryzen 9000, EPYC 9005, Ryzen AI 300 a Ryzen 9000HX. Tato chyba umožňuje za určitých podmínek upravit mikrokód CPU obcházením mechanismu ověřování digitálního podpisu, což má vážné důsledky pro bezpečnost virtualizovaných systémů.
Kořen problému je v nevhodné použití algoritmu CMAC během procesu ověřování mikrokódu. AMD tradičně používá soukromý klíč RSA k digitálnímu podepsání obsahu těchto aktualizacía veřejný klíč zahrnutý v patchi pro ověření pravosti mikrokódu v době načítání. Hash veřejného klíče, který by měl zaručit tuto integritu, je však generován pomocí AES-CMAC, kryptografické MAC, která na rozdíl od robustní hashovací funkce nenabízí žádné záruky proti kolizím.
Tento design, přidáno k tomu, že AMD použilo společný šifrovací klíč pro všechny vaše CPU od Zen 1, umožnil výzkumníkům extrahovat klíč z jakéhokoli postiženého procesoru a znovu jej použít k manipulaci se záplatami mikrokódu na jiných počítačích. Překvapivě se tento klíč shoduje s veřejným příkladem postupů šifrování NIST SP 800-38B, což dokazuje nedbalé používání dobrých šifrovacích postupů.
Falešný mikrokód, platné podpisy
Z této slabosti, Výzkumníkům se podařilo vygenerovat veřejné klíče, které produkují stejný hash jako původní klíč AMD., což oni umožnil konstrukci falešných záplat schopných obejít kontroly integrity. Těchto kolizí je dosaženo vložením dalších bloků na konec mikrokódu, zdánlivě náhodných, ale pečlivě vypočítaných, což umožňuje, aby digitální podpis zůstal zdánlivě nedotčený. Tímto způsobem lze změnit vnitřní chování procesoru bez spouštění výstražných mechanismů.
Tento proces byl usnadněn analytickými nástroji jako je Zentool, sada nástrojů s otevřeným zdrojovým kódem, která umožňuje studovat mikrokód AMD a připravovat upravené záplaty. Aby se tento typ útoku uskutečnil, musí mít útočník oprávnění Ring 0, tedy přístup k nejvyšší úrovni operačního systému, což je ve virtualizovaných prostředích proveditelné v případě kompromitace hypervizoru nebo prostřednictvím nezabezpečených konfigurací technologií jako VT-x nebo AMD-V.
Dopad na AMD SEV a zabezpečenou virtualizaci
Kromě manipulace s mikrokódem představuje EntrySign přímou hrozbu pro AMD SEV (Secure Encrypted Virtualization) a jeho rozšíření SEV-SNP (Secure Nested Paging), technologie navržené k zajištění integrity a důvěrnosti virtuálních strojů i tváří v tvář útokům ze strany hypervizoru nebo hostitelského systému. Tato zranitelnost umožňuje zasahovat do chráněných registrů procesorů, upravovat vnořené tabulky stránek a měnit chování hostovaných systémů, což na zásadní úrovni ohrožuje jejich zabezpečení.
Odezva AMD a opatření ke zmírnění
V této situaci, AMD začalo distribuovat aktualizace mikrokódu, které chybu opravují.nebo, ačkoli na systémech používajících SEV-SNP je také nutné aktualizovat firmware modulu SEV, což vyžaduje aktualizaci BIOSu. Společnost již zaslala výrobcům nový balíček s názvem ComboAM5PI 1.2.0.3c AGESA, ale odhaduje se, že finální opravy mohou trvat týdny nebo dokonce měsíce, než budou dostupné koncovým uživatelům.
Kromě toho, Inženýři AMD navrhli záplatu pro linuxové jádro, která blokuje načítání mikrokódu. neoficiální. Toto opatření má za cíl zabránit šíření záplat upravených třetí stranou, jako jsou například záplaty vytvořené nadšenci z extrahovaných fragmentů BIOSu. Mezitím důrazně doporučujeme počkat na oficiální aktualizace systému BIOS a zdržet se instalace neověřených verzí.
Konečně, pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.