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.
1
2
3
4
5
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:

1
2
> 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:

1
2
3
> 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.

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

So sieht das Ergebnis aus:

1
2
3
4
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:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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: