Vincent Haupert: (Un)Sicherheit von App-basierten TAN-Verfahren im Onlinebanking
-
0:00 - 0:0932C3 Vorspannmusik
-
0:09 - 0:14Herald: Vincent Haupert studiert in seinem
Dayjob, sozusagen, Informatik in Erlangen, -
0:14 - 0:17und macht da gerade seinen Master
mit Schwerpunkt in IT-Security. -
0:17 - 0:21Die Arbeit, die er uns aber
gleich vorstellen möchte, -
0:21 - 0:24hat er im Rahmen seiner Tätigkeit als
wissenschaftliche Hilfskraft gemacht, -
0:24 - 0:28und zwar zusammen mit seinem Kollegen
Tilo Müller. Dort hat er untersucht, -
0:28 - 0:32was es denn für Sicherheitslücken
bei App-basierten TAN-Verfahren gibt, -
0:32 - 0:35also im Bereich des Onlinebankings;
und die möchte er uns jetzt vorstellen. -
0:35 - 0:39Einen ganz großen, herzlichen
Applaus für Vincent bitte! -
0:39 - 0:45Applaus
-
0:45 - 0:48Vincent: Ja, auch herzlich willkommen
von mir, also mein Name ist, wie gesagt, -
0:48 - 0:51Vincent Haupert, und ich habe
mir im vergangenen Herbst -
0:51 - 0:55mit meinem Kollegen Tilo Müller mal
angeschaut, wie es denn um die Sicherheit -
0:55 - 0:59von App-basierten TAN-Verfahren
im Onlinebanking bestellt ist; -
0:59 - 1:03und ja, der ein oder andere hat die
Geschichte vielleicht schon mitbekommen, -
1:03 - 1:05hat sie auf Heise gelesen und
so, und fragt sich vielleicht: ja, -
1:05 - 1:09was kommt denn jetzt da heute? Vor
2 Wochen habe ich einen Angriff von der, -
1:09 - 1:12äh, einen Angriff… lacht
einen Anruf von der Sparkasse bekommen -
1:12 - 1:16Gelächter
Applaus -
1:16 - 1:21Ja, der Herr Meier, den ich jetzt hier
einfach mal so nennen möchte, -
1:21 - 1:25hat mich da gefragt, was ich denn zwischen
Weihnachten und Neujahr mache… ja. -
1:25 - 1:31Zu dem Zeitpunkt, wollte er eben wissen:
muss er seine Presseabteilung jetzt schon -
1:31 - 1:33auf irgendetwas Neues gefasst machen,
oder nicht. Gelächter -
1:33 - 1:36Zu dem Zeitpunkt konnte ich es ganz
ehrlich gesagt noch nicht sagen, -
1:36 - 1:39Heute kann ich ihnen sagen: ich hoffe,
sie haben einen Entwurf gemacht, -
1:39 - 1:41das macht es danach leichter.
-
1:41 - 1:47Gelächter
Applaus -
1:47 - 1:51Ja, Onlinebanking ist etwas, das
betrifft uns alle; es ist etabliert, -
1:51 - 1:57eine große Zahl der Deutschen verwendet
es, und ein besonderes Merkmal -
1:57 - 2:02von Onlinebanking ist, dass es schon seit
seinem Entstehen in den 1980er Jahren, -
2:02 - 2:05damals noch BTX-basiert,
ein Zweifaktor-Verfahren ist. -
2:05 - 2:09Also, man hatte auf der einen Seite immer
irgendwie einen Benutzernamen/Passwort, -
2:09 - 2:14und dann noch irgendein TAN-Verfahren.
Über die Zeit ist da ein ganzer Zoo -
2:14 - 2:18an TAN-Verfahren entstanden; meistens
gab es einfach Weiterentwicklungen, -
2:18 - 2:23aus Sicherheitsgründen. Heute werden
wir ein Verfahren sehen, das sich nicht -
2:23 - 2:27in diese Reihe begeben
kann. Ja. Im Prinzip läuft -
2:27 - 2:31Onlinebanking immer so ab, ich sage das
der Vollständigkeit halber hier nochmal: -
2:31 - 2:35man loggt sich im Onlinebanking-Portal
ein, mit seinem Benutzername/Passwort, -
2:35 - 2:39reicht dann eine Überweisung ein, und im
zweiten Schritt muss man das dann noch -
2:39 - 2:44mit einem TAN-Verfahren bestätigen. Das
ist nicht für jeden das gleiche; das kann -
2:44 - 2:48entweder noch die altgediente iTAN-
Liste sein, die aber langsam ausstirbt; -
2:48 - 2:52das SMS-TAN-Verfahren,
das auch seine Tücken hat, -
2:52 - 2:55wie man in den letzten
Monaten mitbekommen kann. -
2:55 - 2:59Insbesondere ein großer Verbündeter
ist die Telekom, lacht -
2:59 - 3:03und es gibt dann auch noch das
chipTAN-Verfahren, das auch recht -
3:03 - 3:07verbreitet ist. Das letzte Verfahren,
das chipTAN-Verfahren, adressiert -
3:07 - 3:11das Sicherheitsproblem im Onlinebanking
eigentlich schon ganz gut, aber, -
3:11 - 3:14wenn man den Kreditinstituten glaubt,
gibt es einen dringenden Wunsch -
3:14 - 3:17in der deutschen Bevölkerung,
seine Geldgeschäfte immer überall -
3:17 - 3:21machen zu können. Sei das in der U-Bahn,
im Restaurant, vielleicht auch hier, -
3:21 - 3:24gerade in diesem Vortrag. Macht jemand
gerade eine Überweisung, mal Hand hoch? -
3:24 - 3:27Gelächter
Ja. -
3:27 - 3:32Auf jeden Fall ist es dann so, wenn man
eine Überweisung überall machen will, -
3:32 - 3:35sarkastisch: dann will ich kein zweites
Gerät haben, denn das ist ja unbequem. -
3:35 - 3:40Deswegen haben die Banken ein
Gerät entdeckt, das jeder von uns -
3:40 - 3:44immer dabei hat, und das absolut
sicher ist – das Smartphone. -
3:44 - 3:50Gelächter
Applaus -
3:50 - 3:56Man hat jetzt keine zwei Geräte mehr,
nicht 2 voneinander unabhängigen Faktoren, -
3:56 - 3:59man hat eine Banking-App,
und man hat eine TAN-App. -
3:59 - 4:03Das funktioniert jetzt so: ich logge
mich mit meiner Banking-App -
4:03 - 4:07auf dem Smartphone ein und gebe eine
Überweisung auf. Im zweiten Schritt -
4:07 - 4:11muss ich dann wie gehabt die
Überweisung mit einer TAN bestätigen. -
4:11 - 4:16Jetzt nehme ich aber nicht meinen
Papierzettel her, mein chipTAN-Gerät, -
4:16 - 4:21sondern ich wechsle
zur TAN-App. Da gibt’s, -
4:21 - 4:24also da sind alle Banken mittlerweile ein
großer Fan davon eigentlich, das ist jetzt -
4:24 - 4:28nur eine Auswahl, ich weiß nicht ob es
noch mehr gibt, aber all diese Banken -
4:28 - 4:32haben ein App-basiertes TAN-
Verfahren im Angebot, und ich denke, -
4:32 - 4:36die die es noch nicht haben, sind bestimmt
auf dem Weg dahin, das zu machen. -
4:36 - 4:40Ich sehe jetzt schon den einen oder
anderen hier in den ersten Reihen, -
4:40 - 4:43bei denen sich dann die Stirn
runzelt bei dem Verfahren, -
4:43 - 4:47ich will aber trotzdem nochmal generell
das Angriffs-Szenario motivieren. -
4:47 - 4:52Also, Malware, oder Schadsoftware,
ist in den offiziellen App Stores -
4:52 - 4:55der Betriebssystemhersteller.
Das ist keine Fiktion! -
4:55 - 5:02Bei uns am Lehrstuhl in Erlangen
hat der Dominik Maier gezeigt, -
5:02 - 5:05dass sich der Google Play Store
-
5:05 - 5:10nicht ausreichend gegen Schadsoftware
schützen kann. Also, die konkrete Aufgabe -
5:10 - 5:13von ihm war eigentlich,
in seiner Bachelorarbeit, -
5:13 - 5:19Schadsoftware in den Google
Play Store zu bekommen. Nur: -
5:19 - 5:22das war seine Bachelorarbeit… da ist er
nach ein paar Tagen zu seinem Betreuer -
5:22 - 5:25dann hingekommen und hat gesagt:
„Ey Tilo, ich bin fertig!“ -
5:25 - 5:33Gelächter
Applaus -
5:33 - 5:39amüsiert: Und, was er gemacht hat:
er hat einen Root-Exploit gezippt, ja… -
5:39 - 5:40Gelächter
-
5:40 - 5:43Also, er hat ihn gezippt und hochgeladen;
da war kein Passwort, nichts – -
5:43 - 5:45er hat ihn einfach gezippt.
-
5:45 - 5:49Dass das aber nicht irgendwie nur
akademische, graue Theorie ist, -
5:49 - 5:53hat dieses Jahr so ziemlich gleichzeitig,
als wir diese App-TAN-Geschichte -
5:53 - 5:58gemacht haben, die App „Brain Test“
gezeigt. Das ist ein Spiel, und -
5:58 - 6:02das hat über 100.000 Downloads
gehabt, bis zu 500.000. -
6:02 - 6:06Und diese App hat genau das
gemacht, was das Angriffsszenario -
6:06 - 6:10auch für App-basierte TAN-Verfahren
ist. Nämlich: im offiziellen Store, -
6:10 - 6:14rootet das Gerät zuerst und
lädt dann Schadcode nach. -
6:14 - 6:20Wir hätten jetzt auch irgendeins von
den Kreditinstituten, die App-basiertes -
6:20 - 6:24TAN-Verfahren anbieten, nehmen können;
ich habe die Sparkasse genommen, -
6:24 - 6:26weil ich da a) ein Konto habe und
b) weil’s irgendwie die größte ist. -
6:26 - 6:29Und das waren auch die Ersten,
die das angeboten haben. -
6:29 - 6:33Deswegen haben wir uns angeguckt:
was kann man denn jetzt da machen? -
6:33 - 6:35Was gibt es denn da für
Angriffsszenarien für pushTAN? -
6:35 - 6:40Und was uns da als allererstes
ziemlich schnell eingefallen ist, -
6:40 - 6:43ist: wir könnten die App
irgendwie kopieren, -
6:43 - 6:47oder wir reversen das Protokoll und
implementieren unseren eigenen Client. -
6:47 - 6:50Das sind aber beides noch Angriffe,
die konzentrieren sich sehr stark -
6:50 - 6:55einfach nur auf die TAN-App.
Das eigentliche Problem -
6:55 - 6:58von App-basierten TAN-Verfahren,
also dass man den ersten Faktor -
6:58 - 7:01und den zweiten Faktor auf einem Gerät
hat, wird aber am besten dadurch betont, -
7:01 - 7:06wenn man eine Transaktionsmanipulation
durchführt. Sprich: wir manipulieren eine -
7:06 - 7:12vom Nutzer aufgegebene Transaktion
in Echtzeit, ohne dass er’s sehen kann. -
7:12 - 7:15Wie haben wir das gemacht, oder
wie war unser Szenario dafür? -
7:15 - 7:19Nochmal: wie läuft das ab?
Links ist die Sparkassen-App, -
7:19 - 7:22die verwende ich, um mich in meinem
Onlinebanking einzuloggen und dann -
7:22 - 7:26meine Überweisungsdaten auszufüllen,
und schicke das dann letztendlich ab. -
7:26 - 7:31Dann landet das Ganze beim Sparkassen-
Server, und der schickt dann eine TAN -
7:31 - 7:35an die pushTAN-App, die da rechts
dargestellt ist. Der Nutzer wird dann -
7:35 - 7:40dazu aufgefordert, in die pushTAN-App
zu wechseln, die dort dargestellte TAN -
7:40 - 7:44– nachdem er die Überweisungsdaten
natürlich kontrolliert hat – in die App -
7:44 - 7:46„Sparkasse“ zu übertragen. Das geht
mittlerweile, wie wir später sehen werden, -
7:46 - 7:51auch so automatisiert, dass man sich
fragt: warum gibt’s überhaupt noch 2 Apps? -
7:51 - 7:57Ja, gut. Was wir jetzt
machen: wir sagen einfach, -
7:57 - 8:03nachdem der Nutzer auf
‚Auftrag übermitteln‘ geht, -
8:03 - 8:06dann manipulieren wir die Daten.
Also wir ändern den Adressaten, -
8:06 - 8:11wir ändern den Betrag, und die
Sparkasse schickt dann natürlich -
8:11 - 8:14die Überweisungsdetails auch nochmal
an die TAN-App, und die werden dann -
8:14 - 8:17da nochmal dargestellt. Das heißt,
bevor die dann da angezeigt werden, -
8:17 - 8:19manipulieren wir die wieder
auf die originalen Daten, -
8:19 - 8:24und der Nutzer kann’s nicht sehen, und
bestätigt letztendlich eine Überweisung -
8:24 - 8:29mit einer TAN, was er gar nicht wollte.
Ja, da mussten wir erstmal überlegen: -
8:29 - 8:32was gibt es denn da eigentlich so für
Sicherheitsmerkmale bei den beiden Apps? -
8:32 - 8:35Also die Sparkassen-App selbst
ist eigentlich ein leichtes Fressen -
8:35 - 8:39für so einen Angriff; die hat ja
keine großen Schutzmaßnahmen. -
8:39 - 8:43Es gibt eine Root-Erkennung, es wird aber
lediglich dargestellt ein Warnhinweis, -
8:43 - 8:46und die macht also ansonsten nichts, man
kann die App dann normal weiterverwenden. -
8:46 - 8:52Auf der anderen Seite: die pushTAN-App
versucht, sich mit einer Vielzahl -
8:52 - 8:57an Maßnahmen gegen Analyse und gegen
Schadsoftware angeblich auch zu schützen. -
8:57 - 9:00Man merkt eigentlich schon, wenn man
hier sieht, die ganzen Maßnahmen, -
9:00 - 9:02ich glaube, die Sparkasse ist sich selber
nicht so ganz sicher, dass das wirklich -
9:02 - 9:05sicher zu kriegen ist. Die haben
halt eine Root-Erkennung, -
9:05 - 9:10die ist nicht wie bei der Sparkassen-App,
dass da ein Warnhinweis angezeigt wird; -
9:10 - 9:14also es wird verboten: wenn ein Root
erkannt wird, beendet sich die App, -
9:14 - 9:16und schützt sich eben auch gegen
die dynamische Analyse, statische Analyse, -
9:16 - 9:22weiß der Teufel nicht, was alles.
Und: es ist TÜV-geprüft! -
9:22 - 9:30Gelächter
Applaus -
9:30 - 9:32Von diesem Prädikat
merklich eingeschüchtert, -
9:32 - 9:37habe ich mir dann mal angeguckt, ja
– was gibt es denn da eigentlich wirklich -
9:37 - 9:41für Schutzmaßnahmen, wie sind denn die
umgesetzt? Es wurde recht schnell klar: -
9:41 - 9:44die Sparkasse selbst traut sich in Sachen
Sicherheit nicht so viel zu und hat -
9:44 - 9:49deswegen beim norwegischen Hersteller
Promon eingekauft. Die selber haben -
9:49 - 9:53eine Native-Library, die wird gleich
am Anfang der App geladen, -
9:53 - 9:56und ist dann quasi der Einsprungspunkt.
-
9:56 - 10:02Die Library selbst ist verschlüsselt,
zum Teil, mit einem statischen Key -
10:02 - 10:05natürlich irgendwie, und ist obfuskiert,
ist also ein ziemlicher Hass, sich die -
10:05 - 10:08anzuschauen. Aber es gibt
-
10:08 - 10:12– also damit man die Library nicht einfach
heraus patcht, also sagt: „Ja gut, dann -
10:12 - 10:17mach’ ich das Ding halt raus“ –
haben die Strings aus der Java-Logik -
10:17 - 10:20in die Library verlagert, die ja
wiederum verschlüsselt ist. -
10:20 - 10:24Die Library selbst setzt dann
statische, finale Felder -
10:24 - 10:28während der Laufzeit mit diesen Strings
und werden dann halt normal verwendet. -
10:28 - 10:32Oder sie werden über einen Index
abgerufen, mit der Methode getString. -
10:32 - 10:35Also das verhindert… also macht’s
zumindest Aufwand, diese Library -
10:35 - 10:38einfach rauszuziehen und
ohne die dann klarzukommen. -
10:38 - 10:44Ja die erkennt, wie gesagt,
Root, Debugger, alles Mögliche. -
10:44 - 10:47Aber die behandelt die Erkennung nicht.
-
10:47 - 10:52Das liegt einfach daran, die wollen
eine Library verkaufen, die soll -
10:52 - 10:57für alles und jeden gehen, ne? Also die
ist nicht personalisiert auf diese App. -
10:57 - 11:03So ist es dann implementiert. Stattdessen
gibt’s im Java-Code callbacks -
11:03 - 11:07für die verschiedenen einzelnen events.
Also z.B. Debugger, oder eben Root. -
11:07 - 11:11Die App selbst implementiert
dann eben dieses Interface und, -
11:11 - 11:15wenn das erkannt wird, dann
wird der Code aufgerufen. -
11:15 - 11:19Z.B. hier unten ist dargestellt,
der Rooting-Status. Da steht -
11:19 - 11:23in dem Parameter z dann eben drin,
ob es gerootet wurde oder nicht. -
11:23 - 11:27Und dann kommt da so’n Texthinweis,
und danach beendet sich die App. -
11:27 - 11:30Ja, was haben wir gemacht:
Wenn dieses event kommt, -
11:30 - 11:34dann brechen wir die Methode immer ab
und dann läuft die App einfach weiter. -
11:34 - 11:39Das Ganze ist besonders paradox, diese
Library scheint keinen Status zu haben. -
11:39 - 11:44Die liefert einfach weiter Strings aus,
obwohl schon Root detected wurde. -
11:44 - 11:48Das hat mich wirklich überrascht,
dass es so einfach war. lacht -
11:48 - 11:53Applaus
-
11:53 - 11:57Ja, dann schauen wir uns mal an, wie
funktioniert denn das jetzt konkret. -
11:57 - 12:02Also hier, als allererstes, die
Sparkassen-App. Das sieht man jetzt, -
12:02 - 12:05wie man sich eben anmeldet. Mit seinem
Passwort, das man mal selbst vergeben hat. -
12:05 - 12:10Und es wird ja auch ein Hinweis angezeigt
dass das Gerät gerootet ist, aber -
12:10 - 12:13wie gesagt, es hat weiter keine
Konsequenzen. In dem Fall habe ich -
12:13 - 12:17dann eine Überweisung an das Finanzamt mit
meiner hohen Einkommenssteuer von 10 Cent -
12:17 - 12:22ausgelöst. Und im nächsten Schritt… also…
-
12:22 - 12:24dann haben wir die Überweisung eben
manipuliert, die Daten im Hintergrund, -
12:24 - 12:28man sieht es nicht. Und hier wird man dann
dazu aufgefordert, in die pushTAN-App -
12:28 - 12:31zu wechseln, um dann
dort die TAN abzurufen. -
12:31 - 12:35Das machen wir auch, loggen uns
wieder mit unserem Passwort, -
12:35 - 12:39diesmal in der pushTAN-App ein.
Wie groß die Wahrscheinlichkeit ist, -
12:39 - 12:42dass das das gleiche Passwort
ist, können wir uns denken. -
12:42 - 12:46Und dann schauen wir uns die
Überweisungsdetails an. 10 Cent… -
12:46 - 12:49sagen wir jetzt einfach mal die IBAN hat
sich jetzt wahrscheinlich keiner gemerkt, -
12:49 - 12:53aber das ist auch die gleiche.
Und ja, schaut gut aus. -
12:53 - 12:57Das geben wir frei. TAN übertragen an
Sparkasse. Jetzt merken wir uns noch -
12:57 - 13:00die letzten 2 Stellen der TAN, das ist 32,
-
13:00 - 13:04dann übertragen wir die und der Auftrag
wird freigegeben in der Sparkassen-App. -
13:04 - 13:08Wenn man dann später irgendwann mal
in die Umsatz-Details reinschaut, dann -
13:08 - 13:12stellt man fest: „Hey, da, mit
der TAN mit der Endstelle 32, -
13:12 - 13:15da wurde ein Betrag von 13,37 Euro
überwiesen, nicht von 10 Cent. Und -
13:15 - 13:19die gingen auch nicht ans Finanzamt,
die gingen an Vincent Haupert. Gut… -
13:19 - 13:24Jetzt… jeder der die Geschichte kennt,
der kennt auch was danach kam. -
13:24 - 13:27Stellungnahme der Sparkasse,
nachdem es auf Heise war: „Ey, -
13:27 - 13:32das ist ja ’ne alte Version, das
geht doch alles gar nicht mehr“. -
13:32 - 13:34Es gibt da jetzt ’ne neue Version
seit dem 16.10. Wir haben -
13:34 - 13:40am 23.Oktober veröffentlicht.
Das ist jetzt nicht mehr möglich. -
13:40 - 13:44Gut. Eigentlich ist es nichts Neues für
uns. Haben wir auch schon gesagt -
13:44 - 13:46in unserer Ausarbeitung. Die
hat die Sparkasse anscheinend -
13:46 - 13:50nicht so aufmerksam gelesen. Und wir
haben damals auch schon gesagt: -
13:50 - 13:54„Es gibt in der aktuellen Version
wohl… die Art und Weise, -
13:54 - 13:57wie wir den Angriff gemacht haben… in der
neuen Version funktioniert das anders, -
13:57 - 14:00wir können das nicht ganz genauso machen;
mit einem entsprechenden Mehraufwand -
14:00 - 14:03können wir den Angriff aber
wieder möglich machen.“ -
14:03 - 14:09Ja, schau’n wir halt mal! lacht
Gelächter -
14:09 - 14:14Applaus
-
14:14 - 14:18Um jetzt einen Angriff gegen die
neue Version machen zu wollen, -
14:18 - 14:21muss man sich fragen: Was ist
denn da eigentlich anders jetzt? -
14:21 - 14:25Also man hat auch bei der Sparkasse
oder bei Promon realisiert, dass -
14:25 - 14:28die Java-callbacks ungefähr genauso sind,
wie wenn man mit einem Geldtransporter -
14:28 - 14:33vor die Sparkasse fährt, und dann
dem Praktikanten die Geldsäcke -
14:33 - 14:37in die Hand drückt und einfach
wegfährt. Deswegen gibt es jetzt -
14:37 - 14:41keine Java-callbacks mehr.
Stattdessen stürzt die App ab, -
14:41 - 14:46wenn sie z.B. Root erkennt, oder
auch Debugger, was auch immer, -
14:46 - 14:49und öffnet dann eine Seite im Browser.
Dadurch lässt sich die Root-Erkennung -
14:49 - 14:51nicht mehr trivial umgehen. Ansonsten
-
14:51 - 14:56werden auch hooking-Frameworks
erkannt. Also wir haben den Angriff -
14:56 - 15:00als proof-of-concept mit Xposed
realisiert. D.h. das würde jetzt -
15:00 - 15:03auch nicht mehr gehen. Ja, schlecht.
-
15:03 - 15:08Gut, um den Angriff jetzt wieder
realisieren zu können, müssen wir also -
15:08 - 15:112 Sachen machen. Wir müssen einmal die
Root-Erkennung umgehen und einmal -
15:11 - 15:13die Xposed-Erkennung umgehen.
-
15:13 - 15:16Fangen wir mit Root an. Wie
funktioniert die Root-Erkennung? -
15:16 - 15:20Und ich bin bisher eigentlich gut bei den
Sicherheits-features dieser App gefahren, -
15:20 - 15:24mir einfach vorzustellen, wie würde ich es
machen. Also was ist der einfachste Weg -
15:24 - 15:29Root zu erkennen. Also: was werden die
wohl machen? Die suchen im Dateisystem -
15:29 - 15:32nach irgendwelchen Sachen, die für SU
charakteristisch sind. Dann habe ich mir -
15:32 - 15:36die Syscalls mal angeschaut – ja und klar,
genau das machen die. lacht -
15:36 - 15:41Die schauen einfach z.B.
ist /system/bin/su vorhanden? -
15:41 - 15:45Oder /system/xbin/su? Ja, wenn
ich das jetzt in /vinc umbenenne, -
15:45 - 15:49dann geht sie, die App, schon wieder.
-
15:49 - 15:55Applaus
-
15:55 - 15:59Das ist aber natürlich blöd, weil ich will
ja weiterhin für meine anderen Apps -
15:59 - 16:02eigentlich Root haben. Und
deswegen, wenn ich die umbenenne, -
16:02 - 16:06dann können die natürlich auch kein
SU mehr ausführen. Das Lustige ist ja, -
16:06 - 16:11man führt ja nicht /system/xbin/su aus,
sondern man gibt ja nur SU ein. Das Ganze -
16:11 - 16:17ist der PATH-Variable zu verdanken,
die in Oslo aber nicht bekannt ist. -
16:17 - 16:22Deswegen ich hab das Ganze auf
Android Marshmallow gemacht, -
16:22 - 16:25und da will man eigentlich
sowieso Systemless SU haben. -
16:25 - 16:28Und das mounted eine eigene Partition
und trägt sich in die PATH-Variable ein -
16:28 - 16:32– und tadaaa! – die pushTAN-App
geht wieder auf. -
16:32 - 16:37Applaus
-
16:37 - 16:41Ein bisschen paradoxer wird es aber
immer noch vor dem Hintergrund, -
16:41 - 16:44dass es die Sparkassen-App besser
macht. Die erkennt das Root nämlich. -
16:44 - 16:48Und die haben keine Lösung für
was-weiß-ich wieviel Tausend eingekauft. -
16:48 - 16:51Also bei Promon würde ich jetzt
mal in den Flugmodus gehen, -
16:51 - 16:54sonst kommt da gleich ein Anruf.
-
16:54 - 16:58Ja, als nächstes: wie funktioniert
die Xposed-Erkennung? -
16:58 - 17:03Ja, wieder gleiches Spiel, würde
ich sagen. Schauen wir doch mal, -
17:03 - 17:05was… die werden wieder nach irgendwelchen
charakteristischen Sachen -
17:05 - 17:10für Xposed suchen. Ja, so schaut es dann
aus: Das sind halt ein paar Sachen, -
17:10 - 17:12die Xposed platziert beim Installieren.
-
17:12 - 17:18Das müssen wir jetzt irgendwie loswerden.
Und Xposed muss danach aber noch gehen. -
17:18 - 17:21Die ersten 4 Sachen sind irgendwie eh
Sachen, die kann man entweder löschen -
17:21 - 17:24oder umbenennen. Und dann
sind die schon mal weg. -
17:24 - 17:29Dann gibt’s hier die anderen 3 Dateien,
die braucht man schon irgendwie; -
17:29 - 17:33ja, die benennen wir halt um. Und
-
17:33 - 17:36untereinander müssen die Abhängigkeiten
natürlich auch angepasst werden. -
17:36 - 17:38Und da hab’ ich gedacht: „Ja, jetzt
geht’s“. Es hätte mich nicht überrascht -
17:38 - 17:41wenn’s funktioniert. Reicht aber
noch nicht ganz. Das ist sogar -
17:41 - 17:45tatsächlich ein bisschen besser
gemacht. Die schauen halt selber -
17:45 - 17:48in dem executable file nach,
wo auch die ganze Dalvik-VM -
17:48 - 17:52und was-weiß-ich-was drin ist, und
Zygote, mit dem ja Xposed arbeitet; -
17:52 - 17:55und wenn dann da drinnen Xposed
mit großem oder kleinem X drinsteht, -
17:55 - 17:59dann ist wohl Xposed installiert. Ja,
letztendlich hab’ ich das Ding einfach -
17:59 - 18:02neu kompiliert und schon ging’s wieder.
-
18:02 - 18:09Applaus
-
18:09 - 18:13Dann schauen wir uns das doch mal an, ne?
-
18:13 - 18:16Also wieder gleiches Spiel…
-
18:16 - 18:20Wir öffnen die Sparkassen-App,
geben da unser Passwort ein… -
18:20 - 18:25Diesmal, um ganz auf Nummer sicher zu
gehen, schauen wir uns vorher nochmal an, -
18:25 - 18:28welche Version ist denn das, eigentlich?
Nicht dass dann danach irgendeiner sagt: -
18:28 - 18:31„Es war nicht die aktuelle Version“.
Also hier sehen wir, das ist die Version -
18:31 - 18:36vom 7.Dezember, also das war
die aktuellste bis vor 2 Stunden. -
18:36 - 18:39Gelächter, Applaus
-
18:39 - 18:42Als nächstes füllen wir wieder
unsere Überweisung aus, -
18:42 - 18:45diesmal nicht ans Finanzamt,
sondern an die Uni-Bibliothek Erlangen. -
18:45 - 18:50Ich habe nämlich meine Benutzerkarte
verloren und brauche deshalb eine neue, -
18:50 - 18:54und die kommt nicht for free,
sondern kostet 3 Euro. -
18:54 - 18:57Ihr seht schon, mein Konto war
nicht so hoch gefüllt, ich musste -
18:57 - 19:01einen Betrag wählen, der irgendwie
auch noch in meinem Limit geht. -
19:01 - 19:04Aber jetzt öffnet sich hier
automatisch schon die pushTAN-App, -
19:04 - 19:08also die Integration hat
tollerweise zugenommen. -
19:08 - 19:12Jetzt logg’ ich mich da auch wieder
ein. Und hier sehen wir – 3 Euro. -
19:12 - 19:16Aber genau – diesmal schauen wir uns auch
mal wieder die Version[snummer] an. Das ist -
19:16 - 19:16auch
-
19:16 - 19:20vom 7.Dezember, war bis vor 2 Stunden
auch noch die aktuellste, könnte mir gut -
19:20 - 19:23vorstellen, dass gerade eine
neue Version rauskommt! -
19:23 - 19:25Gelächter
-
19:25 - 19:29Aber ja, hier. Die Daten scheinen zu
stimmen, die TAN passt eigentlich auch. -
19:29 - 19:32Und dann ja, würde ich sagen, dann
kann man das bestätigen jetzt. -
19:32 - 19:42Kommen wir zurück… Auftrag
wurde entgegengenommen… -
19:42 - 19:48und wenn man jetzt dann mal in
die Überweisungsdetails schaut, -
19:48 - 19:50sieht man da, dass ich schon ein
paar fingierte Weihnachtsgeschenke -
19:50 - 19:54bezahlt habe, im Rahmen der Untersuchung
hier. Und hier haben wir diesmal -
19:54 - 19:594,20 Euro, ich hätte auch 42 Euro genommen,
wenn ich soviel Geld noch gehabt hätte. Aber… -
19:59 - 20:14Applaus
-
20:14 - 20:18Ja, genau. Und ja, der Betreff
hat sich auch geändert: -
20:18 - 20:21„Einen Guten Rutsch für den 32C3.“
-
20:21 - 20:23Okay,
-
20:23 - 20:27jetzt bin ich doch ein bisschen schneller
fertiggeworden als ich gedacht habe, -
20:27 - 20:31aber das bedeutet, dass wir dann
noch mehr Zeit für Fragen haben. -
20:31 - 20:35Ja, was lässt sich zu App-basierten
TAN-Verfahren allgemein sagen: -
20:35 - 20:39Die sind einfach konzeptionell schwach.
Die Schutzmechanismen von der pushTAN-App -
20:39 - 20:42haben zwar zugenommen in der
aktuellen Version. Also die Callbacks -
20:42 - 20:46lassen sich jetzt nicht mehr
trivial hooken; und dadurch -
20:46 - 20:48kann man einfach Root bekommen
oder halt eben einfach alles machen. -
20:48 - 20:51Letztendlich ist es halt ein
Katz-und-Maus-Spiel, das die Sparkasse -
20:51 - 20:53oder auch jeder andere Hersteller
am Ende irgendwie verlieren wird. -
20:53 - 21:00Die Root-Erkennung z.B. bringt eigentlich
hauptsächlich Ärger bei den Kunden ein; -
21:00 - 21:04und vor allem hat die so hohe
False-Positives, dass die Bewertungen -
21:04 - 21:08derart grottig sind, dass man sich bei
der Sparkasse echt fragen muss, -
21:08 - 21:10ob das Verfahren für sie selber
auch überhaupt noch Sinn macht. -
21:10 - 21:12Wenn man sich jetzt auch anschaut…
-
21:12 - 21:16Was ich eigentlich gemacht habe ist ja
total irre irgendwie. Also ich meine… -
21:16 - 21:20Ich habe hauptsächlich Dinge umgangen,
die ein normaler Nutzer macht. -
21:20 - 21:25Ich habe keinen echten Angriff damit
verhindert. Also jemand, der selbstständig -
21:25 - 21:28sein Gerät rooten wird, dem wird verboten,
die pushTAN-App zu verwenden. -
21:28 - 21:32Und wer selbstständig irgendwie Xposed
installiert, dem wird es auch verboten. -
21:32 - 21:37Ein echter Angriff… der installiert doch
nicht das SU Binary. lacht -
21:37 - 21:41Der würde was-weiß-ich
irgendwas platzieren, -
21:41 - 21:43aber bestimmt nicht das SU-Binary
installieren. Also das Root -
21:43 - 21:47ist gar nicht mal eine feste
Voraussetzung. Für den Angriff allein -
21:47 - 21:49hätte es sogar gereicht, wenn
man einen Root-Exploit hat -
21:49 - 21:51und dann Xposed platzieren kann.
-
21:51 - 21:55Da hat man z.B. auch keinen
Ärger mit der Root-Erkennung. -
21:55 - 21:58Ja, ich hab’ noch ein paar Backup-Folien,
aber das können wir dann auch -
21:58 - 22:02in die Diskussion einbauen. Dann bedanke
ich mich für eure Aufmerksamkeit! -
22:02 - 22:11Applaus
-
22:11 - 22:14Herald: Vielen, vielen Dank, Vincent!
-
22:14 - 22:18Total super, und du hast auf jeden
Fall noch Zeit für Fragen gelassen. -
22:18 - 22:24Genau – macht euch bitte kenntlich!
-
22:24 - 22:29Geht gerne vor zu den Mikro-Fahnen!
-
22:29 - 22:34Die Mikros 2 und 4 sind an.
Ich seh’ schon jemand[en] an Mikro 2? -
22:34 - 22:40Nein? Du stehst da nur so. Okay.
lacht -
22:40 - 22:46Wir geben euch mal noch ein
paar Minuten Zeit zum Überlegen. -
22:46 - 22:50Und ich kucke ’mal nach oben!
-
22:50 - 22:57Lieber Mensch, der du Fragen aus dem Netz
einsammelst: ich seh’ dich gerade nicht, -
22:57 - 23:00aber wenn du welche hast, dann
könntest du jetzt gerne eine vorlesen. -
23:00 - 23:06Signal Angel: Dann mach’ ich das einfach
mal. Und zwar: seppsammy und shelter8 -
23:06 - 23:10wollen wissen: gibt es Schwächen
im Optik-TAN-Verfahren? -
23:10 - 23:14Vincent: Also „Optik-TAN“ meint dann
wahrscheinlich irgendwie so Foto-TAN -
23:14 - 23:18und QR-TAN. Also, „Optik-TAN“ weiß ich
jetzt nicht genau, ist es damit gemeint? -
23:18 - 23:21Aber ich meine, das ist irgendwie das.
Ja, QR-TAN und Foto-TAN ist eigentlich -
23:21 - 23:25ziemlich ähnlich; da scannt man dann
einen Code ab mit seinem Smartphone; -
23:25 - 23:32und bekommt dann dadurch die TAN.
Das unterscheidet sich halt insofern, -
23:32 - 23:35dass man das schwer auf einem Gerät
verwenden kann. Also ich kann natürlich -
23:35 - 23:39den QR-Code nicht von meinem eigenen
Gerät abscannen. Deswegen ist das Szenario -
23:39 - 23:43ein bisschen anders. Also, da sind
natürlich auch andere Schwächen vorhanden, -
23:43 - 23:46wie z.B. dass man die App irgendwie
kopieren kann und sowas dergleichen. -
23:46 - 23:50Aber es ist nicht ganz vergleichbar
mit dem Szenario das wir hier -
23:50 - 23:52bei den App-basierten Verfahren haben.
-
23:52 - 23:56Herald: Dann jetzt gerne erst
eine Frage vom Mikrofon Nr.2. -
23:56 - 24:01Frage: Ja, du hast beschrieben, wie die
App sich gegen Debugging – -
24:01 - 24:03eine Analyse –
-
24:03 - 24:08schützt. Wie genau hast du dann aber die
Transaktionsdetails manipuliert, dass die -
24:08 - 24:12erst falsch angezeigt und dann auch
falsch zur Bank übermittelt werden? -
24:12 - 24:18Vincent: Also, das Problem ist, also gegen
Debugging schützen, das ist ja erstmal -
24:18 - 24:21’ne Maßnahme gegen dynamische Analyse,
die also verhindern soll, dass jemand -
24:21 - 24:23einfach so ’nen Angriff entwickeln kann.
-
24:23 - 24:27Also die… Den Angriff selbst
hab’ ich mit Xposed entwickelt, -
24:27 - 24:31das ist halt ein hooking-Framework.
Das kann sehr leicht Java-Code hooken. -
24:31 - 24:35Ein Real-World-Exploit würde
das wohl nicht so machen. Aber, -
24:35 - 24:39ja… Für ’nen proof-of-concept war
das ’ne Möglichkeit, das zu machen. -
24:39 - 24:41Also die ganzen Maßnahmen eigentlich
die da implementiert wurden, -
24:41 - 24:44können nicht effektiv vor einem richtigen
Angriff schützen, sondern können… -
24:44 - 24:48hauptsächlich… dienen hauptsächlich
dazu, dass die Sparkasse in einem Monat -
24:48 - 24:54wieder sagen kann, ja der Angriff den
ich gemacht hatte funktioniert nicht mehr. -
24:54 - 24:55Herald: Mikrofon Nr.4, bitte!
-
24:55 - 25:02Frage: Mich würde interessieren…
weil du hast ja gezeigt, -
25:02 - 25:04wie diese App nach irgendwie
Xposed oder sowas scannt. -
25:04 - 25:09Das Verfahren scheint mir grundsätzlich
ziemlich erbärmlich. Kann man sowas auch -
25:09 - 25:12gescheit machen oder hat man
da einfach keine Chance? -
25:12 - 25:17Vincent: Ja, das ist natürlich schon ein
bisschen schwierig das gescheit zu machen. -
25:17 - 25:19Weil es müsste irgendwie
vertrauenswürdige Aufrufer geben. -
25:19 - 25:23Also man müsste irgendwie festlegen
können, wer ist denn eigentlich erlaubt. -
25:23 - 25:28Wer darf denn in meinem call
stack eigentlich alles drin sein. -
25:28 - 25:31Also es ist schon ein bisschen
schwieriger. Fällt mir jetzt auch -
25:31 - 25:35spontan erstmal nicht ein, wie
man das effektiv verhindern kann. -
25:35 - 25:38Herald: Mikrofon Nr.1, bitte.
-
25:38 - 25:42Frage: Vielen Dank. Bin ich zu hören? Ja.
Vielen Dank für die schöne Demonstration. -
25:42 - 25:48Ich fand’s auch sehr toll, dass rauskam,
dass in so einem Framework wie Android -
25:48 - 25:52das Verteilen auf 2 Apps ja überhaupt
nichts bringt. Also ich denke das war -
25:52 - 25:55einer von den zentralen Sachen,
die rauskamen. Meine Frage wäre: -
25:55 - 25:58Wie schätzt du das ein, dass man
es auch im Android-Betriebssystem -
25:58 - 26:05in Zukunft schafft, Apps mit einem
Verifikationsmechanismus auszustatten, -
26:05 - 26:09und eher von Teilen des Betriebssystems
die auch nach dem Rooten das tun -
26:09 - 26:13was sie tun sollten; diese App quasi für
sich alleine laufen. Das würde mir -
26:13 - 26:17nach einem vielversprechenderen Ansatz
aussehen als das Konzept -
26:17 - 26:20von 2 Apps und
einfach-ein-bisschen-Skripten. -
26:20 - 26:24Vincent: Ja das greift jetzt natürlich
schon ziemlich weit. Auf was du anspielst, -
26:24 - 26:27das erinnert mich so ein bisschen
an ARM TrustZone. -
26:27 - 26:30Also da gibt’s ’ne Sichere Welt
-
26:30 - 26:33und ’ne Unsichere Welt. Es gibt ’ne
TrustZone bei ARM, gibt’s schon länger. -
26:33 - 26:36Die wird aber bei Android nicht
durchgereicht. Also Samsung hat -
26:36 - 26:41mit Knox sowas ähnliches. Das ist aber…
ja das muss man kaufen. Wie lange das -
26:41 - 26:43bei Android irgendwie noch dauert
bis es sowas für alle gibt, -
26:43 - 26:46kann ich dir nicht sagen. Also,
es dauert aber sicher noch. -
26:46 - 26:50Herald: Gibt’s noch Netz-Fragen?
-
26:50 - 26:53Dann machen wir weiter mit Mikro 2 bitte!
-
26:53 - 26:58Frage: Also ich schließe aus deinen
Ausführungen, dass das fundamentale -
26:58 - 27:03Problem ist, dass die Kombination von
2 Apps auf einem Gerät das Prinzip -
27:03 - 27:06Zweifaktor-Authentifizierung
einfach ad absurdum führt. -
27:06 - 27:11Und dass also Sicherheit insofern
nur besser werden kann, -
27:11 - 27:15dass man wirklich auf 2 separate
Geräte, die dann eben auch -
27:15 - 27:17separat kompromittiert werden
müssten, setzen wird. -
27:17 - 27:20Vincent: Ja, genau. Das ist genau das.
Also hier hab’ ich auch ein Zitat, -
27:20 - 27:24eigentlich sehr schön. Das ist irgendwie
nicht nur was, was ich irgendwie sage. -
27:24 - 27:28Auch im BaFin-Journal ist es
im August schon erschienen: -
27:28 - 27:31„Die TAN sollte auf keinem Fall auf
demselben Smartphone generiert werden, -
27:31 - 27:34auf dem das Online-Banking stattfindet.
Hat ein Betrüger das Smartphone gehackt, -
27:34 - 27:38so kann er dadurch auf beide Verfahren
zugreifen“. Also das ist irgendwie keine… -
27:38 - 27:41das ist eigentlich ’ne Erkenntnis, die…
ich weiß nicht… vielen leuchtet das hier -
27:41 - 27:45tatsächlich wahrscheinlich
einfach auch ein. Also… -
27:45 - 27:53Gelächter, Applaus
-
27:53 - 27:55Herald: Bitte schön!
-
27:55 - 27:59Signal Angel: Einige Leute wollten
wissen – vielleicht ist das jetzt gerade -
27:59 - 28:02beantwortet worden –
lacht -
28:02 - 28:04ob es, wenn man 2 verschiedene
Verfahren verwendet, -
28:04 - 28:08also die App und den Computer,
ob es dann sicher ist? -
28:08 - 28:11Vincent: Also, dann hat’s eigentlich
im Prinzip ähnliche Probleme -
28:11 - 28:15wie z.B. QR-TAN oder Foto-TAN.
Ist aber auf jeden Fall deutlich sicherer. -
28:15 - 28:19Also wenn ich jetzt die pushTAN-App
mit meinem PC verwende, dann -
28:19 - 28:22ist es nicht schlechter als SMS-TAN,
würde ich jetzt sagen. -
28:22 - 28:24Oder, ja, auf jeden Fall vergleichbar.
-
28:24 - 28:25Herald: Dann nochmal Mikro Nr.1, bitte.
-
28:25 - 28:31Frage: Ja, also das ist auch wohl relativ
neu, weil aus eigener Erfahrung weiß ich, -
28:31 - 28:36dass es da ursprünglich mal ’n Requirement
gegeben hat, so: bei mobile Banking -
28:36 - 28:40darf nicht… also wenn
du mobileTAN benutzt, -
28:40 - 28:45darfst du von deinem Handy
nicht die Transaktion starten, -
28:45 - 28:48wo auch die SMS hingeht. Deswegen
haben die am Anfang so total billo -
28:48 - 28:51halt die host names gefiltert von
dem mobile Netz, von den… -
28:51 - 28:54V: Genau.
F: …von den Mobilfunkanbietern; und dann -
28:54 - 28:58hat aber der Vendor, der die Software
gebaut hat, diese Sparkassen-App -
28:58 - 29:01unter ’nem anderen Logo – nicht
Sparkasse – veröffentlicht, -
29:01 - 29:05ohne diese Funktion. Und so
ist das da reingekommen. -
29:05 - 29:08Die wissen schon ganz
genau, dass es Scheiße ist. -
29:08 - 29:09Vincent: Ja,…
lacht -
29:09 - 29:14Applaus
-
29:14 - 29:17Also ich hab’ hier noch ’n anderes Zitat.
-
29:17 - 29:22Also MaSi, das sind die Mindeststandards
für die Sicherheit von Internetzahlungen. -
29:22 - 29:25Und die müssen von den Banken
umgesetzt werden. Dafür ist die Frist -
29:25 - 29:28jetzt gerade ausgelaufen. Und
da gibt’s eben auch einen Punkt -
29:28 - 29:31der schreibt starke Kunden-
Authentifizierung vor. Der Punkt -
29:31 - 29:35war aber derart schwammig, da konnte man
alles interpretieren. Deswegen gab’s dann -
29:35 - 29:38dazu irgendwann mal ein Q&A [eher:FAQ?],
die länger ist als die eigene Abfassung -
29:38 - 29:43davon, was das eigentlich ist. Und da
steht dann auch drin, das war dann danach: -
29:43 - 29:46„Allerdings muss das App-basierte
Sicherungsverfahren und das tatsächliche -
29:46 - 29:49Online-Banking unabhängig voneinander
– also über verschiedene Geräte […] – -
29:49 - 29:55erfolgen.“ Also es ist sowieso fraglich,
ob dieses Verfahren überleben darf. -
29:55 - 29:58Herald: Eine ganz schnelle
noch von Mikrofon 3. -
29:58 - 30:01Frage: Ja, darf ich fragen,
wie du dein Geld überweist? -
30:01 - 30:04Bzw. was würdest du
für’n System empfehlen? -
30:04 - 30:08Vincent: Also ich selbst verwende
chipTAN. Ich verwende es sogar -
30:08 - 30:12tatsächlich auch mobil. Allerdings
eher wenn ich irgendwie -
30:12 - 30:17mal länger irgendwo bin, oder sowas.
Also ich habe jetzt nicht so -
30:17 - 30:20das Verlangen danach, jetzt überall
Überweisungen machen zu müssen. Also -
30:20 - 30:24chipTAN kann ich eigentlich schon
empfehlen, von den TAN-Verfahren. -
30:24 - 30:25F: Danke.
-
30:25 - 30:28Herald: Vielen, vielen Dank! Bitte
nicht böse sein, wenn ihr jetzt -
30:28 - 30:31nicht drangekommen seid. Vincent hat mir
versprochen, dass er jetzt noch da ist -
30:31 - 30:34und eure Fragen beantwortet.
Ich hoffe, das ist okay so. Super. -
30:34 - 30:36Danke schön nochmal. Ein
ganz großer Applaus für dich! -
30:36 - 30:44Applaus
-
30:44 - 30:50Abspannmusik
-
30:50 - 30:54Untertitel erstellt von c3subtitles.de
im Jahr 2016. Unterstütze uns!
Show all