Ergebnisse der Analyse des abgefangenen Netzwerkverkehrs der offiziellen White-House-App
(atomic.computer)- Der tatsächliche HTTPS-Verkehr der White-House-iOS-App wurde mit einem MITM-Proxy erfasst, um zu analysieren, mit welchen Servern und welchen Daten die App kommuniziert
- Die App kommuniziert nicht nur mit whitehouse.gov, sondern auch mit 31 Hosts von Drittanbietern wie Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook und Twitter
- An OneSignal werden fortlaufend Informationen zur Nutzerprofilbildung übermittelt, darunter Sprache, Zeitzone, IP-Adresse, Gerätemodell und Anzahl der Sitzungen
- Über den Widget-Loader von Elfsight werden externe Skripte ausgeführt, und auch Google-DoubleClick-Code zur Werbeverfolgung läuft innerhalb der App
- Im Privacy Manifest der App ist zwar „keine Datenerfassung“ angegeben, tatsächlich finden jedoch umfangreiche Drittanbieter-Tracking- und Datenübertragungen statt
Überblick über die Analyse des Netzwerkverkehrs
- Der Netzwerkverkehr der offiziellen White-House-iOS-App wurde mit einem MITM-(Man-in-the-Middle-)Proxy erfasst und analysiert
- In einer macOS-Umgebung wurde mitmproxy installiert und der gesamte HTTPS-Verkehr des iPhones über den Proxy aufgezeichnet
- Die App-Version war v47.0.4 (build 81), und alle Tabs Home, News, Live, Social und Explore wurden durchlaufen
- Der Verkehr wurde ohne Manipulation entschlüsselt und protokolliert, bei einer Nutzung wie durch einen gewöhnlichen Anwender
Server, mit denen sich die App verbunden hat
- In einer einzelnen Sitzung sendete die App Anfragen an 31 eindeutige Hosts (ohne iOS-Systemverkehr)
- Von insgesamt 206 Anfragen gingen nur 48 (23 %) an whitehouse.gov
- Die übrigen 158 (77 %) wurden an Drittanbieterdienste wie Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook und Twitter gesendet
- Wichtige Zielsysteme
- whitehouse.gov: WordPress-API (News, Home, Galerie usw.)
- YouTube: Video-Einbettungen und Vorschaubilder
- Elfsight: Laden von Widgets, statische Assets, Dateispeicher, Boot-API usw.
- OneSignal: Analyse und Nutzerprofilbildung
- Facebook/Twitter CDN: Laden von Bildern
- Google APIs und DoubleClick: Werbung und Tracking
An OneSignal übermittelte Daten
- Beim Start der App wird ein HTTPS-Request-Body an
api.onesignal.comgesendet- Enthaltene Informationen: Sprache, Zeitzone, Land, IP-Adresse, Zeitpunkt des ersten Starts und der letzten Aktivität, Gerätemodell, OS-Version, Netzwerktyp (WLAN/Mobilfunk), Mobilfunkanbieter, Jailbreak-Status, Anzahl der Sitzungen, Sitzungsdauer, eindeutige Kennung
- Bei jedem App-Start werden mehrere PATCH-Anfragen gesendet, um das Profil zu aktualisieren
- Beim ersten Start 18 PATCH-Anfragen, in der gesamten Sitzung wurden 9 OneSignal-Anfragen festgestellt
- Reihenfolge: vorhandenes Profil per GET abfragen → Sitzungsinformationen per PATCH aktualisieren
- OneSignal protokolliert fortlaufend sitzungsbezogene IPs, Aktivitätszeiten, Anzahl der Sitzungen und Sitzungsdauer
- Bei Änderung der IP-Adresse wird das Profil aktualisiert
- Der Zeitstempel
first_activeändert sich nach dem Installationszeitpunkt nicht mehr
- Damit pflegt OneSignal faktisch ein dauerhaftes Profil pro Nutzer und verfolgt Nutzungsmuster der App sowie die Netzwerkumgebung
- Der User-Agent des Verkehrs lautet
WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0
Elfsight-bezogener Verkehr
- Die in der statischen Analyse festgestellten 6 Widgets und der zweistufige JavaScript-Loader wurden auch im tatsächlichen Verkehr bestätigt
- Beim Öffnen des Social-Tabs verbindet sich die App mit 13 Elfsight-Domains
- darunter
elfsightcdn.com,core.service.elfsight.com,static.elfsight.com,storage.elfsight.com,widget-data.service.elfsight.com,video-proxy.wu.elfsightcompute.com
- darunter
- Wird über eine
/p/boot/-Anfrage die jeweilige Widget-ID gesendet, liefert der Server eine Liste der auszuführenden Skripte (assets-Array) zurück- Beispiel: TikTok →
tiktokFeed.js, Instagram →instashow.js, Facebook →facebookFeed.js, YouTube →yottie.js
- Beispiel: TikTok →
- Die Funktion
loadAssetsder App fügt jede URL als<script>ein und führt sie aus- Eine Struktur also, bei der der Server bestimmt, welcher Code ausgeführt wird
- Die Elfsight-Server setzen während der Sitzung mehr als 10 Cookies
- darunter
elfsight_viewed_recently, Cloudflare-Tracking-Cookies (_cfuvid,__cf_bm) und Sitzungskennungen
- darunter
Werbe-Tracking mit Google DoubleClick
- Beim Einbetten von YouTube werden zusätzlich Tracking-Infrastruktur für Google-Werbung geladen
- Anfragen an
googleads.g.doubleclick.netundstatic.doubleclick.netwurden bestätigt
- Anfragen an
- DoubleClick ist Googles Plattform für Werbeauslieferung und Tracking,
und innerhalb der offiziellen White-House-App wird Code zur Werbeverfolgung ausgeführt
- Im Privacy Manifest der App wird dies nicht offengelegt
Abweichung zwischen Privacy Manifest und tatsächlichem Verhalten
- Die deklarierten Privacy-Einstellungen der App:
NSPrivacyCollectedDataTypes: [] NSPrivacyTracking: false - Die in der tatsächlichen Sitzung beobachteten Datenübertragungen:
- An OneSignal werden Gerätemodell, OS, IP, Zeitzone, Sprache, Anzahl der Sitzungen, Sitzungsdauer und eindeutige Kennung gesendet
- Verbindungen zu 13 Elfsight-Domains und Empfang von mehr als 10 Tracking-Cookies
- Ausführung von Google-DoubleClick-Code zur Werbeverfolgung
- Anfragen an Facebook, Twitter/X, YouTube und Google APIs
- Damit wird die App zwar als „keine Datenerfassung“ ausgewiesen, tatsächlich erfolgen jedoch umfangreiches Tracking durch Dritte und Datenübertragungen
Analysemethodik
- Proxy-Tool: mitmproxy (mitmdump)
- Umgebung: macOS, iPhone (iOS), identisches WLAN-Netzwerk
- Zertifikat: mitmproxy-CA in die iOS-Vertrauenseinstellungen aufgenommen
- Umfang der Erfassung: HTTPS-Verkehr beim vollständigen Durchlaufen der 5 Tabs der App
- Manipulation: keine, der Verkehr wurde nur beobachtet
- Umgang mit personenbezogenen Daten: IP, Gerätekennungen, OneSignal-ID usw. wurden im Beitrag vollständig maskiert
- Kein Eindringen in Server und keine Manipulation, es wurde nur die freiwillige Kommunikation der App aufgezeichnet
Verwandte Forschung
- Bericht zur statischen Analyse der White-House-iOS-App
- Analyseergebnisse von Thereallo zur Android-Version
Über Atomic Computer
- Atomic Computer ist ein Unternehmen, das Cybersicherheits-, Infrastruktur- und Entwicklungsdienstleistungen anbietet
- Das Unternehmen führt Bewertungen und Analysen zur Sicherheit mobiler Apps durch
1 Kommentare
Hacker-News-Kommentare
43 % aller Third-Party-Anfragen beziehen sich auf Google (einschließlich YouTube, Fonts und Analytics), zusammen mit Facebook und Twitter sind es etwa 55 %
Dass eine Regierungs-App übermäßig viel Tracking oder Analyse-Code einbindet, ist problematisch, aber Google Fonts oder YouTube-Embeds halte ich nicht für besonders gravierend
Beim Titel hätte ich eher schockierende Domains wie Palantir oder ICE erwartet, daher wirken Google/Facebook etwas unspektakulär
Im Titel sollte es nicht einfach nur heißen „77 % sind Third-Party-Anfragen“, sondern er sollte sich auf den Charakter und die Schwere der Anfragen konzentrieren
Übrigens verwendet atomic.computer ebenfalls Google Fonts und Analytics. Bevor man Third-Party-Anfragen pauschal als schlecht darstellt, sollte man auch die eigene Website überprüfen
Letztlich kann man selbst entscheiden, welche Daten man über die App tracken will, und Daten über gängige Tracking-Anbieter quasi wie durch Geldwäsche gesammelt werden
Die Google-bezogenen Anfragen scheinen aus Transparenzgründen aufgeführt worden zu sein und nicht mit der Absicht, die White-House-App zu verurteilen
atomic.computer hat nicht behauptet, dass Third-Party-Anfragen an sich schlecht seien, sondern sie nur als Mittel zur Datensammlung und zum Tracking analysiert
Nutzer haben keine Kontrolle darüber, wie die Daten nach ihrer Erfassung verwendet werden, und genau dieses Fehlen von Kontrolle ist das Kernproblem
Laut Bericht wurde mit
mitmproxyauf einem Mac gearbeitet und der iPhone-Traffic dorthin umgeleitet, um HTTPS zu entschlüsselnIch habe mich gefragt, ob es wirklich so einfach ist, ein iPhone dazu zu bringen, einem Benutzerzertifikat zu vertrauen
Unter Android ist es ziemlich umständlich, Netzwerk-Traffic einzusehen
Solche Experimente zeigen gut, dass wir Kontrolle über unsere Geräte haben sollten. Wir haben ein Recht zu wissen, wohin welche Daten mit welchem Inhalt gesendet werden
Das erinnert auch an frühere Fälle, in denen Zoom Traffic nach China schickte oder Facebook das Surfverhalten innerhalb von Apps verfolgte
Eine Ausnahme ist, wenn die App ihr eigenes OpenSSL verwendet oder Certificate Pinning einsetzt
Große Apps wie Facebook oder Twitter nutzen meist Pinning, aber so einfache Apps tun das oft nicht
mitmproxyist unter iOS viel einfacher als unter AndroidAllerdings sind Apps mit Pinning schwer zu umgehen, und Plattformen, auf denen man eigene Apps installieren kann, sind dabei im Vorteil
Bei stark abgesicherten Fällen wie Banking-Apps braucht man ein gerootetes Gerät
Man kann sich sogar vorstellen, dass das als Trainingsdaten für Deepfakes verwendet wurde
Es gibt dazu frühere Diskussions-Threads
Frühere Diskussion 1, Frühere Diskussion 2
Ich blockiere die meisten Werbe-Domains (z. B.
doubleclick.net) auf DNS-EbeneEs überrascht mich, dass die meisten Websites, einschließlich Nachrichtenseiten, so viele Third-Party-Verbindungen öffnen
Auch atomic.computer versucht, Cloudflareinsights und Google Fonts zu laden, aber das wird in meinem Netzwerk blockiert
Solche Anfragen sind ein Hauptgrund dafür, dass Google Nutzer über das gesamte Internet hinweg verfolgen kann
Für Regierungs-Apps sollten deutlich höhere Standards gelten als für normale B2C-Apps
Google Fonts einzubinden ist in Ordnung, aber Telemetrie an OneSignal oder Facebook zu senden, ist eine andere Sache
In Australien dürfen gemäß PSPF- und ISM-Vorgaben Regierungsdaten nicht an nicht vertrauenswürdige Externe übertragen werden
Eine solche App würde bei einer IRAP-Bewertung sofort durchfallen
Die Lösung ist einfach — Fonts selbst hosten, Analytics als 1st-Party umsetzen und externe Anfragen als Vektor für Datenabfluss behandeln
Bei den meisten B2C-Apps liegt der Anteil an Third-Party-Anfragen ebenfalls über 50 %
Dass die White-House-App bei 77 % liegt, ist nicht überraschend, problematisch war aber, dass die Datenerfassungsangaben im App Store falsch deklariert waren
Das wurde später korrigiert und ist inzwischen korrekt ausgewiesen
Auch wenn für Regierungs-Apps höhere Standards gelten sollten, ist ein Wert von 77 % womöglich gar nicht so weit vom Branchendurchschnitt entfernt
Viele Apps enthalten Werbecode und Tracker, daher könnte das ein ziemlich normales Niveau sein
Die Liste der von der App verwendeten SDKs kann man bei AppGoblin einsehen
Im Privacy Manifest steht „keine Datenerfassung“, tatsächlich werden aber an OneSignal Gerätemodell, IP-Adresse, Anzahl der Sessions und Tracking-ID gesendet
Das ist ein klarer Fall einer falschen Bestätigung (false attestation)
Der nächste Schritt ist vermutlich, Werbung einzubauen