GoFetch – Nicht schließbare Sicherheitslücke im Apple Silicon (M-Chip)

Eine wissenschaftliche Untersuchung des Apple Silicon – speziell der Versionen M1, M2 und M3 – hat ergeben, dass er unter einer Sicherheitslücke leidet, die nicht so einfach geschlossen werden kann. Die „GoFetch“ genannte Möglichkeit, Sicherheitsschlüssel bzw. verschlüsselte Daten auszulesen, ergibt sich nämlich aus dem Hardware-Aufbau der Chips. Da dort für die bessere Performance bestimmte Daten in einen Vorab-Speicher, den sogenannten Cache, geladen und bereits den für die zukünftige Nutzung vorhergesagten CPU-Clustern zugewiesen werden, kann im gleichen Cluster ausgeführte Hacking-Software auf bestimmte Daten zugreifen; auch auf Sicherheitsschlüssel. Und das, obwohl sie keine Admin-, sondern einfache User-Rechte hat.

Aufgrund der GoFetch-Sicherheitslücke des Apple Silicon können Sicherheitsschlüssel aus den Performance-Kernen des M-Chips geknackt werden. Passwörter und verschlüsselte Daten sind dann nicht mehr sicher.
Aufgrund der GoFetch-Sicherheitslücke des Apple Silicon können Sicherheitsschlüssel aus den Performance-Kernen des M-Chips geknackt werden. Passwörter und verschlüsselte Daten sind dann nicht mehr sicher.

Die GoFetch-Sicherheitslücke des Apple Silicon

GoFetch beruht darauf, dass für die Performance-Kerne der CPU-Einheiten des M-Chips sogenannte Data Memory-Dependent Prefetcher (DMP) zum Einsatz kommen. Diese Art der Hardwarebeschleunigung für Softwareprozesse ermittelt bereits vor der Nutzung bestimmter in den Cache des CPUs geladenen Daten deren Speicheradressen. Zwar verringert das anschließend die Zugriffszeit auf diese Daten, was die Nutzung des Mac insgesamt beschleunigt. Allerdings kann auf dieses Vorgehen ausgelegte Schadsoftware genau dort eingreifen und bestimmte Daten auslesen.

Zur Ausnutzung der Schwachstelle heißt es auf der dazu eingerichteten Webseite (frei übersetzt): „Um die DMP auszunutzen, stellen wir ausgewählte Eingaben für kryptografische Operationen so zusammen, dass Pointer-artige Werte nur erscheinen, wenn wir einige Bits des geheimen Schlüssels richtig erraten haben […] Mit diesem Ansatz zeigen wir End-to-End-Schlüsselextraktionsangriffe auf populäre Konstantzeit-Implementierungen der klassischen (OpenSSL Diffie-Hellman Key Exchange, Go RSA-Entschlüsselung) und Post-Quantum-Kryptografie (CRYSTALS-Kyber und CRYSTALS-Dilithium).

Kryptografie auf Effizienz-Kernen als (langsamer) Workaround

Die Performance-Kerne der CPU-Einheit auf dem M-Chip sind dafür gemacht, Prozesse möglichst schnell auszuführen. Deshalb kommen dabei ja auch die DMPs zum Einsatz. Die Möglichkeit zur schnellen Durchführung von Berechnungen macht diese Kerne natürlich ideal für Ver- und Entschlüsselung. Wie beschrieben, so sorgen die DMPs aber dafür, dass die genutzten Schlüssel respektive mit ihnen geheimgehaltene Daten ausgelesen werden können. Der mögliche Ansatz, GoFetch-Angriffe zu unterbinden, besteht also daraus, Ver- und Entschlüsselungen abseits der Performance-Kerne auszuführen.

Jedoch kann das Auslagern auf die Effizienz-Kerne, welche nicht auf Schnelligkeit, sondern auf eine stromsparende Nutzung ausgelegt sind, die Prozesse merklich länger dauern lassen. Zudem kann die Umlenkung auf die anderen Kerne (soweit ich es verstanden habe) nicht einfach systemweit durch ein macOS-Update erzwungen werden. Das Vorgehen muss von den Entwickler/innen der jeweiligen Apps oder Systemtools manuell in die Software implementiert werden. Ein Workaround für die Verminderung der GoFetch-Angriffsmöglichkeiten ist also vorhanden. Er ist aber aufwändig und kann die Arbeit am Mac verlangsamen.

>>>Erklärt: Hocheffizienzkerne vs. Hochleistungskerne im Apple Silicon<<<

Einführung in das Thema sowie wissenschaftliches Paper

Wenn euch das Thema interessiert und ihr nicht nur meine laienhafte Wiedergabe aus zweiter Hand wollt, dann kann ich euch die Webseiten empfehlen, welche das Thema mit Daten aus erster Hand erklären. Die erste Webseite ist https://gofetch.fail/. Dort findet ihr eine kurze Beschreibung des Problems, eine Liste der Mitwirkenden sowie der Universitäten, an denen sie tätig sind. Und nicht zuletzt ein FAQ mit allen wichtigen Fragen sowie Antworten zum Thema. Darin findet sich u. a. der Hinweis, dass Apple bereits am 5. Dezember 2023 über die Forschungsergebnisse informiert wurde.

Wissenschaftlicher geht es im Paper zum Thema zu, das ihr euch als PDF-Datei herunterladen könnt (https://gofetch.fail/files/gofetch.pdf). Auf den 21 Seiten gibt es alle ausführlichen Informationen zur Thematik, von einer detaillierten Einleitung über die Hintergründe des Forschungsfelds hin zum Versuchsaufbau und den damit erreichten Ergebnissen. Ich kann nicht behaupten, dass ich viel davon verstehe, schon gar nicht die Formeln und anderen mathematischen Beschreibungen, die teilweise ganze Absätze füllen. Wer sich darauf versteht, wird in der PDF aber sicher viele Erkenntnisse gewinnen.

Jens’ Video zum Thema GoFetch

Hat dir der Artikel gefallen und helfen dir die Anleitungen im Blog? Dann würde ich mich freuen, wenn du das Blog über eine Steady-Mitgliedschaft unterstützen würdest.

2 Kommentare zu „GoFetch – Nicht schließbare Sicherheitslücke im Apple Silicon (M-Chip)“

  1. Ihr habt leider diesen Teil vergessen:

    Can the DMP be disabled?
    Yes, but only on some processors. We observe that the DIT bit set on m3 CPUs effectively disables the DMP. This is not the case for the m1 and m2. Also, Intel’s counterpart, DOIT bit, can be used to disable DMP on the Raptor Lake processors.

    1. Danke für die Ergänzung. Da ich die Nutzung bzw. Manipulation von DIT und des entsprechenden Bits nicht verstehe, habe ich es wohl geflissentlich ausgelassen.

Kommentar verfassen

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

Im Sir Apfelot Blog findest du Ratgeber, Anleitungen und Testberichte zu Apple Produkten wie iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini und Mac Studio.

Specials