iPhones selbst auf Pegasus und andere Spyware prüfen

Das Mobile Verification Toolkit (MVT) von Amnesty International untersucht Android und iOS-Geräte nach Spuren von Spyware, wie sie Pegasus von NSO hinterlässt.

Lesezeit: 7 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 87 Beiträge
MVT Logo

(Bild: Screenshot)

Von
  • Alexander Königstein

Mit dem Mobile Verification Toolkit (MVT) können Android und iOS-Geräte nach Hinweisen auf eine Infektion mit der Pegasus-Spyware überprüft werden. Die Spionagesoftware der NSO Group wurde laut dem Recherchenetzwerk "Forbidden Stories" nicht nur gegen Kriminelle eingesetzt, sondern auch gegen Journalisten, Menschenrechtsaktivisten, Führungskräfte, Militärangehörige und Politiker. Wir demonstrieren die Spurensuche auf einem iPhone.

Das forensische Werkzeug bringt 16 Module mit, die unterschiedliche Logs überprüfen: SafariHistory, Datausage, SMS, SMSAttachments, ChromeHistory, ChromeFavicon, WebkitSessionResourceLog, Calls, IDStatusCache, LocationdClients, InteractionC, FirefoxHistory, FirefoxFavicon, Contacts, Manifest und Whatsapp. Ein forensischer Bericht von Amnesty International dokumentiert die Artefakte der Spyware.

Wir ließen das Analyse-Werkzeug auf ein iPhone 11 (iOS 14.7) los. Dazu sollte ein verschlüsseltes Backup des Smartphones erstellt werden, das MVT dann wieder entschlüsselt, um anschließend die Logs auf eine Infizierung mit der Pegasus-Spyware zu kontrollieren. Man kann prinzipiell zwar auch ein unverschlüsseltes Backup benutzen, aber darin speichert iOS aus Sicherheitsgründen nicht viele interessante Daten.

Zum Erstellen eines neuen Backups wird das iPhone an einen Mac angeschlossen und im Finder ausgewählt. Wichtig ist beim Backup die lokale Verschlüsselung zu aktivieren, dadurch enthält es weitreichende Daten, die zu genaueren Ergebnissen führen. Man sollte dazu ein spezielles Passwort verwenden, da es später ins Terminal geschrieben werden muss. Wer bereits eines vergeben hat, sollte es vorher ändern.

Unter dem Punkt "Erstelle ein Backup aller Daten deines iPhones auf diesem Mac" wird das Backup des iPhones gestartet. Bei Windows funktioniert ein Backup ähnlich. Es wird über iTunes erstellt. Alternativ kann man das Backup übrigens auch mit der Bibliothek libimobiledevice via Kommandozeile erstellen.

Wer das auf herkömmlichem Weg erstellt hat, kopiert es am Besten in ein Projektverzeichnis, in dem auch der MVT-Ordner liegt. Den Backup-Ordner findet man unter MacOS bei ~/Library/Application Support/MobileSync/. Unter Windows bei: %USERPROFILE%\Apple\MobileSync\ oder %USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync\.

Einfacher geht es bei MacOS im Finder unter iPhone-Backup: Mit einem Klick auf "Backup verwalten", öffnet sich dort eine Liste aller Backups. Durch einen Rechtsklick auf das aktuelle Backup erscheint die Option "Im Finder zeigen". Danach öffnet Finder den richtigen Ordner, der mit einer GUID (etwa wie 00000000-0000000000000000 mit anderen Ziffern) gekennzeichnet ist. Das Backup ist der Ordner mit der GUID, der viele weitere Unterordner enthält. Es muss der vollständige Ordner mit der GUID kopiert werden.

Unter MacOS muss Git, Python3 und libusb installiert sein. Dazu wechselt man ins Mac-Terminal und installiert alles mit Homebrew:

brew install git python3 libusb

Wenn die Installation erfolgreich war, wird das Repository mit git geklont, in den neuen Ordner gewechselt und mit Python3 das MVT installiert:

git clone https://github.com/mvt-project/mvt.git

cd mvt

pip3 install .

Nun sollte mvt-ios im Terminal verfügbar sein.

Das Modul mvt-ios decrypt-backup entschlüsselt das Backup, um es untersuchen zu können. Dazu wird das lokale Backup-Passwort mit der Option -p angegeben, sowie ein Zielordner für das entschlüsselte Backup mit -d, danach folgt nach einem Leerzeichen der Pfad zum verschlüsselten Backup.

mvt-ios decrypt-backup -p passwort_des_backups -d pfad_zum_zielordner pfad_zum_verschlüsselten_backup/00000000-0000000000000/

Hinweis: Da danach das Passwort des Backups in der Terminal History steht, sollte man die History leeren und das Passwort anschließend wechseln.

Das Toolkit sucht gezielt nach Dingen, die man ihm vorgibt. Amnesty hat etwa mehrere Indikatoren einer möglichen Infektion mit der Pegasus-Spyware zusammengefasst. Um die Dateien zu laden, braucht es ein weiteres Repository. Man lädt es im Terminal in den aktuellen Ordner mit:

git clone https://github.com/AmnestyTech/investigations.git

Das relevante Verzeichnis lautet 2021-07-18_nso/.

Nun sollte alles vorhanden sein, um das Backup zu prüfen. Dazu startet man im Terminal mvt-ios check-backup mit dem Pfad zu 2021-07-18_nso/pegasus.stix2 und dem Pfad zum Backup-Ordner. Wer das Ergebnis speichern möchte, setzt die Option -o zu einem bereits erstellten Ordner.

mvt-ios check-backup -i pfad_zu_pegasus.stix2 -o ergebnis_ordner pfad_zum_entschlüsselten_backup

Auf unserem System sah es so aus:

mvt-ios check-backup -i ../investigations/2021-07-18_nso/pegasus.stix2 -o results/ ../../Documents/Backup_decrypted/

Hinweis: Der Output-Ordner muss vorhanden sein, er wird nicht automatisch angelegt.

Nachdem das Toolkit die Logs ausgewertet hat, befinden sich folgende Dateien im Output-Ordner: calls.json, datausage.json, firefox_history.json, interaction_c.json, safari_browser_state.json, sms.json, timeline.csv, contacts.json, firefox_favicon.json, id_status_cache.json, manifest.json, safari_history.json, sms_attachments.json.

Interessant ist vor allem die Datei Timeline.csv, die alle Aktionen in einer Zeitlinie zusammenfasst und damit den Ablauf der mitgeschriebener Aktionen wie Benachrichtigungen, Telemetrie, Anrufe oder Webseitenaufrufe rekonstruiert. Viele der Hinweise in Amnestys Analyse beruhen darauf, dass etwa nach kurz dem Empfang einer iMessage-Nachricht ein verräterischer Prozess gestartet wurde. Solche Informationen müsste man sich normalerweise aus verschiedenen Dateien zusammensuchen. Die Timeline hingegen macht den zeitlichen Zusammenhang offensichtlich.

MVT schreibt nicht nur Logs, sondern prüft auch automatisch nach Anzeichen der Pegasus-Spyware. Das Werkzeug schaut in Logs nach Domains oder E-Mail-Adressen, die der Spyware zugeordnet sind. In der Auswertung ist auch zu sehen, welche Datenmengen es analysiert. Bei unserer Auswertung waren einige Falschmeldungen dabei, die nur vor einer direkten Weiterleitung gewarnt haben:

INFO [mvt.ios.modules.fs.safari_history] Found HTTP redirect to different domain: "ct.de" -> "heise.de"

WARNING [mvt.ios.modules.fs.safari_history] Redirect took less than a second! (0 milliseconds)

Eine Infektion mit Pegasus würde hier angezeigt werden, was bei uns glücklicherweise nicht der Fall war. Doch MVT kann mehr. Aufgrund des sehr allgemeinen Designs kann man es benutzen, um anderen Spionageprogrammen auf die Schliche zu kommen.

Die geschriebenen Logs lassen sich dazu weiter analysieren. Mit dem Suchwerkzeug grep kann man etwa die Datei Timeline.csv schnell nach speziellen Domains durchsuchen oder zum Beispiel nach einem Typ, wie SafariHistory. Den Inhalt der einzelnen von MVT erzeugten Dateien beschreibt die Dokumentation des Tools.

Passende Informationen für gezielte Suche sogenannte Indicators of Compromise (IoC) findet man häufig am Ende aktueller Analysen. Amnesty International hat die IoCs früherer Untersuchungen ebenfalls dokumentiert. So findet sich etwa im Verzeichnis investigations/ auch der Ordner 2020-09-25_finfisher/. Und anders als beim Pegasus-Hersteller NSO kaufen bei FinFisher anscheinend auch deutsche Behörden wie das BKA ein.

Darüber hinaus kann MVT auch noch Filesystem-Dumps erstellen, für die man allerdings zunächst einen Jailbreak durchführen muss. Außerdem gibt es auch eine Version für Android, die derzeit nur SMS und APKs untersuchen kann. Leider gibt es von Pegasus keine IoCs dafür. Beides haben wir allerdings nicht ausprobiert.

(ako)