Beveiligingsonderzoekers van Google hebben informatie gepubliceerd over een kwetsbaarheid (CVE-2024-56161) in AMD-processoren, die de microcode-update-loader betreft en het mogelijk maakt om het mechanisme voor digitale handtekeningcontrole te omzeilen. Het laden van aangepaste microcode kan het AMD SEV (Secure Encrypted Virtualization) mechanisme compromitteren, dat in virtualisatiesystemen wordt gebruikt om virtuele machines te beschermen tegen inmenging door de hypervisor of de beheerder van het host-systeem.
De kwetsbaarheid wordt veroorzaakt door het gebruik van een onveilige hashfunctie in de code die de digitale handtekening controleert na het laden van de microcode in de CPU. Voor het uitvoeren van de aanval zijn beheerdersrechten in het lokale systeem vereist (de mogelijkheid om code op ring0-niveau uit te voeren, buiten de virtuele machine).
Bij de aanval is het mogelijk om in de werking van gastsystemen te infiltreren die worden beschermd door middel van AMD SEV (Secure Encrypted Virtualization) en SEV-SNP (Secure Nested Paging), die garanties bieden voor de geheugenintegriteit. virtuele machines, isoleren van processorregisters en veilige interactie met geneste paginatabellen. Het AMD SEV-mechanisme is ontworpen zodat datacenterpersoneel en cloudproviders de inhoud van het geheugen van beschermde gastsystemen niet kunnen wijzigen of analyseren, noch de berekeningen kunnen vervalsen.
Onderzoekers hebben een exploit-prototype ontwikkeld waarmee willekeurige microcode in de CPU kan worden geladen zonder digitale handtekening. Om de gevaren van de kwetsbaarheid te demonstreren, is een microcode-update voorgesteld die de werking van de RDRAND-instructie wijzigt, die als een van de entropiebronnen wordt gebruikt in de generaties van pseudo-willekeurige getallen, die worden toegepast tijdens het vormen van sleutels, bij cryptografische operaties en voor het genereren van willekeurige identificatoren.
De wijziging zorgt ervoor dat de RDRAND-instructie alleen het getal 4 retourneert in plaats van een willekeurige reeks. Om echte aanvallen op vertrouwelijke computing systemen te voorkomen, zet de aangepaste microcode de CF-vlag (carry flag) op nul, wat betekent dat de verstrekte waarde als ongeldig wordt gemarkeerd. Aanvullende details en tools voor het genereren van de aangepaste microcode worden op 5 maart gepubliceerd, zodat gebruikers de tijd hebben om de patch op hun systemen te installeren. Een succesvol voorbeeld van een aanval is gedemonstreerd voor servers de AMD EPYC 7B13 (Milan) en AMD Ryzen 9 7940HS (Phoenix) processoren.
In het rapport van AMD wordt aangegeven dat de kwetsbaarheid voorkomt in AMD-processoren op basis van de 1-4 generaties Zen-microarchitectuur. De microcode-update die de kwetsbaarheid oplost, werd op 13 december 2024 vrijgegeven voor de AMD EPYC 7001, 7002 en 7003 series (Naples, Rome, Milan en Milan-X), en op 16 december voor de AMD EPYC 9004 series (Genoa, Genoa-X en Bergamo/Siena). Voor het verhelpen van de kwetsbaarheid in systemen die gebruikmaken van SEV-SNP-attestatie, is bovendien een update van de AMD SEV-firmware vereist (geleverd met BIOS-updates van hardwarefabrikanten).
Er wordt ook melding gemaakt van een andere kwetsbaarheid in AMD-processoren die aanvallen via zijkanalen toelaat voor het extraheren van informatie over berekeningen in gastsystemen die zijn beschermd met behulp van de AMD SEV-mechanismen. Het probleem betreft de 1-4 generaties van AMD EPYC-processoren en heeft te maken met de mogelijkheid om gegevens die in de cache van de processor zijn blijven hangen tijdens de werking van beveiligde gastsystemen, te extraheren. De inhoud van de cache kan worden geanalyseerd met de Prime+Probe-methode, die inhoudt dat de cache wordt gevuld met een referentiewaarden set en veranderingen worden vastgesteld door de toegangstijd tot deze waarden te meten bij een herhaalde invulling. Het wordt opgemerkt dat de eerder voorgestelde methoden ter bescherming tegen Spectre-aanvallen passend zijn voor het blokkeren van de aanval.
Bron: opennet.ru
