Unternehmen, die die angestaubte Bankenbrache revolutionieren wollen, sind stark im kommen und bekannt unter dem Buzzword „FinTech„. Deutschlands aufstrebendes FinTech N26 hat einige Fehler in ihrer Mobile Banking-App gehabt, die für kritische Sicherheitslücken gesorgt haben. Vincent Haupert hat auf dem 33C3 seine bei N26 entdeckten Sicherheitslücken im Detail vorgestellt. Was dem deutschen FinTech zu Gute gehalten werden muss: Sie haben professionell reagiert, anscheinend alle von ihm entdeckten Sicherheitslücken gestopft und Vincent zu sich eingeladen, der die Entwickler dann in Workshops geschult hat. Der Vortrag ist auf englisch. Eine deutsche Simultanübersetzung findet Ihr hier.
Geld klauen während es überwiesen wird
Das Hauptproblem war die geschwätzige API von N26, die von Vincent durch fehlendes Zertifikatspinning und damit einer möglichen Man-in-the-Middle-Attacke abgehört und natürlich auch manipuliert werden konnte. Fehlendes Zertifikatspinning meint, dass die App jedem Zertifikat vertraut, statt nur einem Bestimmten: dem von N26. So stellt es kein Problem dar, während einer Geldtransaktion Betrag und Empfänger zu ändern. Du denkst, du hast an deinen Freund überwiesen? Erst später, wenn N26 clientseitig in der App gemerkt hat, dass das nicht stimmt, wird dies in der Kontoübersicht korrigiert. Dann wurde auf einmal mehr Geld an den falschen Empfänger überwiesen.
N26 Account kapern
N26 bietet es an sein Adressbuch zu checken, wer ebenfalls N26-Nutzer ist. Ist ja auch praktisch, um zu wissen, welchen seiner Freunden schnell Geld geschickt werden kann, wenn es um das Teilen einer Rechnung geht. Dem Datenschutz zu Leide ist der Adressbuch-Abgleich immer unhashed geschehen. Um also erstmal herauszufinden, wer N26 nutzt, war es für Vincent sehr praktisch die rund 68 Millionen geleakten Dropbox-Mailadressen über N26 API programmatisch abzufragen. Eigentlich sollte hier ein Limit oder das automatisches Erkennen von ungewöhnlichem Verhalten via Fraud Detection anschlagen und verhindern, das einfach mal ebenso 68.000.000 E-Mailadressen unbefugt abgeglichen werden.
Dadurch weiß Vincent, wer N26 nutzt und kann den Dropbox-Leak gleich dafür nutzen, mittels Spear Phishing-Taktik die N26-Nutzer anzuschreiben und um das Ändern Ihres Passworts auf seiner gefakten N26-Webseite zu bitten. Natürlich nur unter Eingabe des vorherigen (und aktuellen) Passworts. Bingo! Alternativ ist das bei Dropbox genutzte Passwort des Opfers dasselbe bei N26.
Geld über Siri verschicken
Wer jetzt denkt, dass nur mit den Logindaten noch kein Geld verschicken möglich ist, irrt sich. N26 ermöglichtes mit dem Sprachassistenten Siri schnell und einfach Geld zu verschicken. Leider so einfach, dass über die N26 API die Transaktion nicht verifziert wird. Zudem ist für das Verschicken mit Siri das Smartphone als „Paired Device“ nicht notwendig. So war es dann für Vincent auch kein Problem 2.000 Überweisungen je 1 Cent über die Programmierschnittstelle zu tätigen. Hier sprang ebenfalls keine Fraud-Detection an.
Lediglich drei Wochen später wurde der Empfänger der 1 Cent-Überweisungen angeschrieben, was es mit den Transaktionen auf sich hat und wollte den Account, der die 1 Cent Überweisungen angewiesen hat, sperren.
Das ist als würde Gmail deinen Account sperren, weil Du Spam geschickt bekommen hast
Die Logindaten reichen bereits aus, um das Konto zu plündern.
Paired Smartphone als unsicherer, zweiter Faktor
Bei der zwei Faktor Authentifizierung ist zumeist der eine Faktor das Passwort plus Loginname und der andere Faktor meist ein physisches Gerät. Bei N26 ist es das gekoppelte Smartphone, womit dann auch das Geld gesendet werden kann. Als Angreifer ist es das Ziel auch diesen zweiten Faktor auszutricksen. Folgende vier wichtigen Schritte gilt es zu überwinden:
- Link via Mail zum Entkoppeln
- Transfer Code eingeben
- Master Card ID eingeben
- SMS-Tan eingeben
Schritt 1 lässt sich einfach überwinden: Die N26 API sendet den in der E-Mail enthaltenen Link einfach so als Antwort. Schritt 3 ist notwendig als erstes auszutricksen, denn Schritt 2 stellt dann kein Problem mehr da, denn mit Hilfe der Master Card ID lässt sich der Transfer Code zurücksetzen. Praktisch, dass bei jeder Transaktion für die die Mastercard benötigt wird, die Master Card ID als Präfix für die Transaktions-ID genutzt wird.
Bleibt nur noch der letzte Schritt. Dieser wäre auch nicht so leicht zu überwinden, aber die SMS-Tan ist eine 5-stellige Zahl, die über die N26 API gebruteforced werden kann. Tada! Jetzt ist das alte Smartphone entkoppelt und der Angreifer kann seine eigenes Smartphone koppeln, um im Anschluss Überweisungen ungehindert tätigen zu können. Vincent hat hier 160 Anfragen in der Minute an die API stellen können, was ungefähr 5 Minuten gedauert hat, um die richtige Tan programmatisch zu „erraten“. Eine Limit bei „Falscheingabe“ hätte hier ebenfalls schon einen Riegel vorgeschoben.
Wie schnell dieser Angriff gehen kann, zeigt Vincent im Vortrag mit Hilfe eines dafür erstellten Python-Scripts.
Legitimation beim N26 Support macht das Stehlen lautlos
Der N26 Support hat einige Berechtigungen mehr als der Nutzer selbst und kann bspw. die Mailadresse ändern, was in der App z.B. nicht möglich ist. Bei der vorangegangenen Angriffsmethode zum Entkoppeln des Smartphones wären allerdings ein paar E-Mails sowie eine SMS-Tan an den Inhaber des Accounts gegangen. Um dies zu verhindern, wäre es praktisch die E-Mail-Adresse vorher zu ändern. Über den Support auch als Angreifer möglich: Zur Authentifizierung am Telefon ist nur der aktuelle Kontostand, die Master Card ID und der Geburtsort nötig.
Bis auf den Geburtsort hat der Angreifer bereits durch die zuvor gezeigten Schritte Master Card ID und natürlich über die API den aktuellen Kontostand bekommen. Wäre es nicht super, wenn die API auch den Geburtsort liefert, obwohl dieser nirgends in der App genutzt wird? Genau, der Geburtsort wird auch über die API geschickt. Somit kann dann auch das N26 Konto lautlos ohne zur Kenntnisnahme des Opfers geplündert werden. Änderungsmails an die vorherige E-Mail-Adresse gehen seitens des Supports bis vor kurzem auch nicht raus.
Fazit
N26 hat professionell reagiert und Vincent eingeladen sich in Sachen Sicherheit zu verbessern. Das ist auch nötig, denn auch wenn für viele N26 erstmal wie Paypal nur für kleine Geldbeträge genutzt werden und eher weniger bspw. als wichtiges Gehaltskonto genutzt wird, kann wesentlich mehr Geld erbeutet werden. N26 bietet bspw. auch schnell einen Dispositionskredit von 2.000 Euro an, über die ein Angreifer nach Beantragung und automatischer Genehmigung innerhalb von 2 Minuten verfügen kann.
Ich finde die Ergebnisse von Vincent Haupert sehr wichtig und auch wenn es zwischendurch sehr lustig ist, ist es sehr wichtig, dass diese Sicherheitslücken nicht bestehen bleiben. Unsere Bankkonten sind systemrelevant und welcher wirtschaftliche Schaden würde entstehen wenn binnen Minuten Milliarden fehlen? Das mag man sich nicht ausmalen. Ich finde es gut, dass FinTechs das angestaubte Bankwesen aus dem Mittelalter zu holen, aber darf natürlich nicht mehr wert auf Einfachheit und Design legen als auf Sicherheit.
Die PR-Abteilung sollte nicht die Sicherheit beeinflussen
Zeige Kommentare (2)
Einfach klasse, wie das hier läuft. Solche Beiträge machen richtig Spaß zu lesen und man erhält einen echten Mehrwert durch sie. Ich bedanke mich ganz herzlich für die Informationen. Hätte das gar nicht gewusst.
Vielen Dank für diesen super informativen Beitrag. Ich frage mich, warum der Gesetzgeber von den Herstellern solcher Mobile-Banking-Apps nicht von vorn herein eine Zertifizierung hinsichtlich Datenschutz und Sicherheit vorsieht. Jedoch muss ich aus unserer betrieblichen Praxis auch etwas berichten: Unser Unternehmen nutzt gerade aus dem Misstrauen gegenüber der Sicherheit heraus den guten alten Papier-Überweisungsträger für Überweisungen. Dennoch wurden vor gut 3 Wochen zweimal 9000,-€ vom Geschäftskonto abgebucht. Die Bank hatte das zum Glück selbst frühzeitig erkannt und das Konto gesperrt. Ursache: Das Konto wurde "gehackt". Nun erstatten wir Anzeige bei der Polizei. Offensichtlich ist also gar nichts mehr sicher vor den Hackern, und da heißt es: "Augen auf und Ohren gespitzt...". :-)