Signal-Logo

Signal hackt zurück

Der Hauptentwickler der Instant-Messaging-App Signal, Moxy Marlinspike, hat in einem Blog-Beitrag interessante Neuigkeiten zu berichten. Darin geht es um die Spionage- und Datenanalyse-Software des israelischen Unternehmens Cellebrite – und im letzten Absatz – sehr erheiternd – um den zukünftigen Umgang mit dieser Software durch die App Signal. Um die Software untersuchen zu können, hätte der Zufall mitgespielt, denn die Tasche mit Adapterkabeln, Kopierschutzdongle und der Software sei von einem Laster gefallen 🙂 , während er einen Spaziergang gemacht habe.

Der originale Beitrag (in englisch) ist hier zu finden: https://signal.org/blog/cellebrite-vulnerabilities/

Nachfolgend die mittels deepl.com und ein wenig Nacharbeit meinerseits ins deutsche übersetzte Version:

Ausnutzung von Schwachstellen in Cellebrite UFED und Physical Analyzer aus der Sicht einer App

moxie0 am 21. Apr 2021

Cellebrite stellt Software her, um Daten von mobilen Geräten physisch herunter zu laden und zu indizieren. Sie bewegen sich in der Grauzone – dort, wo sich Unternehmens-Marken mit dem Anrüchigen verbinden, um „digitale Intelligenz“ genannt zu werden. Auf ihrer Kundenliste stehen autoritäre Regime in Weißrussland, Russland, Venezuela und China, Todesschwadronen in Bangladesch, Militärjuntas in Myanmar und diejenigen, die in der Türkei, den Vereinigten Arabischen Emiraten und anderswo Missbrauch und Unterdrückung betreiben. Vor ein paar Monaten gaben sie bekannt, dass sie ihre Software um Signal-Unterstützung erweitert haben.

Ihre Produkte wurden oft mit der Verfolgung von inhaftierten Journalisten und Aktivisten auf der ganzen Welt in Verbindung gebracht, aber es wurde weniger darüber geschrieben, was ihre Software tatsächlich tut oder wie sie funktioniert. Lassen Sie uns einen genaueren Blick darauf werfen. Insbesondere wird ihre Software oft mit der Umgehung von Sicherheit in Verbindung gebracht, also nehmen wir uns etwas Zeit, um die Sicherheit ihrer eigenen Software zu untersuchen.

Der Hintergrund

Zunächst einmal: Alles, was mit Cellebrite zu tun hat, beginnt damit, dass jemand anderes Ihr Gerät physisch in den Händen hält. Cellebrite führt keine Art von Datenabfang oder Fernüberwachung durch. Cellebrite stellt zwei primäre Softwareprodukte her (beide für Windows): UFED und Physical Analyzer.

UFED erstellt ein Backup Ihres Geräts auf dem Windows-Rechner, auf dem UFED läuft (es ist im Wesentlichen ein Frontend für adb-Backup auf Android und iTunes-Backup auf iPhone, mit einigen zusätzlichen Analysen). Sobald ein Backup erstellt wurde, analysiert Physical Analyzer die Dateien aus dem Backup, um die Daten in durchsuchbarer Form anzuzeigen.

Als Cellebrite ankündigte, dass sie ihre Software um Signal-Unterstützung erweitert haben, bedeutete dies eigentlich nur, dass sie Physical Analyzer Unterstützung für die von Signal verwendeten Dateiformate hinzugefügt haben. Dies ermöglicht es Physical Analyzer, die Signaldaten anzuzeigen, die von einem entsperrten Gerät im physischen Besitz des Cellebrite-Benutzers extrahiert wurden.

Eine Möglichkeit, sich die Produkte von Cellebrite vorzustellen, ist, dass jemand, der Ihr entsperrtes Gerät physisch in den Händen hält, beliebige Apps öffnen und Screenshots von allem machen könnte, um sie zu speichern und später durchzugehen. Cellebrite automatisiert im Wesentlichen diesen Prozess für jemanden, der Ihr Gerät in den Händen hält.

Der richtige Ort am Celleb…die richtige Zeit

Anmerkung des Übersetzers: Das Wortspiel in der Überschrift lässt sich nicht ins deutsche übersetzen. Korrektes englisch wäre gewesen: The right place at the Celleb…right time – im Original steht da aber: The rite place at the Celleb…rite time

Durch einen wirklich unglaublichen Zufall war ich neulich auf einem Spaziergang, als ich vor mir ein kleines Paket von einem LKW fallen sah. Als ich näher kam, rückte das unscheinbare Firmenlogo langsam in den Fokus: Cellebrite. Darin befanden sich die neuesten Versionen der Cellebrite-Software, ein Hardware-Dongle, der Raubkopien verhindern soll (das sagt etwas über deren Kunden aus, schätze ich!), und eine bizarr große Anzahl von Kabeladaptern.

Die Software

Jeder, der sich mit Softwaresicherheit auskennt, wird sofort erkennen, dass die Hauptaufgabe der Software von Cellebrite darin besteht, „nicht vertrauenswürdige“ Daten aus einer Vielzahl von Formaten zu analysieren, die von vielen verschiedenen Apps verwendet werden. Das heißt, die Daten, die die Software von Cellebrite extrahieren und anzeigen muss, werden letztendlich von den Anwendungen auf dem Gerät generiert und kontrolliert, nicht von einer „vertrauenswürdigen“ Quelle, sodass Cellebrite keine Annahmen über die „Korrektheit“ der formatierten Daten machen kann, die es erhält. Dies ist der Bereich, in dem praktisch alle Sicherheitslücken ihren Ursprung haben.

Da fast der gesamte Code von Cellebrite dazu dient, nicht vertrauenswürdige Eingaben zu analysieren, die auf unerwartete Weise formatiert werden könnten, um eine Speicherbeschädigung oder andere Schwachstellen in der Analyse-Software auszunutzen, könnte man erwarten, dass Cellebrite extrem vorsichtig vorgegangen wäre. Bei der Betrachtung von UFED und Physical Analyzer waren wir jedoch überrascht, dass Cellebrite anscheinend sehr wenig Sorgfalt auf die Sicherheit seiner eigenen Software verwendet hat. Es fehlen branchenübliche Abwehrmechanismen gegen Exploits, und es gibt viele Möglichkeiten zur Ausnutzung.

Nur ein Beispiel (das nichts mit dem Folgenden zu tun hat): Die Software bündelt FFmpeg-DLLs, die im Jahr 2012 erstellt und seitdem nicht aktualisiert wurden. In dieser Zeit gab es über hundert Sicherheitsupdates, von denen keines eingespielt wurde.

Die Exploits

Angesichts der zahlreichen Möglichkeiten haben wir festgestellt, dass es möglich ist, beliebigen Code auf einem Cellebrite-Rechner auszuführen, indem man einfach eine speziell formatierte, aber ansonsten harmlose Datei in eine beliebige App auf einem Gerät einfügt, das anschließend an Cellebrite angeschlossen und gescannt wird. Dem ausführbaren Code sind praktisch keine Grenzen gesetzt.

Durch Einfügen einer speziell formatierten, aber ansonsten harmlosen Datei in eine App auf einem Gerät, das dann von Cellebrite gescannt wird, ist es beispielsweise möglich, Code auszuführen, der nicht nur den Cellebrite-Bericht, der bei diesem Scan erstellt wird, sondern auch alle vorherigen und zukünftigen generierten Cellebrite-Berichte von allen zuvor gescannten Geräten und allen zukünftigen gescannten Geräten auf beliebige Weise verändert (Einfügen oder Entfernen von Text, E-Mails, Fotos, Kontakten, Dateien oder anderen Daten), ohne erkennbare Zeitstempeländerungen oder Prüfsummenfehler. Dies könnte sogar willkürlich geschehen und würde die Datenintegrität der Berichte von Cellebrite ernsthaft in Frage stellen.

Jede App könnte eine solche Datei enthalten, und bis Cellebrite in der Lage ist, alle Schwachstellen in seiner Software mit extrem hoher Sicherheit zu reparieren, besteht die einzige Abhilfe, die ein Cellebrite-Benutzer hat, darin, Geräte nicht zu scannen. Cellebrite könnte das Risiko für seine Benutzer verringern, indem es seine Software so aktualisiert, dass keine Apps mehr gescannt werden, die es als hohes Risiko für diese Art von Datenintegritätsproblemen ansieht, aber selbst das ist keine Garantie.

Wir sind natürlich bereit, die spezifischen Schwachstellen, von denen wir wissen, verantwortungsvoll gegenüber Cellebrite offenzulegen, wenn sie dasselbe für alle Schwachstellen tun, die sie in ihrer physischen Extraktion und anderen Diensten gegenüber ihren jeweiligen Anbietern verwenden, jetzt und in Zukunft.

Nachfolgend finden Sie ein Beispielvideo eines Exploits für UFED (ähnliche Exploits gibt es für Physical Analyzer). Im Video stößt UFED auf eine Datei, die beliebigen Code auf dem Cellebrite-Rechner ausführt. Diese Exploit-Nutzlast verwendet die MessageBox-Windows-API, um einen Dialog mit einer Nachricht darin anzuzeigen. Dies dient nur zu Demonstrationszwecken; es ist möglich, beliebigen Code auszuführen, und eine echte Exploit-Nutzlast würde wahrscheinlich versuchen, frühere Berichte unbemerkt zu verändern, die Integrität zukünftiger Berichte zu beeinträchtigen (vielleicht nach dem Zufallsprinzip!) oder Daten von der Cellebrite-Maschine zu exfiltrieren.

Das Copyright

Ebenfalls von Interesse ist, dass das Installationsprogramm für Physical Analyzer zwei gebündelte MSI-Installationspakete namens AppleApplicationsSupport64.msi und AppleMobileDeviceSupport6464.msi enthält. Diese beiden MSI-Pakete sind von Apple digital signiert und scheinen aus dem Windows-Installationsprogramm für iTunes Version 12.9.0.167 extrahiert worden zu sein.

Das Setup-Programm von Physical Analyzer installiert diese MSI-Pakete in C:\Programme\Gemeinsame Dateien\Apple. Sie enthalten DLLs, die Funktionen implementieren, die iTunes zur Interaktion mit iOS-Geräten verwendet.

Das Cellebrite iOS Advanced Logical-Tool lädt diese Apple-DLLs und nutzt ihre Funktionalität, um Daten von iOS-Mobilgeräten zu extrahieren. Der Screenshot unten zeigt, dass die Apple-DLLs in den Prozess UFED iPhone Logical.exe geladen werden, der der Prozessname des iOS Advanced Logical-Tools ist.

Es erscheint uns unwahrscheinlich, dass Apple Cellebrite eine Lizenz zur Weitergabe und Einbindung von Apple DLLs in das eigene Produkt erteilt hat, so dass dies ein rechtliches Risiko für Cellebrite und seine Benutzer darstellen könnte.

Das völlig Unzusammenhängende

Eine völlig unzusammenhängende Neuigkeit ist, dass kommende Versionen von Signal regelmäßig Dateien abrufen werden, um sie im App-Speicher abzulegen. Diese Dateien werden nie für irgendetwas innerhalb von Signal verwendet und interagieren nie mit Signal-Software oder -Daten, aber sie sehen schön aus, und Ästhetik ist bei Software wichtig. Die Dateien werden nur für Konten ausgeliefert, die bereits seit einiger Zeit aktiv sind, und nur mit einer geringen Wahrscheinlichkeit, die auf dem Sharding der Telefonnummern basiert. Wir haben ein paar verschiedene Versionen von Dateien, die wir für ästhetisch ansprechend halten, und werden diese im Laufe der Zeit nach und nach überarbeiten. Es gibt keine weitere Bedeutung für diese Dateien.

Schreibe einen Kommentar

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