← Zurück zum Blog

Datensammeln auf Android

Hintergrund

Auf meinem gerooteten Handy hatte ich zum Unterbinden von Tracking eine App namens AdAway. Als ich mir ein neues Handy kaufte (nicht geroottet), musste ich mir eine Alternative suchen.

Ich fand Blokada. Blokada erzeugt lokal auf dem Gerät eine VPN-Schnittstelle, durch die die Datenpakete geschleust werden. Mit Filtern werden dann ungewollte Verbindungen zu Tracking- und Werbeseiten verhindert.

Blokada

Blokada hat bereits über 95.000 Request blockiert

Blokada bietet eine Einstellung “Alle Anfragen protokollieren” an. Sie schreibt alle HTTP-Anfragen in eine CSV-Datei. Diese CSV-Datei kann dann analysiert werden. Diese Einstellung habe ich aktiviert.

Alle Anfragen werden protokolliert

Analyse der CSV-Datei

Die CSV-Datei enthält alle Anfragen zwischen dem 27.07.2019 und dem 27.11.2019 (exakt 4 Monate).

Der Aufbau ist wie folgt:

  • Die erste Spalte ist ein Zeitstempel.
  • Die zweite Spalte ist “a” oder “b”. “a” steht für “akzeptiert” (die Anfrage wurde also nicht blockiert). “b” steht für “blockiert”.
  • Die dritte Spalte ist der Host (die Domain), an die die Anfrage ging.
timestamp,type,host
1564235755477,b,reports.crashlytics.com
1564235764796,b,reports.crashlytics.com
1564235782487,b,device-api.urbanairship.com
...

Zuerst zählen wir alle Einträge:

> cat requests.csv | wc -l
168187

Nun filtern wir die Einträge heraus, die auch wirklich blockiert wurden und schreiben diese in eine neue Datei und zählen die blockierten Anfragen:

> cat requests.csv | grep ",b," > requests_blocked.csv
> cat requests_blocked.csv | wc -l
104384

Mit der folgenden Anfrage schneiden wir die ersten 17 Zeichen jeder Zeile weg. Somit werden die ersten beiden Spalten entfernt, sodass nur noch der Host stehen bleibt.

> cat requests_blocked.csv | cut -c 17- > requests_blocked_hosts.csv

So sieht das Ergebnis aus:

reports.crashlytics.com
reports.crashlytics.com
device-api.urbanairship.com
...

Mit folgendem Befehl kann ich die Hosts ermitteln, die am häufigsten angefragt (und abgelehnt wurden) wurden und dementsprechend sortieren:

> cat requests_blocked_hosts.csv | sort | uniq -c | sort -nr

Das Ergebnis (nur Einträge, die 50 mal oder öfter vorkommen):

15565 semanticlocation-pa.googleapis.com
12785 mobile.pipe.aria.microsoft.com
9715 graph.facebook.com
8063 reports.crashlytics.com
7249 nashira.iad-06.braze.com
6646 app-measurement.com
5871 profile.localytics.com
4645 device-api.urbanairship.com
4230 ads.mopub.com
3937 mobilecrashreporting.googleapis.com
3795 googleads.g.doubleclick.net
2867 settings.crashlytics.com
2332 de.ioam.de
1919 secure-eu.imrworldwide.com
1836 ads.nexage.com
1512 z.moatads.com
1415 geomobileservices-pa.googleapis.com
1343 e.crashlytics.com
1198 analytics.localytics.com
1169 combine.urbanairship.com
 936 cdn.taboola.com
 436 ssl.google-analytics.com
 423 www.googleadservices.com
 324 appload.ingest.crittercism.com
 306 logs1413.xiti.com
 279 mads.amazon-adsystem.com
 276 arcus-uswest.amazon.com
 255 b.scorecardresearch.com
 246 upratihun.fra-01.braze.eu
 245 udm.scorecardresearch.com
 221 api.branch.io
 207 app.adjust.com
 188 config.samqaicongen.com
 165 manifest.localytics.com
 165 analytics.ext.go-tellm.com
 153 nexusrules.officeapps.live.com
 143 www.google-analytics.com
 132 service.game-mode.net
  93 api.segment.io
  74 msh.amazon.co.uk
  66 api.oneaudience.com
  58 countess.twitch.tv
  55 t.appsflyer.com
  54 cdn-settings.segment.com
  54 api.mixpanel.com
  53 nexus.officeapps.live.com

crashlytics.com kommt mehrfach vor (insgesamt 12.273 mal)

localytics.com kommt ebenfalls mehrfach vor (insgesamt 7.234 mal)

Datensammeln verhindern

auf Android:

Auf Android empfiehlt es sich, Blokade zu nutzen (funktioniert bei gerooteten und nicht gerooteten Handys).

Fritzbox:

Wird eine FritzBox genutzt, kann unter Internet->Filter->Listen->Gesperrte Internetseiten (Blacklist) eine Blacklist erstellt werden, die URLs enthält, die nicht mehr aufgerufen werden können.

Basierend auf einer “Easy-List” zum Thema Datenschutz habe ich folgende Backlist erstellt, die für die FritzBox verwendet werden kann:

graph.facebook.com
app-measurement.com
ads.mopub.com
doubleclick.net
ssl.google-analytics.com
adjust.io
airbrake.io
appboy.com
appsflyer.com
apsalar.com
bango.combango.org
bango.net
basic-check.disconnect.me
bkrtx.com
bluekai.com
bugsense.com
burstly.com
chartboost.com
count.ly
crashlytics.com
crittercism.com
custom-blacklisted-tracking-example.com
do-not-tracker.org
eviltracker.net
flurry.com
getexceptional.com
inmobi.com
jumptap.com
localytics.com
mixpanel.com
mobile-collector.newrelic.com
mobileapptracking.com
playtomic.com
stathat.com
supercell.net
tapjoy.com
trackersimulator.org
usergrid.com
vungle.com

Sonstige: