TONTOU — ein Angriff auf die Intel- und AMD-CPUs, der es ermöglicht, den Schutz gegen Spectre v2-Schwachstellen zu umgehen

Forscher des Massachusetts Institute of Technology haben die Angriffstechnik TONTOU (Time-of-Neutralization to Time-of-Use) identifiziert, die eine neue Möglichkeit zur Ausnutzung mikroarchitektonischer Schwachstellen der Klasse Spectre v2 bietet. Die Schwachstelle ermöglicht es, den Inhalt des Kernspeichers während der Ausführung des Exploits im Benutzerspeicher zu bestimmen. Der Code zur Blockierung der Ausnutzung der Schwachstelle wurde am 5. August in den Linux-Kernel aufgenommen und ist in den Versionen 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 und 5.10.263 enthalten.

Die Forscher haben gezeigt, dass ein lokaler unprivilegierter Benutzer in der Lage ist, den Hash des Root-Passworts, das in der Datei /etc/shadow gespeichert ist und bei der Authentifizierung im System in den Speicher geladen wird, zu bestimmen. Den Forschern gelang es, mit einer Geschwindigkeit von 5,47 Byte pro Sekunde Daten aus dem Kernspeicher auszulesen und dabei eine Genauigkeit von 91,97 % zu erreichen. Bei 10 Testdurchläufen des Exploits, die im Durchschnitt 18 Minuten dauerten, konnte in der Hälfte der Fälle erfolgreich festgestellt werden, ob die Datei /etc/shadow im Speicher vorhanden war, und deren Inhalt extrahiert werden.

Der Exploit wurde auf Systemen mit AMD-Prozessoren demonstriert und kann mit CPUs der AMD-Familien Zen 1-4 eingesetzt werden. Auf Intel-Systemen ist der Angriff ebenfalls möglich, aber die Ausnutzung ist komplexer. Zum Schutz vor Rücksprungadressenüberlauf und zur Blockierung der Schwachstelle SRSO (Speculative Return Stack Overflow) verwenden AMD-Prozessoren den Schutzmechanismus Safe-RET, der den Vorhersagepuffer nach jeder Verwendung leert und das Fenster für den Angriff auf 2 Anweisungen, die in mehreren Dutzend Nanosekunden ausgeführt werden, verengt.

Um diesen Schutz zu umgehen und das Fenster für den Angriff zu erweitern, wurde eine Technik zur Verzögerung der CPU implementiert, die es ermöglichte, die Interrupt-Ersatzoperation zum richtigen Zeitpunkt auszuführen, um den Ablauf im Kernel umzuleiten und den Interrupt-Handler zu nutzen, um den Eintrag im Verlaufspuffer zu manipulieren. Um die SRSO-Sicherheitsanfälligkeit auszunutzen, kann der Angreifer Bedingungen schaffen, unter denen der Verlaufsvorhersageblock spekulativ eine große Anzahl von falsch vorhergesagten CALL-Aufrufen ausführt, was ausreicht, um den Rückgabeadressstapel zu überlaufen und korrekt vorhergesagte Rückgabepunkte, die sich am Anfang des Stapels befinden, zu überschreiben. Infolgedessen können die anfänglichen Elemente des Stapels durch die vom Angreifer gewählten Werte überschrieben werden, was dazu führt, dass diese ersetzten Werte bei der spekulativen Ausführung der RET-Anweisung im Kontext eines anderen Prozesses verwendet werden.

Der Prozessor wird feststellen, dass die Vorhersage der Verzweigung fehlgeschlagen ist und den Vorgang auf den Ursprungszustand zurücksetzen, aber die im Verlauf der spekulativen Ausführung verarbeiteten Daten bleiben im Cache und in mikroarchitektonischen Puffern gespeichert. Wenn der falsch ausgeführte Block auf den Speicher zugreift, führt seine spekulative Ausführung dazu, dass Daten im gemeinsamen Cache gespeichert werden, die aus dem Speicher gelesen wurden. Zur Informationsbeschaffung aus dem Cache kann eine der Methoden zur Bestimmung des Cacheinhalts basierend auf der Analyse der Zugriffszeit auf gecachte und nicht gecachte Daten angewendet werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4