Logo von Mac & i

Suche
Abonnieren

Tägliche Top-News bei WhatsApp, Facebook Messenger, Telegram & Insta

preisvergleich_weiss

Recherche in 1.918.119 Produkten

Tobias Engler 11

Datenverkehr von iPhone und Mac überwachen

Schnüffel-Apps iPhone

Viele Apps funken mehr Daten nach Hause als nötig, welche das sind, ist für den Nutzer kaum ersichtlich. Wir zeigen, wie Sie mit Hilfe eines Web-Proxys Einblick in die Datenverbindungen ihrer iOS- und macOS-Apps erhalten – und dadurch auch Schnüffel-Apps aufspüren.

Um herauszufinden, welche Daten eine Anwendung unter macOS aus dem Netz bezieht oder verschickt, muss man beobachten, welche Ports reserviert werden, und dann den Datenverkehr dort abfangen. Das Ermitteln der Ports an sich geht zwar mit Bordmitteln schon recht einfach. Spätestens wenn das Analysieren der Daten ansteht, dürften aber die meisten Anwender das Handtuch werfen.

Gefunden in

Mac & i Heft 4/2016

Wer die Kommunikation seines Macs überwacht, wird feststellen, dass nicht nur Browser, sondern auch viele andere Anwendungen via HTTP(S) mit Webservern kommunizieren.

So werden etwa Skripte auf Servern oft über den Aufruf einer URL – technisch sind das meist so genannte REST-Schnittstellen – angestoßen und vom Client abgefragt. Es reicht daher in vielen Fällen, genau diese HTTP(S)-Verbindungen abzuhören.

Möglich machen dies sogenannte Web-Proxies, spezielle Tools, die zwischen App und Netzschnittstelle geschaltet werden, sodass sämtliche Daten durch sie hindurch fließen müssen. Für die Datensammlung und Analyse ist ein Computer notwendig. Sie können mit ihm aber auch den Datenverkehr von iOS-Apps belauschen, dazu später mehr.

Web-Proxy installieren

Als Web-Proxy für macOS verwenden wir im Folgenden die englischsprachige Software Charles – sie ist ebenso für Windows und Linux geeignet. Charles ist in der unregistrierten Version für 30 Tage voll einsatzfähig; das genügt, um gelegentlich mal eine App zu untersuchen.

Egal welchen Proxy man letztlich verwendet, er muss erst einmal dem System oder der Anwendung, sofern sie das ermöglicht, bekannt gemacht werden.

Charles arbeitet sogar als SOCKS-Proxy. Damit lassen sich auch andere Verbindungen als HTTP(S) mitschneiden.

Mit dem Menübefehl „macOS Proxy“ im Proxy-Menü konfiguriert das System die Proxy-Einstellungen selbst. Dafür ist das einmalige Eintippen des Admin-Passworts notwendig. Mit dem gleichen Befehl lässt sich die Änderung auch wieder rückgängig machen. Um den Befehl nicht bei jedem Start von Charles erneut ausführen zu müssen, setzt man einen Haken bei „Enable macOS Proxy at startup“ in den „Proxy Settings…“ im Reiter "macOS". Praktisch: Charles stellt die ursprünglichen Werte wieder her, wenn man die Einstellung rückgängig macht.

Wie Sie Daten auf dem Mac inspizieren

Hat man Charles als Proxy eingerichtet, kann es auch schon losgehen. Rufen Sie im Browser testweise eine Seite auf, etwa mac-and-i.de. Charles läuft nach dem Start automatisch im Aufzeichnungsmodus und präsentiert den abgefangenen Datenstrom übersichtlich und chronologisch sortiert in der Seitenleiste links. Im Tab „Structure“ finden Sie dort die angesurften Domains sowie darunter abgerufene Seiten, im Tab „Sequence“ hingegen die Reihenfolge der Aufrufe.

Um die Daten zu inspizieren, ist „Structure“ hilfreicher. Beachten Sie, dass die angezeigte Domain durchaus von der aufgerufenen abweichen kann. So leitet mac-and-i.de beispielsweise auf heise.de um – das ist auch der Server, der antwortet und in Charles’ Übersicht direkt unterhalb von „mac-and-i.de“ auftaucht. Am unter heise.de liegenden Verzeichnis „mac-and-i“ erkennt man in diesem Fall den Zusammenhang.

Sowohl im Tab Structure als auch in Overview sieht man, dass im Fall von www.mac-and-i.de nicht die eingetippte Domain antwortet, sondern www.heise.de.

Wenn Sie links das unter „mac-and-i.de“ liegende Element („default“) anklicken, zeigt „Response“ beispielsweise die Weiterleitung: den HTML-Statuscode 301 für „Moved Permanently“. Hier könnten auch andere Daten, die ein Server der aufrufenden App mitteilen will, sichtbar sein. Dazu gleich mehr.

Der Tab „Summary“ zeigt, wie viele Dateien zu einem Verzeichnis gehören. Praktisch ist zudem der Tab „Overview“, wo Sie unter anderem ablesen, wie schnell („Latency“) und mit welcher Datenrate („Response Speed“) der Server geantwortet hat. Auch der Zeitpunkt der Anfrage ist hier vermerkt.

Datenverkehr des iPhones einsehen

Anders als unter macOS gestattet Apple auf seiner Mobilplattform den Zugriff auf die Netzschnittstelle nicht. Um unter iOS trotzdem den Datenfluss zu belauschen, ist daher der Umweg über einen Rechner notwendig. Was iOS nämlich durchaus kann, ist der Zugriff auf einen Proxy.

Wenn Ihr iOS-Gerät mit dem heimischen WLAN verbunden ist, können Sie mit Charles auf dem Mac den Netzverkehr von iPhone und iPad beobachten.

Navigieren Sie dazu in den iOS-Einstellungen zum Bereich WLAN und tippen dort auf den Info-Button neben dem Namen Ihres WLAN.

Im Abschnitt „HTTP-Proxy“ ganz unten wählen Sie „Manuell“ und tragen als Server die IP-Adresse Ihres Macs ein, auf dem Charles läuft. Die ermitteln Sie mit dem Befehl „Local IP Adress…“ im „Help“-Menü. Als Port geben Sie „8888“ ein – das ist der standardmäßig von Charles vorgegebene Port.

Einen HTTP-Proxy richten Sie unter iOS ganz einfach in den WLAN-Einstellungen ein. Dazu müssen Sie neben dem Namen Ihres Netzwerkes auf den Info-Button tippen.

Wenn Sie jetzt auf dem iOS-Gerät eine Website ansurfen, verlangt Charles eine Bestätigung, dass die Verbindung erlaubt werden soll. Klicken Sie auf „Allow“.

Root-Zertifikat installieren um verschlüsselte Verbindungen einzusehen

Anschließend müssen Sie unter iOS noch die URL www.charlesproxy.com/getssl ansurfen und das Root-Zertifikat importieren. Unter iOS 11 müssen Sie dieses anschließend erst aktivieren, dies ist in den Einstellungen unter Allgemein/Info/Zertifikatsvertrauenseinstellungen möglich. Aktivieren Sie dort das soeben installierte Root-Zertifikat mit dem Schalter. Jetzt erkennt Charles auch verschlüsselte HTTPS-Kommunikation. Tipp: Schalten Sie für eine bessere Übersicht im Proxy-Menü den „macOS Proxy“ aus.

Zwei gravierende Nachteile hat diese Methode: Sie kann nur Aufrufe über HTTP oder HTTPS aufzeichnen, und das auch nur dann, wenn die aufrufende iOS-App die Proxy-Einstellungen des Systems beachtet – diese sind nämlich nicht zwingend vorgegeben.

Damit Charles als Proxy auch (verschlüsselte) Verbindungen von iPhone und iPad beschnüffeln kann, müssen Sie zuerst das Root-Zertifikat unter iOS installieren.

Wie man verschlüsselte Verbindungen mitliest

Etwas komplizierter wird es, Charles zum Lesen von via SSL verschlüsselten Verbindungen (HTTPS) zu befähigen – sie machen jedoch den Großteil aller Netzanfragen aus. Um die verschlüsselten Daten überhaupt lesen zu können, bedient sich Charles eines Tricks: Das Tool täuscht dem Sender vor, der Empfänger zu sein, und dem Empfänger, der Sender zu sein. Fachleute nennen das „Man-in-the-Middle“.

Damit das funktioniert, benötigt Charles ein vertrauenswürdiges Server-Zertifikat. Dieses wird vom Client verwendet, um eine verschlüsselte Verbindung zum Server – in diesem Fall Charles – aufzubauen. In der Regel genügt es, im „Help“-Menü unter „SSL Proxying“ den Befehl „Install Charles Root Certificate“ aufzurufen. Daraufhin sollte sich die Schlüsselbundverwaltung automatisch öffnen und den Importdialog zeigen.

Falls der automatische Import nicht klappt, führt folgender Workaround zum Erfolg: Wählen Sie stattdessen „Save Charles Root Certificate“ und speichern das Zertifikat zum Beispiel im Dokumente-Ordner. Anschließend öffnen Sie die Schlüsselbundverwaltung aus dem Dienstprogramme-Ordner. Wählen Sie aus dem „Ablage“-Menü „Objekte importieren…“ und dann das zuvor gespeicherte Zertifikat.

Hat man das fürs Belauschen von SSL-Verbindungen benötigte Root-Zertifikat installiert, sollte in der Schlüsselbundverwaltung noch die Vertrauensstufe auf "immer" geändert werden.

Nach dem Import zeigt die Schlüsselbundverwaltung das Zertifikat „Charles Proxy Custom Root Certificate…“ jedoch als „nicht vertrauenswürdig“ an. Das löst man über das „Informationen“-Fenster, das per Doppelklick oder per Cmd-I zu erreichen ist. Blenden Sie dort den Bereich „Vertrauen“ ein und stellen „Bei Verwendung dieses Zertifikats“ auf „Immer vertrauen“. Wenn Sie das Fenster jetzt schließen, ist wiederum die einmalige Eingabe des Admin-Passwort notwendig, um die Änderungen dingfest zu machen.

Anschließend müssen Sie im Proxy-Menü in die „SSL Proxying Settings…“ gehen und dort „Enable SSL Proxying“ anhaken sowie abzuhörende Domains per „Add“-Knopf hinzufügen. Sollte die gewünschte Domain schon in der Structure-Ansicht gelistet sein, lässt sie sich von dort schneller aus dem Kontextmenü („Enable SSL Proxying“) übertragen. Mit „*.apple.com“ hören Sie etwa alle Anfragen Ihres Macs an Apples Server ab. Auf einem unserer Testrechner gelang das mitunter erst, nachdem wir die abzuhörende Anwendung beendet und neu gestartet hatten.

Schnüffeln in der Praxis am Beispiel von Apples Spotlight-Suche

Ein schönes Übungsbeispiel liefert Spotlight. Rufen Sie die Spotlight-Suche mit Cmd+Leertaste auf und tippen Sie einen Suchbegriff Ihrer Wahl. In Charles sollten Sie anschließend Anfragen an den Server smoot.apple.com einsehen können.

Unter „Structure“ sehen Sie mindestens einen Aufruf von „search“. Nach dem Fragezeichen folgen dann die Parameter. Der Suchbegriff „q“ zeichnet search-Abfragen aus, die auch mehrfach auftreten können, wenn man in der Spotlight-Suche langsam getippt hat. Apple erfährt damit quasi die Tipp-Historie eines Begriffs. Korrigiert man „nackt“ in „nacken“, werden beide Begriffe an Apple gesendet – ob dort die Suchbegriffe gespeichert oder analysiert werden, ist aber nicht bekannt.

Gibt es einen Aufruf von „websearch“, wurde Ihre Anfrage im Hintergrund vermutlich auch an Bing für die Websuche weitergeleitet. Interessant dabei: Der Suchbegriff geht nicht direkt an die Suchmaschine, sondern wird über Apple dorthin vermittelt. Falls sie das nicht möchten, unterbinden Sie die Bing-Abfrage in den „Systemeinstellungen/Spotlight“. Die websearch-Methode wird dann bei weiteren Spotlight-Abfragen nicht mehr aufgerufen.

Aus einer Antwort der websearch-Methode sieht man schön, dass Bing nach einem passenden Suchergebnis gefragt wurde. Das passiert übrigens schon, während Sie tippen.

Im Tab „Overview“ (rechts) verrät „URL“ per Doppelklick die gesamte abgerufene URL und kann weiter Aufschluss über die Architektur des Dienstes geben. So sieht man etwa, dass Apple auch die Sprache und das Keyboard-Layout übergibt. Das ist auch notwendig, um die Anfrage auswerten und Ergebnisse sinnvollpriorisieren zu können.

Zeitzone und Kalenderformat sind hingegen in eher speziellen Fällen gefragt. Apple übermittelt sie aber wohl gleich mit, um zusätzliche Abfragen einzusparen. Viel Erkenntnisgewinn ist damit nicht verbunden, schließlich erhält Apple in jedem Fall die IP-Adresse des Clients und kann daraus geografische Daten ableiten.

Tipps und Tricks zur Überwachung des Datenverkehrs

Auf ähnliche Weise wie im Spotlight-Beispiel beschrieben, lassen sich auch andere Dienste testen und auf übergebene Daten prüfen.

Weiß man, wonach man sucht, empfiehlt es sich, Charles nur SSL-Verbindungen von den Zieldomains mitschneiden zu lassen. Das senkt die Datenflut erheblich.

Welcher Prozess Daten abfragt

Einen kleinen, aber feinen Tipp möchten wir Ihnen an dieser Stelle noch mitgeben: Nicht immer ist die Quelle/der Sender einer Abfrage offensichtlich, und manchmal steckt eine ganz andere App hinter der Abfrage als erwartet. Wenn Sie in Charles’ Tools-Menü unter „Client Process…“ die Option „Enable Client Process“ aktivieren, verrät Charles im Tab Overview unter „Notes“ den Prozess, der die Anfrage abgesetzt hat. Im Fall von Spotlights search-Methode ist das beispielsweise der SpotlightNetHelper. Eine Möglichkeit, die Aufzeichnung auf einen bestimmten Prozess zu beschränken, gibt es leider nicht.

11 Kommentare

Themen:

Anzeige
Anzeige