Wissenschaftler haben einen neuen spekulativen Seitenkanalangriff entwickelt, den sie iLeakage nennen, der auf allen neueren Apple-Geräten funktioniert und in der Lage ist, sensible Informationen aus dem Safari-Webbrowser zu extrahieren.
iLeakage ist die erste Demonstration eines spekulativen Ausführungsangriffs gegen Apple Silicon CPUs und den Safari-Browser. Er kann mit „nahezu perfekter Genauigkeit“ Daten aus Safari sowie Firefox, Tor und Edge auf iOS abrufen.
Im Kern handelt es sich um einen timerlosen Spectre-Angriff, der die standardmäßigen Seitenkanalschutzmaßnahmen umgeht, die von allen Browserherstellern implementiert wurden.
Geheimnisse aus Safari stehlen
iLeakage wurde von einem Team von Wissenschaftlern der Georgia Tech, University of Michigan und Ruhr University Bochum entwickelt. Sie untersuchten die Seitenkanalresistenz von Safari und konnten bestehende Gegenmaßnahmen umgehen, indem sie eine timerlose und architekturunabhängige Methode auf der Basis von Race Conditions implementierten.
Die Forscher konzentrierten sich darauf, sensible Informationen aus Safari zu lesen, und konnten Daten stehlen, indem sie ein Primitiv schufen, das spekulativ lesen und jeden 64-Bit-Zeiger im Adressraum leaken kann, den Apples Browser für den Rendering-Prozess verwendet.
Sie erreichten dies, indem sie die Seitenkanalschutzmaßnahmen, die Apple in seinem Browser implementiert hat, wie den Low-Resolution-Timer, die 35-Bit-Adresskomprimierung und das Value Poisoning, umgingen.
Die Forscher umgingen auch die Site-Isolation-Politik in Safari, welche Websites auf der Grundlage ihrer effektiven Top-Level-Domain (eTLD) plus einer Subdomain in verschiedene Adressräume unterteilt.
Sie nutzten eine neue Technik, bei der das JavaScript-Fenster.open-API es einer Angreiferseite ermöglicht, denselben Adressraum wie beliebige Opferseiten zu teilen.
Indem sie spekulative Typenverwirrung nutzten, um Apples 35-Bit-Adresskomprimierung und Value-Poisoning-Gegenmaßnahmen zu umgehen, konnten die Forscher sensible Daten von der Zielseite leaken, wie Passwörter und E-Mails.
Der Proof-of-Concept-Code für den Angriff ist in JavaScript und WebAssembly geschrieben, den beiden Programmiersprachen für die Bereitstellung dynamischer Webinhalte.
Das untenstehende Video zeigt, wie Gmail-Nachrichten in Safari auf einem iPad mit dem iLeakage-Angriff abgerufen wurden. Die Grundvoraussetzung für das Funktionieren des Angriffs ist, dass der Nutzer mit der Seite des Angreifers interagiert.
Die Forscher verwendeten dieselbe Methode, um ein Passwort für ein Instagram-Testkonto abzurufen, das im Safari-Webbrowser mit dem LastPass-Passwortverwaltungsdienst automatisch ausgefüllt wurde.
In einem weiteren Experiment zeigten die Forscher, wie die iLeakage-Attacke auch auf Chrome für iOS funktioniert und konnten den YouTube-Verlauf abrufen.
Sie erklärten, dass Apples Richtlinie es allen Drittanbieter-iOS-Browsern vorschreibt, Overlays über Safari zu sein und Apples JavaScript-Engine zu verwenden.
iLeakage basiert auf der Ausnutzung spekulativer Ausführungen in Apple Silicon-Chips (M1, M2), bei denen die vorausschauende Ausführung des CPUs Aufgaben durchführt, die wahrscheinlich benötigt werden, bevor bekannt ist, ob sie tatsächlich benötigt werden oder nicht.
Dieser Mechanismus, der in allen modernen CPUs vorhanden ist, verbessert die Leistung erheblich. Designfehler können jedoch zu Datenlecks führen, wie die vor fast sechs Jahren offengelegten Meltdown- und Spectre-Angriffe bewiesen haben.
Weitere Details zum Angriff und den einzelnen Methoden zur Umgehung von Apples Schutzmaßnahmen finden Sie in dem technischen Papier, das die Forscher veröffentlicht haben.
Auswirkungen und Abwehrtipps
iLeakage betrifft alle Apple-Geräte, die ab 2020 herausgekommen sind und von Apples A-Serie und M-Serie ARM-Prozessoren angetrieben werden.
Der Angriff ist weitgehend nicht nachweisbar und hinterlässt keine Spuren in Form von Logs auf dem System des Opfers, abgesehen von vielleicht einem Eintrag der Angreifer-Webseite im Browser-Cache.
Dennoch betonen die Forscher, dass der Angriff schwierig durchzuführen ist „und ein fortgeschrittenes Wissen über browserbasierte Seitenkanalangriffe und die Implementierung von Safari erfordert“.
iLeakage wurde Apple am 12. September 2022 privat gemeldet, und das Unternehmen entwickelte die folgenden Abhilfemaßnahmen für macOS:
- Terminal öffnen und ‚defaults write com.apple.Safari IncludeInternalDebugMenu 1‘ ausführen, um das versteckte Debug-Menü von Safari zu aktivieren.
- Safari öffnen und zum nun sichtbaren Debug-Menü gehen.
- ‚WebKit Internal Features‘ auswählen
- Scrollen und ‚Swap Processes on Cross-Site Window Open‘ aktivieren
Die Abhilfemaßnahme kommt mit der Warnung, dass sie einige Instabilität verursachen könnte. Wenn Nutzer sie deaktivieren möchten, können sie dies über das Debug-Menü tun, indem sie im Terminal den Befehl ‚defaults write com.apple.Safari IncludeInternalDebugMenu 0‘ ausführen.
Abgesehen von den tatsächlichen Auswirkungen von iLeakage hebt diese Forschung die potenziellen spekulativen Ausführungsrisiken in aufkommenden ARM-basierten Plattformen hervor, die nicht so intensiv untersucht wurden wie x86-Architekturen.