TONTOU — ein Angriff auf Intel- und AMD-CPUs, der den Schutz vor Spectre v2-Schwachstellen umgeht.

Forscher des Massachusetts Institute of Technology haben die Angriffstechnik TONTOU (Time-of-Neutralization to Time-of-Use) identifiziert, die einen neuen Weg zur Ausnutzung mikroarchitektonischer Schwachstellen der Klasse Spectre v2 bietet. Die Schwachstelle ermöglicht es, den Inhalt des Kernel-Speichers während der Ausführung eines Exploits im Benutzerspeicher zu bestimmen. Der Code zum Blockieren der Ausnutzung dieser 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 demonstriert, dass ein lokaler, nicht privilegierter Benutzer einen Angriff ausführen kann, um den Hash des Root-Passworts, das in der Datei /etc/shadow gespeichert ist und während der Authentifizierung im System in den Speicher geladen wird, zu bestimmen. Es gelang den Forschern, Daten mit einer Rate von 5,47 Byte pro Sekunde und einer Genauigkeit von 91,97 % aus dem Kernel-Speicher zu extrahieren. Von 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 ihr Inhalt extrahiert werden.

Der Exploit wurde auf Systemen mit AMD-Prozessoren demonstriert und kann mit CPUs der AMD-Familien Zen 1-4 verwendet werden. Auf Intel-Systemen ist der Angriff ebenfalls möglich, jedoch komplexer in der Ausnutzung. Zum Schutz vor Stack-Überläufen der Rückkehradressen und zur Blockierung der Schwachstelle SRSO (Speculative Return Stack Overflow) verwenden AMD-Prozessoren den Schutzmechanismus Safe-RET, der den Branch-Prediction-Puffer nach jedem Gebrauch löscht und das Zeitfenster für den Angriff auf 2 Instruktionen, die innerhalb von einigen Dutzend Nanosekunden ausgeführt werden, verengt.

Um diesen Schutz zu umgehen und das Angriffsfenster zu erweitern, wurde eine Technik zur Verlangsamung der CPU implementiert, die es ermöglichte, den Interrupt-Ersatz im richtigen Moment durchzuführen, um den Ausführungsfluss im Kernel umzuleiten und den Interrupt-Handler zu nutzen, um den Eintrag im Vorhersehungsbuffer zu verfälschen. Um die SRSO-Sicherheitslücke auszunutzen, kann der Angreifer Bedingungen schaffen, unter denen der Vorhersageblock spekulativ eine große Anzahl von falsch vorhergesagten CALL-Aufrufen ausführt, ausreichend, um den Stack von Rückgabeadressen zu überlaufen und die korrekt vorhergesagten Rückgabeadressen, die am Anfang des Stacks platziert sind, zu überschreiben. Infolgedessen können die Anfangselemente des Stacks durch vom Angreifer ausgewählte Werte überschrieben werden, was später dazu führt, dass diese ersetzten Werte beim spekulativen Ausführen der RET-Anweisung im Kontext eines anderen Prozesses verwendet werden.

Der Prozessor wird erkennen, dass die Zweigvorhersage fehlerhaft war und wird die Operation in ihren Ausgangszustand zurücksetzen, aber die während der spekulativen Ausführung behandelten Daten werden im Cache und in mikroarchitektonischen Puffern verbleiben. Wenn der fehlerhaft ausgeführte Block auf den Speicher zugreift, führt seine spekulative Ausführung dazu, dass die im allgemeinen Cache und die aus dem Speicher gelesenen Daten gespeichert werden. Zur Extraktion von Informationen aus dem Cache kann eine der Methoden zur Bestimmung des Cache-Inhalts auf der Analyse der Zugriffszeit auf cached und nicht gecachte Daten basieren.

Quelle: opennet.ru

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