1
00:00:00,429 --> 00:00:08,840
32C3 Vorspannmusik
2
00:00:08,840 --> 00:00:14,110
Herald: Vincent Haupert studiert in seinem
Dayjob, sozusagen, Informatik in Erlangen,
3
00:00:14,110 --> 00:00:17,220
und macht da gerade seinen Master
mit Schwerpunkt in IT-Security.
4
00:00:17,220 --> 00:00:20,680
Die Arbeit, die er uns aber
gleich vorstellen möchte,
5
00:00:20,680 --> 00:00:23,740
hat er im Rahmen seiner Tätigkeit als
wissenschaftliche Hilfskraft gemacht,
6
00:00:23,740 --> 00:00:27,830
und zwar zusammen mit seinem Kollegen
Tilo Müller. Dort hat er untersucht,
7
00:00:27,830 --> 00:00:32,029
was es denn für Sicherheitslücken
bei App-basierten TAN-Verfahren gibt,
8
00:00:32,029 --> 00:00:35,110
also im Bereich des Onlinebankings;
und die möchte er uns jetzt vorstellen.
9
00:00:35,110 --> 00:00:38,659
Einen ganz großen, herzlichen
Applaus für Vincent bitte!
10
00:00:38,659 --> 00:00:44,920
Applaus
11
00:00:44,920 --> 00:00:48,329
Vincent: Ja, auch herzlich willkommen
von mir, also mein Name ist, wie gesagt,
12
00:00:48,329 --> 00:00:51,059
Vincent Haupert, und ich habe
mir im vergangenen Herbst
13
00:00:51,059 --> 00:00:55,420
mit meinem Kollegen Tilo Müller mal
angeschaut, wie es denn um die Sicherheit
14
00:00:55,420 --> 00:00:58,860
von App-basierten TAN-Verfahren
im Onlinebanking bestellt ist;
15
00:00:58,860 --> 00:01:02,960
und ja, der ein oder andere hat die
Geschichte vielleicht schon mitbekommen,
16
00:01:02,960 --> 00:01:05,209
hat sie auf Heise gelesen und
so, und fragt sich vielleicht: ja,
17
00:01:05,209 --> 00:01:08,600
was kommt denn jetzt da heute? Vor
2 Wochen habe ich einen Angriff von der,
18
00:01:08,600 --> 00:01:12,140
äh, einen Angriff… lacht
einen Anruf von der Sparkasse bekommen
19
00:01:12,140 --> 00:01:16,380
Gelächter
Applaus
20
00:01:16,380 --> 00:01:21,030
Ja, der Herr Meier, den ich jetzt hier
einfach mal so nennen möchte,
21
00:01:21,030 --> 00:01:24,840
hat mich da gefragt, was ich denn zwischen
Weihnachten und Neujahr mache… ja.
22
00:01:24,840 --> 00:01:30,750
Zu dem Zeitpunkt, wollte er eben wissen:
muss er seine Presseabteilung jetzt schon
23
00:01:30,750 --> 00:01:33,240
auf irgendetwas Neues gefasst machen,
oder nicht. Gelächter
24
00:01:33,240 --> 00:01:36,479
Zu dem Zeitpunkt konnte ich es ganz
ehrlich gesagt noch nicht sagen,
25
00:01:36,479 --> 00:01:38,909
Heute kann ich ihnen sagen: ich hoffe,
sie haben einen Entwurf gemacht,
26
00:01:38,909 --> 00:01:40,839
das macht es danach leichter.
27
00:01:40,839 --> 00:01:47,080
Gelächter
Applaus
28
00:01:47,080 --> 00:01:51,430
Ja, Onlinebanking ist etwas, das
betrifft uns alle; es ist etabliert,
29
00:01:51,430 --> 00:01:56,509
eine große Zahl der Deutschen verwendet
es, und ein besonderes Merkmal
30
00:01:56,509 --> 00:02:01,920
von Onlinebanking ist, dass es schon seit
seinem Entstehen in den 1980er Jahren,
31
00:02:01,920 --> 00:02:04,880
damals noch BTX-basiert,
ein Zweifaktor-Verfahren ist.
32
00:02:04,880 --> 00:02:08,619
Also, man hatte auf der einen Seite immer
irgendwie einen Benutzernamen/Passwort,
33
00:02:08,619 --> 00:02:13,779
und dann noch irgendein TAN-Verfahren.
Über die Zeit ist da ein ganzer Zoo
34
00:02:13,779 --> 00:02:17,919
an TAN-Verfahren entstanden; meistens
gab es einfach Weiterentwicklungen,
35
00:02:17,919 --> 00:02:22,620
aus Sicherheitsgründen. Heute werden
wir ein Verfahren sehen, das sich nicht
36
00:02:22,620 --> 00:02:27,230
in diese Reihe begeben
kann. Ja. Im Prinzip läuft
37
00:02:27,230 --> 00:02:31,449
Onlinebanking immer so ab, ich sage das
der Vollständigkeit halber hier nochmal:
38
00:02:31,449 --> 00:02:35,480
man loggt sich im Onlinebanking-Portal
ein, mit seinem Benutzername/Passwort,
39
00:02:35,480 --> 00:02:39,189
reicht dann eine Überweisung ein, und im
zweiten Schritt muss man das dann noch
40
00:02:39,189 --> 00:02:44,069
mit einem TAN-Verfahren bestätigen. Das
ist nicht für jeden das gleiche; das kann
41
00:02:44,069 --> 00:02:48,370
entweder noch die altgediente iTAN-
Liste sein, die aber langsam ausstirbt;
42
00:02:48,370 --> 00:02:52,269
das SMS-TAN-Verfahren,
das auch seine Tücken hat,
43
00:02:52,269 --> 00:02:54,609
wie man in den letzten
Monaten mitbekommen kann.
44
00:02:54,609 --> 00:02:59,309
Insbesondere ein großer Verbündeter
ist die Telekom, lacht
45
00:02:59,309 --> 00:03:02,919
und es gibt dann auch noch das
chipTAN-Verfahren, das auch recht
46
00:03:02,919 --> 00:03:06,719
verbreitet ist. Das letzte Verfahren,
das chipTAN-Verfahren, adressiert
47
00:03:06,719 --> 00:03:11,029
das Sicherheitsproblem im Onlinebanking
eigentlich schon ganz gut, aber,
48
00:03:11,029 --> 00:03:13,859
wenn man den Kreditinstituten glaubt,
gibt es einen dringenden Wunsch
49
00:03:13,859 --> 00:03:17,290
in der deutschen Bevölkerung,
seine Geldgeschäfte immer überall
50
00:03:17,290 --> 00:03:21,059
machen zu können. Sei das in der U-Bahn,
im Restaurant, vielleicht auch hier,
51
00:03:21,059 --> 00:03:24,089
gerade in diesem Vortrag. Macht jemand
gerade eine Überweisung, mal Hand hoch?
52
00:03:24,089 --> 00:03:26,870
Gelächter
Ja.
53
00:03:26,870 --> 00:03:32,180
Auf jeden Fall ist es dann so, wenn man
eine Überweisung überall machen will,
54
00:03:32,180 --> 00:03:35,370
sarkastisch: dann will ich kein zweites
Gerät haben, denn das ist ja unbequem.
55
00:03:35,370 --> 00:03:40,019
Deswegen haben die Banken ein
Gerät entdeckt, das jeder von uns
56
00:03:40,019 --> 00:03:43,989
immer dabei hat, und das absolut
sicher ist – das Smartphone.
57
00:03:43,989 --> 00:03:49,900
Gelächter
Applaus
58
00:03:49,900 --> 00:03:56,169
Man hat jetzt keine zwei Geräte mehr,
nicht 2 voneinander unabhängigen Faktoren,
59
00:03:56,169 --> 00:03:58,829
man hat eine Banking-App,
und man hat eine TAN-App.
60
00:03:58,829 --> 00:04:02,959
Das funktioniert jetzt so: ich logge
mich mit meiner Banking-App
61
00:04:02,959 --> 00:04:06,889
auf dem Smartphone ein und gebe eine
Überweisung auf. Im zweiten Schritt
62
00:04:06,889 --> 00:04:11,279
muss ich dann wie gehabt die
Überweisung mit einer TAN bestätigen.
63
00:04:11,279 --> 00:04:15,819
Jetzt nehme ich aber nicht meinen
Papierzettel her, mein chipTAN-Gerät,
64
00:04:15,819 --> 00:04:21,310
sondern ich wechsle
zur TAN-App. Da gibt’s,
65
00:04:21,310 --> 00:04:24,449
also da sind alle Banken mittlerweile ein
großer Fan davon eigentlich, das ist jetzt
66
00:04:24,449 --> 00:04:28,050
nur eine Auswahl, ich weiß nicht ob es
noch mehr gibt, aber all diese Banken
67
00:04:28,050 --> 00:04:31,560
haben ein App-basiertes TAN-
Verfahren im Angebot, und ich denke,
68
00:04:31,560 --> 00:04:35,939
die die es noch nicht haben, sind bestimmt
auf dem Weg dahin, das zu machen.
69
00:04:35,939 --> 00:04:40,139
Ich sehe jetzt schon den einen oder
anderen hier in den ersten Reihen,
70
00:04:40,139 --> 00:04:42,979
bei denen sich dann die Stirn
runzelt bei dem Verfahren,
71
00:04:42,979 --> 00:04:47,319
ich will aber trotzdem nochmal generell
das Angriffs-Szenario motivieren.
72
00:04:47,319 --> 00:04:52,319
Also, Malware, oder Schadsoftware,
ist in den offiziellen App Stores
73
00:04:52,319 --> 00:04:55,250
der Betriebssystemhersteller.
Das ist keine Fiktion!
74
00:04:55,250 --> 00:05:02,270
Bei uns am Lehrstuhl in Erlangen
hat der Dominik Maier gezeigt,
75
00:05:02,270 --> 00:05:05,180
dass sich der Google Play Store
76
00:05:05,180 --> 00:05:10,020
nicht ausreichend gegen Schadsoftware
schützen kann. Also, die konkrete Aufgabe
77
00:05:10,020 --> 00:05:12,990
von ihm war eigentlich,
in seiner Bachelorarbeit,
78
00:05:12,990 --> 00:05:18,639
Schadsoftware in den Google
Play Store zu bekommen. Nur:
79
00:05:18,639 --> 00:05:21,900
das war seine Bachelorarbeit… da ist er
nach ein paar Tagen zu seinem Betreuer
80
00:05:21,900 --> 00:05:25,370
dann hingekommen und hat gesagt:
„Ey Tilo, ich bin fertig!“
81
00:05:25,370 --> 00:05:32,740
Gelächter
Applaus
82
00:05:32,740 --> 00:05:38,530
amüsiert: Und, was er gemacht hat:
er hat einen Root-Exploit gezippt, ja…
83
00:05:38,530 --> 00:05:39,979
Gelächter
84
00:05:39,979 --> 00:05:42,960
Also, er hat ihn gezippt und hochgeladen;
da war kein Passwort, nichts –
85
00:05:42,960 --> 00:05:44,730
er hat ihn einfach gezippt.
86
00:05:44,730 --> 00:05:49,069
Dass das aber nicht irgendwie nur
akademische, graue Theorie ist,
87
00:05:49,069 --> 00:05:53,039
hat dieses Jahr so ziemlich gleichzeitig,
als wir diese App-TAN-Geschichte
88
00:05:53,039 --> 00:05:57,659
gemacht haben, die App „Brain Test“
gezeigt. Das ist ein Spiel, und
89
00:05:57,659 --> 00:06:02,180
das hat über 100.000 Downloads
gehabt, bis zu 500.000.
90
00:06:02,180 --> 00:06:05,870
Und diese App hat genau das
gemacht, was das Angriffsszenario
91
00:06:05,870 --> 00:06:09,590
auch für App-basierte TAN-Verfahren
ist. Nämlich: im offiziellen Store,
92
00:06:09,590 --> 00:06:13,810
rootet das Gerät zuerst und
lädt dann Schadcode nach.
93
00:06:13,810 --> 00:06:19,550
Wir hätten jetzt auch irgendeins von
den Kreditinstituten, die App-basiertes
94
00:06:19,550 --> 00:06:23,689
TAN-Verfahren anbieten, nehmen können;
ich habe die Sparkasse genommen,
95
00:06:23,689 --> 00:06:25,819
weil ich da a) ein Konto habe und
b) weil’s irgendwie die größte ist.
96
00:06:25,819 --> 00:06:28,629
Und das waren auch die Ersten,
die das angeboten haben.
97
00:06:28,629 --> 00:06:32,520
Deswegen haben wir uns angeguckt:
was kann man denn jetzt da machen?
98
00:06:32,520 --> 00:06:35,440
Was gibt es denn da für
Angriffsszenarien für pushTAN?
99
00:06:35,440 --> 00:06:39,569
Und was uns da als allererstes
ziemlich schnell eingefallen ist,
100
00:06:39,569 --> 00:06:43,479
ist: wir könnten die App
irgendwie kopieren,
101
00:06:43,479 --> 00:06:46,620
oder wir reversen das Protokoll und
implementieren unseren eigenen Client.
102
00:06:46,620 --> 00:06:49,810
Das sind aber beides noch Angriffe,
die konzentrieren sich sehr stark
103
00:06:49,810 --> 00:06:54,810
einfach nur auf die TAN-App.
Das eigentliche Problem
104
00:06:54,810 --> 00:06:57,590
von App-basierten TAN-Verfahren,
also dass man den ersten Faktor
105
00:06:57,590 --> 00:07:01,370
und den zweiten Faktor auf einem Gerät
hat, wird aber am besten dadurch betont,
106
00:07:01,370 --> 00:07:06,389
wenn man eine Transaktionsmanipulation
durchführt. Sprich: wir manipulieren eine
107
00:07:06,389 --> 00:07:12,309
vom Nutzer aufgegebene Transaktion
in Echtzeit, ohne dass er’s sehen kann.
108
00:07:12,309 --> 00:07:15,340
Wie haben wir das gemacht, oder
wie war unser Szenario dafür?
109
00:07:15,340 --> 00:07:19,110
Nochmal: wie läuft das ab?
Links ist die Sparkassen-App,
110
00:07:19,110 --> 00:07:22,029
die verwende ich, um mich in meinem
Onlinebanking einzuloggen und dann
111
00:07:22,029 --> 00:07:26,469
meine Überweisungsdaten auszufüllen,
und schicke das dann letztendlich ab.
112
00:07:26,469 --> 00:07:31,120
Dann landet das Ganze beim Sparkassen-
Server, und der schickt dann eine TAN
113
00:07:31,120 --> 00:07:35,259
an die pushTAN-App, die da rechts
dargestellt ist. Der Nutzer wird dann
114
00:07:35,259 --> 00:07:39,580
dazu aufgefordert, in die pushTAN-App
zu wechseln, die dort dargestellte TAN
115
00:07:39,580 --> 00:07:43,529
– nachdem er die Überweisungsdaten
natürlich kontrolliert hat – in die App
116
00:07:43,529 --> 00:07:46,379
„Sparkasse“ zu übertragen. Das geht
mittlerweile, wie wir später sehen werden,
117
00:07:46,379 --> 00:07:50,900
auch so automatisiert, dass man sich
fragt: warum gibt’s überhaupt noch 2 Apps?
118
00:07:50,900 --> 00:07:57,080
Ja, gut. Was wir jetzt
machen: wir sagen einfach,
119
00:07:57,080 --> 00:08:02,539
nachdem der Nutzer auf
‚Auftrag übermitteln‘ geht,
120
00:08:02,539 --> 00:08:06,360
dann manipulieren wir die Daten.
Also wir ändern den Adressaten,
121
00:08:06,360 --> 00:08:10,900
wir ändern den Betrag, und die
Sparkasse schickt dann natürlich
122
00:08:10,900 --> 00:08:14,340
die Überweisungsdetails auch nochmal
an die TAN-App, und die werden dann
123
00:08:14,340 --> 00:08:17,309
da nochmal dargestellt. Das heißt,
bevor die dann da angezeigt werden,
124
00:08:17,309 --> 00:08:19,409
manipulieren wir die wieder
auf die originalen Daten,
125
00:08:19,409 --> 00:08:24,300
und der Nutzer kann’s nicht sehen, und
bestätigt letztendlich eine Überweisung
126
00:08:24,300 --> 00:08:29,479
mit einer TAN, was er gar nicht wollte.
Ja, da mussten wir erstmal überlegen:
127
00:08:29,479 --> 00:08:32,219
was gibt es denn da eigentlich so für
Sicherheitsmerkmale bei den beiden Apps?
128
00:08:32,219 --> 00:08:35,260
Also die Sparkassen-App selbst
ist eigentlich ein leichtes Fressen
129
00:08:35,260 --> 00:08:38,769
für so einen Angriff; die hat ja
keine großen Schutzmaßnahmen.
130
00:08:38,769 --> 00:08:42,909
Es gibt eine Root-Erkennung, es wird aber
lediglich dargestellt ein Warnhinweis,
131
00:08:42,909 --> 00:08:45,579
und die macht also ansonsten nichts, man
kann die App dann normal weiterverwenden.
132
00:08:45,579 --> 00:08:51,709
Auf der anderen Seite: die pushTAN-App
versucht, sich mit einer Vielzahl
133
00:08:51,709 --> 00:08:57,300
an Maßnahmen gegen Analyse und gegen
Schadsoftware angeblich auch zu schützen.
134
00:08:57,300 --> 00:09:00,160
Man merkt eigentlich schon, wenn man
hier sieht, die ganzen Maßnahmen,
135
00:09:00,160 --> 00:09:02,139
ich glaube, die Sparkasse ist sich selber
nicht so ganz sicher, dass das wirklich
136
00:09:02,139 --> 00:09:05,449
sicher zu kriegen ist. Die haben
halt eine Root-Erkennung,
137
00:09:05,449 --> 00:09:10,339
die ist nicht wie bei der Sparkassen-App,
dass da ein Warnhinweis angezeigt wird;
138
00:09:10,339 --> 00:09:13,579
also es wird verboten: wenn ein Root
erkannt wird, beendet sich die App,
139
00:09:13,579 --> 00:09:16,220
und schützt sich eben auch gegen
die dynamische Analyse, statische Analyse,
140
00:09:16,220 --> 00:09:22,179
weiß der Teufel nicht, was alles.
Und: es ist TÜV-geprüft!
141
00:09:22,179 --> 00:09:29,650
Gelächter
Applaus
142
00:09:29,650 --> 00:09:32,100
Von diesem Prädikat
merklich eingeschüchtert,
143
00:09:32,100 --> 00:09:37,089
habe ich mir dann mal angeguckt, ja
– was gibt es denn da eigentlich wirklich
144
00:09:37,089 --> 00:09:40,810
für Schutzmaßnahmen, wie sind denn die
umgesetzt? Es wurde recht schnell klar:
145
00:09:40,810 --> 00:09:43,800
die Sparkasse selbst traut sich in Sachen
Sicherheit nicht so viel zu und hat
146
00:09:43,800 --> 00:09:48,670
deswegen beim norwegischen Hersteller
Promon eingekauft. Die selber haben
147
00:09:48,670 --> 00:09:52,880
eine Native-Library, die wird gleich
am Anfang der App geladen,
148
00:09:52,880 --> 00:09:56,500
und ist dann quasi der Einsprungspunkt.
149
00:09:56,500 --> 00:10:01,910
Die Library selbst ist verschlüsselt,
zum Teil, mit einem statischen Key
150
00:10:01,910 --> 00:10:04,630
natürlich irgendwie, und ist obfuskiert,
ist also ein ziemlicher Hass, sich die
151
00:10:04,630 --> 00:10:08,279
anzuschauen. Aber es gibt
152
00:10:08,279 --> 00:10:11,690
– also damit man die Library nicht einfach
heraus patcht, also sagt: „Ja gut, dann
153
00:10:11,690 --> 00:10:16,790
mach’ ich das Ding halt raus“ –
haben die Strings aus der Java-Logik
154
00:10:16,790 --> 00:10:20,050
in die Library verlagert, die ja
wiederum verschlüsselt ist.
155
00:10:20,050 --> 00:10:24,100
Die Library selbst setzt dann
statische, finale Felder
156
00:10:24,100 --> 00:10:27,800
während der Laufzeit mit diesen Strings
und werden dann halt normal verwendet.
157
00:10:27,800 --> 00:10:31,579
Oder sie werden über einen Index
abgerufen, mit der Methode getString.
158
00:10:31,579 --> 00:10:35,230
Also das verhindert… also macht’s
zumindest Aufwand, diese Library
159
00:10:35,230 --> 00:10:38,170
einfach rauszuziehen und
ohne die dann klarzukommen.
160
00:10:38,170 --> 00:10:43,649
Ja die erkennt, wie gesagt,
Root, Debugger, alles Mögliche.
161
00:10:43,649 --> 00:10:47,220
Aber die behandelt die Erkennung nicht.
162
00:10:47,220 --> 00:10:51,980
Das liegt einfach daran, die wollen
eine Library verkaufen, die soll
163
00:10:51,980 --> 00:10:57,320
für alles und jeden gehen, ne? Also die
ist nicht personalisiert auf diese App.
164
00:10:57,320 --> 00:11:03,220
So ist es dann implementiert. Stattdessen
gibt’s im Java-Code callbacks
165
00:11:03,220 --> 00:11:07,250
für die verschiedenen einzelnen events.
Also z.B. Debugger, oder eben Root.
166
00:11:07,250 --> 00:11:11,320
Die App selbst implementiert
dann eben dieses Interface und,
167
00:11:11,320 --> 00:11:14,899
wenn das erkannt wird, dann
wird der Code aufgerufen.
168
00:11:14,899 --> 00:11:18,949
Z.B. hier unten ist dargestellt,
der Rooting-Status. Da steht
169
00:11:18,949 --> 00:11:22,980
in dem Parameter z dann eben drin,
ob es gerootet wurde oder nicht.
170
00:11:22,980 --> 00:11:26,620
Und dann kommt da so’n Texthinweis,
und danach beendet sich die App.
171
00:11:26,620 --> 00:11:29,920
Ja, was haben wir gemacht:
Wenn dieses event kommt,
172
00:11:29,920 --> 00:11:33,769
dann brechen wir die Methode immer ab
und dann läuft die App einfach weiter.
173
00:11:33,769 --> 00:11:38,910
Das Ganze ist besonders paradox, diese
Library scheint keinen Status zu haben.
174
00:11:38,910 --> 00:11:43,649
Die liefert einfach weiter Strings aus,
obwohl schon Root detected wurde.
175
00:11:43,649 --> 00:11:47,940
Das hat mich wirklich überrascht,
dass es so einfach war. lacht
176
00:11:47,940 --> 00:11:52,790
Applaus
177
00:11:52,790 --> 00:11:57,130
Ja, dann schauen wir uns mal an, wie
funktioniert denn das jetzt konkret.
178
00:11:57,130 --> 00:12:02,069
Also hier, als allererstes, die
Sparkassen-App. Das sieht man jetzt,
179
00:12:02,069 --> 00:12:05,449
wie man sich eben anmeldet. Mit seinem
Passwort, das man mal selbst vergeben hat.
180
00:12:05,449 --> 00:12:09,509
Und es wird ja auch ein Hinweis angezeigt
dass das Gerät gerootet ist, aber
181
00:12:09,509 --> 00:12:12,699
wie gesagt, es hat weiter keine
Konsequenzen. In dem Fall habe ich
182
00:12:12,699 --> 00:12:17,089
dann eine Überweisung an das Finanzamt mit
meiner hohen Einkommenssteuer von 10 Cent
183
00:12:17,089 --> 00:12:21,519
ausgelöst. Und im nächsten Schritt… also…
184
00:12:21,519 --> 00:12:24,199
dann haben wir die Überweisung eben
manipuliert, die Daten im Hintergrund,
185
00:12:24,199 --> 00:12:27,779
man sieht es nicht. Und hier wird man dann
dazu aufgefordert, in die pushTAN-App
186
00:12:27,779 --> 00:12:31,480
zu wechseln, um dann
dort die TAN abzurufen.
187
00:12:31,480 --> 00:12:35,480
Das machen wir auch, loggen uns
wieder mit unserem Passwort,
188
00:12:35,480 --> 00:12:39,050
diesmal in der pushTAN-App ein.
Wie groß die Wahrscheinlichkeit ist,
189
00:12:39,050 --> 00:12:41,690
dass das das gleiche Passwort
ist, können wir uns denken.
190
00:12:41,690 --> 00:12:46,399
Und dann schauen wir uns die
Überweisungsdetails an. 10 Cent…
191
00:12:46,399 --> 00:12:48,860
sagen wir jetzt einfach mal die IBAN hat
sich jetzt wahrscheinlich keiner gemerkt,
192
00:12:48,860 --> 00:12:52,690
aber das ist auch die gleiche.
Und ja, schaut gut aus.
193
00:12:52,690 --> 00:12:57,230
Das geben wir frei. TAN übertragen an
Sparkasse. Jetzt merken wir uns noch
194
00:12:57,230 --> 00:12:59,670
die letzten 2 Stellen der TAN, das ist 32,
195
00:12:59,670 --> 00:13:03,829
dann übertragen wir die und der Auftrag
wird freigegeben in der Sparkassen-App.
196
00:13:03,829 --> 00:13:08,190
Wenn man dann später irgendwann mal
in die Umsatz-Details reinschaut, dann
197
00:13:08,190 --> 00:13:12,060
stellt man fest: „Hey, da, mit
der TAN mit der Endstelle 32,
198
00:13:12,060 --> 00:13:15,470
da wurde ein Betrag von 13,37 Euro
überwiesen, nicht von 10 Cent. Und
199
00:13:15,470 --> 00:13:18,990
die gingen auch nicht ans Finanzamt,
die gingen an Vincent Haupert. Gut…
200
00:13:18,990 --> 00:13:24,100
Jetzt… jeder der die Geschichte kennt,
der kennt auch was danach kam.
201
00:13:24,100 --> 00:13:27,050
Stellungnahme der Sparkasse,
nachdem es auf Heise war: „Ey,
202
00:13:27,050 --> 00:13:31,880
das ist ja ’ne alte Version, das
geht doch alles gar nicht mehr“.
203
00:13:31,880 --> 00:13:34,339
Es gibt da jetzt ’ne neue Version
seit dem 16.10. Wir haben
204
00:13:34,339 --> 00:13:39,779
am 23.Oktober veröffentlicht.
Das ist jetzt nicht mehr möglich.
205
00:13:39,779 --> 00:13:43,730
Gut. Eigentlich ist es nichts Neues für
uns. Haben wir auch schon gesagt
206
00:13:43,730 --> 00:13:45,759
in unserer Ausarbeitung. Die
hat die Sparkasse anscheinend
207
00:13:45,759 --> 00:13:49,980
nicht so aufmerksam gelesen. Und wir
haben damals auch schon gesagt:
208
00:13:49,980 --> 00:13:54,500
„Es gibt in der aktuellen Version
wohl… die Art und Weise,
209
00:13:54,500 --> 00:13:57,449
wie wir den Angriff gemacht haben… in der
neuen Version funktioniert das anders,
210
00:13:57,449 --> 00:14:00,360
wir können das nicht ganz genauso machen;
mit einem entsprechenden Mehraufwand
211
00:14:00,360 --> 00:14:03,230
können wir den Angriff aber
wieder möglich machen.“
212
00:14:03,230 --> 00:14:08,920
Ja, schau’n wir halt mal! lacht
Gelächter
213
00:14:08,920 --> 00:14:14,240
Applaus
214
00:14:14,240 --> 00:14:18,100
Um jetzt einen Angriff gegen die
neue Version machen zu wollen,
215
00:14:18,100 --> 00:14:20,730
muss man sich fragen: Was ist
denn da eigentlich anders jetzt?
216
00:14:20,730 --> 00:14:24,970
Also man hat auch bei der Sparkasse
oder bei Promon realisiert, dass
217
00:14:24,970 --> 00:14:28,220
die Java-callbacks ungefähr genauso sind,
wie wenn man mit einem Geldtransporter
218
00:14:28,220 --> 00:14:32,769
vor die Sparkasse fährt, und dann
dem Praktikanten die Geldsäcke
219
00:14:32,769 --> 00:14:36,899
in die Hand drückt und einfach
wegfährt. Deswegen gibt es jetzt
220
00:14:36,899 --> 00:14:41,060
keine Java-callbacks mehr.
Stattdessen stürzt die App ab,
221
00:14:41,060 --> 00:14:45,579
wenn sie z.B. Root erkennt, oder
auch Debugger, was auch immer,
222
00:14:45,579 --> 00:14:48,699
und öffnet dann eine Seite im Browser.
Dadurch lässt sich die Root-Erkennung
223
00:14:48,699 --> 00:14:51,310
nicht mehr trivial umgehen. Ansonsten
224
00:14:51,310 --> 00:14:55,959
werden auch hooking-Frameworks
erkannt. Also wir haben den Angriff
225
00:14:55,959 --> 00:15:00,250
als proof-of-concept mit Xposed
realisiert. D.h. das würde jetzt
226
00:15:00,250 --> 00:15:02,560
auch nicht mehr gehen. Ja, schlecht.
227
00:15:02,560 --> 00:15:07,649
Gut, um den Angriff jetzt wieder
realisieren zu können, müssen wir also
228
00:15:07,649 --> 00:15:10,739
2 Sachen machen. Wir müssen einmal die
Root-Erkennung umgehen und einmal
229
00:15:10,739 --> 00:15:12,520
die Xposed-Erkennung umgehen.
230
00:15:12,520 --> 00:15:16,019
Fangen wir mit Root an. Wie
funktioniert die Root-Erkennung?
231
00:15:16,019 --> 00:15:19,990
Und ich bin bisher eigentlich gut bei den
Sicherheits-features dieser App gefahren,
232
00:15:19,990 --> 00:15:24,389
mir einfach vorzustellen, wie würde ich es
machen. Also was ist der einfachste Weg
233
00:15:24,389 --> 00:15:28,819
Root zu erkennen. Also: was werden die
wohl machen? Die suchen im Dateisystem
234
00:15:28,819 --> 00:15:32,350
nach irgendwelchen Sachen, die für SU
charakteristisch sind. Dann habe ich mir
235
00:15:32,350 --> 00:15:36,019
die Syscalls mal angeschaut – ja und klar,
genau das machen die. lacht
236
00:15:36,019 --> 00:15:40,529
Die schauen einfach z.B.
ist /system/bin/su vorhanden?
237
00:15:40,529 --> 00:15:45,139
Oder /system/xbin/su? Ja, wenn
ich das jetzt in /vinc umbenenne,
238
00:15:45,139 --> 00:15:49,020
dann geht sie, die App, schon wieder.
239
00:15:49,020 --> 00:15:55,370
Applaus
240
00:15:55,370 --> 00:15:58,879
Das ist aber natürlich blöd, weil ich will
ja weiterhin für meine anderen Apps
241
00:15:58,879 --> 00:16:02,120
eigentlich Root haben. Und
deswegen, wenn ich die umbenenne,
242
00:16:02,120 --> 00:16:06,139
dann können die natürlich auch kein
SU mehr ausführen. Das Lustige ist ja,
243
00:16:06,139 --> 00:16:11,439
man führt ja nicht /system/xbin/su aus,
sondern man gibt ja nur SU ein. Das Ganze
244
00:16:11,439 --> 00:16:17,060
ist der PATH-Variable zu verdanken,
die in Oslo aber nicht bekannt ist.
245
00:16:17,060 --> 00:16:21,790
Deswegen ich hab das Ganze auf
Android Marshmallow gemacht,
246
00:16:21,790 --> 00:16:24,519
und da will man eigentlich
sowieso Systemless SU haben.
247
00:16:24,519 --> 00:16:27,860
Und das mounted eine eigene Partition
und trägt sich in die PATH-Variable ein
248
00:16:27,860 --> 00:16:32,139
– und tadaaa! – die pushTAN-App
geht wieder auf.
249
00:16:32,139 --> 00:16:36,870
Applaus
250
00:16:36,870 --> 00:16:40,910
Ein bisschen paradoxer wird es aber
immer noch vor dem Hintergrund,
251
00:16:40,910 --> 00:16:43,910
dass es die Sparkassen-App besser
macht. Die erkennt das Root nämlich.
252
00:16:43,910 --> 00:16:47,829
Und die haben keine Lösung für
was-weiß-ich wieviel Tausend eingekauft.
253
00:16:47,829 --> 00:16:50,689
Also bei Promon würde ich jetzt
mal in den Flugmodus gehen,
254
00:16:50,689 --> 00:16:54,470
sonst kommt da gleich ein Anruf.
255
00:16:54,470 --> 00:16:57,709
Ja, als nächstes: wie funktioniert
die Xposed-Erkennung?
256
00:16:57,709 --> 00:17:02,819
Ja, wieder gleiches Spiel, würde
ich sagen. Schauen wir doch mal,
257
00:17:02,819 --> 00:17:05,210
was… die werden wieder nach irgendwelchen
charakteristischen Sachen
258
00:17:05,210 --> 00:17:09,910
für Xposed suchen. Ja, so schaut es dann
aus: Das sind halt ein paar Sachen,
259
00:17:09,910 --> 00:17:12,160
die Xposed platziert beim Installieren.
260
00:17:12,160 --> 00:17:17,869
Das müssen wir jetzt irgendwie loswerden.
Und Xposed muss danach aber noch gehen.
261
00:17:17,869 --> 00:17:20,880
Die ersten 4 Sachen sind irgendwie eh
Sachen, die kann man entweder löschen
262
00:17:20,880 --> 00:17:24,440
oder umbenennen. Und dann
sind die schon mal weg.
263
00:17:24,440 --> 00:17:28,520
Dann gibt’s hier die anderen 3 Dateien,
die braucht man schon irgendwie;
264
00:17:28,520 --> 00:17:33,020
ja, die benennen wir halt um. Und
265
00:17:33,020 --> 00:17:35,530
untereinander müssen die Abhängigkeiten
natürlich auch angepasst werden.
266
00:17:35,530 --> 00:17:37,950
Und da hab’ ich gedacht: „Ja, jetzt
geht’s“. Es hätte mich nicht überrascht
267
00:17:37,950 --> 00:17:41,330
wenn’s funktioniert. Reicht aber
noch nicht ganz. Das ist sogar
268
00:17:41,330 --> 00:17:44,870
tatsächlich ein bisschen besser
gemacht. Die schauen halt selber
269
00:17:44,870 --> 00:17:47,870
in dem executable file nach,
wo auch die ganze Dalvik-VM
270
00:17:47,870 --> 00:17:51,560
und was-weiß-ich-was drin ist, und
Zygote, mit dem ja Xposed arbeitet;
271
00:17:51,560 --> 00:17:55,290
und wenn dann da drinnen Xposed
mit großem oder kleinem X drinsteht,
272
00:17:55,290 --> 00:17:59,000
dann ist wohl Xposed installiert. Ja,
letztendlich hab’ ich das Ding einfach
273
00:17:59,000 --> 00:18:02,000
neu kompiliert und schon ging’s wieder.
274
00:18:02,000 --> 00:18:09,040
Applaus
275
00:18:09,040 --> 00:18:13,130
Dann schauen wir uns das doch mal an, ne?
276
00:18:13,130 --> 00:18:15,520
Also wieder gleiches Spiel…
277
00:18:15,520 --> 00:18:19,620
Wir öffnen die Sparkassen-App,
geben da unser Passwort ein…
278
00:18:19,620 --> 00:18:25,030
Diesmal, um ganz auf Nummer sicher zu
gehen, schauen wir uns vorher nochmal an,
279
00:18:25,030 --> 00:18:27,690
welche Version ist denn das, eigentlich?
Nicht dass dann danach irgendeiner sagt:
280
00:18:27,690 --> 00:18:30,710
„Es war nicht die aktuelle Version“.
Also hier sehen wir, das ist die Version
281
00:18:30,710 --> 00:18:35,520
vom 7.Dezember, also das war
die aktuellste bis vor 2 Stunden.
282
00:18:35,520 --> 00:18:38,520
Gelächter, Applaus
283
00:18:38,520 --> 00:18:42,160
Als nächstes füllen wir wieder
unsere Überweisung aus,
284
00:18:42,160 --> 00:18:44,940
diesmal nicht ans Finanzamt,
sondern an die Uni-Bibliothek Erlangen.
285
00:18:44,940 --> 00:18:49,930
Ich habe nämlich meine Benutzerkarte
verloren und brauche deshalb eine neue,
286
00:18:49,930 --> 00:18:53,820
und die kommt nicht for free,
sondern kostet 3 Euro.
287
00:18:53,820 --> 00:18:57,060
Ihr seht schon, mein Konto war
nicht so hoch gefüllt, ich musste
288
00:18:57,060 --> 00:19:01,040
einen Betrag wählen, der irgendwie
auch noch in meinem Limit geht.
289
00:19:01,040 --> 00:19:03,560
Aber jetzt öffnet sich hier
automatisch schon die pushTAN-App,
290
00:19:03,560 --> 00:19:08,040
also die Integration hat
tollerweise zugenommen.
291
00:19:08,040 --> 00:19:11,810
Jetzt logg’ ich mich da auch wieder
ein. Und hier sehen wir – 3 Euro.
292
00:19:11,810 --> 00:19:16,190
Aber genau – diesmal schauen wir uns auch
mal wieder die Version[snummer] an. Das ist
293
00:19:16,190 --> 00:19:16,240
auch
294
00:19:16,240 --> 00:19:19,500
vom 7.Dezember, war bis vor 2 Stunden
auch noch die aktuellste, könnte mir gut
295
00:19:19,500 --> 00:19:22,520
vorstellen, dass gerade eine
neue Version rauskommt!
296
00:19:22,520 --> 00:19:24,610
Gelächter
297
00:19:24,610 --> 00:19:29,300
Aber ja, hier. Die Daten scheinen zu
stimmen, die TAN passt eigentlich auch.
298
00:19:29,300 --> 00:19:32,280
Und dann ja, würde ich sagen, dann
kann man das bestätigen jetzt.
299
00:19:32,280 --> 00:19:42,160
Kommen wir zurück… Auftrag
wurde entgegengenommen…
300
00:19:42,160 --> 00:19:47,670
und wenn man jetzt dann mal in
die Überweisungsdetails schaut,
301
00:19:47,670 --> 00:19:50,170
sieht man da, dass ich schon ein
paar fingierte Weihnachtsgeschenke
302
00:19:50,170 --> 00:19:54,150
bezahlt habe, im Rahmen der Untersuchung
hier. Und hier haben wir diesmal
303
00:19:54,150 --> 00:19:58,810
4,20 Euro, ich hätte auch 42 Euro genommen,
wenn ich soviel Geld noch gehabt hätte. Aber…
304
00:19:58,810 --> 00:20:13,710
Applaus
305
00:20:13,710 --> 00:20:18,190
Ja, genau. Und ja, der Betreff
hat sich auch geändert:
306
00:20:18,190 --> 00:20:21,210
„Einen Guten Rutsch für den 32C3.“
307
00:20:21,210 --> 00:20:23,100
Okay,
308
00:20:23,100 --> 00:20:27,310
jetzt bin ich doch ein bisschen schneller
fertiggeworden als ich gedacht habe,
309
00:20:27,310 --> 00:20:30,940
aber das bedeutet, dass wir dann
noch mehr Zeit für Fragen haben.
310
00:20:30,940 --> 00:20:34,510
Ja, was lässt sich zu App-basierten
TAN-Verfahren allgemein sagen:
311
00:20:34,510 --> 00:20:38,510
Die sind einfach konzeptionell schwach.
Die Schutzmechanismen von der pushTAN-App
312
00:20:38,510 --> 00:20:41,730
haben zwar zugenommen in der
aktuellen Version. Also die Callbacks
313
00:20:41,730 --> 00:20:45,680
lassen sich jetzt nicht mehr
trivial hooken; und dadurch
314
00:20:45,680 --> 00:20:47,750
kann man einfach Root bekommen
oder halt eben einfach alles machen.
315
00:20:47,750 --> 00:20:50,880
Letztendlich ist es halt ein
Katz-und-Maus-Spiel, das die Sparkasse
316
00:20:50,880 --> 00:20:53,460
oder auch jeder andere Hersteller
am Ende irgendwie verlieren wird.
317
00:20:53,460 --> 00:21:00,070
Die Root-Erkennung z.B. bringt eigentlich
hauptsächlich Ärger bei den Kunden ein;
318
00:21:00,070 --> 00:21:04,010
und vor allem hat die so hohe
False-Positives, dass die Bewertungen
319
00:21:04,010 --> 00:21:07,990
derart grottig sind, dass man sich bei
der Sparkasse echt fragen muss,
320
00:21:07,990 --> 00:21:10,500
ob das Verfahren für sie selber
auch überhaupt noch Sinn macht.
321
00:21:10,500 --> 00:21:11,800
Wenn man sich jetzt auch anschaut…
322
00:21:11,800 --> 00:21:15,540
Was ich eigentlich gemacht habe ist ja
total irre irgendwie. Also ich meine…
323
00:21:15,540 --> 00:21:19,900
Ich habe hauptsächlich Dinge umgangen,
die ein normaler Nutzer macht.
324
00:21:19,900 --> 00:21:24,990
Ich habe keinen echten Angriff damit
verhindert. Also jemand, der selbstständig
325
00:21:24,990 --> 00:21:28,100
sein Gerät rooten wird, dem wird verboten,
die pushTAN-App zu verwenden.
326
00:21:28,100 --> 00:21:32,500
Und wer selbstständig irgendwie Xposed
installiert, dem wird es auch verboten.
327
00:21:32,500 --> 00:21:37,490
Ein echter Angriff… der installiert doch
nicht das SU Binary. lacht
328
00:21:37,490 --> 00:21:40,760
Der würde was-weiß-ich
irgendwas platzieren,
329
00:21:40,760 --> 00:21:43,460
aber bestimmt nicht das SU-Binary
installieren. Also das Root
330
00:21:43,460 --> 00:21:46,720
ist gar nicht mal eine feste
Voraussetzung. Für den Angriff allein
331
00:21:46,720 --> 00:21:49,490
hätte es sogar gereicht, wenn
man einen Root-Exploit hat
332
00:21:49,490 --> 00:21:50,880
und dann Xposed platzieren kann.
333
00:21:50,880 --> 00:21:54,700
Da hat man z.B. auch keinen
Ärger mit der Root-Erkennung.
334
00:21:54,700 --> 00:21:57,620
Ja, ich hab’ noch ein paar Backup-Folien,
aber das können wir dann auch
335
00:21:57,620 --> 00:22:01,630
in die Diskussion einbauen. Dann bedanke
ich mich für eure Aufmerksamkeit!
336
00:22:01,630 --> 00:22:10,790
Applaus
337
00:22:10,790 --> 00:22:14,100
Herald: Vielen, vielen Dank, Vincent!
338
00:22:14,100 --> 00:22:17,930
Total super, und du hast auf jeden
Fall noch Zeit für Fragen gelassen.
339
00:22:17,930 --> 00:22:24,260
Genau – macht euch bitte kenntlich!
340
00:22:24,260 --> 00:22:29,340
Geht gerne vor zu den Mikro-Fahnen!
341
00:22:29,340 --> 00:22:34,110
Die Mikros 2 und 4 sind an.
Ich seh’ schon jemand[en] an Mikro 2?
342
00:22:34,110 --> 00:22:39,570
Nein? Du stehst da nur so. Okay.
lacht
343
00:22:39,570 --> 00:22:45,980
Wir geben euch mal noch ein
paar Minuten Zeit zum Überlegen.
344
00:22:45,980 --> 00:22:50,150
Und ich kucke ’mal nach oben!
345
00:22:50,150 --> 00:22:56,680
Lieber Mensch, der du Fragen aus dem Netz
einsammelst: ich seh’ dich gerade nicht,
346
00:22:56,680 --> 00:23:00,390
aber wenn du welche hast, dann
könntest du jetzt gerne eine vorlesen.
347
00:23:00,390 --> 00:23:06,100
Signal Angel: Dann mach’ ich das einfach
mal. Und zwar: seppsammy und shelter8
348
00:23:06,100 --> 00:23:09,590
wollen wissen: gibt es Schwächen
im Optik-TAN-Verfahren?
349
00:23:09,590 --> 00:23:14,220
Vincent: Also „Optik-TAN“ meint dann
wahrscheinlich irgendwie so Foto-TAN
350
00:23:14,220 --> 00:23:18,270
und QR-TAN. Also, „Optik-TAN“ weiß ich
jetzt nicht genau, ist es damit gemeint?
351
00:23:18,270 --> 00:23:21,380
Aber ich meine, das ist irgendwie das.
Ja, QR-TAN und Foto-TAN ist eigentlich
352
00:23:21,380 --> 00:23:25,050
ziemlich ähnlich; da scannt man dann
einen Code ab mit seinem Smartphone;
353
00:23:25,050 --> 00:23:31,570
und bekommt dann dadurch die TAN.
Das unterscheidet sich halt insofern,
354
00:23:31,570 --> 00:23:34,740
dass man das schwer auf einem Gerät
verwenden kann. Also ich kann natürlich
355
00:23:34,740 --> 00:23:38,710
den QR-Code nicht von meinem eigenen
Gerät abscannen. Deswegen ist das Szenario
356
00:23:38,710 --> 00:23:42,980
ein bisschen anders. Also, da sind
natürlich auch andere Schwächen vorhanden,
357
00:23:42,980 --> 00:23:46,140
wie z.B. dass man die App irgendwie
kopieren kann und sowas dergleichen.
358
00:23:46,140 --> 00:23:49,660
Aber es ist nicht ganz vergleichbar
mit dem Szenario das wir hier
359
00:23:49,660 --> 00:23:52,230
bei den App-basierten Verfahren haben.
360
00:23:52,230 --> 00:23:55,780
Herald: Dann jetzt gerne erst
eine Frage vom Mikrofon Nr.2.
361
00:23:55,780 --> 00:24:01,010
Frage: Ja, du hast beschrieben, wie die
App sich gegen Debugging –
362
00:24:01,010 --> 00:24:03,010
eine Analyse –
363
00:24:03,010 --> 00:24:07,970
schützt. Wie genau hast du dann aber die
Transaktionsdetails manipuliert, dass die
364
00:24:07,970 --> 00:24:11,910
erst falsch angezeigt und dann auch
falsch zur Bank übermittelt werden?
365
00:24:11,910 --> 00:24:18,010
Vincent: Also, das Problem ist, also gegen
Debugging schützen, das ist ja erstmal
366
00:24:18,010 --> 00:24:21,110
’ne Maßnahme gegen dynamische Analyse,
die also verhindern soll, dass jemand
367
00:24:21,110 --> 00:24:23,230
einfach so ’nen Angriff entwickeln kann.
368
00:24:23,230 --> 00:24:27,290
Also die… Den Angriff selbst
hab’ ich mit Xposed entwickelt,
369
00:24:27,290 --> 00:24:31,000
das ist halt ein hooking-Framework.
Das kann sehr leicht Java-Code hooken.
370
00:24:31,000 --> 00:24:34,600
Ein Real-World-Exploit würde
das wohl nicht so machen. Aber,
371
00:24:34,600 --> 00:24:38,560
ja… Für ’nen proof-of-concept war
das ’ne Möglichkeit, das zu machen.
372
00:24:38,560 --> 00:24:41,400
Also die ganzen Maßnahmen eigentlich
die da implementiert wurden,
373
00:24:41,400 --> 00:24:44,110
können nicht effektiv vor einem richtigen
Angriff schützen, sondern können…
374
00:24:44,110 --> 00:24:48,400
hauptsächlich… dienen hauptsächlich
dazu, dass die Sparkasse in einem Monat
375
00:24:48,400 --> 00:24:53,500
wieder sagen kann, ja der Angriff den
ich gemacht hatte funktioniert nicht mehr.
376
00:24:53,500 --> 00:24:55,450
Herald: Mikrofon Nr.4, bitte!
377
00:24:55,450 --> 00:25:01,550
Frage: Mich würde interessieren…
weil du hast ja gezeigt,
378
00:25:01,550 --> 00:25:04,320
wie diese App nach irgendwie
Xposed oder sowas scannt.
379
00:25:04,320 --> 00:25:09,240
Das Verfahren scheint mir grundsätzlich
ziemlich erbärmlich. Kann man sowas auch
380
00:25:09,240 --> 00:25:12,500
gescheit machen oder hat man
da einfach keine Chance?
381
00:25:12,500 --> 00:25:16,590
Vincent: Ja, das ist natürlich schon ein
bisschen schwierig das gescheit zu machen.
382
00:25:16,590 --> 00:25:19,310
Weil es müsste irgendwie
vertrauenswürdige Aufrufer geben.
383
00:25:19,310 --> 00:25:23,070
Also man müsste irgendwie festlegen
können, wer ist denn eigentlich erlaubt.
384
00:25:23,070 --> 00:25:27,660
Wer darf denn in meinem call
stack eigentlich alles drin sein.
385
00:25:27,660 --> 00:25:31,150
Also es ist schon ein bisschen
schwieriger. Fällt mir jetzt auch
386
00:25:31,150 --> 00:25:34,890
spontan erstmal nicht ein, wie
man das effektiv verhindern kann.
387
00:25:34,890 --> 00:25:37,730
Herald: Mikrofon Nr.1, bitte.
388
00:25:37,730 --> 00:25:42,260
Frage: Vielen Dank. Bin ich zu hören? Ja.
Vielen Dank für die schöne Demonstration.
389
00:25:42,260 --> 00:25:48,130
Ich fand’s auch sehr toll, dass rauskam,
dass in so einem Framework wie Android
390
00:25:48,130 --> 00:25:51,630
das Verteilen auf 2 Apps ja überhaupt
nichts bringt. Also ich denke das war
391
00:25:51,630 --> 00:25:54,550
einer von den zentralen Sachen,
die rauskamen. Meine Frage wäre:
392
00:25:54,550 --> 00:25:58,080
Wie schätzt du das ein, dass man
es auch im Android-Betriebssystem
393
00:25:58,080 --> 00:26:05,210
in Zukunft schafft, Apps mit einem
Verifikationsmechanismus auszustatten,
394
00:26:05,210 --> 00:26:09,470
und eher von Teilen des Betriebssystems
die auch nach dem Rooten das tun
395
00:26:09,470 --> 00:26:13,450
was sie tun sollten; diese App quasi für
sich alleine laufen. Das würde mir
396
00:26:13,450 --> 00:26:17,330
nach einem vielversprechenderen Ansatz
aussehen als das Konzept
397
00:26:17,330 --> 00:26:19,570
von 2 Apps und
einfach-ein-bisschen-Skripten.
398
00:26:19,570 --> 00:26:23,920
Vincent: Ja das greift jetzt natürlich
schon ziemlich weit. Auf was du anspielst,
399
00:26:23,920 --> 00:26:27,060
das erinnert mich so ein bisschen
an ARM TrustZone.
400
00:26:27,060 --> 00:26:30,090
Also da gibt’s ’ne Sichere Welt
401
00:26:30,090 --> 00:26:33,210
und ’ne Unsichere Welt. Es gibt ’ne
TrustZone bei ARM, gibt’s schon länger.
402
00:26:33,210 --> 00:26:36,140
Die wird aber bei Android nicht
durchgereicht. Also Samsung hat
403
00:26:36,140 --> 00:26:41,210
mit Knox sowas ähnliches. Das ist aber…
ja das muss man kaufen. Wie lange das
404
00:26:41,210 --> 00:26:43,470
bei Android irgendwie noch dauert
bis es sowas für alle gibt,
405
00:26:43,470 --> 00:26:46,150
kann ich dir nicht sagen. Also,
es dauert aber sicher noch.
406
00:26:46,150 --> 00:26:49,520
Herald: Gibt’s noch Netz-Fragen?
407
00:26:49,520 --> 00:26:52,600
Dann machen wir weiter mit Mikro 2 bitte!
408
00:26:52,600 --> 00:26:57,910
Frage: Also ich schließe aus deinen
Ausführungen, dass das fundamentale
409
00:26:57,910 --> 00:27:02,640
Problem ist, dass die Kombination von
2 Apps auf einem Gerät das Prinzip
410
00:27:02,640 --> 00:27:06,290
Zweifaktor-Authentifizierung
einfach ad absurdum führt.
411
00:27:06,290 --> 00:27:10,770
Und dass also Sicherheit insofern
nur besser werden kann,
412
00:27:10,770 --> 00:27:14,880
dass man wirklich auf 2 separate
Geräte, die dann eben auch
413
00:27:14,880 --> 00:27:16,860
separat kompromittiert werden
müssten, setzen wird.
414
00:27:16,860 --> 00:27:20,090
Vincent: Ja, genau. Das ist genau das.
Also hier hab’ ich auch ein Zitat,
415
00:27:20,090 --> 00:27:24,150
eigentlich sehr schön. Das ist irgendwie
nicht nur was, was ich irgendwie sage.
416
00:27:24,150 --> 00:27:27,780
Auch im BaFin-Journal ist es
im August schon erschienen:
417
00:27:27,780 --> 00:27:30,720
„Die TAN sollte auf keinem Fall auf
demselben Smartphone generiert werden,
418
00:27:30,720 --> 00:27:33,950
auf dem das Online-Banking stattfindet.
Hat ein Betrüger das Smartphone gehackt,
419
00:27:33,950 --> 00:27:38,130
so kann er dadurch auf beide Verfahren
zugreifen“. Also das ist irgendwie keine…
420
00:27:38,130 --> 00:27:41,330
das ist eigentlich ’ne Erkenntnis, die…
ich weiß nicht… vielen leuchtet das hier
421
00:27:41,330 --> 00:27:45,240
tatsächlich wahrscheinlich
einfach auch ein. Also…
422
00:27:45,240 --> 00:27:53,390
Gelächter, Applaus
423
00:27:53,390 --> 00:27:55,180
Herald: Bitte schön!
424
00:27:55,180 --> 00:27:58,800
Signal Angel: Einige Leute wollten
wissen – vielleicht ist das jetzt gerade
425
00:27:58,800 --> 00:28:01,640
beantwortet worden –
lacht
426
00:28:01,640 --> 00:28:04,280
ob es, wenn man 2 verschiedene
Verfahren verwendet,
427
00:28:04,280 --> 00:28:07,650
also die App und den Computer,
ob es dann sicher ist?
428
00:28:07,650 --> 00:28:10,940
Vincent: Also, dann hat’s eigentlich
im Prinzip ähnliche Probleme
429
00:28:10,940 --> 00:28:14,780
wie z.B. QR-TAN oder Foto-TAN.
Ist aber auf jeden Fall deutlich sicherer.
430
00:28:14,780 --> 00:28:19,000
Also wenn ich jetzt die pushTAN-App
mit meinem PC verwende, dann
431
00:28:19,000 --> 00:28:21,740
ist es nicht schlechter als SMS-TAN,
würde ich jetzt sagen.
432
00:28:21,740 --> 00:28:23,540
Oder, ja, auf jeden Fall vergleichbar.
433
00:28:23,540 --> 00:28:25,090
Herald: Dann nochmal Mikro Nr.1, bitte.
434
00:28:25,090 --> 00:28:30,680
Frage: Ja, also das ist auch wohl relativ
neu, weil aus eigener Erfahrung weiß ich,
435
00:28:30,680 --> 00:28:35,830
dass es da ursprünglich mal ’n Requirement
gegeben hat, so: bei mobile Banking
436
00:28:35,830 --> 00:28:40,090
darf nicht… also wenn
du mobileTAN benutzt,
437
00:28:40,090 --> 00:28:44,620
darfst du von deinem Handy
nicht die Transaktion starten,
438
00:28:44,620 --> 00:28:48,480
wo auch die SMS hingeht. Deswegen
haben die am Anfang so total billo
439
00:28:48,480 --> 00:28:51,310
halt die host names gefiltert von
dem mobile Netz, von den…
440
00:28:51,310 --> 00:28:53,940
V: Genau.
F: …von den Mobilfunkanbietern; und dann
441
00:28:53,940 --> 00:28:57,760
hat aber der Vendor, der die Software
gebaut hat, diese Sparkassen-App
442
00:28:57,760 --> 00:29:00,980
unter ’nem anderen Logo – nicht
Sparkasse – veröffentlicht,
443
00:29:00,980 --> 00:29:04,810
ohne diese Funktion. Und so
ist das da reingekommen.
444
00:29:04,810 --> 00:29:07,890
Die wissen schon ganz
genau, dass es Scheiße ist.
445
00:29:07,890 --> 00:29:09,400
Vincent: Ja,…
lacht
446
00:29:09,400 --> 00:29:13,950
Applaus
447
00:29:13,950 --> 00:29:17,230
Also ich hab’ hier noch ’n anderes Zitat.
448
00:29:17,230 --> 00:29:22,270
Also MaSi, das sind die Mindeststandards
für die Sicherheit von Internetzahlungen.
449
00:29:22,270 --> 00:29:24,750
Und die müssen von den Banken
umgesetzt werden. Dafür ist die Frist
450
00:29:24,750 --> 00:29:28,480
jetzt gerade ausgelaufen. Und
da gibt’s eben auch einen Punkt
451
00:29:28,480 --> 00:29:31,220
der schreibt starke Kunden-
Authentifizierung vor. Der Punkt
452
00:29:31,220 --> 00:29:34,960
war aber derart schwammig, da konnte man
alles interpretieren. Deswegen gab’s dann
453
00:29:34,960 --> 00:29:37,960
dazu irgendwann mal ein Q&A [eher:FAQ?],
die länger ist als die eigene Abfassung
454
00:29:37,960 --> 00:29:43,170
davon, was das eigentlich ist. Und da
steht dann auch drin, das war dann danach:
455
00:29:43,170 --> 00:29:46,120
„Allerdings muss das App-basierte
Sicherungsverfahren und das tatsächliche
456
00:29:46,120 --> 00:29:49,180
Online-Banking unabhängig voneinander
– also über verschiedene Geräte […] –
457
00:29:49,180 --> 00:29:54,640
erfolgen.“ Also es ist sowieso fraglich,
ob dieses Verfahren überleben darf.
458
00:29:54,640 --> 00:29:57,710
Herald: Eine ganz schnelle
noch von Mikrofon 3.
459
00:29:57,710 --> 00:30:01,480
Frage: Ja, darf ich fragen,
wie du dein Geld überweist?
460
00:30:01,480 --> 00:30:03,800
Bzw. was würdest du
für’n System empfehlen?
461
00:30:03,800 --> 00:30:07,640
Vincent: Also ich selbst verwende
chipTAN. Ich verwende es sogar
462
00:30:07,640 --> 00:30:11,830
tatsächlich auch mobil. Allerdings
eher wenn ich irgendwie
463
00:30:11,830 --> 00:30:17,040
mal länger irgendwo bin, oder sowas.
Also ich habe jetzt nicht so
464
00:30:17,040 --> 00:30:20,250
das Verlangen danach, jetzt überall
Überweisungen machen zu müssen. Also
465
00:30:20,250 --> 00:30:24,280
chipTAN kann ich eigentlich schon
empfehlen, von den TAN-Verfahren.
466
00:30:24,280 --> 00:30:25,360
F: Danke.
467
00:30:25,360 --> 00:30:27,860
Herald: Vielen, vielen Dank! Bitte
nicht böse sein, wenn ihr jetzt
468
00:30:27,860 --> 00:30:30,610
nicht drangekommen seid. Vincent hat mir
versprochen, dass er jetzt noch da ist
469
00:30:30,610 --> 00:30:33,820
und eure Fragen beantwortet.
Ich hoffe, das ist okay so. Super.
470
00:30:33,820 --> 00:30:36,110
Danke schön nochmal. Ein
ganz großer Applaus für dich!
471
00:30:36,110 --> 00:30:43,700
Applaus
472
00:30:43,700 --> 00:30:50,301
Abspannmusik
473
00:30:50,301 --> 00:30:54,201
Untertitel erstellt von c3subtitles.de
im Jahr 2016. Unterstütze uns!