Eine Schwachstelle in älteren Android-Versionen hat zur Folge, dass ein entfernter Angreifer Bewegungsprofile von Android-Benutzern anlegen kann.
Die Attacke [1] basiert auf dem Auslesen der MAC-Adresse, die ein Gerät eindeutig identifiziert und erlaubt, es zu verfolgen. Das Android-Betriebssystem verwendet so genannte Intents für die Kommunikation zwischen Prozessen. Dazu zählen auch Broadcast-Nachrichten, die ein Prozess sendet, während alle anderen sie lesen können. Auf diese Weise verschickt Android auch zahlreiche Informationen über Funknetz-Verbindungen und das Wifi-Netzwerkinterface via Broadcast an alle Prozesse.
Dies geschieht über zwei spezielle Intents: »NETWORK_STATE_CHANGED_ACTION« (Wifi-Manager) und »WIFI_P2P_THIS_DEVICE_CHANGED_ACTION«. (Wifi-P2p-Manager). Die Nachrichten enthalten unter anderem die MAC-Adresse, die BSSID, den Namen des Wifi-Accesspoint, die IP-Adresse und den DNS-Server. Da es sich bei den Intents um Broadcasts handelt, können alle Prozesse des Android-Geräts diese Daten lesen.
Die genannten Netzwerk-Informationen stellt im Prinzip auch der Wifi-Manager selbst den Applikationen bereit – das wäre sogar der von Android vorgesehene Weg, um an sie zu gelangen. Allerdings braucht die Applikation dafür »ACCESS_WIFI_STATE«-Rechte in der Manifest-Datei (»AndroidManifest.xml«). Zusätzlich benötigt sie auch »ACCESS_FINE_LOCATION«- und »ACCESS_COARSE_LOCATION«-Rechte, um an Geo-Informationen zu gelangen.
Sind entsprechende Einträge in der Manifest-Datei nicht vorhanden, so sollte eine Applikation an diese Informationen eigentlich nicht gelangen können. Außerdem darf ein Prozess die MAC-Adresse seit Android-Version 6 über das API nicht mehr regulär auslesen.
Eine Applikation kann aber diese Restriktionen umgehen, indem sie einfach die Broadcast-Nachrichten der »NETWORK_STATE_CHANGED_ACTION«- und »WIFI_P2P_THIS_DEVICE_CHANGED_ACTION«-Intents abhört. Diese Sicherheitslücke ist sehr leicht reproduzierbar. So kann etwa die App “Internal Broadcasts Monitor” von Vilius Kraujutis aus dem Google Playstore solche Broadcast-Intents überwachen und auslesen.
Wie der Name der Applikation es schon andeutet, darf ein Anwender hiermit auch die Broadcast-Intents des Systems detailliert einsehen. Die relevanten Broadcasts mit den Netzwerkinformationen werden dann nämlich über »android.net.wifi.STATE_CHANGE« und »android.net.wifi.p2p.THIS_DEVICE_CHANGED« angezeigt.
Ein Angreifer nutzt die Schwachstelle aus, indem er sein Opfer dazu bringt, eine entsprechend präparierte Applikation zu installieren. Hierzu muss er lediglich einen Broadcast-Empfänger in der besagten Applikation implementieren. Das ist sehr einfach, es reichen wenige Zeilen Code dafür aus.
Da die MAC-Adresse für jedes Gerät eindeutig ist, kann die Applikation auf dieser Grundlage ein bestimmtes Android-Gerät verfolgen. Kombiniert mit Geo-Informationen erzeugt der Angreifer detaillierte Bewegungsprofile seiner Opfer. So lassen sich Netzwerkname und BSSID mit Hilfe von Wigle [2] oder Skyhook [3] in Geo-Informationen auflösen.
Diese Sicherheitslücke tritt in Android 9 nicht mehr auf.





