20.000 Accounts erstellt: Hacker erschleichen sich Uber-Freifahrten
Mit einem einfachen Trick gelingt es, die Verifizierung der Telefonnummer bei neuen Accounts von Uber und ähnlichen Services zu umgehen - und sich etwa Freifahrten zu erschleichen. Beim Uber-Konkurrenten Lyft ist damit sogar die Übernahme bestehender Accounts möglich.

Mit einem einfachen Brute-Force-Angriff lassen sich über die API des Fahrdienstleisters Uber innerhalb kürzester Zeit unzählige Accounts anlegen. Graeme Neilson von der Firma Redshield und Vladimir Wolstencroft von der Firma Aura Information Security haben diese Möglichkeit auf der Troopers-Konferenz in Heidelberg präsentiert. Damit sind theoretisch Freifahrten möglich, es lässt sich aber auch die Preisbildung von Uber manipulieren. Ein noch gravierenderes Problem besteht beim Uber-Konkurrenten Lyft.
Die Uber-App kommuniziert mit den Servern über eine JSON-API. Der Datenverkehr zum Server wird mittels TLS verschlüsselt, die App nutzt dabei Key Pinning, um eine Verbindung mit anderen Servern zu verhindern. Somit ist eine triviale Analyse des Datentraffics nicht möglich. Doch dieses Pinning zu umgehen, war relativ einfach: Nach dem Entpacken der Android-APK für die Uber-App gelang es den Forschern, einen zusätzlichen Root-Key in den Keystore der App einzufügen. Anschließend ließ sich der Datenverkehr mittels eines TLS-Proxys beobachten, genutzt wurde dafür das Tool Burp Suite.
Viele Daten werden übertragen
Aus den Daten ging schnell hervor, dass die Nutzung von Uber aus Datenschutzgründen nicht ganz unproblematisch ist. Die App überträgt eine Menge an Daten über ihre Nutzer. Einige davon sind nachvollziehbar, etwa die aktuelle GPS-Positionierung. Aber auch Daten wie der aktuelle Batteriestatus oder die Nutzung von WLAN-Netzen werden an Uber übertragen. Der Konkurrent Lyft überträgt sogar, ob ein User die App vom Konkurrenten Uber auf demselben Smartphone installiert hat.
Die API ermöglicht auch Dritten, potenziell problematische Informationen auszulesen. Durch entsprechende API-Anfragen kann man etwa sämtliche Uber-Fahrer in einer ganzen Stadt lokalisieren.
Uber bietet Neukunden einen Promo-Code, der Fahrten zum Preis von 20 US-Dollar ermöglicht. Insofern könnte man sich, um den Dienst kostenlos zu nutzen, schlicht permanent neue Accounts anlegen. Die Uber-API ermöglicht das automatisiert. Doch dabei gibt es eine Hürde: Ein Account ist an eine Telefonnummer gebunden - und diese wird mittels eines vierstelligen Codes geprüft, der an diese Nummer als SMS geschickt wird.
Zunächst suchten Neilson und Wolstencroft nach einer Methode, möglichst günstig an eine Telefonnummer zu kommen. Sie stießen dabei auf den Service Twilio, bei dem man Telefonnummern in großer Zahl für einen US-Dollar pro Nummer nutzen und dort SMS empfangen kann. Die Ironie dabei: Uber selbst nutzt ebenfalls Twilio für seine Services. Damit gelang es, zum Preis von einem US-Dollar einen Account anzulegen, der anschließend einen Freifahrtschein im Wert von 20 US-Dollar bietet.
Vierstelliger Code lässt sich durch Raten umgehen
Doch Accounts lassen sich noch einfacher und gänzlich ohne Kosten anlegen. Da der per SMS verschickte Verifizierungscode lediglich vier Stellen lang ist, besteht bereits bei einmaliger Eingabe des Codes eine Chance von 1:10.000, dass man den richtigen Code errät, wenn man lediglich einen Zufallswert verwendet. Die API lässt zudem mehrere Versuche beim Eingeben des Codes zu, nach einigen Fehlversuchen wird ein neuer Code versendet. Ist man nun in der Lage, in hoher Geschwindigkeit neue Accounts anzulegen, kann man durch simples Raten der Codes Accounts anlegen, ungefähr jeder zehntausendste Versuch, einen Code einzugeben, wird klappen. Offenbar implementiert Uber keinerlei Ratelimiting. Neilson und Wolstencroft gelang es, 20.000 Uber-Accounts in kurzer Zeit erfolgreich anzulegen.
Neben der offensichtlichen Möglichkeit, sich durch derartige Accounts unbegrenzt Promo-Codes zu erschleichen, sind weitere Angriffsszenarien denkbar. So könnte man schlicht sämtliche Uber-Fahrer in einer Stadt beschäftigen, indem man sinnlose Fahrten bucht. Da Uber seine Preise automatisiert bildet und bei hoher Nachfrage die Preise ansteigen, ließen sich damit auch die Preise für Uber-Kunden manipulieren. Denkbar wäre etwa, dass Uber-Fahrer selbst derartige Techniken anwenden, um höhere Preise zu erzielen.
Die Brute-Force-Technik zum Anlegen von Accounts funktioniert auch beim Uber-Konkurrenten Lyft. Doch hier ist noch eine weitere, weit gravierendere Lücke zu finden: Errät man hier korrekt einen Verifizierungscode für eine Telefonnummer, für die bereits ein Account existiert, kann man diesen Account - samt Zahlungsinformationen - übernehmen.
Dass ein vierstelliger SMS-Code keine sonderlich sichere Authentifizierungsvariante ist, sei eigentlich bekannt, betonen Neilson und Wolstencroft. Sie hätten die Lücke daher auch nicht an die Firmen gemeldet - es handle sich um eine Designentscheidung. Die beiden Sicherheitsforscher gehen nicht davon aus, dass Uber und Lyft ihre Anmeldeprozedur ändern. Denn die Firmen hätten vor allem ein Interesse daran, möglichst viele Kunden zu bekommen - und würden daher die Anmeldeprozedur so einfach wie möglich gestalten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
gar nicht. Schau dir mal die Baukästen an, die es so für Apps gibt. Gibt sowas für die...
Also ganz genaugenommen war die Formulierung natürlich nicht korrekt. Es wird nicht exakt...
Also, ich kann mir Pro Stunde 1000000 Mail Adressen Erstellen. Pro Account kann ich dies...