Eine Head-Unit ist die zentrale Steuereinheit im Fahrzeug, die Multimediafunktionen mit teilweiser Kontrolle über bestimmte Fahrzeugfunktionen verbindet. Sie kann werkseitig verbaut oder als Nachrüstlösung in älteren Autos eingesetzt werden. Weil Android-basierte Head-Units sowohl im Nachrüstmarkt als auch in Neufahrzeugen weit verbreitet sind, läuft ein großer Teil gewöhnlicher Android-Apps — und damit auch gewöhnliche Android-Malware — auf diesen Geräten. Hinzu kommt ein SIM-Karten-Slot, der Internetzugang für Navigation und Software-Updates bereitstellt und die Geräte damit für Angreifer attraktiv macht.

“Die Auslieferungswege für solche Schadsoftware werden immer vielfältiger — von vorinstallierten Backdoors bis zu kompromittierten IPTV-Anwendungen”, so Kalinin in einer Stellungnahme gegenüber The Hacker News. “In dem hier untersuchten Fall haben wir eine noch raffiniertere Methode beobachtet, die die legitime Software-Update-Funktion einer System-App ausnutzt.”

Ausgangspunkt ist die legitime System-App TWCore (“com.tw.core”). Sie sammelt Analysedaten und aktualisiert die Software der Head-Unit in Form von APK-Dateien, wobei sie einen MQTT-Nachrichtenbroker unter der Subdomain “cardoor[.]cn” nutzt. Die APK landet zur Installation im Pfad “<TWCore external cache dir>/push/apk/”. Genau diesen Kanal haben die Angreifer für die Verteilung zuvor unbekannter Schadsoftware zweckentfremdet — über einen Dropper namens JarService, der einen Loader startet und dabei Maßnahmen zur Erkennungsvermeidung trifft.

Der Name der Nutzlast enthielt einen Versionsverweis (“dex3.68”). Allein durch Ausprobieren anderer Versionsnummern konnte Kaspersky sieben weitere Varianten bis zurück zu “3.57” abrufen.

Am Ende der Kette wird die Schadsoftware als reguläre Benutzeranwendung installiert — allerdings ohne Bedienoberfläche und verdeckt im Hintergrund laufend. Standardmäßig sendet sie alle 90 Minuten eine POST-Anfrage an den Endpunkt “/cpc/api/task” des Command-and-Control-Servers, zusammen mit Angaben zum infizierten Gerät und zur Konfigurationsversion.

“Ist die Konfiguration veraltet, liefert der C2-Server eine aktualisierte Konfiguration mit neuen C2-Adressen und neuen Pfaden für HTTP-Anfragen zurück”, so Kaspersky. “Muss die Konfigurationsversion nicht aktualisiert werden, sendet der C2-Server stattdessen ganzzahlige Befehlskennungen, die die Angreifer als productId bezeichnen.” Der Trojaner ordnet jeder Kennung Befehlsinformationen zu und speichert sie als serialisiertes JSON-Objekt über die SharedPreferences-API.

Insgesamt unterstützt die Malware neun Befehle. Sie kann unerwünschte Werbung einblenden, Werbebetrug ausführen und weitere Schadmodule nachladen. Zudem übermittelt sie umfangreiche Geräteinformationen an die Angreifer, darunter Bildschirmauflösung, Gerätemodell, die Kennung des verbundenen WLAN-Netzwerks und die MAC-Adresse.

Über die Befehle “loadlib2” und “http” lädt die Schadsoftware das Reverse-Proxy-Modul “zhima” nach. Dieses hatte das Nokia Deepfield Emergency Response Team im vergangenen Monat dokumentiert; es wurde dort gezielt über IPTV-Apps auf günstigen Android-TV-Boxen verteilt.

“Trotz der Bemühungen von Sicherheitsexperten und Strafverfolgungsbehörden, das BADBOX-Botnet abzuschalten, setzen einzelne damit verbundene Akteure ihre Aktivitäten fort und infizieren weltweit Geräte”, sagt Kalinin. Es handle sich um die erste Schadanwendung, die Auto-Head-Units über eine speziell auf diese Fahrzeugsysteme zugeschnittene Infektionskette angreife.