Aufgrund des teilweise großen Funktionsumfangs rücken die Apps zunehmend auch ins Visier versierter Angreifer. Wäre es z.B. Autodieben möglich, Benutzerkonten zu übernehmen, ließen sich die entsprechenden Fahrzeuge nicht nur exakt orten, sondern auch direkt entriegeln.
Aus diesem Grund wurden drei Remote-Apps exemplarisch einer tiefgehenden IT-Sicherheitsüberprüfung unterzogen. Der sogenannter Penetrationstest umfasste folgende Punkte:
- Durchführung umfassender Sicherheitsprüfungen
- Identifizierung von Schwachstellen
- Untersuchung & Bewertung der damit verbundenen Risiken
- Ermittlung möglicher Verbesserungsmaßnahmen
- Empfehlungen für die Umsetzung der Maßnahmen & Priorisierung
BMW Connected
Als Beispielfahrzeug wurde ein BMW i3 (Baujahr 2014) verwendet.

Renault My Z.E.
Hier war es ein Renault Zoe (Baujahr 2015).
VW Car-Net
Das zur Untersuchung verwendete Fahrzeug unterstützte die APP-Funktionen nicht, weshalb die App lediglich einer statischen sowie dynamischen Analyse unterzogen wurde. Es konnte zwar die prinzipielle Netzwerkkommunikation untersucht, aber keine konkreten Befehle über die App versendet bzw. Fahrzeuginformationen empfangen werden.

Unverschlüsselte Datenbank
Die App Renault My Z.E speichert Nutzerdaten in Datenbanken, die im Datenverzeichnis der App liegen. Diese Datenbanken liegen in unverschlüsselter Form vor. Da die vorliegende Version der App die Installation auf gerooteten Geräten zulässt, bietet sie Angriffsoberfläche für böswillige Apps.
Wenn es einem Angreifer gelingt, in die Sandbox der App einzudringen und Zugriff auf das Datenverzeichnis der App zu erhalten, können Nutzerdaten aus der Datenbank extrahiert bzw. auch manipuliert oder gelöscht werden.
Zu diesen Daten gehören u.a. der Activation Code sowie die VIN (Vehicle Identifier Number) des Wagens, die es einem Angreifer erlauben, das Fahrzeug auf sein eigenes Konto zu registrieren.
Bewertung: Mittleres Risiko
Empfohlene Maßnahmen
Einige Sicherheitsmechanismen der App-Sandbox auf Android Systemen lassen sich insbesondere auf gerooteten Geräten je nach Versionsstand aufbrechen. Daher sollten Dateien und Datenbanken, die sensible Nutzerdaten enthalten, durch Verschlüsselung auf Applikationsebene gesichert werden, um Schutz vor böswilligen Apps oder auch im Falle des Verlusts des Gerätes zu bieten.
Session Management
Preisgabe von Access- und Refresh-Token in der URL
Die BMW Connected App für Android überträgt das Access- und Refresh-Token des Nutzers zur Authentifizierung gegenüber einzelnen Backendsystemen als URL-Parameter innerhalb von GET-Requests.
Ein Angreifer könnte im Rahmen eines Cross-Site-Scripting (XSS) Angriffs (falls die entsprechende Schwachstelle vorhanden ist) die so übergebenen Token auslesen und die Session des Nutzers übernehmen. Desweiteren können Daten, die als Teil von GET-Requests übertragen werden, in Server- oder Debug-Logs der App selbst auftauchen.
Bewertung: Mittleres Risiko
Empfohlene Maßnahmen
Session-Token, ob als Authorization Header oder Session-Cookie implementiert, sollten nicht als Teil von URLs in GET-Requests übertragen werden. Idealerweise sollten alle durch die App angesprochenen Backends den gleichen Authentifizierungs-Mechanismus verwenden.
Fehlende Session-Invalidierung bei Abmeldung
Bei Abmeldung aus den drei untersuchten Apps über die jeweiligen Menüeinträge wird die Session nicht serverseitig invalidiert. Für den Benutzer nicht ersichtlich, ist das Session-Token auf Serverseite weiterhin gültig. Loggt sich der Benutzer in der App erneut ein, wird das noch aktive Session-Token weitergenutzt.
Die Renault My Z.E. App schickt keine Abmeldungs-Requests bei der Abmeldung. BMW Connected und VW Car-Net schicken diese zwar, aber die Sessions werden auf Serverseite nicht invalidiert.
Wenn eine Session kompromittiert wird (z.B. wenn ein Angreifer Zugriff auf das Session-Token eines Benutzers durch einen Man-in-the-Middle-Angriff erhält), kann der Benutzer von seiner Seite aus nichts unternehmen, um den Angreifer auszusperren.
Bewertung: Mittleres Risiko
Empfohlene Maßnahmen
Es muss sichergestellt werden, dass eine Abmeldung des Nutzers innerhalb der App auch eine Abmeldung des Nutzers gegenüber dem jeweiligen Backend darstellt. Die Apps sollten das Backend über den Logout des Nutzers informieren und das Backend muss die entsprechenden Sessions invalidieren, so dass zur weiteren Nutzung der Apps ein erneuter Login notwendig ist.
Loggt sich der Nutzer erneut mit seinem Benutzernamen und Passwort ein, so sollten die dabei gesetzten Session Tokens ebenfalls neu erzeugt werden und nicht der vorangegangenen Session entsprechen.
Schwache Passwortrichtlinie
In der BMW Connected App wurde eine schwache Passwortrichtlinie identifiziert.
Die Passwortlänge ist auf eine Mindestlänge von acht Zeichen begrenzt und schränkt zusätzlich die Menge der Sonderzeichen ein. Dies minimiert die Stärke des Passwortes.
Darüber hinaus war es möglich, sehr schwache Passwörter zu wählen, wie z.B. "abcd1234". Derartige Passwörter lassen sich in frei verfügbaren Passwortlisten im Internet finden oder von Passwort-Generatoren erstellen.
Bewertung: Mittleres Risiko
Empfohlene Maßnahmen
Es sollte eine strengere Passwort-Richtlinie umgesetzt werden.
Fehlendes Zertifikatspinning
Zertifikats- oder Public Key Pinning ist ein Mechanismus, der clientseitig implementiert wird, um SSL/TLS Man-in-the-Middle-Angriffe zu erschweren oder unmöglich zu machen. Dabei wird in der App bereits der Public Key oder ein Fingerprint des Zertifikats hinterlegt, welcher vom Server vor dem Aufbau der TLS Verbindung präsentiert wird. Schickt der Server ein anderes Zertifikat oder einen anderen Public Key, verweigert die App den Verbindungsaufbau und der Benutzer ist geschützt, selbst wenn das Android Betriebssystem dem Zertifikat grundsätzlich vertraut.
Bewertung: Mittleres Risiko
Empfohlene Maßnahmen
Es wird empfohlen, überall wo es möglich ist, die Zertifikate auf Client-Seite zu überprüfen. Für den Fall einer Kompromittierung des Serverzertifikats sollte ein Fallback eingerichtet werden, um den Betriebsablauf nicht zu gefährden. Dazu kann auf ein zweites Zertifikat oder auf einen zweiten Public Key gepinnt werden.
Mit Abschluss der Studie wurden die Hersteller BMW, Renault und Volkswagen über die Durchführung einer Sicherheitsüberprüfung der jeweiligen App sowie deren fachliche Inhalte informiert. Alle drei Hersteller haben die gefundenen Schwachstellen bestätigt und Verbesserungen angekündigt.