Android angreifbar über Google Voice Search

In Android und Sicherheit hatte ich mit praktischen Beispielen gezeigt, wie Android-Permissions sehr leicht umgangen werden können. Und es gibt immer mehr Wege, dies zu tun. Im Juli 2014 zeigten Wenrui Diao, Xiangyu Liu, Zhe Zhou, und Kehuan Zhang von der chinesischen Universität Hong Kong interessante Angriffsmöglichkeiten über Androids Voice Search. Ein Demo-Video für zwei der Angriffsarten gibt es auch. Der Angriff läuft über den Lautsprecher und die Voice Search Funktion von Android.

Google Voice Search

Nicht zu verwechseln mit und unabhängig von Google Now ist Google Voice Search ein Service Framework, das praktisch auf jedem Android-Gerät vorinstalliert ist. Selbst auf Custom Android Versionen ist Voice Search so beliebt, daß es auf über 500 Millionen Installationen aus dem Play Store blicken kann. Ein Angreifer kann sich also darauf verlassen, daß sein Ziel verfügbar ist auf so gut wie jedem Android.

Google Voice Search ist eine Komponente der Google Search App, die diverse gesprochene Kommandos ausführen kann. Voice Search läuft entweder im Voice Dialer Mode, in dem es nur Telefon-Wähl-Kommandos akzeptiert, oder im vollen sogenannten Velvet-Mode. Um Voice Search zu benutzen, braucht man keine Permissions.

Voice Search wird über einen Android Intent mit ACTION_VOICE_COMMAND oder ACTION_VOICE_SEARCH_HANDS_FREE aufgerufen. Intents sind, wie hier beschrieben, eine Android eigene Inter-App-Kommunikation. Abhängig vom Zustand des Gerätes landet man in einem anderen Modus bei Voice Search:

In den ersten beiden Fällen hat man Zugriff auf Voice Search, im dritten auch, denn in diesem Fall kommt man in den Voice Dialer Mode, weil die Google Search App nicht genau genug prüft, ob tatsächlich ein Bluetooth Headset angeschlossen ist.

Angriff: Nummern wählen

Android erlaubt Apps das Abspielen von Sound im Hintergrund als Service, wodurch keine Activity, also keine GUI für den Benutzer sichtbar wird, die ihn Verdacht schöpfen läßt. Es ist nicht nötig, die Angriffs-App mit Audio-Dateien zu füllen, denn geschickter ist es, Googles Text-to-Speech Service in Android zu verwenden, um dynamisch beliebige Text sprechen zu lassen.

Damit kann man beliebige Nummern wählen, gerne auch kostenpflichtige. Und außerdem wird die Telefonnummer des Opfers geleakt. Man umgeht damit also direkt die Permission CALL_PHONE. Dieser Angriff funktioniert selbst dann, wenn das Gerät mit einem Paßwort gesperrt ist.

Erweiterter Angriff: Weitere Permissions umgehen

Im Velvet-Mode akzeptiert Google Voice Search zusätzliche Kommandos, so daß man damit diese Permissions umgeht: READ_CONTACTS, CALL_PHONE, WRITE_SETTINGS, GET_ACCOUNTS, WRITE_SMS, SEND_SMS, SET_ALARM, GET_ACCOUNTS, RECORD_AUDIO, INTERNET, READ_CALENDAR, ACCESS_WIFI_STATE, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION. Die WAKE_LOCK Permission läßt sich auch einfach umgehen, indem man Voice Search in einen Timeout laufen läßt.

Man kann auch beliebige Datei-Arten über die dann bestehende Telefonverbindung übertragen, indem man sie Hexadecimal codiert. Optional kann man sie noch Audio-codieren oder die Hex-Werte direkt vorlesen.

Diese erweiterten Möglichkeiten hat man, wenn das Gerät nicht gesperrt ist oder nur mit Slide-to-Unlock gesperrt ist. Mehr als 30% aller User verwenden eh kein sicheres Sperren mit Paßwort oder Gesten.

Szenario: Remote Control

90% der üblichen Android-Malware verwendet das Gerät als Teil eines Botnetzes ferngesteuert über Internet oder SMS. Dazu benötigen die Schädlinge die Permissions INTERNET oder SEND_SMS. Bei dieser neuen Angriffsvariante über Voice Search sind allerdings gar keine Rechte nötig. Der Angreifer kann mit dem Gerät kommunizieren und es über Voice Search steuern, ohne eine einzige Permission.

Es sind auch komplexere Social-Engineering-Methoden möglich, indem der Angreifer auf dem Gerät Notizen hinterläßt, die der User dann überraschend nach dem Aufwachen morgens vorfindet. Kombiniert mit dem genauen Standort des Users, den der Angreifer ebenfalls durch Voice Search erfahren kann, ist das ein sehr beängstigendes Szenario. Du bist gehackt und ich weiß, wo Du bist. Soll ich Brötchen mitbringen?

Während Du schliefst

Da viele User ihr Gerät nachts nicht ausschalten, bietet sich ein Angriff um 3 Uhr morgens an. Voice Search benötigt keine große Lautstärke, so daß der User weiter neben seinem Android schlafen würde, denn man wird nachts typischerweise erst bei 55 dB wach. Der Schädling prüft mit dem Lichtsensor und dem Accelerometer, ob alles dunkel ist und das Gerät nicht benutzt wird, und kann die nötige geringe Lautstärke einstellen.

Die Uhrzeit prüft er mit SimpleDateFormat. Ob er Touchscreen aus ist, erkennt er am PowerManager. Mit Hilfe von /proc/stat und top erkennt er aktuelle Aktivitäten und mit /proc/meminfo und top analysiert er die Speichernutzung. So kann er sicherstellen, daß der User den Angriff nicht bemerkt: Es ist nachts, das Gerät liegt ruhig, der Screen ist aus und die Apps machen nicht viel. Laß uns mal Voice Search anquatschen und ein Ding drehen!

Gefahren-Potential

Da dieser Angriff 0/keine/nix an Permissions benötigt, ist die Angriffs-App völlig unauffällig. Keine einzige Analyse- oder Antivirus-Software ist in der Lage den Schädling zu erkennen, weil er ja nur unauffällige Dinge tut, die normalerweise völlig harmlos sind.

Trotzdem ist es durch geschickte Nutzung von Google Voice Search möglich, jede Telefonnumer anzufrufen, beliebige SMS zu senden, sich damit bei Premium-Services anzumelden, Emails zu schicken, private Informationen auszulesen, unter anderem Kalendar-Termine, beliebige Dateien zu verschicken, den Standort zu bestimmen und eine Fernsteuerung (Botnet) des Gerätes zu ermöglichen.

Dies ist ein weiteres erschreckendes Beispiel, daß man auch ohne jede Permission fast alles tun kann auf Android, wozu man eigentlich eine Permission als App bei der Installation vom User genehmigen lassen muß. Merke also: Apps ohne Permissions sind nicht gleichbedeutend mit Sicherheit und der Lautsprecher ist eine neue Angriffsoberfläche.

Das eigentliche Grundproblem jedoch ist, wie ich auch in Android und Sicherheit schon beschrieben habe, daß die Inter-App-Kommunikation von Android das Permission-System völlig nutzlos macht. Einfach formuliert: Rechtelose Apps verwenden die Services von stärkeren Apps, um indirekt jedes Recht zu bekommen, was sie wollen. Somit kann jede App im schlimmsten Fall potentiell alles, was die Summe der anderen Apps und Services können.

Vor einigen Monaten behauptete der Google-Boss, Android wäre sicher. Das können wir ja wohl knicken, oder? Außerdem meinte er, Android würde nur wegen seines Marktanteils angegriffen. Tatsache ist aber: Android wurde schon immer bevorzugt angegriffen, auch als es noch weit unter iOS lag im Marktanteil.

Valid XHTML 1.0!

Besucherzähler


Latest Update: 11. September 2015 at 19:49h (german time)
Link: macmark.de/blog/osx_blog_2014-08-a.php