Pred nekaj tedni smo tukaj na blogu delili novico o Ranljivost EntrySign ki omogoča izogibanje mehanizmu preverjanja digitalnega podpisa med posodobitvami mikrokode v procesorjih AMD.
Kaj? Sprva se je zdelo, da je napaka omejena na generacije Zen 1 do Zen 4, Zdaj se razširi na tako aktualne čipe, kot so Ryzen 9000, EPYC 9005, Ryzen AI 300 in Ryzen 9000HX. Ta napaka pod določenimi pogoji omogoča, da se mikrokoda CPU spremeni tako, da se obide mehanizem za preverjanje digitalnega podpisa, kar ima resne posledice za varnost virtualiziranih sistemov.
Koren problema je v neustrezna uporaba algoritma CMAC med postopkom preverjanja mikrokode. AMD tradicionalno uporablja zasebni ključ RSA za digitalno podpisovanje vsebine teh posodobitev, in javni ključ, vključen v popravek, za preverjanje pristnosti mikrokode v času nalaganja. Vendar pa je zgoščevanje javnega ključa, ki bi moralo zagotavljati to celovitost, ustvarjeno z uporabo AES-CMAC, kriptografskega MAC-ja, ki za razliko od robustne zgoščevalne funkcije ne nudi jamstev proti trkom.
Ta oblika, k dejstvu, da je AMD uporabil skupni šifrirni ključ za vse vaše procesorje od Zen 1, je raziskovalcem omogočil, da izvlečejo ključ iz katerega koli prizadetega procesorja in jo ponovno uporabite za manipulacijo popravkov mikrokode na drugih računalnikih. Presenetljivo se ta ključ ujema z javnim primerom praks šifriranja NIST SP 800-38B, kar dokazuje neprevidno uporabo dobrih kriptografskih praks.
Lažna mikrokoda, veljavni podpisi
Zaradi te slabosti se Raziskovalcem je uspelo ustvariti javne ključe, ki proizvajajo enako zgoščeno vrednost kot originalni ključ AMD., ki jih dovolil izdelavo ponarejenih popravkov, ki lahko zaobidejo nadzor celovitosti. Ti trki so doseženi z vstavljanjem dodatnih blokov na koncu mikrokode, na videz naključnih, vendar skrbno izračunanih, kar omogoča, da digitalni podpis ostane očitno nedotaknjen. Na ta način je mogoče spremeniti notranje obnašanje procesorja brez sprožitve mehanizmov za opozarjanje.
Ta proces so olajšala orodja za analizo kot je Zentool, nabor odprtokodnih pripomočkov, ki vam omogoča preučevanje AMD-jeve mikrokode in pripravo spremenjenih popravkov. Da se ta vrsta napada uresniči, mora imeti napadalec privilegije Ring 0, to je dostop do najvišje ravni operacijskega sistema, kar je izvedljivo v virtualiziranih okoljih, če je hipervizor ogrožen ali prek nevarnih konfiguracij tehnologij, kot sta VT-x ali AMD-V.
Vpliv na AMD SEV in varno virtualizacijo
Poleg manipulacije z mikrokodo EntrySign predstavlja neposredno grožnjo AMD SEV (Secure Encrypted Virtualization) in njegovi razširitvi SEV-SNP (Secure Nested Paging), tehnologijama, zasnovanima za zagotavljanje integritete in zaupnosti virtualnih strojev tudi ob napadih s hipervizorja ali gostiteljskega sistema. Ta ranljivost omogoča poseganje v zaščitene registre procesorja, spreminjanje tabel ugnezdenih strani in spreminjanje vedenja gostujočih sistemov, kar močno ogroža njihovo varnost.
Odziv AMD in blažilni ukrepi
Soočeni s to situacijo, AMD je začel distribuirati posodobitve mikrokode, ki odpravljajo napako.ali, čeprav je v sistemih, ki uporabljajo SEV-SNP, treba posodobiti tudi vdelano programsko opremo modula SEV, kar zahteva posodobitev BIOS-a. Podjetje je proizvajalcem že poslalo nov paket imenovan ComboAM5PI 1.2.0.3c AGESA, vendar se ocenjuje, da bodo končni popravki lahko trajali tedne ali celo mesece, preden bodo na voljo končnim uporabnikom.
Poleg tega je Inženirji AMD so predlagali popravek za jedro Linuxa, ki blokira nalaganje mikrokode. neuradno. Namen tega ukrepa je preprečiti širjenje spremenjenih popravkov tretjih oseb, kot so tisti, ki so jih ustvarili navdušenci iz ekstrahiranih fragmentov BIOS-a. Medtem je zelo priporočljivo počakati na uradne posodobitve BIOS-a in se vzdržati namestitve nepreverjenih različic.
Končno, če vas zanima več o tem, podrobnosti lahko preverite v naslednja povezava.