Der BadRAM-Angriff, der es ermöglicht, den SEV-SNP-Bestätigungsmechanismus in AMD-CPUs zu umgehen

Eine Gruppe von Forschern der Universitäten Löwen, Lübeck und Birmingham hat eine Methode zum BadRAM-Angriff (CVE-2024-21944) entwickelt, die es ermöglicht, den Authentifizierungsmechanismus zu umgehen und Umgebungen zu kompromittieren, die mittels der SEV-SNP-Erweiterung in AMD-Prozessoren geschützt sind. Für den Angriff muss der Angreifer, mit wenigen Ausnahmen, physischen Zugriff auf die Speichermodule haben sowie die Möglichkeit zur Codeausführung im Schutzring 0 (ring0) auf dem Server, der die geschützten Gastumgebungen ausführt.

Die AMD SEV-Erweiterungen (Secure Encrypted Virtualization) zielen darauf ab, die Integrität des Speichers virtueller Maschinen zu gewährleisten und sie vor Eingriffen und Analysen durch den Administrator des Hostsystems zu schützen, der Code auf Hypervisorebene ausführen kann. Ursprünglich beschränkte sich der Schutz von AMD SEV auf die Verschlüsselung des Inhalts des Arbeitsspeichers des Gastsystems und die Isolation von Registern. Später wurde in AMD EPYC-Prozessoren zusätzlich die SEV-SNP-Erweiterung (Secure Nested Paging) implementiert, um die sichere Verarbeitung von geschachtelten Speichertabellen zu gewährleisten, die die Integrität des Speichers sicherstellt und Änderungen am Speicher des Gastsystems durch den Hypervisor verhindert.

Der AMD SEV-SNP-Mechanismus wurde entwickelt, damit Geheimdienste oder Mitarbeiter von Rechenzentren und Cloud-Anbietern, in denen geschützte Gastbetriebssysteme ausgeführt werden, nicht in die Arbeitsweise des Gastbetriebssystems eingreifen können. Die vorgeschlagene BadRAM-Angriffsmethode ermöglicht es, die bereitgestellten Garantien durch Änderung der SPD-Metadaten (Serial Presence Detect) in den DDR4- oder DDR5-Speichermodulen zu umgehen. Bei einem erfolgreichen Angriff kann der Angreifer verschlüsselte Daten im Speicher des Gastbetriebssystems (auf Ciphertext-Ebene, ohne Möglichkeit zur Entschlüsselung) überschreiben und den Bestätigungsmechanismus umgehen, beispielsweise um das Eindringen eines Backdoors in eine durch die SEV-SNP-Technologie geschützte virtuelle Maschine zu verbergen.

Der Angriff basiert darauf, im SPD falsche Parameter des Speichermoduls anzugeben, die den Prozessor dazu bringen, auf nicht existierende Adressen zuzugreifen, die auf tatsächlich vorhandene Speicherbereiche reflektiert werden. Der Angreifer kann das SPD so anpassen, dass das Speichermodul dem Prozessor eine Größe zurückgibt, die die tatsächlichen Eigenschaften des Moduls übersteigt. Anschließend kann der Angreifer erfundene, nicht existierende Speicherplätze auf einen realen Bereich im DRAM abbilden, der bereits in verschlüsselter Form in geschützten Gastsystemen verwendet wird. So entsteht eine Situation, in der verschiedene Adressen auf denselben physischen Speicher zeigen (zwei Bereiche werden auf einen Bereich im DRAM-Chip reflektiert), d. h. auf die Adresse des erfundenen, reflektierten Speicherbereichs kann auf den bereits verwendeten realen Speicher zugegriffen werden, und die Speicherschutzmechanismen der CPU können umgangen werden.

Der BadRAM-Angriff, der es ermöglicht, den SEV-SNP-Bestätigungsmechanismus in AMD-CPUs zu umgehen

Für den Angriff reicht es aus, einen einfachen Programmierer zu bauen, der etwa 10 Dollar kostet und aus einem Mikrocontroller Raspberry Pi Pico, einer Schnittstelle für DDR4-/DDR5-Module und einer Stromquelle besteht. Die für den Angriff verwendeten Tools, das Kernel-Modul und Prototypen von Exploits sind auf GitHub verfügbar.

Der BadRAM-Angriff, der es ermöglicht, den SEV-SNP-Bestätigungsmechanismus in AMD-CPUs zu umgehen

Für Chips bestimmter Hersteller, bei denen der Schreibschutz des SPD nicht implementiert ist, ist ein Angriff auch softwareseitig ohne physischen Zugriff auf den Server möglich. Beispielsweise können die Parameter von Speichermodulen des Unternehmens Corsair mit RGB-Beleuchtung softwareseitig geändert werden. Bei einem vollständig softwarebasierten Angriff kann das System kompromittiert werden, etwa durch die Anwendung eines schädlichen BIOS-Updates oder durch Sabotage seitens der Administratoren. Server in Cloud-Diensten.

Der BadRAM-Angriff, der es ermöglicht, den SEV-SNP-Bestätigungsmechanismus in AMD-CPUs zu umgehen

Zur Bestätigung der Funktionsweise der Methode wurden zwei Angriffe demonstriert. Im ersten Angriff wird die Möglichkeit der Wiederherstellung des Chiffretexts aufgezeigt – bei Verwendung von AMD SEV werden die Daten im Speicher in verschlüsselter Form gespeichert, und der Angreifer kann den Inhalt nicht bestimmen, hat jedoch die Möglichkeit, die verschlüsselten Daten zu lesen und sie anstelle eines anderen verschlüsselten Inhalts einzusetzen.

Im zweiten Angriff wurde die Möglichkeit demonstriert, den SEV-SNP-Authentifizierungsmechanismus zu umgehen, der kryptografische Bestätigungen der Integrität von virtuellen Maschinen liefert, die in einer geschützten Umgebung ausgeführt werden. Der Angreifer kann den Bericht der Authentifizierung einer korrekten virtuellen Maschine abfangen und diesen dann für eine kompromittierte virtuelle Maschine verwenden, indem er beispielsweise die Spuren einer Backdoor verbirgt.

Das Problem betrifft die 3. und 4. Generation von AMD EPYC-Prozessoren, die unter den Code-Namen Milan, Milan-X, Genoa, Bergamo, Genoa-X und Siena geliefert werden. Um die Schwachstelle zu blockieren, hat AMD bereits ein Firmware-Update für SEV veröffentlicht, das die ALIAS_CHECK-Prüfung implementiert, um Manipulationen des Speichers, wie sie in dem betrachteten Angriff vorkommen, zu verhindern.

Die von Intel vorgeschlagenen Technologien Scalable SGX und TDX sind nicht anfällig für den Angriff, da die erforderlichen Überprüfungen von Anfang an vorhanden sind. Die klassische Intel SGX-Technologie, die 2021 von Intel als veraltet eingestuft wurde, ist teilweise anfällig für Angriffe (analog zum zuvor bekannten Angriff MemBuster kann ein Angreifer auf verschlüsseltem Speicher zugreifen, d.h. es ist nur das Lesen des Chiffretextes, aber nicht dessen Überschreibung möglich). Die Tests der CCA (Confidential Compute Architecture)-Erweiterungen in ARM-Prozessoren wurden noch nicht durchgeführt.

Zusätzlich wird von einer weiteren Schwachstelle im Zusammenhang mit AMD SEV-SNP berichtet. Die Schwachstelle wurde in einem von AMD entwickelten Fork des QEMU-Emulators entdeckt, der für den Betrieb virtuelle Maschinen mit SEV-SNP gedacht ist. Das Problem ermöglicht es dem Administrator der Host-Umgebung, Root-Zugriff auf die Gast Systeme durch Manipulationen an den ACPI-Tabellen zu erhalten. Die Schwachstelle entsteht dadurch, dass beim Laden des Gast-Systems die Integrität des Linux-Kernels, des initialen RAM-Disk und der Kernel-Parameter überprüft wird, jedoch die ACPI-Tabellen nicht berücksichtigt werden, über die vom Hypervisor speziell formatierten AML (ACPI Machine Language)-Code ausgeführt werden kann, der für die Ausführung in der Gast-Umgebung bestimmt ist. Es wird behauptet, dass das Problem nicht spezifisch für QEMU ist und in allen Hypervisoren und Emulatoren auftritt, da der Linux-Kernel den an ihn vom Hypervisor gesendeten ACPI-Daten vertraut.

Video abspielen
Video abspielen


Quelle: opennet.ru
60GB SSD 8Gb DDR4