SLAM — eine Angriffstechnik auf Intel-, AMD- und ARM-CPUs, die es ermöglicht, den Inhalt des Arbeitsspeichers zu bestimmen.

Eine Gruppe von Forschern der Vrije Universiteit Amsterdam hat eine neue Angriffstechnik namens SLAM (Spectre Linear Address Masking) vorgestellt, die eine neue Methode zur Ausnutzung von Mikroarchitektur-Schwachstellen der Spectre-Klasse bietet. Bei dieser Technik tritt eine Datenleckage während der Übersetzung nicht kanonischer Adressen auf, wofür Erweiterungen zur Maskierung linearer Adressen in neuen Prozessoren verwendet werden, um die Kanonizitätsprüfungen zu umgehen. Die Forscher haben ein Werkzeug veröffentlicht, das die Methode implementiert, und eine Demonstration vorgeschlagen, die zeigt, wie Daten aus dem Kernel-Speicher entsprechend einer bestimmten Maske extrahiert werden können (es wird gezeigt, wie man in nur wenigen Dutzend Sekunden in Ubuntu eine Zeile mit dem Passwort-Hash des root-Benutzers aus dem Kernel-Speicher herauslesen kann).

Video abspielen

Der Angriff kann auf Systemen mit Intel-Prozessoren durchgeführt werden, die die LAM (Linear Address Masking)-Erweiterung unterstützen, sowie auf AMD-Prozessoren mit der UAI (Upper Address Ignore)-Erweiterung und ARM-Prozessoren mit der TBI (Top Byte Ignore)-Erweiterung. Diese Erweiterungen ermöglichen die Nutzung eines Teils der Bits 64-Bit-Zeiger zur Speicherung von Metadaten, die nicht mit der Adressierung in Verbindung stehen (für normale Programme wird nicht so viel Speicher benötigt, dass sie mit 64-Bit-Zeigern adressieren können, sodass die oberen Bits beispielsweise für sicherheitsrelevante Prüfungen verwendet werden können). Interessanterweise wurden Intel-, AMD- und ARM-Prozessoren mit Unterstützung für LAM, UAI und TBI bislang nur angekündigt, aber noch nicht in großen Stückzahlen produziert, was SLAM zum ersten spekulativen Angriff auf zukünftige CPUs macht. Der Angriff kann auch auf älteren AMD Zen+ und Zen 2 CPUs durchgeführt werden, die anfällig für die Schwachstelle CVE-2020-12965 sind.

Analog zur Ausnutzung von Spectre-Schwachstellen erfordert der SLAM-Angriff, dass im Kernel bestimmte Sequenzen von Anweisungen (Gadgets) vorhanden sind, die zu spekulativer Ausführung von Anweisungen führen. Solche Anweisungen führen zu spekulativen Lesevorgängen von Daten aus dem Speicher, die von externen Bedingungen abhängen, die vom Angreifer beeinflusst werden können. Nach der Feststellung einer fehlerhaften Prognose wird das Ergebnis der spekulativen Ausführung verworfen, jedoch bleiben die verarbeiteten Daten im Cache und können anschließend durch Analyse über Seitenkanäle extrahiert werden. Zur Extraktion der im Cache verbliebenen Daten verwenden die Forscher die Methode Evict+Reload, die darauf basiert, Bedingungen zu schaffen, um Daten aus dem Cache zu verdrängen (zum Beispiel wird eine Aktivität erzeugt, die den Cache gleichmäßig mit typischen Inhalten füllt) sowie Operationen durchzuführen, deren Ausführungszeit Aufschluss über das Vorhandensein von Daten im Prozessor-Cache gibt.

Für den SLAM-Angriff werden Gadgets verwendet, die auf Code basieren, in dem die vom Angreifer kontrollierten Daten (im Folgenden die Variable „secret“) als Zeiger verwendet werden. Zum Beispiel: void unmasked_gadget(long **secret) { **secret; }

Es wird festgestellt, dass solche Code-Muster häufig in Programmen verwendet werden, beispielsweise wurden im Linux-Kernel Zehntausende solcher Gadgets identifiziert, von denen mindestens mehrere Hundert für den Einsatz in Exploits geeignet sind. Die Leckage kann durch die Hinzufügung zusätzlicher Anweisungen zu solchen Gadgets blockiert werden, die die spekulative Ausführung verhindern. Intel plant, eine Softwaremethode zur Blockierung der Leckage bereitzustellen, bevor die Prozessoren mit LAM-Unterstützung ausgeliefert werden. AMD hat empfohlen, bestehende Methoden zur Blockierung von Spectre v2-Angriffen zu verwenden. Die Entwickler des Linux-Kernels haben beschlossen, die Unterstützung für LAM standardmäßig zu deaktivieren, bis Intel Empfehlungen zur Blockierung der Schwachstelle veröffentlicht.

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