For noen uker siden delte vi her på bloggen nyhetene om EntrySign-sårbarhet som gjør det mulig å unngå den digitale signaturverifiseringsmekanismen under mikrokodeoppdateringer i AMD-prosessorer.
Hva Opprinnelig virket det som en feil begrenset til Zen 1 til Zen 4 generasjoner, Den strekker seg nå til sjetonger like aktuelle som Ryzen 9000, EPYC 9005, Ryzen AI 300 og Ryzen 9000HX. Denne feilen gjør at CPU-mikrokoden under visse forhold kan modifiseres ved å omgå den digitale signaturverifiseringsmekanismen, med alvorlige implikasjoner for sikkerheten til virtualiserte systemer.
Roten til problemet er i upassende bruk av CMAC-algoritmen under mikrokodevalideringsprosessen. AMD bruker tradisjonelt en privat RSA-nøkkel å signere innholdet i disse oppdateringene digitalt, og en offentlig nøkkel inkludert i oppdateringen for å bekrefte autentisiteten til mikrokoden ved lasting. Imidlertid genereres den offentlige nøkkelhashen som skal garantere denne integriteten ved hjelp av AES-CMAC, en kryptografisk MAC som, i motsetning til en robust hashfunksjon, ikke gir noen garantier mot kollisjoner.
Dette designet, lagt til at AMD har brukt en felles krypteringsnøkkel for alle CPU-ene dine siden Zen 1, har tillatt forskere å trekke ut nøkkelen fra enhver berørt prosessor og gjenbruk den til å manipulere mikrokodelapper på andre datamaskiner. Overraskende nok samsvarer denne nøkkelen med et offentlig eksempel på NIST SP 800-38B-krypteringspraksis, og demonstrerer uforsiktig bruk av god kryptografisk praksis.
Falsk mikrokode, gyldige signaturer
Fra denne svakheten er Forskere klarte å generere offentlige nøkler som produserer samme hash som AMDs originalnøkkel., som de tillot konstruksjon av falske patcher som kan omgå integritetskontroller. Disse kollisjonene oppnås ved å sette inn ekstra blokker på slutten av mikrokoden, tilsynelatende tilfeldig, men nøye beregnet, slik at den digitale signaturen tilsynelatende forblir intakt. På denne måten kan den interne oppførselen til prosessoren endres uten å utløse varslingsmekanismer.
Denne prosessen har blitt tilrettelagt av analyseverktøy som Zentool, et sett med åpen kildekode-verktøy som lar deg studere AMDs mikrokode og forberede modifiserte patcher. For at denne typen angrep skal materialiseres, må angriperen ha Ring 0-privilegier, det vil si tilgang til det høyeste nivået av operativsystemet, noe som er mulig i virtualiserte miljøer hvis hypervisoren er kompromittert eller gjennom usikre konfigurasjoner av teknologier som VT-x eller AMD-V.
Innvirkning på AMD SEV og sikker virtualisering
Utover mikrokodemanipulering utgjør EntrySign en direkte trussel mot AMD SEV (Secure Encrypted Virtualization) og utvidelsen SEV-SNP (Secure Nested Paging), teknologier designet for å sikre integriteten og konfidensialiteten til virtuelle maskiner selv i møte med angrep fra hypervisor- eller vertssystemet. Denne sårbarheten gjør det mulig å forstyrre beskyttede prosessorregistre, endre nestede sidetabeller og endre oppførselen til gjestesystemer, og kompromittere deres sikkerhet på et dyptgående nivå.
AMD respons og avbøtende tiltak
Overfor denne situasjonen, AMD har begynt å distribuere mikrokodeoppdateringer som fikser feilen.eller, selv om det på systemer som bruker SEV-SNP også er nødvendig å oppdatere SEV-modulens fastvare, som krever en BIOS-oppdatering. Selskapet har allerede sendt en ny pakke til produsentene kalt ComboAM5PI 1.2.0.3c AGESA, men det anslås at det kan ta uker eller måneder før de endelige oppdateringene er tilgjengelige for sluttbrukere.
I tillegg til dette er AMD-ingeniører har foreslått en oppdatering for Linux-kjernen som blokkerer mikrokode fra å lastes inn. uoffisiell. Dette tiltaket tar sikte på å forhindre spredning av modifiserte oppdateringer fra tredjeparter, slik som de som er opprettet av entusiaster fra utpakkede BIOS-fragmenter. I mellomtiden anbefales det sterkt å vente på offisielle BIOS-oppdateringer og avstå fra å installere ubekreftede versjoner.
Endelig, hvis du er interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.