1 Punkte von GN⁺ 2023-12-28 | 1 Kommentare | Auf WhatsApp teilen

Angriffskette von 'Operation Triangulation'

  • Eine bösartige iMessage-Anlage wird gesendet und ohne Wissen des Nutzers in der Anwendung verarbeitet.
  • Diese Anlage nutzt die Remote-Code-Execution-Schwachstelle CVE-2023-41990 in undokumentierten, Apple-spezifischen ADJUST-TrueType-Font-Befehlen aus.
  • Mithilfe mehrstufiger Return-/Jump-Oriented Programming sowie der in NSExpression/NSPredicate geschriebenen Abfragesprache wird die Umgebung der JavaScriptCore-Bibliothek gepatcht und ein in JavaScript geschriebener Privilege-Escalation-Exploit ausgeführt.
  • Der JavaScript-Exploit ist so stark obfuskiert, dass er praktisch unlesbar ist, und zugleich auf minimale Größe optimiert. Rund 11.000 Zeilen Code sind hauptsächlich dem Parsen und Manipulieren von JavaScriptCore- und Kernel-Speicher gewidmet.
  • Unter Verwendung der Debugging-Funktion DollarVM($vm) von JavaScriptCore wird die Fähigkeit erlangt, aus dem Skript heraus den Speicher von JavaScriptCore zu manipulieren und native API-Funktionen auszuführen.
  • Er wurde so entworfen, dass sowohl ältere als auch neuere iPhones unterstützt werden, einschließlich eines Pointer-Authentication-Code-(PAC)-Bypasses zur Ausnutzung von Schwachstellen auf den neuesten Modellen.
  • Durch Ausnutzung der Integer-Overflow-Schwachstelle CVE-2023-32434 in den XNU-Systemaufrufen zur Speicherzuordnung (mach_make_memory_entry und vm_map) wird auf Benutzerebene Lese-/Schreibzugriff auf den gesamten physischen Speicher des Geräts erlangt.
  • Mithilfe von Hardware-Registern für Memory-Mapped I/O (MMIO) wird die Page Protection Layer (PPL) umgangen. Dies wurde durch CVE-2023-38606 entschärft.
  • Nach Ausnutzung aller Schwachstellen kann der JavaScript-Exploit beliebige Aktionen auf dem Gerät ausführen. Statt direkt Spyware zu starten, injiziert er eine Payload, die den IMAgent-Prozess startet und Exploit-Spuren auf dem Gerät löscht, oder startet den Safari-Prozess in einem unsichtbaren Modus, um zu einer Webseite mit der nächsten Stufe weiterzuleiten.
  • Die Webseite enthält ein Skript zur Identifizierung des Opfers; besteht es die Prüfung, wird der Safari-Exploit der nächsten Stufe ausgeliefert.
  • Der Safari-Exploit verwendet CVE-2023-32435 zur Ausführung von Shellcode.
  • Der Shellcode führt einen weiteren Kernel-Exploit in Form einer Mach-Objektdatei aus. Dieser nutzt dieselben Schwachstellen wie CVE-2023-32434 und CVE-2023-38606. Er ist in Umfang und Funktionalität gewaltig, aber vollständig anders als der in JavaScript geschriebene Kernel-Exploit. Zwar teilen beide Exploits relevante Teile, der Großteil des Codes ist jedoch dem Parsen und Manipulieren von Kernel-Speicher gewidmet. Er enthält verschiedene Post-Exploitation-Utilities, von denen die meisten jedoch nicht verwendet werden.
  • Der Exploit erlangt Root-Rechte und führt weitere Stufen aus, um Spyware zu laden.

Das Rätsel und die Schwachstelle CVE-2023-38606

  • Neuere iPhone-Modelle verfügen über zusätzliche hardwarebasierte Sicherheitsmechanismen zum Schutz sensibler Bereiche des Kernel-Speichers.
  • Diese Schutzfunktion soll verhindern, dass Angreifer ein Gerät vollständig kontrollieren können, selbst wenn sie Kernel-Speicher lesen und schreiben können.
  • Die Angreifer umgehen diesen hardwarebasierten Schutz mithilfe einer weiteren Hardware-Funktion im von Apple entworfenen SoC.
  • Sie umgehen den hardwarebasierten Speicherschutz, indem sie Daten, Zieladresse und einen Daten-Hash in unbekannte Hardware-Register eines vom Firmware-Code nicht genutzten Chips schreiben.
  • Es wird vermutet, dass diese unbekannte Hardware-Funktion entweder für Debugging- oder Testzwecke durch Apple-Ingenieure oder in der Fabrik gedacht war oder versehentlich enthalten blieb.

Technische Details

  • Verschiedene Peripherieeinheiten im SoC stellen spezielle Hardware-Register bereit, die die CPU zur Steuerung dieser Geräte verwenden kann.
  • Diese Hardware-Register sind in für die CPU zugänglichen Speicher eingeblendet und als „Memory-Mapped I/O (MMIO)“ bekannt.
  • Die MMIO-Adressbereiche der Peripherie in Apple-Produkten (iPhone, Mac usw.) sind in einem speziellen Dateiformat namens DeviceTree gespeichert.
  • Der Großteil des im Angriff verwendeten MMIO gehört zu keinem im DeviceTree definierten MMIO-Bereich.
  • Es ist unklar, wie die Angreifer MMIO ermittelt haben, das von der Firmware nicht verwendet wird, und zu welcher Peripherie diese MMIO-Adressen gehören.
  • Es wurde bestätigt, dass diese MMIO-Register zu einem GPU-Coprozessor gehören.
  • Die Angreifer verwendeten diese MMIO-Register, um die Page Protection Layer (PPL) zu umgehen und Page-Table-Einträge zu patchen.
  • Die Methode zur Hash-Berechnung ermöglicht es der im Angriff verwendeten Hardware-Funktion, per Direct Memory Access (DMA) Daten an die angeforderte Stelle zu schreiben.

Meinung von GN⁺

  • Diese Untersuchung legt eine äußerst ausgeklügelte Angriffskette gegen iPhones offen. Für Sicherheitsforscher ist das eine sehr wichtige Entdeckung, die zur Verbesserung der Sicherheit von Apple-Produkten beitragen kann.
  • Wie die Angreifer auf die von der Firmware ungenutzte Hardware-Funktion gestoßen sind, bleibt weiterhin ein Rätsel. Das unterstreicht die Bedeutung der Forschung im Bereich Hardware-Sicherheit.
  • Der Artikel bietet sehr interessante Inhalte für alle, die sich für Software- und Hardware-Sicherheit interessieren. Die hochkomplexen Angriffsmethoden und ihre Analyse zeigen die Tiefe und Notwendigkeit der Sicherheitsforschung.

1 Kommentare

 
GN⁺ 2023-12-28
Hacker-News-Kommentar
  • Erstaunliches am Missbrauch von MMIO

    • Die Angreifer verfügten entweder über außergewöhnlich starke Forschungskapazitäten oder haben, wahrscheinlicher, Apple kompromittiert und interne Hardware-Dokumentation erlangt.
    • Apple wusste, dass diese Funktion riskant war, hat sie verborgen und zusätzlich mit einer digitalen Signatur geschützt.
    • Ohne Chip-Decapping und Reverse Engineering wäre diese Funktion unmöglich zu finden, daher besteht die Möglichkeit, dass Entwickler kompromittiert wurden, um interne Dokumente zu stehlen.
    • Die erneute Kompromittierung über Safari unter Nutzung einer anderen Schwachstellenkette deutet intern auf eine sehr stark getrennte große Organisation hin.
    • Wenn man berücksichtigt, dass die Forscher Russen sind, stammt das vermutlich von der NSA oder dem GCHQ.
    • Die Malware kann Werbetracking aktivieren und gehostete Cloud-iPhone-Dienste erkennen, die Sicherheitsforscher häufig verwenden.
    • Die iOS-/macOS-Malware-Plattform wurde über mehr als zehn Jahre entwickelt und nutzt ML für Objekterkennung und OCR von Fotos direkt auf dem Gerät, ohne die Bildbytes hochzuladen.
    • Ich stimme der Behauptung nicht zu, dass Security through Obscurity nicht funktioniert. Diese Plattform wurde zehn Jahre lang eingesetzt, ohne bekannt zu werden.
  • Twitter-Zusammenfassung von Steve Weis

    • Die iMessage-Schwachstelle ist erstaunlich; enthalten sind aber auch eine TrueType-Schwachstelle aus den 90ern, zwei Kernel-Schwachstellen, eine Browser-Schwachstelle sowie eine undokumentierte Hardware-Funktion, die in ausgelieferter Software nicht verwendet wurde.
  • Erklärung zu Coresight

    • Coresight ist keine Backdoor, sondern die Debug-Funktion aller ARM-CPUs.
    • Es scheint sich um eine Erweiterung von Coresight zu handeln, die nötig ist, um mit Apples Speicher-Schutzfunktion zusammenzuarbeiten.
    • Auch ohne öffentliche Dokumentation dürften Tausende Apple-Ingenieure Zugriff auf angepasstes gdb oder andere Tools haben, die das nutzen können.
  • Spekulation zur Auffindbarkeit von MMIO-Registern

    • Frage, ob MMIO-Register durch zufälliges Durchprobieren aller Registeradressen hätten gefunden werden können.
    • Schon anhand von Timing-Unterschieden hätte man erkennen können, dass eine Adresse gültig ist, und auch der Hash als 20-Bit-Hash hätte sich per Brute Force knacken lassen.
  • Zweifel am Einsatz eines Daten-Hashs in Chip-Debug-Funktionen

    • Frage nach dem Zweck eines Hashs in einer Debug-Funktion, die in der Produktion deaktiviert sein sollte.
    • Kein Elektroingenieur, aber Debug-Funktionen sollten am besten einfach und schnell arbeiten, um Interferenzen zu minimieren.
    • Dass ein Supply-Chain-Angreifer dies in alle Apple-Chips eingebracht haben könnte, ist äußerst unwahrscheinlich.
  • Beobachtung zu den Eigenschaften des Hash-Algorithmus

    • Wenn alle Daten 0 sind, ist auch der Hashwert 0; für ein einzelnes Bit gibt es einen einzelnen Wert aus der S-Box-Tabelle.
    • Ein solcher Hash-Algorithmus hätte möglicherweise auch ohne interne Dokumentation per Reverse Engineering nachvollzogen werden können.
  • Bewunderung für den Aufwand der Angreifer

    • Neugier, ob diese Angreifer frustriert sind, weil sie für ihre Arbeit keine Anerkennung bekommen.
  • Erklärung der von den Angreifern genutzten Funktion

    • Die Angreifer konnten hardwarebasierte Speicher-Schutzmechanismen umgehen und Daten an bestimmte physische Adressen schreiben.
    • Dies geschah, indem sie Daten, Zieladresse und Daten-Hash in unbekannte Hardware-Register eines Chips schrieben, die von der Firmware nicht verwendet werden.
  • Bedeutung neu entdeckter Schwachstellen

    • Wichtiger als das Erlangen einer neu entdeckten Schwachstelle ist es zu wissen, ob die eigenen Schwachstellen kompromittiert werden können.
    • Das kann Desinformationsoperationen verhindern.