Beeindruckender NSO-Hack: Mit Fax-Kompression einen virtuellen Computer gebaut
Die NSO-Gruppe bietet unter dem Produktnamen "Pegasus" diverse Hacking-Dienste an, um an Daten von iPhone- oder Android-Nutzer zu gelangen. Bereits vor einigen Jahren wurde bekannt, dass ein Anklicken eines Links in iMessage einem Angreifer die Möglichkeit geben kann, an Informationen auf dem Gerät zu gelangen. Wie Googles Sicherheits-Team "Project Zero" nun
dokumentiert, verfeinerte die NSO Group den Angriffsvektor – eine Interaktion ist nicht mehr erforderlich.
Animiertes GIF in Endlosschleife schafft ZugangSendet man einem iOS-Nutzer ein animiertes GIF, zeigt die Nachrichten-App das Bild in Endlosschleife, obwohl dies so in der ursprünglichen Datei nicht festgelegt ist. Dummerweise entschlüsselt Apple in iOS-Versionen vor 15.0 diese Bilder außerhalb der Nachrichten-Sandbox "BlastDoor" – und ein Programmierfehler kann somit schlimme Auswirkungen haben.
Um nun ein animiertes GIF in Endlosschleife darzustellen, dekodiert Apple das GIF über das Framework "CoreGraphics", um schließlich ein neues GIF-Bild mit Endlos-Animation zu erstellen. Doch hier besteht ein Problem: Das ImageIO-Framework, welches zum Laden der Bilder verwendet wird, ignoriert völlig die Dateiendung – und somit versuchen bis zu 20 Bild-Bibliotheken, ein Bild zu dekodieren. Dadurch entstehen viele Angriffsvektoren, da sich oftmals in solchen Dekodierverfahren Puffer-Überläufe oder ähnliches wiederfinden.
Apple schränkte den Zugriff auf die möglichen Bild-Dekoder mit iOS 14.8.1 ein – und in iOS 15.0 schirmte Apple das Entschlüsseln weiter ab, in dem es den gesamten Prozess hinter der Sandbox "BlastDoor" ablaufen lässt. Hier verhindert eine zusätzliche Sicherheitsvorkehrung den Zugriff auf Systemressourcen, selbst wenn Hacker ein Speicherüberlauf oder ähnliche Schwachstelle finden.
Fake-GIF mit Fax-PDFDie NSO-Gruppe nutzte diese Lücke aus, um der ImageIO-Bibliothek eine Datei mit der Endung GIF unterzujubeln, das aber in Wirklichkeit ein PDF ist. Dieses PDF verwendet eine Uralt-Kompression für Schwarz/Weiß-Bilder, welche auch beim Fax zum Einsatz kommt: JBIG2.
JBIG2 nutzt ein Verfahren, um Doppelungen in einem Bild zu erkennen und zusammenzufassen – dadurch werden diese Bilder erheblich kleiner:
Doch bei diesem Zusammenfass-Algorithmus findet sich gleich zwei Schwachstellen: Die erste erlaubt das Schreiben an beliebige Speicherstellen – aber dies hilft dem Hacker erst einmal wenig, da kein Code ausgeführt werden kann, um bestimmte Speicherstellen zu ermitteln. Doch die zweite eröffnet den Hackern große Möglichkeiten:
Zusammenfass-Algorithmus als virtueller ComputerDurch sehr geschicktes Ausnutzen des Zusammenfassungs-Algorithmus des JBIG2-Codecs ist es möglich, logische AND-, OR-, XOR- und XNOR-Operationen zu bilden – und somit einen
Turing-kompletten Computer. Hierdurch können nun beliebige Befehle ausgeführt werden – und dies nur durch die Übermittlung eines GIF-Bildes mit PDF-Inhalt im JBIG2-Codec.
Obwohl der JBIG2-Codec über keine Script-Möglichkeiten verfügt, haben es die Hacker der NSO Group erreicht, beliebige Befehle auszuführen, welche auf beliebige Speicheradressen zugreifen können. Der Angriff nutzt über 70.000 Logik-Gatter, um einen virtuellen Computer samt Registern und einem 64-Bit-Adder zu konstruieren – damit durchsuchen die Angreifer den Speicher des iPhones und führen arithmetische Operationen aus, um das Smartphone zu hacken. Durch diese Befehle knacken die Hacker die Sicherheitsvorkehrungen, um sich Zugriff auf das Gerät zu verschaffen.
FazitWenn man einmal den Zweck des Hacks außer acht lässt, ist der Erfindungsreichtum der Programmierer der NSO Group vom technischen Standpunkt her schlichtweg beeindruckend: Durch die fast schon kunstvolle Kombination diverser kleinerer Schwachstellen erreichten es die Hacker, einen steuerbaren "Mini-Computer" zu schaffen, welcher komplett in der Dekompressionsroutine eines Fax-Codecs läuft.