Tausende Android-Apps geben geheime Schlüssel preis
Viele Android-Programme betten geheime Zugangsschlüssel direkt in ihren Quellcode ein. Ein Angreifer kann diese nutzen, um private Daten der App-Nutzer zu erbeuten und im schlimmsten Fall die Server-Infrastruktur der Entwickler übernehmen.
- Fabian A. Scherschel
(Bild: Garcia, Nieh, Viennot)
Drei Forscher der Columbia Universität in New York haben mit einem aufwendigen Verfahren über eine Million Apps aus Google Play untersucht und fanden Tausende von geheimen Zugangs-Tokens für die Amazon Web Services (AWS) Konten der App-Entwickler und OAuth-Zugangsdaten, die es ihnen in einem Fall sogar erlaubt hätten, die persönlichen Daten von Millionen von Facebook-Nutzern zu kompromittieren. Trotz Warnung von Amazon und Diensten wie Facebook sind die Entwickler vieler, zum Teil auch sehr populärer Android-Apps unvorsichtig genug, die geheimen Schlüssel fest in den Quellcode einzubauen. Bereits im März hatten Forscher Zehntausende AWS-Zugangsdaten auf GitHub entdeckt.
Wie die drei Informatiker Garcia, Nieh und Viennot bei ihren Untersuchungen feststellten, sind die AWS- und OAuth-Token sehr einfach zu finden, wenn man die entsprechenden App erst mal zurückübersetzt hat. Das von den Forschern mit Hilfe von vielen Open-Source-Projekten wie Ruby, Git und Elastic Search zusammengebaute Tool PlayDrone macht dies automatisch. Änderungen am Code eine App werden bei jedem Release in Git eingetragen; jede untersuchte App hat ihr eigenes Repository. PlayDrone untersucht den Quellcode der Apps dann automatisch nach den Merkmalen von geheimen Zugangs-Tokens – so beginnen zum Beispiel AWS-Credentials mit der Buchstabenfolge "AKIA". PlayDrone kann Hunderttausende von Android-Apps aus Google Play indizieren, herunterladen und automatisch dekompilieren.
Eingebettete Zugangsdaten erlauben das Kapern von Server-VMs
Auf diese Weise haben die Forscher vollautomatisch den Code von über 880.000 Apps untersucht. So fanden sie innerhalb eines Tages 308 gültige AWS-Zugangsdaten sowie 6228 OAuth-Token für Twitter und 460 für Facebook. Bei einer Überprüfung fünf Monate später waren, je nach Dienst, zwischen 95 und 71 Prozent dieser Zugangsdaten immer noch gültig. In einen besonders schlimmen Fall, der Couchsurfing-App Airbnb, war OAuth so miserabel konfiguriert, dass ein Angreifer mit dem erbeuteten Token die Facebook-E-Mails und Freundeslisten von Millionen von Facebook-Nutzer hätte einsehen können.
(Bild: Garcia, Nieh, Viennot)
Viele der AWS-Zugangsdaten waren sogenannte Root-Credentials, die einem Angreifer volle Kontrolle über die virtuellen Maschinen der App-Entwickler in der Elastic Compute Cloud (EC2) gegeben hätten. Ebenso hätte er alle in im Cloud-Speicher S3 gehosteten Inhalte frei abrufen können. Mit den virtuellen Maschinen der 288 betroffenen Konten hätten Angreifer ein brauchbares Botnetz auf Kosten der App-Entwickler hosten können.
Vernichtendes Urteil gegenüber den App-Entwicklern
Die drei Forscher der Columbia Universität kommen zu dem Schluss, dass viel zu viele Entwickler es nicht schaffen, den gängigen, von den API-Dokumentationen empfohlenen Umsetzungen zu folgen und statt dessen aus Faulheit oder Unwissen geheime Schlüssel direkt in den Quellcode einbetten. Den Entwicklern sei offenbar nicht bewusst, wie einfach es sei, ihren Quellcode zurück zu übersetzen. So empfiehlt zum Beispiel Amazon den Einsatz temporärer Zugangsdaten (sogenannte IAM Roles) und Google favorisiert seit Android 2.2 den Einsatz von OAuth 2.0 mit Token, die auf dem Gerät dynamisch generiert werden. Facebook empfiehlt Entwicklern, den geheimen Schlüssel auf einem Server zu lagern und Anfragen der App an Facebook durch diesen Server zu leiten.
Von den Forschern über die Problematik informiert, haben Facebook, Twitter und Amazon reagiert. Die betroffenen Zugangsdaten wurden gesperrt und die Entwickler kontaktiert. Auch Google wolle nun an den Schutzfunktionen von Google Play arbeiten, um entsprechende Schlüssel in den Apps zu erkennen und die Entwickler zu warnen. Die Forscher haben der Firma zu diesem Zweck Teile ihres PlayDrone-Systems zur Verfügung gestellt.
Die vollständige Untersuchung mit dem Titel "A Measurement Study of Google Play" kann bei der Columbia Universität heruntergeladen werden. Die Studie enthält neben der Analyse der Sicherheitsprobleme noch weitere faszinierende Erkenntnisse zur Größe und Zusammensetzung des Play-Ökosystems. (fab)