Een paar weken geleden deelden we hier op de blog het nieuws over de EntrySign-kwetsbaarheid waarmee het mechanisme voor verificatie van digitale handtekeningen tijdens microcode-updates in AMD-processors kan worden omzeild.
wat dan ook In eerste instantie leek het een bug die beperkt was tot de generaties Zen 1 tot en met Zen 4, Het wordt nu uitgebreid met actuele chips zoals de Ryzen 9000, EPYC 9005, Ryzen AI 300 en Ryzen 9000HX. Door deze fout kan, onder bepaalde omstandigheden, de CPU-microcode worden gewijzigd door het mechanisme voor verificatie van de digitale handtekening te omzeilen. Dit heeft ernstige gevolgen voor de beveiliging van gevirtualiseerde systemen.
De wortel van het probleem is in de ongepast gebruik van het CMAC-algoritme tijdens het microcodevalidatieproces. AMD gebruikt traditioneel een persoonlijke RSA-sleutel om de inhoud van deze updates digitaal te ondertekenenen een publieke sleutel die in de patch is opgenomen om de authenticiteit van de microcode te verifiëren op het moment van laden. De openbare sleutelhash die deze integriteit moet garanderen, wordt echter gegenereerd met behulp van AES-CMAC, een cryptografische MAC die, in tegenstelling tot een robuuste hashfunctie, geen garanties biedt tegen botsingen.
Dit ontwerp, toegevoegd aan het feit dat AMD een gemeenschappelijke encryptiesleutel heeft gebruikt voor al uw CPU's sinds Zen 1heeft onderzoekers in staat gesteld de sleutel uit elke getroffen processor te halen en deze opnieuw gebruiken om microcodepatches op andere computers te manipuleren. Verrassend genoeg komt deze sleutel overeen met een openbaar voorbeeld van NIST SP 800-38B-encryptiepraktijken, wat wijst op onzorgvuldig gebruik van goede cryptografische praktijken.
Valse microcode, geldige handtekeningen
Vanuit deze zwakte is de Onderzoekers zijn erin geslaagd om publieke sleutels te genereren die dezelfde hash opleveren als de originele sleutel van AMD., die zij maakte de constructie van nep-patches mogelijk die de integriteitscontroles konden omzeilen. Deze botsingen worden bereikt door extra blokken aan het einde van de microcode toe te voegen. Deze blokken lijken willekeurig, maar zijn zorgvuldig berekend, waardoor de digitale handtekening intact blijft. Op deze manier kan het interne gedrag van de processor worden gewijzigd zonder dat er waarschuwingsmechanismen in werking treden.
Dit proces is mogelijk gemaakt door analysetools zoals Zentool, een reeks open source-hulpprogramma's waarmee u de microcode van AMD kunt bestuderen en aangepaste patches kunt voorbereiden. Om dit type aanval uit te kunnen voeren, moet de aanvaller Ring 0-rechten hebben: toegang tot het hoogste niveau van het besturingssysteem. Dit is mogelijk in gevirtualiseerde omgevingen als de hypervisor is gecompromitteerd of via onveilige configuraties van technologieën zoals VT-x of AMD-V.
Impact op AMD SEV en veilige virtualisatie
Naast de manipulatie van microcode vormt EntrySign een directe bedreiging voor AMD SEV (Secure Encrypted Virtualization) en de uitbreiding SEV-SNP (Secure Nested Paging), technologieën die zijn ontworpen om de integriteit en vertrouwelijkheid van virtuele machines te waarborgen, zelfs bij aanvallen van de hypervisor of het hostsysteem. Door deze kwetsbaarheid is het mogelijk om beveiligde processorregisters te verstoren, geneste paginatabellen te wijzigen en het gedrag van gastsystemen te veranderen, waardoor hun beveiliging ingrijpend in gevaar komt.
AMD-respons- en mitigatiemaatregelen
In deze situatie, AMD is begonnen met het verspreiden van microcode-updates die de bug verhelpen.of, hoewel het op systemen die SEV-SNP gebruiken ook nodig is om de firmware van de SEV-module bij te werken, waarvoor een BIOS-update nodig is. Het bedrijf heeft al een nieuw pakket naar fabrikanten gestuurd De patch heet ComboAM5PI 1.2.0.3c AGESA, maar naar verwachting kan het weken of zelfs maanden duren voordat de definitieve patches beschikbaar zijn voor eindgebruikers.
Daarnaast is de AMD-technici hebben een patch voor de Linux-kernel voorgesteld die het laden van microcode blokkeert. onofficieel. Deze maatregel is bedoeld om de verspreiding van door derden aangepaste patches, zoals patches die door liefhebbers zijn gemaakt op basis van geëxtraheerde BIOS-fragmenten, te voorkomen. In de tussentijd raden wij u sterk aan te wachten op officiële BIOS-updates en geen niet-geverifieerde versies te installeren.
Tenslotte als u er meer over wilt wetenkunt u de details in het volgende link.