La vulnérabilité de l'infrastructure Tesla a permis de prendre le contrôle de n'importe quelle voiture

Divulguée des informations sur problèmes dans l'organisation de la protection dans le réseau Tesla, ce qui a permis de compromettre complètement l'infrastructure qui interagit avec les voitures grand public. Les problèmes identifiés ont notamment permis d'accéder au serveur chargé d'entretenir un canal de communication avec les voitures et d'envoyer des commandes transmises via une application mobile.

En conséquence, l'attaquant a réussi à obtenir un accès root au système d'information de n'importe quelle voiture via l'infrastructure Tesla ou à transmettre à distance des commandes de contrôle à la voiture. Entre autres choses, la capacité d'envoyer des commandes telles que le démarrage du moteur et le déverrouillage des portes à la voiture a été démontrée. Pour y accéder, il suffisait de connaître le numéro VIN de la voiture de la victime.

La vulnérabilité a été identifiée début 2017 par le chercheur en sécurité Jason Hughes.
(Jason Hugues), qui a immédiatement informé Tesla des problèmes et a rendu publiques les informations qu'il a découvertes seulement trois ans et demi après l'incident. Il est à noter qu'en 2017, Tesla a résolu les problèmes quelques heures après avoir reçu la notification de la vulnérabilité, après quoi elle a radicalement renforcé la protection de son infrastructure. Pour avoir identifié la vulnérabilité, le chercheur a reçu une récompense de 50 XNUMX dollars américains.

L'analyse des problèmes de l'infrastructure Tesla a commencé par la décompilation des outils proposés en téléchargement depuis le site Internet. boîte à outils.teslamotors.com. Les utilisateurs de voitures Tesla disposant d'un compte sur le site Web service.teslamotors.com ont eu la possibilité de télécharger tous les modules destinés aux développeurs. Les modules étaient chiffrés de la manière la plus simple, et les clés de chiffrement étaient fournies par le même serveur.

Après avoir décompilé les modules résultants en code Python, le chercheur a découvert que le code contenait des informations d'identification intégrées pour divers services Tesla situés sur le réseau interne de l'entreprise, accessible via VPN. En particulier, dans le code, nous avons pu retrouver les identifiants utilisateur de l'un des hébergeurs du sous-domaine « dev.teslamotors.com » situé sur le réseau interne.

Jusqu'en 2019, pour connecter les voitures aux services Tesla, un VPN basé sur le package OpenVPN était utilisé (plus tard remplacé par une implémentation basée sur websocket) en utilisant une clé générée pour chaque voiture. Le VPN a été utilisé pour assurer le fonctionnement d’une application mobile, obtenir une liste des bornes de recharge de batteries et d’autres services similaires. Le chercheur a tenté d'analyser le réseau accessible après avoir connecté sa voiture via VPN et a constaté que le sous-réseau accessible aux clients n'était pas suffisamment isolé du réseau interne de Tesla. Entre autres choses, un hôte du sous-domaine dev.teslamotors.com était joignable, pour lequel des informations d'identification ont été trouvées.

Le serveur compromis s'est avéré être un nœud de gestion de cluster chargé de fournir des applications à d'autres serveurs. En nous connectant à l'hôte spécifié, nous avons pu obtenir une partie du code source des services internes de Tesla, notamment mothership.vn et firmware.vn, qui sont chargés de transmettre les commandes aux voitures des clients et de fournir le firmware. Des mots de passe et des identifiants pour accéder aux SGBD PostgreSQL et MySQL ont également été trouvés sur le serveur. En cours de route, il s'est avéré que l'accès à la plupart des composants peut être obtenu sans les informations d'identification trouvées dans les modules ; il s'est avéré qu'il suffisait d'envoyer une requête HTTP à l'API Web depuis le sous-réseau accessible aux clients.

Entre autres choses, un module a été trouvé sur le serveur, à l'intérieur duquel se trouvait un fichier good.dev-test.carkeys.tar avec les clés VPN utilisées pendant le processus de développement. Les clés spécifiées se sont avérées fonctionnelles et nous ont permis de nous connecter au VPN interne de la société vpn.dev.teslamotors.com.
Le code du service du vaisseau-mère a également été retrouvé sur le serveur, dont l'étude a permis de déterminer des points de connexion à de nombreux services de gestion. Il a été constaté que la plupart de ces services de gestion sont disponibles sur n'importe quelle voiture, si elle est connectée à l'aide des clés VPN trouvées pour les développeurs. Grâce à la manipulation des services, il a été possible d'extraire des clés d'accès mises à jour quotidiennement pour n'importe quelle voiture, ainsi que des copies des informations d'identification de n'importe quel client.

Les informations spécifiées ont permis de déterminer l'adresse IP de toute voiture avec laquelle une connexion a été établie via VPN. Étant donné que le sous-réseau vpn.dev.teslamotors.com n'était pas correctement séparé par le pare-feu, grâce à de simples manipulations de routage, il était possible d'atteindre l'adresse IP du client et de se connecter à sa voiture via SSH avec les droits root, en utilisant les informations d'identification précédemment obtenues par le client.

De plus, les paramètres obtenus pour la connexion VPN au réseau interne ont permis d'envoyer des requêtes à n'importe quelle voiture via l'API Web mothership.vn.teslamotors.com, qui ont été acceptées sans authentification supplémentaire. Par exemple, lors des tests, il a été possible de démontrer la détermination de l'emplacement actuel de la voiture, de déverrouiller les portes et de démarrer le moteur. Le numéro VIN du véhicule est utilisé comme identifiant pour sélectionner une cible d'attaque.

Source: opennet.ru

Ajouter un commentaire