USSD-Exploit: Alle Infos auf einen Blick
Das gestern entdeckte Android-Sicherheitsproblem ist schwerwiegender als ursprünglich gedacht. Nicht nur Samsung-Smartphones sind davon betroffen, sondern eine ganze Reihe weiterer Geräte. Wir geben einen Überblick.
Der Stein des Anstoßes
Am 21. September hielt der indische Entwickler Ravi Borgaonkar auf der Sicherheitskonferenz Ekoparty in Buenos Aires einen Vortrag zum Thema „Der Missbrauch von USSD-Code in Mobilfunknetzen“. Um zu demonstrieren, welche Sicherheitsprobleme mit dieser Thematik verbunden sind, "löschte" er ein Samsung Galaxy S2, indem er mit dem Gerät eine präparierte Website besuchte.
Wie geht das?
Borgaonkar hat den USSD-Code *2767*3855# auf dem Galaxy S2 ausgeführt, der das Telefon auf Werkseinstellungen zurücksetzt. Alle Apps und persönlichen Einstellungen sind futsch. Persönliche Daten wie Fotos oder Videos bleiben aber erhalten, wenn sie auf der microSD-Karte gespeichert werden.
Link zum Video
Was ist ein USSD-Code?
Über USSD-Codes lassen sich seit Jahren auf dem Telefon Aktionen ausführen. Sie werden vor allem von Netzbetreibern eingesetzt, um den Kunden den einfachen Zugang zu vorkonfigurierten Diensten zu bieten: Rufumleitungen, Guthabenabfragen, Multi-SIM-Funktionen – alles sehr leicht steuerbar, indem der Nutzer im Telefonmenü eine Zahlen-Zeichenkombination (zum Beispiel *111#) wählt und auf "Anrufen" tippt.
Diese Kurzbefehle werden auch von vielen Herstellern benutzt, um Systemfunktionen anzusteuern. Sie sind aber vor allem für den internen Gebrauch gedacht und werden daher nur selten nach außen kommuniziert.
Wo ist das Sicherheitsleck?
Wenn man einen USSD-Code ausführt, muss man ihn in das Tastenfeld seines Telefons eingeben und auf „Anrufen“ tippen. Borgaonkar gelang es aber, diesen Code im Hintergrund automatisch auszuführen, ohne dass der Nutzer etwas davon mitbekommt.
Dafür nutzte er ein Feature, das zum Standard-Repertoire von Smartphones gehört: Die Verknüpfung des Browsers mit der Telefon-App. Das heißt: Wenn ich im Browser auf eine Telefonnummer tippe, dann öffnet sich direkt die Telefonanwendung mit der Nummer und ich muss nur noch auf „Anrufen“ tippen. Der dafür erforderliche HTML-Code lautet:
<a href="tel:xyz">Klicken Sie hier, um uns direkt anzurufen</a>
Jetzt könnte man die Telefonnummer "xyz" auch einfach mit dem dem USSD-Code *2767*3855# ersetzen, in unserem Beispiel hieße das:
<a href="tel:*2767*3855#">Klicken Sie hier, um uns direkt anzurufen</a>
Der oben angeführte Befehl setzt voraus, dass der Nutzer auf einen Link klickt, damit die Nummer angewählt und die Telefon-App gestartet wird. Borgaonkar hat diesen Befehl allerdings in einen Frame eingebettet. Das sieht dann so aus:
<frameset><frame src=“tel:*2767*3855#" /></frameset>
Wenn dieser Frame auf einer Website platziert wird, wird ein Telefon, das diese Website besucht, sofort und ohne Rückfrage versuchen, diese Nummer anzuwählen. Aber auch das stellt an sich noch kein Problem dar. Denn wenn ich eine derart präparierte Website mit meinem Smartphone besuche, wird die Telefon-App zwar mit dieser Nummer gestartet, ich muss aber explizit auf "Anrufen" tippen, damit irgendetwas passiert.
Das Sicherheitsleck besteht darin, dass bestimmte Smartphones diesen Anruf starten, ohne noch einmal mit dem Anwender zu interagieren. Vielmehr wird der Anruf sofort im Hintergrund durchgeführt. Und wenn sich hinter der Nummer keine Telefonnummer, sondern ein entsprechender USSD-Kurzbefehl versteckt, gibt es ein Problem. Im konkreten von Borgaonkar demonstrierten Fall heißt das: Das Galaxy S2 besucht eine entsprechend präparierte Website und startet sofort den Factory Reset, ohne dass der Nutzer überhaupt weiß, was los ist.
Also kein Samsung-Sicherheitsleck sondern ein Android-Problem?
Ja. Beim Ausführen von USSD-Codes im Hintergrund über eine präparierte Website scheint es sich um ein herstellerübergreifendes Problem zu handeln. Samsung hat nur das Pech gehabt, dass sein USSD-Löschbefehl bekannt ist und zu Demonstrationszwecken herhalten musste.
[Update vom 27.09: heise gelang es jetzt, die SIM-Karte bei einem HTC One XL zu sperren.]
Gibt es noch andere Einfallstore?
Ja, alle Apps und Anwendungen, die mit dem Browser verknüpft sind und diesen automatisch auf eine Website führen können. Dazu gehören QR-Codes, NFC-Tags und WAP-Push-Nachrichten.
Zwei Galaxy S3 nach dem Besuch der Test-Website http://www.isk.kth.se/~rbbo/testussd.html. Auf dem linken Modell ist die neueste Samsung-Firmware installiert (Android 4.1), auf dem rechten läuft ein CM9 (Android 4.0.4) / (c) AndroidPIT
Welche Telefone sind betroffen?
Bisher ist bekannt, dass das Sicherheitsleck nicht nur hersteller- sondern auch versionsabhängig ist. Geräte mit Android 4.1 Jelly Bean scheinen nicht betroffen zu sein. Anders sieht es dagegen bei Android 4.0.4 und 4.0.3 aus, hier sind entsprechende Fälle dokumentiert. Komplizierter wird es dadurch, dass auch der Browser (Chrome oder Android nativ) eine Rolle spielt.
Folgende betroffene Modelle und Versionen sind bisher bekannt:
- Samsung Galaxy S3 (ist nur betroffen, wenn ein Custom ROM mit Android 4.0.X installiert ist, die originale Firmware von Samsung ist sicher)
- Samsung Galaxy S2
- Samsung Galaxy S
- Samsung Galaxy Ace, Beam und S Advance
- Samsung Galaxy Note mit Android 4.0.3
- Samung Galaxy Tab GT-P1000
- HTC One S
- HTC One X
- HTC One V mit Android 4.0.3
- HTC Sensation (XE) mit Android 4.0.3
- HTC Desire HD
- HTC Desire mit Android 2.2.2
- HTC Legend
- HTC Evo 3D mit Android 4.0.3
- HTC Desire Z
- HTC Incredible S
- HTC Tattoo mit Android 1.6
- Motorola Milestone
- Motorola Atrix 4G
- Motorola Atrix 2 mit Android 2.3.6
- Motorola Razr mit Android 2.3.6
- Huawei Ideos X3 mit Android 4.0.3
- LG P990 Optimus Speed
- Sony Ericsson Xperia Play mit Android 2.3.4
- Sony Ericsson Xperia Neo mit Android 4.0.4
- Sony Ericsson Xperia Arc S mit Android 2.3.4
Wenn ihr herausfinden wollt, ob auch Euer Telefon betroffen ist, surft einfach diese Website an, auf die auch Borgaonkar verweist: http://www.isk.kth.se/~rbbo/testussd.html. Wenn ihr danach sofort die IMEI-Nummer seht, führt Euer Modell im Hintergrund ohne Rückfrage USSD-Befehle aus.
Wie kann ich mich schützen?
Wenn ihr einen alternativen Dialer installiert, kommt immer erst die Rückfrage, mit welcher Telefon-App ihr den Anruf ausführen wollt. Die Dialer-App darf dabei natürlich nicht als Standard festgelegt sein, da sonst das Dialog-Fenster nicht erscheint.
Entwickler und AndroidPIT-Community-Mitglied Jörg Voss hat außerdem ein kleines Tool geschrieben, das einen solchen Dialer emuliert. Damit könnt Ihr Euch ebenfalls vor Angriffen schützen, ohne gleich einen vollständigen Dialer auf das Telefon zu packen. Ihr könnt NoTelURL direkt aus dem Play Store installieren.
NoTelURL: Die App von Jörg Voss emuliert einen Dialer / (c) Anbieter
In jedem Fall gilt: Vor einem Telefonat wird immer erst ein Zwischendialog eingeblendet. Es gibt aber momentan keine elegantere Lösung, vielmehr sind jetzt die Hersteller gefragt. Sie müssen Updates ausliefern. Samsung hat das bereits angekündigt.
Fazit: Wie groß ist die Gefahr für mein Telefon?
Dass sich über den Besuch einer Website USSD-Code im Hintergrund ausführen lässt, ist zweifelsohne ein schwerwiegendes Sicherheitsleck. Allerdings sollte man auch die Kirche im Dorf lassen: Bisher sind keine entsprechenden Fälle in freier Wildbahn bekannt, bei denen diese Lücke ausgenutzt wurde.
Diskutiert auch in unserem Forum zu dem Thema!
Titelbild: kwe/Tony Hegewald/pixelio.de
Auch das ZOPO ZP300 Field ist betroffen Android 4.0.3
Mein LG P880 scheint nicht betroffen zu sein, Dialer öffnet sich aber es wird nicht automatisch gewählt.
Sony Xperia S (Stock) mit 4.0.4 sauber, also nicht betroffen. :-D
Dialer öffnet sich zwar, aber das wär's dann auch schon.
Huawei MediaPad, Android 4.0.3 ist ebenfalls betroffen :-(
Wie ein Vorredner schon meint nur weil sich ein Popup mit der IMEI öffnet heißt es doch noch lange nicht das auch der Reset Befehl funktioniert! Und das machen die User ohne Root & Nandroid Backup bestimmt nicht mal eben zum testen. Deswegen sind für mich die momentanen Tabellen mit anscheinend betroffenen Geräten welche zumeist von Usern hier und dort zusammen getragen wurden eher nicht representativ.
Im Blog steht das S3 wäre nun sicher.
Bei Frauchen zeigt IMEI an ,Android 4.0.4 Original.
Hier noch ein Report,
das HTC Desire S mit Android 4.0.4 (Stock) und Sense 3.6 ist auch betroffen.
(USSD-Blocker hilft)
Roi
Lookout scannt die Nummern mittlerweile auch.
Die App NoTel URL wurde soeben im Market upgedatet:
Neue Funktionen in dieser Version 1.1
* abgefangene USSD Codes werden in einem Popup angezeigt
* Abgefangene Telefonnummern sind ab ICS und aufwärts direkt wählbar
* Android 2.0.1 Devices können die App nun auch installieren
Hier noch mal die URL: https://play.google.com/store/apps/details?id=com.voss.notelurl
Viel Erfolg damit
Nach Installation der App und nochmaligem Test :
Grauer Hintergrund mit vordergründigem Button (App und Telefonhörer).
Keine Nr. mehr ! DANKE
HTC One X 4.0.4 zeigt IMEI-Nr.(mit manueller Bestätigungstaste "ok") an mit geöffneter Telefontastatur im Hintergrund.
samsung galaxy s2/android 4.0.4 kein branding. imei wurde beim test angezeigt, problem durch die "Dialer One" app aber behoben.
HTC Desire @MIUI 2.9.21 4.0.4
Motorola Razr 2.3.6
beide Geräte sind eben so betroffen
GDATA hat nun auch einen USSD Blocker in den Play Store gestellt. Er fängt die tel URLs ab und zeigt die abgefangenen Codes an. https://play.google.com/store/apps/details?id=de.gdata.labs.telurlblocker
Danke für die schnelle Antwort :-)
@Freakout: Ich wäre mir da nicht so sicher: Das Cyanogen-Team schreibt folgendes auf Google+:
"Panic! Or remain calm and grab your towel. There are various (and sometimes contradictory) reports going around about which devices are vulnerable and which are not. It is largely perceived that AOSP devices are not affected. Regardless, a bit of certainty goes a long way, so here is what we know:
Three patches were merged into AOSP in June by Daisuke Miyakawa (of Google) to rectify the issue. This would effectively mean JB sourced ROMs are immune (CM 10 included). Likewise, it would appear some OEMs have independently patched the behavior.
So, we are taking Daisuke's work, and after testing, back-porting it into CM7 and CM9 source (ICS patch is already on gerrit http://goo.gl/SuuWH and GB patch is http://goo.gl/zDuca). Testers are wanted, just to make sure there are no adverse behaviors. "
https://plus.google.com/+CyanogenMod/posts/DERxg7p3aLm
laut android hilfe sind aosp roms sicher
www.android-hilfe.de/custom-roms-fuer-samsung-galaxy-s2/225822-aosp-rom-ics-29-08-12-cyanogen-mod-9-1-fragen-antworten-diskussionen-1097.html
nutze sgs2+cyanogenmod 9.1 und bin etwas verunsichert :)
Da bin ich erleichtert ich habe ein S3 mit Original Samsung Firmware.
moin zusammen.
es gibt mittlerweile eine weitere App zum blocken unerwünschter ussd-Codes:
Auto-Reset Blocker
https://play.google.com/store/apps/details?id=net.gicode.android.autoresetblocker
Sieht meines Erachtens nach einer guten Alternative zum hier vorgestellten fix aus - der natürlich auch gut ist.
@Bernd E: Das ist möglich. Allerdings wird dabei die Telefon-App eingeblendet. Du siehst also was passiert und kannst es unterbinden.