Wurde mein iPhone gehackt? Untersuchung ob mein iPhone mit der Pegasus Spyware der NSO Group infiziert wurde

22. Juli 2021 — Michael Ilic

Nach den Meldungen über den breiten Einsatz der Spyware Pegasus von der NSO Group geben wir Hinweise, wie man selbst sein Gerät forensisch überprüfen kann.

Wurde mein iPhone gehackt? Untersuchung ob mein iPhone mit der Pegasus Spyware der NSO Group infiziert wurde

Erst vor ein paar Tagen hat The Guardian eine groß angelegte Recherche offengelegt, die vor allem bei uns in den Nachrichten war, weil offensichtlich unter den Opfern der Spyware Angriffe auch Frankreichs Präsident Macron war. Hintergrund des Skandals ist die israelische Firma NSO Group, die professionelle Handy Spyware an Regierungen weltweit lizensiert. Unter den Ländern die The Guardian als Kunden der NSO Gruppen offenlegt sind unter anderem Mexiko, Indien, Marokko, Aserbaidschan, Kasachstan, Saudi Arabien, Bahrain, Vereinigte Arabische Emirate, Ungarn und Ruanda.

Das besondere an der Spyware der NSO Group ist, dass sie mit sogenannten "Zero Click" Methoden arbeitet, also ohne dass man aktiv auf einen Link oder Knopf drücken muss, damit sein Telefon damit infiziert wird. Betroffen davon sind sowohl Android als auch iOS Telefone, denn es gibt nicht nur eine Methode mit der die Spyware auf die Geräte kommt, sondern es wird professionell daran gearbeitet immer neue Schwachstellen in Handys zu finden und auszunutzen (sog. "Zero Day Vulnerabilities"). Ist ein Handy infiziert versucht sich die Spyware möglichst unsichtbar zu machen, was auch die Nachverfolgung einer Infektion des Geräts schwierig macht. Wir geben hier eine kurze Anleitung zur Überprüfung des eigenes iPhones an einem Mac Computer, falls jemand Bedenken hat oder sein eigenes Gerät forensisch anschauen will.

Zunächst brauchen wir unser iPhone, einen Mac und ein USB Kabel für das iPhone. Der ganze Prozess das Handy zu untersuchen läuft ohne grafische Oberfläche ab, weshalb wir zuerst einige Programme im Terminal des Macs installieren müssen:

  1. Dazu geht man im Finder unter Programme > Dienstprogramme und öffnet die Terminal App.

  2. Wir müssen zunächst Brew installieren, was spätere Programminstallationen leichter macht. Eine Erklärung und Anleitung findet man hier.
    Programmieren Lernen NSO Pegasus Schritt 2Programmieren Lernen NSO Pegasus Schritt 2 Ausgabe

  3. Über Brew können wir nun leichter Python installieren und einige Hilfsprogramme für die USB Verbindung.
    Programmieren Lernen NSO Pegasus Schritt 3Programmieren Lernen NSO Pegasus Schritt 3 Ausgabe

  4. Zum Auslesen von Daten vom Telefon über USB brauchen wir auch noch das libimobiledevice Programm.
    Programmieren Lernen NSO Pegasus Schritt 4Programmieren Lernen NSO Pegasus Schritt 4 Ausgabe

  5. Jetzt können wir den Python Packager zu unserem Terminal hinzufügen und danach das Programm MVT zum Auslesen der Daten installieren.
    Programmieren Lernen NSO Pegasus Schritt 5Programmieren Lernen NSO Pegasus Schritt 5 pip

  6. Hat man sein iPhone an den Mac angesteckt, das iPhone entsperrt und alle obigen Schritte erledigt, kann man über die Eingabe von ideviceinfo schon einige Grunddaten zu seinem Telefon sehen.
    Programmieren Lernen NSO Pegasus Schritt 6Programmieren Lernen NSO Pegasus Schritt 6 Ausgabe

  7. Nun brauchen wir ein aktuelles Backup des iPhones über USB. Dazu öffnen wir den Finder und klicken in der Seitenleiste links unten auf unserer Handy. Hier wählen wir jetzt "Erstelle ein Backup aller Daten deines iPhones auf diesem Mac" aus und klicken auf "Backup jetzt erstellen". Wählt man zusätzlich "Lokales Backup verschlüsseln" aus hat man noch Zugriff auf weitere Daten zur forensischen Analyse später.
    Programmieren Lernen NSO Pegasus Schritt 7

  8. Ist das Backup abgeschlossen kann man auf "Backups verwalten ..." gehen und sieht dort sein aktuelles Backup mit der aktuellen Zeit. Hier machen wir einen Rechtsklick und wählen "Im Finder anzeigen aus".
    Programmieren Lernen NSO Pegasus Schritt 8

  9. Dies bringt uns zum Ordner in dem die Backups liegen, was wir gleich für die Analyse brauchen. Alle Backups liegen mit einer ID als Namen im Pfad "/Users/<Benutzer>/Library/Application Support/MobileSync/Backup/<BackupID>". Diesen merken wir uns.
    Programmieren Lernen NSO Pegasus Schritt 9

  10. Wir legen einen neuen Ordner im Finder z.B. unter Downloads an und nennen diesen "mvt".

  11. Jetzt starten wir im Terminal die MVT App mit dem Befehl (jeweils die eigene Benutzerkennung, Backup ID aus 9. und Ordner aus 10. ersetzen): mvt-ios check-backup --output /Users/michael/Downloads/mvt /Users/michael/Library/Application\ Support/MobileSync/Backup/00008101-0010545810782C3A
    Programmieren Lernen NSO Pegasus Schritt 11Programmieren Lernen NSO Pegasus Schritt 11 Ausgabe

Wenn dieser Vorgang nach einigen Minuten fertig gelaufen ist erhält man direkt im Terminal schon einige Hinweise zum Ergebnis der Untersuchung. Allerdings sehen wir hier erst ob bestimmte Module aus dem Telefon ausgelesen werden konnten. Im angelegten Ausgabe Ordner (hier "~/Downloads/mvt/") findet man nun etliche .json Dateien. Dort sind alle Anhänge, Links oder Weiterleitungen aus SMS, WhatsApp oder Browser enthalten. Dabei wurde jetzt noch nicht genau nach der Pegasus Spyware gesucht, sondern lediglich alle potenziellen Gefährdungspunkte ausgegeben. Jetzt haben wir mehrere Möglichkeiten zu prüfen, ob man von Pegasus betroffen ist. Die erste Möglichkeit benötigt sogenannte STIX Dateien, die eine Gefährdung beschreiben und automatisch untersuchen können. Solche findet man unter anderem auf Github z.B. hier, die man dann mit dem MVT Programm automatisch benutzen kann als Befehl: mvt-ios check-backup --iocs /Downloads/pegasus.stix2 --output /Downloads/mvt /Users/michael/Library/Application\ Support/MobileSync/Backup/00008101-0010545810782C3A. Werden hier Bedrohungen gefunden werden diese im Terminal angezeigt als auch im Ausgabeordner mit der Dateiendung "_detected".

Alternativ können wir auch mit einem Terminal Befehl einzelne .json Dateien in unserem ~/Downloads/mvt/ Ordner untersuchen. Dazu bewegen wir uns im Terminal in den mvt Ordner mit "cd /Downloads/mvt". Hier können wir nun einzelne Dateien wie die sms.json Datei untersuchen. Dazu können wir nach einzelnen von der NSO Group benutzte Domains per "grep" ausgeben. Hier am Beispiel der sms.json Datei geben wir ein grep urlredirect.net ~/Downloads/mvt/sms.json . Falls es einen Treffer gibt wird dieser im Terminal in den nächsten Zeilen ausgegeben.

Programmieren Lernen NSO Pegasus Schritt 12 Grep

Eine Liste von Domains die von der NSO Groups benutzt werden sind unter anderem hier und die aktuellste Version hier.

In meinem Fall wurde mit keinem der von Amnesty International veröffentlichten STIX Dateien ein Treffer erzielt. Allerdings zeigt dieser Vorfall wieder wie wichtig es ist die Software auf seinem Telefon aktuell zu halten. Apple hat bereits mit dem heute bereitgestellten Software Update iOS 14.7 viele Sicherheitslücken behoben. Unter anderem wurde im Juni ein Fehler öffentlich gemacht, der im iPhone das WLAN für immer deaktiviert, wenn das WLAN den Namen "%p%s%s%s%s%n" hat. Man sollte vermeiden bei Emails, WhatsApp Nachrichten und SMS auf Links zu klicken, die man nicht kennt. Ausserdem zeigt dies auch, dass Wissen im IT Bereich sich heutzutage immer auszahlen kann, um nicht leichtfällig Opfer von Angriffen zu werden.