Spook.js, eine neue Technik zur Ausnutzung von Spectre-Schwachstellen in Chrome

Eine Gruppe von Forschern von amerikanischen, australischen und israelischen Universitäten berichteten, dass beschrieb eine neue Angriffstechnik die es ermöglicht, Schwachstellen auszunutzen Spectre-Klasse auf Chromium-basierten Browsern.

Der Angriff, Codename Spook.js, ermöglicht beim Ausführen von JavaScript-Code das Umgehen des Website-Isolationsmechanismus und Lesen des Inhalts des gesamten Adressraums des aktuellen Prozesses, d. h. Zugreifen auf die Daten der Seiten, die in anderen Registerkarten ausgeführt werden, aber im gleichen Prozess verarbeitet werden.

Da Chrome verschiedene Websites in unterschiedlichen Prozessen startet, beschränken sich praktische Angriffe auf Dienste, die es verschiedenen Benutzern ermöglichen, ihre Seiten zu hosten. Die Angriffsmethode von Spook.js macht es möglich von einer Seite aus, in die ein Angreifer seinen JavaScript-Code einbetten kann, das Vorhandensein anderer Seiten feststellen, die vom Benutzer derselben Site geöffnet wurden und extrahieren Sie vertrauliche Informationen davon zum Beispiel durch das Autocomplete-System ersetzte Zugangsdaten oder Bankdaten in Webformularen.

Eine weitere Anwendung der Methode ist ein Angriff auf Browser-Plugins, Dies ermöglicht es, wenn ein von Angreifern kontrolliertes Plug-In installiert ist, Daten aus anderen Plug-Ins zu extrahieren.

Spook.js ist auf jeden Browser anwendbar, der auf der Chromium-Engine basiert, einschließlich Google Chrome, Microsoft Edge und Brave. Die Forscher glauben auch, dass die Methode an Firefox angepasst werden kann, aber da sich die Firefox-Engine stark von Chrome unterscheidet, wird die Arbeit an der Erstellung eines solchen Exploits der Zukunft überlassen.

Zum Schutz vor Angriffen im Zusammenhang mit der spekulativen Ausführung von Befehlen durch den Browser ist in Chrome eine Adressraumsegmentierung implementiert: Die Sandbox-Isolation ermöglicht es JavaScript, nur mit 32-Bit-Zeigern zu arbeiten und teilt den Speicher des Controllers in nicht überlappenden 4-GB-Stacks.

Um den Zugriff auf den gesamten Adressraum des Prozesses zu organisieren und die 32-Bit-Beschränkung zu umgehen, verwendeten die Forscher die Typverwechslungstechnik, die es der JavaScript-Engine ermöglicht, ein Objekt mit dem falschen Typ zu verarbeiten, wodurch eine 64-Bit-Bildung möglich ist Code basierend auf einer Kombination von zwei 32-Bit-Werten.

Der Kern des Angriffs besteht darin, dass durch die Verarbeitung eines speziell gestalteten bösartigen Objekts in der JavaScript-Engine Bedingungen geschaffen werden, die zur spekulativen Ausführung von Anweisungen führen, die auf das Array zugreifen. Das Objekt wird so ausgewählt, dass die von den Angreifern kontrollierten Felder in den Bereich gelegt werden, in dem der 64-Bit-Zeiger verwendet wird.

Da der Typ des bösartigen Objekts nicht dem Typ des verarbeiteten Arrays entspricht, werden solche Aktionen unter normalen Bedingungen in Chrome durch den Deoptimierungsmechanismus des Codes blockiert, der für den Zugriff auf die Arrays verwendet wird. Um dieses Problem zu lösen, wird der Angriffscode für die Typenverwechslung in einen "if"-Bedingungsblock platziert, der unter normalen Bedingungen nicht ausgelöst wird, sondern im spekulativen Modus ausgeführt wird, wenn der Prozessor fälschlicherweise weitere Verzweigungen vorhersagt.

Als Ergebnis greift der Prozessor spekulativ auf den generierten 64-Bit-Zeiger zu und kehrt den Zustand nach der Bestimmung der fehlgeschlagenen Vorhersage zurück, aber die Ausführungs-Traces werden in den gemeinsam genutzten Cache gesetzt und können mithilfe von Methoden wiederhergestellt werden, um den Inhalt des Caches durch Dritte zu bestimmen. Party-Kanälen und analysiert die Änderung der Zugriffszeit auf zwischengespeicherte und nicht zwischengespeicherte Daten.

Um den Inhalt des Caches unter den Bedingungen einer unzureichenden Genauigkeit des in JavaScript verfügbaren Timers zu analysieren, wird eine von Google vorgeschlagene Methode verwendet, die die in Prozessoren verwendete Strategie zur Entfernung von Tree-PLRU-Cachedaten austrickst und durch Erhöhen der Anzahl der Zyklen ermöglicht, den Zeitunterschied bei Vorhandensein und Fehlen eines Werts im Cache erheblich erhöhen.

Forscher haben einen Prototyp-Exploit veröffentlicht, der in Chrome 89 e funktioniertn-Systeme mit Intel i7-6700K und i7-7600U. Der Exploit wurde mit Prototypen von JavaScript-Code erstellt, die zuvor von Google veröffentlicht wurden, um Spectre-Angriffe auszuführen.

Schließlich erwähnen die Forscher das hat es geschafft, funktionierende Exploits für Systeme vorzubereiten, die auf Intel- und Apple-M1-Prozessoren basieren, die die Möglichkeit haben, den Lesespeicher mit einer Geschwindigkeit von 500 Bytes pro Sekunde und einer Genauigkeit von 96% zu organisieren. Die Methode soll auf AMD-Prozessoren anwendbar sein, ein voll funktionsfähiger Exploit konnte jedoch nicht vorbereitet werden.

Quelle: https://www.spookjs.com


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.