AMD Zen 5 CPUs sind anfällig für eine Sicherheitsanfälligkeit, die eine Mikrokode-Veränderung und Umgehung der SEV-SNP-Isolierung ermöglicht.

Das Unternehmen AMD hat Prozessoren, die auf der Mikroarchitektur Zen 5 basieren, auf die Liste der Produkte gesetzt, die von der Schwachstelle EntrySign betroffen sind. Diese Schwachstelle ermöglicht es, den Mechanismus zur Überprüfung digitaler Signaturen bei der Aktualisierung des Mikrocodes zu umgehen. Ursprünglich wurde angenommen, dass die Schwachstelle nur CPU-Modelle der 1. bis 4. Generation der Zen-Mikroarchitektur betrifft. Somit ist die Schwachstelle auch bei Prozessoren wie Ryzen 9000 (Granite Ridge), EPYC 9005 (Turin), Ryzen AI 300 (Strix Halo, Strix Point, Krackan Point) und Ryzen 9000HX (Fire Range) anwendbar.

Neben der Aktualisierung des Mikrocodes ist für die Behebung der Schwachstelle in Systemen, die SEV-SNP-Authentifizierung verwenden, auch ein Update der AMD SEV-Firmware erforderlich, die Bestandteil der BIOS-Updates ist. Es wird behauptet, dass AMD den Hardwareherstellern eine geänderte Firmware (ComboAM5PI 1.2.0.3c AGESA) bereitgestellt hat, die notwendig ist, um das Problem zu beheben. Die finalen BIOS-Updates, die für Verbraucher verfügbar sind, könnten von den Herstellern jedoch erst Wochen oder Monate später veröffentlicht werden.

Mitarbeiter von AMD haben auch einen Patch vorgeschlagen, der in den Linux-Kernel aufgenommen werden soll. Dieser Patch blockiert das Laden nicht offizieller Mikrocode-Updates. Es wird angemerkt, dass korrekte Mikrocode-Updates zusammen mit dem BIOS des Hardware-Herstellers installiert werden müssen, jedoch gibt es bereits Versuche von Enthusiasten, inoffizielle Korrekturen zu entwickeln, die auf Mikrocodefragmenten basieren, die aus dem BIOS extrahiert wurden. Nutzern wird empfohlen, auf offizielle BIOS-Updates zu warten.

Die durch die Schwachstelle EntrySign ermöglichte Änderung des Mikrocodes kann den Mechanismus AMD SEV (Secure Encrypted Virtualization) gefährden, der in Virtualisierungssystemen zum Schutz verwendet wird. virtuellen Maschinen Dies schützt vor Eingriffen durch den Hypervisor oder den Administrator des Host-Systems. Im Verlauf eines Angriffs kann man in die Funktionsweise von Gastbetriebssystemen eindringen, die durch Erweiterungen wie AMD SEV (Secure Encrypted Virtualization) und SEV-SNP (Secure Nested Paging) geschützt sind und Garantien für die Integrität des Speichers virtueller Maschinen bieten, die Prozessregister isolieren und eine sichere Handhabung von geschachtelten Seitentabellen gewährleisten.

Die Schwachstelle entsteht durch die Verwendung von CMAC als Verifikationsmethodik für den Mikrocode anstelle einer sicheren Hash-Funktion. AMD nutzt einen privaten RSA-Schlüssel, um den in den Prozessor geladenen Mikrocode mit einer digitalen Signatur zu versehen, während im Patch zum Mikrocode der öffentliche Schlüssel verteilt wird. Um sicherzustellen, dass der öffentliche Schlüssel mit dem Originalpaar der RSA-Schlüssel übereinstimmt, vergleicht der Prozessor den Hash des während der Produktion im CPU eingebetteten AMD-öffentlichen Schlüssels mit dem Hash des im Patch angegebenen öffentlichen Schlüssels.

Die Authentifizierung des Mikrocodes im Patch erfolgt durch den Vergleich des mit dem Patch gelieferten Hashs, der digital signiert ist (RSASSA-PKCS1-v1_5), und des Hashs, der auf dem tatsächlich im Patch gelieferten Mikrocode berechnet wurde. Wenn der Referenz-Hash und der berechnete Hash übereinstimmen, wird der Patch in den internen Speicher des CPU geladen. Das Problem liegt darin, dass statt der empfohlenen kryptografisch sicheren Hash-Funktionen der Algorithmus CMAC verwendet wurde, der nicht für derartige Operationen ausgelegt ist und nicht gegen Kollisionsangriffe geschützt ist.

CMAC ist keine Hash-Funktion, sondern implementiert eine schlüsselabhängige Integritätsprüfung (Message Authentication Code). Die Funktionsweise von AES-CMAC basiert auf der Verwendung des kryptografischen Algorithmus AES und der Kombination des Ergebnisses seiner Anwendung mit dem nächsten Datenblock durch eine XOR-Operation. Dieses Verfahren stellt sicher, dass Änderungen an den Eingabedaten zu unvorhersehbaren Änderungen der Ausgabedaten führen. Darüber hinaus ist es nicht zulässig, CMAC als Hash-Funktion zu verwenden, da jeder, der den ursprünglichen Schlüssel kennt, die Zwischenzustände der Verschlüsselung ablesen und Werte berechnen kann, die Änderungen an den Eingabedaten kompensieren, sodass das Ergebnis der Anwendung von CMAC unverändert bleibt.

AMD verwendet für AES-CMAC einen eindeutigen Verschlüsselungsschlüssel, der auf allen CPUs ab Zen 1 bereitgestellt wird. Somit reicht es aus, diesen Schlüssel aus einer beliebigen AMD-CPU zu extrahieren, und er kann auf allen anderen CPUs angewendet werden. Forscher haben entdeckt, dass für die AES-CMAC-Verschlüsselung bei AMD ein bekannter Schlüssel verwendet wurde, der aus einem Beispiel stammt, das in den NIST SP 800-38B-Empfehlungen zur Verwendung von Blockchiffren erwähnt wird. Da AES-CMAC für das Hashing des im Patch enthaltenen RSA-Schlüssels und des Mikrokod-Inhalts verwendet wird, gibt es mit der Bestimmung des AES-CMAC-Verschlüsselungsschlüssels die Möglichkeit, in den Patch einen anderen öffentlichen RSA-Schlüssel einzusetzen und den Inhalt des Mikrokod zu ändern.

Um einen gefälschten Patch zu erstellen, reicht es aus, einen neuen öffentlichen Schlüssel zu generieren, der denselben Hash erzeugt wie der originale öffentliche Schlüssel von AMD, sowie Kollisionen für die digitale Signatur zu finden. Kollisionen entstehen durch Anheften an den Mikrokode eines zusätzlichen Blocks, der wie eine Ansammlung zufälliger Daten aussieht. Auf diese Weise kann ein modifizierter Patch mit Mikrokode vorbereitet werden, der der digitalen Signatur entspricht, mit der der originale Patch von AMD signiert wurde. Das Zentool-Toolkit, das Werkzeuge zur Analyse des Mikrokodes und zur Erstellung von Patches für die Modifikation des Mikrokodes umfasst, ist unter der Apache 2.0-Lizenz verfügbar. Um den Mikrokode zu ersetzen, sind Berechtigungen erforderlich, um Code im Ring-0-Schutzlevel auszuführen (VT-x- und AMD-V-Technologien ermöglichen es dem Gastbetriebssystem, mit Ring-0-Rechten zu arbeiten).

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster