Een kwetsbaarheid in de infrastructuur van Tesla maakte het mogelijk om controle over elke auto te krijgen.

Onthuld informatie over problemen bij het organiseren van bescherming in het Tesla-netwerk, waardoor het mogelijk werd de infrastructuur die interageert met consumentenauto's volledig in gevaar te brengen. De geïdentificeerde problemen maakten het met name mogelijk om toegang te krijgen tot de server die verantwoordelijk is voor het onderhouden van een communicatiekanaal met auto's en het verzenden van opdrachten die via een mobiele applicatie worden verzonden.

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
(Jason Hughes), die Tesla onmiddellijk op de hoogte bracht van de problemen en de informatie openbaar maakte die hij pas drie en een half jaar na het incident ontdekte. Opgemerkt wordt dat Tesla in 2017 de problemen binnen enkele uren na ontvangst van de melding van de kwetsbaarheid heeft verholpen, waarna het de bescherming van zijn infrastructuur radicaal heeft versterkt. Voor het identificeren van de kwetsbaarheid ontving de onderzoeker een beloning van 50 dollar.

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 toolbox.teslamotors.com. Gebruikers van Tesla-auto's met een account op de website service.teslamotors.com kregen de mogelijkheid om alle modules voor ontwikkelaars te downloaden. De modules zijn op de eenvoudigste manier gecodeerd en de coderingssleutels zijn door dezelfde server verstrekt.

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

Voeg een reactie