Pred niekoľkými týždňami sme tu na blogu zdieľali novinky o Zraniteľnosť EntrySign čo umožňuje vyhnúť sa mechanizmu overovania digitálneho podpisu počas aktualizácie mikrokódu v procesoroch AMD.
Čo Spočiatku to vyzeralo ako chyba obmedzená na generácie Zen 1 až Zen 4, Teraz sa rozširuje na tak aktuálne čipy ako Ryzen 9000, EPYC 9005, Ryzen AI 300 a Ryzen 9000HX. Táto chyba umožňuje za určitých podmienok upraviť mikrokód CPU obídením mechanizmu overovania digitálneho podpisu, čo má vážne dôsledky na bezpečnosť virtualizovaných systémov.
Koreň problému je to v nevhodné použitie algoritmu CMAC počas procesu overovania mikrokódu. AMD tradične používa súkromný kľúč RSA na digitálne podpísanie obsahu týchto aktualizáciía verejný kľúč zahrnutý v záplate na overenie pravosti mikrokódu v čase nakladania. Hash verejného kľúča, ktorý by mal zaručiť túto integritu, sa však generuje pomocou AES-CMAC, kryptografického MAC, ktorý na rozdiel od robustnej hašovacej funkcie neponúka žiadne záruky proti kolíziám.
Tento dizajn, k tomu, že AMD použilo spoločný šifrovací kľúč pre všetky vaše procesory od verzie Zen 1, umožnil výskumníkom extrahovať kľúč z akéhokoľvek ovplyvneného procesora a znova ho použiť na manipuláciu so záplatami mikrokódu na iných počítačoch. Prekvapivo sa tento kľúč zhoduje s verejným príkladom šifrovacích praktík NIST SP 800-38B, čo dokazuje neopatrné používanie dobrých šifrovacích postupov.
Falošný mikrokód, platné podpisy
Z tejto slabosti, Výskumníkom sa podarilo vygenerovať verejné kľúče, ktoré produkujú rovnaký hash ako pôvodný kľúč AMD., ktorú oni umožnilo konštrukciu falošných záplat schopných obísť kontroly integrity. Tieto kolízie sa dosahujú vložením ďalších blokov na koniec mikrokódu, zdanlivo náhodných, ale starostlivo vypočítaných, čo umožňuje, aby digitálny podpis zostal zjavne nedotknutý. Týmto spôsobom je možné zmeniť vnútorné správanie procesora bez spúšťania výstražných mechanizmov.
Tento proces uľahčili analytické nástroje ako je Zentool, sada nástrojov s otvoreným zdrojovým kódom, ktorá vám umožňuje študovať mikrokód AMD a pripravovať upravené záplaty. Aby sa tento typ útoku zhmotnil, útočník musí mať privilégiá Ring 0, teda prístup k najvyššej úrovni operačného systému, čo je možné vo virtualizovaných prostrediach v prípade kompromitácie hypervízora alebo prostredníctvom nezabezpečených konfigurácií technológií ako VT-x alebo AMD-V.
Vplyv na AMD SEV a zabezpečenú virtualizáciu
Okrem manipulácie s mikrokódom predstavuje EntrySign priamu hrozbu pre AMD SEV (Secure Encrypted Virtualization) a jeho rozšírenie SEV-SNP (Secure Nested Paging), technológie určené na zabezpečenie integrity a dôvernosti virtuálnych strojov aj pri útokoch zo strany hypervízora alebo hostiteľského systému. Táto zraniteľnosť umožňuje zasahovať do chránených registrov procesorov, upravovať vnorené tabuľky stránok a meniť správanie hosťujúcich systémov, čím sa výrazne ohrozuje ich bezpečnosť.
Reakcia AMD a opatrenia na zmiernenie
Zoči-voči tejto situácii AMD začala distribuovať aktualizácie mikrokódu, ktoré chybu opravujú.alebo, hoci na systémoch používajúcich SEV-SNP je tiež potrebné aktualizovať firmvér modulu SEV, čo si vyžaduje aktualizáciu systému BIOS. Spoločnosť už poslala výrobcom nový balík s názvom ComboAM5PI 1.2.0.3c AGESA, ale odhaduje sa, že finálne opravy môžu trvať týždne alebo dokonca mesiace, kým budú dostupné koncovým používateľom.
Okrem toho, Inžinieri AMD navrhli opravu pre jadro Linuxu, ktorá blokuje načítanie mikrokódu. neoficiálne. Cieľom tohto opatrenia je zabrániť šíreniu upravených opráv tretích strán, ako sú napríklad záplaty vytvorené nadšencami z extrahovaných fragmentov systému BIOS. Dovtedy sa dôrazne odporúča počkať na oficiálne aktualizácie systému BIOS a zdržať sa inštalácie neoverených verzií.
konečne, ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.