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