Sie entwickelten eine Reihe von CPU-Cache-Wiederherstellungsangriffen in Webbrowsern, ohne dass JavaScript erforderlich war

Ein Forscherteam verschiedener Universitäten Amerikaner, Israelis und Australier hat drei Angriffe auf Webbrowser entwickelt, mit denen Informationen über den Inhalt des Prozessor-Cache extrahiert werden können. Eine Methode funktioniert in Browsern ohne JavaScript und die beiden anderen umgehen vorhandene Schutzmethoden gegen Angriffe über Kanäle von Drittanbietern, einschließlich der im Tor-Browser und in DeterFox verwendeten.

So analysieren Sie den Inhalt des Caches in Alle Angriffe verwenden die "Prime + Probe" -MethodeDass Dabei wird der Cache mit einer Reihe von Referenzwerten gefüllt und Änderungen durch Messen der Zugriffszeit ermittelt zu ihnen beim Aufladen. Um die in Browsern vorhandenen Sicherheitsmechanismen zu umgehen, die eine genaue Zeitmessung verhindern, wird in zwei Versionen ein kontrollierter angreifender DNS- oder WebSocket-Server benötigt, der den Zeitpunkt des Eingangs von Anforderungen aufzeichnet. In einer Ausführungsform wird die feste DNS-Antwortzeit als Zeitreferenz verwendet.

Messungen, die mit externen DNS-Servern oder WebSocket dank eines auf maschinellem Lernen basierenden Klassifizierungssystems durchgeführt wurden, reichten aus, um Werte mit einer Genauigkeit von 98% im optimalsten Szenario (durchschnittlich 80-90%) vorherzusagen. Die Angriffsmethoden wurden auf verschiedenen Hardwareplattformen (Intel, AMD Ryzen, Apple M1, Samsung Exynos) getestet und haben sich als vielseitig erwiesen.

Die erste Variante des DNS Racing-Angriffs verwendet eine klassische Implementierung der Prime + Probe-Methode Verwenden von JavaScript-Arrays. Die Unterschiede sind auf die Verwendung eines externen DNS-basierten Timers und eines Fehlerbehandlers zurückzuführen, der ausgelöst wird, wenn versucht wird, ein Bild aus einer nicht vorhandenen Domäne zu laden. Der externe Timer ermöglicht Prime + Probe-Angriffe in Browsern, die den Zugriff auf den JavaScript-Timer einschränken oder vollständig deaktivieren.

Für einen DNS-Server, der im selben Ethernet-Netzwerk gehostet wird, wird die Genauigkeit des Timers auf etwa 2 ms geschätzt, was ausreicht, um einen Seitenkanalangriff auszuführen (zum Vergleich: Die Genauigkeit des Standard-JavaScript-Timers im Tor-Browser hat wurde auf 100 ms reduziert). Für den Angriff ist keine Kontrolle über den DNS-Server erforderlichda die Ausführungszeit der Operation so gewählt wird, dass die DNS-Antwortzeit als Signal für einen frühen Abschluss der Überprüfung dient (abhängig davon, ob der Fehlerbehandler früher oder später ausgelöst wurde). wird der Schluss gezogen, dass der Überprüfungsvorgang mit dem Cache abgeschlossen ist) ...

Der zweite "String and Sock" -Angriff soll Sicherheitstechniken umgehen die die Verwendung von JavaScript-Arrays auf niedriger Ebene einschränken. Anstelle von Arrays verwenden String und Sock sehr große String-Operationen, deren Größe so gewählt wird, dass die Variable den gesamten LLC-Cache abdeckt (Cache der obersten Ebene).

Als nächstes wird mit der Funktion indexOf () eine kleine Teilzeichenfolge in der Zeichenfolge gesucht, die anfangs in der ursprünglichen Zeichenfolge fehlt, dh die Suchoperation führt zu einer Iteration über die gesamte Zeichenfolge. Da die Größe der Zeile der Größe des LLC-Cache entspricht, ermöglicht der Scan, dass eine Cache-Überprüfungsoperation ausgeführt wird, ohne Arrays zu manipulieren. Um Verzögerungen anstelle von DNS zu messen, ist dies ein Aufruf an einen angreifenden WebSocket-Server, der vom Angreifer gesteuert wird: Vor dem Start und nach dem Ende des Suchvorgangs werden Anforderungen in der Kette gesendet.

Die dritte Version des Angriffs "CSS PP0" über HTML und CSS kann in Browsern mit deaktiviertem JavaScript verwendet werden. Diese Methode sieht aus wie "String and Sock", ist jedoch nicht an JavaScript gebunden. Der Angriff generiert eine Reihe von CSS-Selektoren, die nach Maske suchen. Die großartige Originalzeile, die den Cache füllt wird durch Erstellen eines div-Tags festgelegt mit einem sehr großen Klassennamen undn in dem sich eine Reihe anderer Divs mit eigenen Bezeichnern befindet.

Jeder von Diese verschachtelten Divs sind mit einem Selektor versehen, der nach einem Teilstring sucht. Beim Rendern der Seite versucht der Browser zunächst, die inneren Divs zu verarbeiten, was zu einer Suche nach einer großen Zeichenfolge führt. Die Suche wird mit einer offensichtlich fehlenden Maske durchgeführt und führt zu einer Iteration der gesamten Zeichenfolge. Danach wird die Bedingung "Nein" ausgelöst und versucht, das Hintergrundbild zu laden.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.