2 Punkte von GN⁺ 2025-01-29 | 1 Kommentare | Auf WhatsApp teilen

SLAP: Datenspekulationsangriff (data Speculation attacks via Load Address Prediction)

  • SLAP-Angriff ist ein neuer Speculative-Execution-Angriff auf Apple-Silicon-CPUs der Reihen M2/A15.
  • Über den Load Address Predictor (LAP) werden auf Basis von Speicherzugriffsmustern die nächsten Speicheradressen vorhergesagt, um die Leistung zu steigern.
  • Bei einer Fehlvorhersage verarbeitet die CPU per Speculative Execution Daten, auf die sie nicht zugreifen sollte, was ein Sicherheitsrisiko verursacht.
  • Als reales Beispiel wurde ein Angriff demonstriert, bei dem ein entfernter Angreifer im Safari-Webbrowser E-Mail-Inhalte und Surfverhalten rekonstruieren kann.

FLOP: Falsche Load-Output-Vorhersagen (False Load Output Predictions)

  • FLOP-Angriff ist ein weiterer Speculative-Execution-Angriff auf Apple-CPUs der Reihen M3/A17, der durch die Vorhersage von Datenabhängigkeiten entsteht.
  • Über den Load Value Predictor (LVP) werden von der Speichersubsystem-Rückgabe erwartete Datenwerte vorhergesagt, um die Leistung zu steigern.
  • Bei einer Fehlvorhersage entsteht eine Angriffsfläche, mit der wichtige Prüfungen der Programmlogik für Speichersicherheit umgangen und im Speicher abgelegte Geheimnisse offengelegt werden können.
  • Es wurde ein Angriff auf Safari und Chrome demonstriert, der Standortverlauf, Kalendereinträge und Kreditkarteninformationen rekonstruieren kann.

Demos

  • Datenabfluss aus dem Proton-Mail-Posteingang: Der LVP einer M3-CPU wird mit JavaScript-Code in WebKit trainiert, um Inhalte des Posteingangs in den Adressraum zu holen.
  • Den großen Gatsby lesen: Proof-of-Concept-Demonstration, die auf einer Apple-M2-CPU mit LAP eine geheime Zeichenkette rekonstruiert.
  • Harry Potter lesen: Proof-of-Concept-Demonstration, die auf einer Apple-M3-CPU mit LVP einen falschen Array-Index vorhersagt und auf Zeichen einer Zeichenkette verweist.

Forschungsteam

  • Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
  • Yuval Yarom (Ruhr University Bochum)

SLAP- und FLOP-FAQ

Is my Apple device affected?

  • Mac-Notebooks: alle seit 2022 veröffentlichten Modelle (MacBook Air, MacBook Pro)
  • Mac-Desktops: alle seit 2023 veröffentlichten Modelle (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: alle seit September 2021 veröffentlichten iPad-Pro-, Air- und Mini-Modelle
    • Pro 6. und 7. Generation, Air 6. Generation, Mini 6. Generation
  • iPhone: alle seit September 2021 veröffentlichten Modelle
    • alle Modelle von iPhone 13, 14, 15, 16 sowie SE 3. Generation

Why are the SLAP and FLOP attacks significant?

  • Schutzmechanismus: Normalerweise sorgen Webbrowser dafür, dass zwei geöffnete Webseiten voneinander isoliert sind, sodass eine Seite die Inhalte der anderen nicht lesen kann
  • Schwachstelle: SLAP und FLOP hebeln diesen Schutz aus, sodass eine Angreiferseite sensible Daten der Zielseite lesen kann
    • Offenlegbare Daten: Standortverlauf, Kreditkarteninformationen usw.

How can I defend against SLAP and FLOP?

  • Für FLOP gibt es mögliche Gegenmaßnahmen, diese erfordern jedoch Patches der Softwareanbieter und können nicht direkt von Nutzern selbst behoben werden
  • Apple hat erklärt, das Problem in künftigen Sicherheitsupdates zu beheben; wichtig ist daher, automatische Updates zu aktivieren und Betriebssystem sowie Anwendungen aktuell zu halten

What about other processor vendors?

  • Bei Produkten von Intel, AMD, Qualcomm, Ampere und anderen wurden bislang keine Hinweise auf SLAP oder FLOP gefunden

What about other web browsers?

  • Andere Browser wie Firefox wurden nicht getestet

Can I detect if someone is using SLAP or FLOP on my device?

  • SLAP und FLOP sind mikroarchitekturbasierte Angriffe und hinterlassen keine Spuren in Systemlogs

Are any malicious actors abusing SLAP or FLOP in the wild?

  • Bislang gibt es keine Belege dafür, dass SLAP oder FLOP tatsächlich in freier Wildbahn eingesetzt wurden

When did you notify Apple?

  • SLAP: am 24. Mai 2024 an Apple gemeldet
  • FLOP: am 3. September 2024 an Apple gemeldet

Technische Fragen

Was ist ein Side Channel?

  • Ein Angriff, der Schwachstellen in der Implementierung von Computerhardware ausnutzt
    • Statt Softwarefehlern werden Informationsabflüsse genutzt, die aus dem Verhalten der Hardware entstehen
  • Pfade für Datenabfluss
    • physikalische Phänomene wie Geräusche, elektromagnetische Wellen oder Wärmeabgabe
    • Konkurrenzsituationen bei gemeinsam genutzten Ressourcen der CPU (Kerne, Cache, interne Puffer usw.)
  • Informationsoffenlegung durch CPU-Konkurrenz
    • Über indirekte Variablen wie Zeitmessung oder Stromverbrauch lassen sich Verhaltensmuster des Ziels ableiten

Was ist ein Speculative-Execution-Angriff?

  • Speculative Execution: Optimierungstechnik, bei der die CPU den Kontrollfluss vorhersagt und Befehle vorab ausführt
    • Ist die Vorhersage falsch, wird der Zustand zurückgesetzt, aber feine Spuren wie im Cache bleiben zurück
  • Spectre-Angriff
    • verleitet die CPU dazu, auf einem falschen Pfad spekulativ auszuführen
    • Werden dabei Befehle ausgeführt, die sensible Daten verwenden, kann der Datenwert indirekt offengelegt werden
  • Erweiterung bei SLAP und FLOP
    • Apple-CPUs sagen nicht nur den Kontrollfluss, sondern auch den Datenfluss vorher
    • FLOP löst die Ausführung von Befehlen mit falschen Datenwerten aus

Funktionsweise von SLAP

  1. Analyse der Load Address Prediction (LAP)
    • Wenn bestimmte Speicheradressmuster angelernt werden, sagt LAP die nächste Adresse voraus und führt Datenoperationen aus
    • Anders als Hardware-Prefetching werden Befehle mit den vorhergesagten Daten ausgeführt
  2. Ausnutzung einer Safari-Schwachstelle
    • Aufbauend auf dem von iLeakage gefundenen Isolationsproblem in Safari wird erzwungen, dass verschiedene Webseiten im selben Prozess verarbeitet werden
    • Die Angreifer-Webseite greift auf Zeichenkettendaten der Ziel-Webseite zu

Funktionsweise von FLOP

  1. Analyse der Load Value Prediction (LVP)
    • Wenn wiederholt derselbe Datenwert zurückgegeben wird, sagt LVP das Ergebnis voraus
    • Befehle werden unter Verwendung eines falschen Speicherwerts ausgeführt
  2. Angriffe auf Safari und Chrome
    • Safari: Es wird Typinformation von JavaScript-Datenstrukturen vorhergesagt, sodass Befehle mit einer falschen Datenstruktur ausgeführt werden
    • Chrome: Bei WebAssembly-Funktionsaufrufen verursachen falsche Argumente fehlerhafte Speicherlesevorgänge

Unterschiede zwischen SLAP und FLOP

  • SLAP: nutzt den Load Address Predictor (LAP), um die Nähe von String-Allokationen auszunutzen
  • FLOP: nutzt den Load Value Predictor (LVP), um Integritätsprüfungen von Daten zu umgehen
  • LAP vs. LVP
    • LAP: sagt die nächste Speicheradresse voraus
    • LVP: sagt den nächsten zurückgegebenen Speicherwert voraus
    • LAP benötigt einen längeren Trainingsprozess, kann dafür aber Muster vorhersagen

Was sind JavaScript und WebAssembly?

  • JavaScript: Sprache zum dynamischen Aktualisieren von Webinhalten
  • WebAssembly: Sprache für hochperformante Webanwendungen, die mit JavaScript zusammenarbeitet
  • Auswirkungen des Angriffs
    • Beide Sprachen werden im Browser automatisch ausgeführt, sodass ein Angriff auch ohne Download von Schadcode möglich ist

Warum wurden Safari und Chrome als Angriffsziele gewählt?

  • Safari:
    • Es gibt keine Site Isolation, daher können Webseiten unterschiedlicher Domains im selben Prozess laufen
    • Vergrößerte Angriffsfläche für LAP- und LVP-basierte Angriffe
  • Chrome:
    • Site Isolation ist zwar aktiviert, aber in manchen Fällen werden Subdomains derselben Site in einem Prozess verarbeitet
    • LAP- und LVP-Angriffe sind daher weiterhin möglich

Forschungsförderung

  • Diese Forschung wurde durch AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco und Zama unterstützt.

1 Kommentare

 
GN⁺ 2025-01-29
Hacker-News-Kommentare
  • Die SLAP-Demo zeigt gut, wie Defense in Depth die Praktikabilität einer Schwachstelle bestimmen kann. Die Schwachstelle in Safari entsteht dadurch, dass bei window.open-Aufrufen neue Fenster nicht als separate Prozesse isoliert werden

  • Interessant ist der Teil zur Rückwärtsanalyse der Existenz von LVP auf dem M3. Bei 8-Byte-Loads wird LVP nur aktiviert, wenn der geladene Wert 0 ist. Das könnte eine Maßnahme für Speichersicherheit sein

  • Die Angriffe Spectre und Meltdown sowie die dazugehörigen Papers sind für Leute, die sie zum ersten Mal sehen, lesenswert

  • In Safari wird ein auf NOT-Gattern basierendes Prinzip zur Cache-Verstärkung verwendet, um Cache-Hits und -Misses zu unterscheiden. Auch in einer Web-Umgebung lassen sich so Cache-Hits und -Misses unterscheiden

  • Es zeigt, dass die Site-Isolation von Chrome keine perfekte Gegenmaßnahme ist. Es gibt einen Edge Case, in dem zwei Subdomains derselben Site in einem Prozess zusammengeführt werden können

  • Die Marketingkultur rund um die Veröffentlichung von Hardware-Schwachstellen wirkt seltsam. Ich frage mich, warum man statt einer einfachen Meldung der Schwachstelle und der Veröffentlichung eines Papers eigene Domains, Logos, FAQs usw. erstellt

  • Letztes Jahr habe ich in einer Intro-to-Cyber-Security-Vorlesung Professor Daniel Genkin getroffen. Er sagte, dass er an spekulativen Angriffen auf Apple-CPUs forsche. Dadurch wurde mir klar, dass Sicherheit kaum jemals garantiert ist

  • Ich neige dazu, auf nicht vertrauenswürdigen Sites standardmäßig js zu deaktivieren. Es ist schließlich das Programm von irgendjemandem, das wir auf unserer Maschine ausführen

  • Apple hat kürzlich Minor-Version-Updates für macOS und iOS angekündigt, die Sicherheitskorrekturen enthalten. Ich frage mich, ob jemand geprüft hat, ob diese Schwachstelle damit behoben wurde

  • Es scheint, als sei RUB zu einem globalen Zentrum für fortgeschrittene Sicherheitsforschung zu Angriffen geworden. Ich frage mich, ob ich vor zehn Jahren einfach nicht darauf geachtet habe oder ob das ein neues Phänomen ist