 Next talk is going to be shut up and take my money by Vincent Haupert. Vincent is a research associate at the Security Research Group of the Department of Computer Science at Friedrich Alexander Universität in Erlangen, Nürnberg, Germany. Typical, very long German word. Erleicht vom Deutschland an der Universität in Erlangen. Seine Hauptinteressen sind Systemsicherheit und Software-Sicherheit auf dem Mobilgesetze. Das zweite Mal, das auf dem Kongress ist, letztes Jahr war es konzepturelle Sicherheit von Apps in online Banking. Dieses Jahr wird er die erfolgreichen Hacks mit den ganzen Bankenaccounts von App-Luzern übernommen haben. Willkommen. Vielen Dank für das herzliche Willkommen. Und dann fangen wir, dann steigen wir gleich mal ein. Wir haben nicht ein hartes Programm. Als erstes, online Banking ist etwas, was uns alle betrifft, weil es hat wirklich jeder, weil jeder Benutztes in traditionellen online Banking hat. Jeder hat mit zwei Geräten über uns eins, um unsere Bezahlung zu beginnen und das andere Gerät, um diese Transaktion zu bestätigen. Jetzt mit diesem ganzen App Banking, gehen wir jetzt dahin, dass beides in einen Gerät integriert wird. Es wurde normal, diese beiden Geräte in zwei Apps zu bauen. Also man hat nur ein Gerät und zwei Apps, um diese Transaktion zu authentifizieren. Letztes Jahr habe ich gezeigt, dass das schon konzeptuell Probleme hat, aber das ist nicht das Ende. Der letzte Schritt in der Entwicklung war das ganze in einer App. Ich habe das schon letztes Jahr gesagt, es macht nicht so viel Unterschied. Also Banken erzählen euch jetzt nicht Müll, dass sie zwei Apps haben und dass sie getrennt sind, sondern es ist jetzt in einer App. Man macht jetzt die Initialisierung und die Konfirmation in derselben App. Dieses Mal haben wir über ein 26-Gerät, also das neuste, heißeste Start-up in Deutschland, in der Finanzszene. Dieses Mal werde ich nur über die technischen Probleme reden. Aber es ist immer noch klar, dass wir dieselben konzeptuellen Probleme haben, wie wir bei der Two App Authentification hatten. Aber diesmal werde ich mich nur auf diese, kurz über einen 26. Das ist eine Berliner Firma, die versucht, das Handy als die finanzielle Schnittstelle zu üertablieren. Das ist alles inhalt aus dieser App heraus passiert. Es wurde 2013 gegründet und sie haben 2015 mit ihrer App gestartet und sie haben schon 200.000 Kunden, was wirklich unglaublich ist. Es ist auch seine eigene europäische Banklizenz, also schon seit einem halben Jahr. Es hat vor einem Monat eine Pressemitteilung rausgegeben, das ist für verfügbare 17 Ländern. Sie behauptet, man kann den Bankaccount in 8 Minuten eröffnen und wie sich herausstellt, man kann ihn noch schneller verlieren. Also, um kurz über die Transaktionssecurity zu reden, wenn ich hier eine Transaktion machen will, müssen Sie sich zuerst einloggen. Das funktioniert mit Deiner E-Mail und Deinem Passwort. Das ist ziemlich standardmäßig. Danach kann man eine Transaktion beginnen. Nachdem man all die Informationen eingegeben hat, muss man noch einen Transfercode einzugeben. Das ist eine Vielstärke, die man mitgeben muss, man kann es auch hindern. Und der letzte Schritt ist das verbundene Telefon dazu. Das ist wahrscheinlich das Hauptfeature von der N26 App. Man kann nur ein Handy damit verbinden, von der technischen Perspektive her, wenn die App das erste Mal startet, generiert es einen Public Key Pair und schickt den Public Key an N26. Wenn man jetzt ein Device neu verbindet, ist es ein ziemlich abgesichter Prozess, aber wir reden darüber später. Wir müssen nur kurz über die Infrastruktur zu reden. Die haben zwei Apps, eins für iOS und ein für Android und die reden über JSON mit dem N26 Server und die URL-City auf der Folie. Woher weiß ich, dass es JSON ist? Ich habe das Ganze selber mitgeschnitten und konnte danach vollziehen, was das Protokoll macht. Man installierte in der Mitte einen Zertifikat, dass man das Zertifikat austauschen kann, indem man das Ganze über den VPN leitet. Aber ich muss nur nicht mit dem Kleinen anfassen, weil sie nur nicht mehr Zertifikatpinning machen. Das erste, was dann in den Kopf kommt, ist, dass hier vielleicht die Transaktionen in real-time verändern können. Wir verändern zum Beispiel den Empfänger und der Benutzer merkt davon nichts. Wenn man an die Grafik noch mal anschaut, wenn man den DNS-Record von TAC26 bekommt und dann das umleitet auf sich selber und dann den Traffic verändern kann. Weil es keinen Zertifikatpinnen gibt, können wir zum Beispiel einen letzten Crypt-Zertifikat dafür generieren und dann vertraut die App dem auch. Wie funktioniert das? Hier als Beispiel. Zum Beispiel will ich 2 Euro an meinen Freund Dominic senden. Dann würde ich dem Transfercode gefragt, dann die Second Factor Authorization, wo ich dann den Transfer noch mal bestätigen muss. Also der nächste Dialog. Dann ist es bestätigt und ich sehe 2 Euro weniger auf einem Count. Alles sieht gut aus. Im nächsten Schritt sehe ich dann aber, es sind 2 Euro weniger, aber wenn N26 dann gesehen hat, dass wir 20 Euro transferiert haben, ohne dass es halt sichtbar wurde, das kann man erst später raus. Wir können also Transaktionen in Real-Time verändern und wäre es nicht wirklich toller, noch Accounts zu übernehmen, um dann unsere eigenen Transfers zu machen. Dafür brauchen die Lock-in-Daten. Und wie bekommen wir die? Also ich will eigentlich davon ausgehen, dass die Lock-in-Daten schon kompromittiert sind, aber es ist auch teilweise einfacher gemacht, von N26, um die Lock-in-Daten zu anbekommen. Wenn man zum Beispiel das Pass auf der Gesten hat, dann schickt N26 einfach ein. Und wenn man ein Link ankriegt, kann man das Passwort ersetzen. Das macht die Passwort-Policy von N26 kaputt, weil die eigentlich ziemlich gut ist, aber wenn man den E-Mail-Account kompromittiert, dann ist eben auch der Bank-Account kompromittiert. Dann könnte Fishing möglich sein, z.B. durch eine ähnliche Domain, dass damit der Benutzer sich zu Hause fühlt. Und man will halt nur, wenn man es dann nur zu N26 verkunden senden, um dann muss halt eine Möglichkeit haben, um sie die Benutzer zu kontaktieren, dann die Domain, normalerweise ist es N26.de, aber z.B. N26.tech ist frei und hört sich jetzt ziemlich normal an. Und die gehört jetzt mir. Wie man dann an die N26 Kunden kommt, es gibt halt z.B. so was wie peer-to-peer Transaktionen. Zum Beispiel, wenn der, wenn ein Transfer an einen Kunden zwischen zwei N26 Kunden ist, dann sind die Transaktionen, sind die Transaktionen halt Stefan sofort statt. Und alle Kontakte werden halt ungehascht auf den zum Ende N26 Server hochgeladen, was dann für diese peer-to-peer Transaktion benutzt wird. Aber wir wollen das natürlich benutzen, um halt die Kunden zu finden. Also vielleicht ähnelt euch an den Dropbox-Hack, der irgendwie 86 Millionen Kunden halt Kunden öffentlich gemacht hat. Und wir haben alle diese 68 Millionen Kundendaten gegen die API von N26 getestet. Es gab halt keine Checks von N26. Wir haben uns nicht gestrotzt, limitiert oder so. Darüber haben wir dann halt die Kunden bekommen und wir können sie dann kontaktieren, zum Beispiel über so eine E-Mail. Wir können zum Beispiel sagen, ja, hier seid vom Dropbox-Leak beeinträchtigt und bitte ändert euer Passwort. Und dann können wir dann unser Fake-Domain halt angeben. Also, wir haben das natürlich nicht gemacht. Mein Professor hatte da so rechtliche Bedenken. Also werden wir dann die Lock-In-Daten haben. Okay, können wir damit schon was machen? Dann gibt es Transaktionen über Siri, die mit iOS 10 nun möglich sind. Also, man kann zum Beispiel einfach sagen, sende 5 Euro zu Dominik und kann sagen, sende 5 Euro zu Dominik und dann gibt es dann eine Benachrichtigung und man sagt nochmal senden und dann wird es abgeschickt ohne, dass sich die App öffnet und man irgendwie das Passwort eingebt oder so. Das geht halt nur mit dem verknüpften Gerät und mit einem anderen Handy geht es nicht. Also, dann wenn es auf dem anderen Handy wäre, müsste man die App öffnen und dann... Also, aber stellt sich raus, dass es nur ein Feature des Kleins ist. Also, man muss halt, das ist alles, was man braucht. Also, nur den Namen und Handynummer. Und es ist also nicht verifiziert, sondern die Verifikation ist definitiv nur auf dem Klienten statt. N26 behauptet, dass sie sofort halt irreguläre Transaktionen oder so feststellen und wir dachten, ja, challenge accepted und probieren das mal aus. Dass sie dann gemacht haben und ich finde, das ist ziemlich ehrgul. Wir haben 2000 Siri Transaktionen geschickt mit einem Wert von einem Cent über 30 Minuten und ja, versucht mal so schnell zu sprechen. Also, was ist passiert? Wir haben dann noch ein bisschen gewartet und noch einen Tag, niemand hat uns kontaktiert und wir haben dann irgendwie nach 3 Wochen haben sie dann Dominik geschrieben und gefragt, was damit all diesen komischen Transaktionen ist. Und sie meint dann, ja, das ist halt gegen die, dass es gegen die Terms of Service ist. Aber ja, Dominik hat die Sachen, die nicht gesendet, aber sondern empfangen und da haben sie also die falsche Person kontaktiert. So wie wenn man halt Spam bekommt und dann von Google geblockt wird oder so. So, dann geht es um Account hijacking mit dem Transfercode bräuchten. Wir versuchen den Transfercode zurückzusetzen. Und dann das Handy zu übernehmen. Aber das ist auch nicht so unabhängig, wie es scheint. Unpairing ist wirklich sehr, sehr sicher. Und das ist meine ernsthafte Meinung. Jetzt schauen wir uns mal an. Man öffnet die App und man klickt Unpair. Und dann bekommt man eine Mail. Und dann muss man der Unpairing-Email folgen. Dann fängt der richtige Unpairing-Prozess an. Dann muss den Transfercode eingeben. Dann die Mastercard ID. Das ist nur bei N26, aber es ist wirklich wichtig. Wir haben eine 10-Zahl mit 10 Zeichen auf die Mastercard gedruckt. Und die muss man dann halt eingeben. Und im letzten Schritt muss man dann noch ein Token eingeben. Und dann ist erst das Unpairing fertiggestellt. Man muss zum Anfang auch ein Unpairing-Prozess eingeben. Und dann ist erst das Unpairing fertiggestellt. Zum Anfang brauchen wir also E-Mail-Account, Transfercode, Mastercard und die SIM-Card, um den Token mit PSMS bekommen. Eigentlich sollte man hier meinen, man kann nicht in allen davon Fehler machen. Wenn man jetzt auf den Button klickt, dann schicken Sie den Link als Antwort, den man dann in der E-Mail folgen muss. Es ist einfach da. Man braucht den E-Mail-Account nicht mehr. Es ist schon in der Antwort. Das nächste ist der Transfercode. Wir kommen gleich wieder zurück. Das nächste, was wir machen, ist die Mastercard-ID. Die ID ist auf die Karte gedruckt. Zugang zu der Karte haben wir leider nicht. Was machen wir jetzt? In der Übersicht sieht man sehr viel Information. Der Empfänger zum Beispiel. Wie es sich herausstellt, ist, dass die Mastercard-ID benutzen als Prefix für einen Nutzer. Das wird zwar den Nutzer nicht angezeigt, aber es ist in der Schnittstelle da. Das heißt, man kommt da ran. Okay, wir kennen jetzt immer noch den Transfercode nicht. Aber was wir machen können, ist, dass wir ihn zurücksetzen. Es braucht nur die Mastercard-ID, die wir bekommen haben. Man gibt die Mastercard-ID ein, wo ich gesagt habe, wie wir sie bekommen. Dann bestätigt man das. Dann bestätigen wir unseren neuen Transfercode. Deswegen brauchen wir den alten Transfercode nicht, weil die Mastercard-ID schon ausreicht. Das letzte Problem ist noch die SMS. Wir kommen nicht an die SIM-Card ran, wir haben kein Zugang zu dem Handy. Aber es ist eine 5-Zahl-Nummer und es ist auch nur ein Nummer. Es sind nur 100.000 Möglichkeiten. Das Login-Menü hat eine Brutforce-Absicherung, aber diese Schnittstelle nicht. Das Maximale, was ich aus dem Backend rauskitzeln konnte, waren 160 Anfragen pro Sekunde. Das heißt, es braucht so im Durchschnitt 5 Minuten, bis man den Token richtig hat. Das heißt, am Ende können wir eine Brutforce und dann sind wir da auch durch. So, und jetzt zur Demo. Mal schauen, ob es wirklich funktioniert. Wir locken uns jetzt in die App ein. Mal schauen, ob das Ganze verknüpft ist. Wenn das Ganze nicht verknüpft wäre, würden wir sehen, dass unser Handy verknüpft. Wir haben jetzt eine Stunde bar. Und jetzt starten wir unser Skript. Und in den 26 behauptet, dass das Ganze nicht skaliert. Das sind... Also, es passiert gerade alles. Und was wir erwarten, ist gerade das Brutforce-Sign. Und ich muss zugeben, ich hatte wirklich Glück, weil wir sind jetzt durch. Also, das ist die Antwort. Wir haben jetzt... Wir haben jetzt ein SMS-Token und das Telefon wurde anperrt. Jetzt schauen wir natürlich in der App nach, ob das funktioniert hat. Okay. Touch ID ist ausgelaufen. Das ist gut. Es hat sich was verändert. Wir locken uns jetzt mit unserem Passwort wieder ein. Und es fragt uns jetzt, dass wir das Phone neu pern verknüpfen. Also... Bevor ich... Sogar noch bevor ich es gesagt habe, das Ganze skaliert wirklich gut. Das einzige Problem ist, dass es drei E-Mails an den Muster schenkt. Wenn das anpairing funktioniert, hat der Transfercode-Enderung und das Passwort ändert. Also, der Diebstahl ist perfekt möglich. Gibt es eine Möglichkeit, das zu verhindern? Also, jetzt rufen wir mal der Kundensupport an. Der Kundensupport war... Der Customersupport ist die stärkste Stelle in dem ganzen Security-Modell. Es kann Sachen ändern, die selbst du noch nicht ändern kannst. Also, reden wir mal mit ihnen. Sie können also auch Phones anperren. Die Frage ist natürlich... Du kannst sie natürlich nicht einfach anrufen und sagen, bitte anpäre mein Phone mal bitte. Sie fragen nach einer Authentifizierung. Und nach, was sie fragen, ist natürlich die Mastercard-Eddie. Die kennen wir schon. Die... Die aktuelle Kontostand, den wir ja schon haben. Und was sonst noch fehlt, ist der Geburtsort. Aber wie immer, kann man die Information zwar nicht innerhalb der App sehen, es wird einfach nicht angezeigt, aber es ist da. Also, die wissen mehr über mich als sogar ich. Also, das bedeutet, wir haben jetzt alle Informationen, die wir haben wollen. Und wir können alles ändern, was wir wollen. Und der Nutzer wird keine E-Mail bekommen. Das ist wunderbar leise und versteckt. Ich habe schon gehört, ich habe nur 50 Euro auf meinem Account. Warum sollte mich das interessieren? Das ist ein valides Argument, weil viele... Es ist ein valides Argument, weil viele... 26 Accounts aufgemacht werden aus der Interesse. Und viele sind inaktiv oder werden nicht ernsthaft benutzt als... als Gehaltskonto genutzt. Man benutzt vielleicht noch ein bisschen was zu zahlen, aber nicht wirklich viel. Also, es ist nicht viel Geld drin. Aber, dass das der finanzielle Hub sein will für alle... alle Services, kann man das Konto überziehen. Es wird nämlich innerhalb von 2 Minuten überzogen. Und man hat garantiert 50 Euro und nur bis zu 2.000 Euro. Und man braucht dazu nur das gepährte Device. Aber was haben wir denn gerade gemacht? Wir haben das Gerät reset. Wir haben das Carpentage and Account. Wir haben das Carpentage and Account. Wir nehmen dann ein anderes und nehmen das ganze Geld, was es dort gibt. Selbst wenn du kein Geld auf deinem Konto hast, bist du nicht sicher, weil wir können das überziehen. Also, das war... echt was. Ich möchte nur kurz über die Disclosure reden, bevor ich zum Schluss komme. All diese Fehler habe ich zu N26 gesagt. Ich habe den Kontakt nicht hergestellt. Das hat der CCC gemacht. Ich habe das gemacht, weil der nicht sicher war, wie N26 darauf reagieren wurde. Aber sie haben sich wirklich professionell verhalten. Und sie waren sehr dankbar, dass ich diese Sicherheitslücken gefunden habe und ihnen auch Bescheid gesagt habe. Danach haben sie nach und nach die Probleme behoben. Ich habe keine Ahnung, wann sie das erste Mal den Fehler behoben haben. Den letzten, von dem ich wusste, war am 13. September, wenn sie das Zertifikat Pending eingebaut haben. Aber ich muss auch sagen, ich habe es nicht gecheckt, aber anscheinend sind alle Fehler behoben. Aber was sind die Konsequenzen aus dieser Frage? Es ist klar, dass N26 so wichtig ist, aber was sind die Konsequenzen aus der Frage? Was sind die Konsequenzen aus der Frage? N26 muss wirklich mehr Fokus auf Sicherheit legen. Es ist nicht genug, einfach Mobile Firsts und Safety Firsts zu sagen und schicke Videos zu liesen. Sondern Sicherheit ist wirklich wichtig und es sollte nicht nur ein Slogan sein. Wenn man sich mal anschaut, dann haben sie irgendwie 44 offene Positionen, aber nicht allen Einige beschäftigt sich mit der ST-Sicherheit. Man vertraut normalerweise der Bank, dass sie mit meinem Geld sinnvoll umgehen. Aber es ist halt ... Und dann muss man halt auch die Bankin-Situation anschauen. Also Barfin hat irgendwie vor ein paar Monaten erst die Bankenlizenz gegeben und da sollte man sich einmal Gedanken machen, dass sie auch an die Sicherheitsrisiken bei den Banken anschauen und nicht nur andere Sachen. Vielen Dank. Vielen Dank, Vincent. Das war super und auch irgendwie ein bisschen ängstigend. Wir haben nur wenig Zeit für Fragen. Gibt es Fragen für Vincent? Ich denke, jeder löscht gerade seine Banking-Apps. Nummer 6 da. So, schnelle Frage. Weißt du, ob sie verboten haben, dass alte Apps sich noch weiter verbinden mit der API? Also wenn jemand seine App noch nicht aktualisiert hat? Also ja, jemand mit einer alten App wäre noch attackierbar. Also sie wissen nicht so genau, welches Gerät du benutzt. Und ja, deswegen wissen sie auch nicht, ob du so noch eine alte Version benutzt. Vielen Dank für den Talk. Haben Sie dich eingeladen, auch eingeladen, den Talk bei Ihnen zu halten? Ja, wir waren in Kontakt und Sie haben mich auch eingeladen, den Kontakt bei N26 zu halten und ich habe da auch einen Workshop gemacht. Ja, stimmt auch wirklich. Nummer 5. Du hast kurze Läden, ein Kript genannt, und du hast das nur so kurz genannt, aber weißt du da, was ich nicht weiß? Du hast gesagt, dass du ein Letzend Kript certificate kommen hast. Wie hast du das gemacht? Ja, das habe ich nicht gemacht, aber das war ein mögliches Szenario. Ich habe den DNS-Record nicht wirklich übernommen. Vielen Dank für das Kommen und einen Applaus für Vincent.