Als gevolg hiervan slaagde de aanvaller erin om via de Tesla-infrastructuur root-toegang te verkrijgen tot het informatiesysteem van elke auto of om op afstand besturingsopdrachten naar de auto te verzenden. Er werd onder meer de mogelijkheid gedemonstreerd om commando's zoals het starten van de motor en het ontgrendelen van deuren naar de auto te sturen. Om toegang te krijgen was alleen kennis van het VIN-nummer van de auto van het slachtoffer nodig.
De kwetsbaarheid werd begin 2017 ontdekt door beveiligingsonderzoeker Jason Hughes
(
De analyse van de problemen met de Tesla-infrastructuur begon met de decompilatie van de tools die werden aangeboden om te downloaden van de website
Nadat de resulterende modules in Python-code waren gedecompileerd, ontdekte de onderzoeker dat de code ingebedde inloggegevens bevatte voor verschillende Tesla-services die zich op het interne netwerk van het bedrijf bevonden, waartoe toegang werd verkregen via VPN. In het bijzonder konden we in de code de gebruikersreferenties van een van de hosts vinden in het subdomein “dev.teslamotors.com” op het interne netwerk.
Om auto's met Tesla-diensten te verbinden, werd tot 2019 een VPN gebruikt op basis van het OpenVPN-pakket (later vervangen door een websocket-gebaseerde implementatie) waarbij voor elke auto een sleutel werd gegenereerd. VPN werd gebruikt om de werking van een mobiele applicatie te garanderen, een lijst met batterijlaadstations te verkrijgen en andere soortgelijke diensten. De onderzoeker probeerde het netwerk te scannen dat toegankelijk was nadat hij zijn auto via VPN had aangesloten en ontdekte dat het voor klanten toegankelijke subnet niet voldoende geïsoleerd was van het interne netwerk van Tesla. Er was onder meer een host in het subdomein dev.teslamotors.com bereikbaar, waarvoor inloggegevens zijn gevonden.
De gecompromitteerde server bleek een clusterbeheerknooppunt te zijn en was verantwoordelijk voor het leveren van applicaties aan andere servers. Door in te loggen op de opgegeven host konden we een deel van de broncode voor interne Tesla-services verkrijgen, waaronder mothership.vn en firmware.vn, die verantwoordelijk zijn voor het verzenden van opdrachten naar auto's van klanten en het leveren van firmware. Wachtwoorden en logins voor toegang tot het PostgreSQL- en MySQL DBMS werden ook op de server gevonden. Gaandeweg bleek dat toegang tot de meeste componenten kan worden verkregen zonder de inloggegevens in de modules; het bleek voldoende om een HTTP-verzoek naar de Web API te sturen vanuit het subnet dat toegankelijk is voor clients.
Op de server werd onder meer een module gevonden, waarin zich een bestand good.dev-test.carkeys.tar bevond met VPN-sleutels die tijdens het ontwikkelingsproces werden gebruikt. De opgegeven sleutels bleken te werken en lieten ons verbinding maken met de interne VPN van het bedrijf vpn.dev.teslamotors.com.
Op de server werd ook de servicecode van het moederschip gevonden, waarvan de studie het mogelijk maakte om verbindingspunten met veel managementdiensten te bepalen. Het bleek dat de meeste van deze beheerdiensten beschikbaar zijn op elke auto, mits verbonden met de gevonden VPN-sleutels voor ontwikkelaars. Door manipulatie van de services was het mogelijk om dagelijks bijgewerkte toegangssleutels voor elke auto te extraheren, evenals kopieën van de inloggegevens van elke klant.
De opgegeven informatie maakte het mogelijk om het IP-adres te bepalen van elke auto waarmee via VPN een verbinding tot stand werd gebracht. Omdat het vpn.dev.teslamotors.com-subnet niet goed werd gescheiden door de firewall, was het door eenvoudige routeringsmanipulaties mogelijk om het IP-adres van de klant te bereiken en via SSH met rootrechten verbinding te maken met zijn auto, met behulp van de eerder verkregen inloggegevens van de klant.
Bovendien maakten de verkregen parameters voor de VPN-verbinding met het interne netwerk het mogelijk om via de web-API mothership.vn.teslamotors.com verzoeken naar alle auto's te sturen, die zonder aanvullende authenticatie werden geaccepteerd. Tijdens tests was het bijvoorbeeld mogelijk om het bepalen van de huidige locatie van de auto te demonstreren, de deuren te ontgrendelen en de motor te starten. Het VIN-nummer van het voertuig wordt gebruikt als identificatiemiddel om een aanvalsdoel te selecteren.
Bron: opennet.ru