- Pour participer au bug bounty de Tesla, achat sur eBay de la MCU et de l’ordinateur Autopilot d’une Model 3, puis tentative de les faire fonctionner dans un environnement desktop
- En ajoutant une alimentation 12 V et un module d’écran tactile, le démarrage a réussi, avec accès au réseau interne via le port Ethernet
- À l’intérieur de la MCU, un serveur SSH et l’API REST ODIN (port 8080) étaient ouverts, mais l’accès SSH nécessitait une clé signée par Tesla
- Au départ, des problèmes de compatibilité de câbles et des dommages au PCB ont imposé le remplacement de la puce contrôleur d’alimentation, avant une restauration réussie du système
- Au final, le raccordement du Dashboard Wiring Harness a permis un démarrage complet de l’écran tactile et de l’OS du véhicule, rendant possibles la manipulation de l’interface et l’analyse du firmware
Faire tourner sur un bureau l’ordinateur d’une Tesla Model 3
- Pour participer au programme de bug bounty de Tesla, il fallait du vrai matériel de véhicule ; des pièces de MCU (Media Control Unit) et d’ordinateur Autopilot (AP) de Model 3 ont donc été achetées sur eBay
- L’ordinateur embarqué du véhicule est constitué de deux cartes superposées, situées derrière la boîte à gants côté passager, dans un boîtier métallique refroidi par liquide
- Des pièces ont été trouvées sur eBay dans une fourchette de 200 à 300 dollars, la plupart provenant de démonteurs de véhicules accidentés
- Pour démarrer le système, il fallait aussi une alimentation DC 12 V, un module d’écran tactile et un câble d’affichage
- Une alimentation réglable 0–30 V / 10 A a été utilisée, et l’écran a été acheté 175 dollars
Problèmes de câbles et informations de câblage électrique
- Les câbles reliant la MCU et l’écran étaient généralement vendus coupés juste après le connecteur, ce qui a nécessité de fabriquer un câble séparé
- Tesla publie la documentation Electrical Reference de tous ses véhicules, ce qui a permis de vérifier le brochage et les informations de câblage de chaque connecteur
- L’écran nécessite un câble 6 broches utilisant un connecteur Rosenberger 99K10D-1D5A5-D (2 broches pour le 12 V/la masse, 4 broches pour les données)
- Comme ce connecteur ne peut pas être acheté à l’unité par les particuliers, un câble LVDS pour BMW a été commandé comme solution de remplacement
Alimentation et accès réseau
- En se basant sur les schémas Tesla et des ressources en ligne pour repérer les broches 12 V et masse, le branchement de l’alimentation a lancé le démarrage avec allumage d’une LED rouge
- Sans écran, l’interaction restait limitée, mais une connexion à un ordinateur portable était possible via le port Ethernet
- Le réseau n’utilise pas DHCP ; il faut configurer manuellement une IP dans la plage
192.168.90.X/24
- Un fichier
/etc/hosts publié sur Reddit a permis d’identifier les IP des hôtes internes, dont la MCU, la passerelle et l’Autopilot
- Sur la MCU (
192.168.90.100), les services SSH (port 22) et serveur web (port 8080) étaient ouverts
Services internes et architecture de la MCU
- Le serveur SSH affichait le message « SSH allowed: vehicle parked » et l’accès nécessitait une clé signée par Tesla
- Dans le bug bounty de Tesla, les chercheurs ayant trouvé une vulnérabilité root reçoivent un certificat SSH permanent
- Le port 8080 exposait une API REST appelée ODIN (On-Board Diagnostic Interface Network), utilisée par l’outil de diagnostic Toolbox
- Après retrait du blindage métallique, il a été possible d’observer l’intérieur, où la MCU et la carte Autopilot sont disposées en structure empilée
Échec du câble et dommages au circuit
- Le câble LVDS pour BMW n’étant pas physiquement compatible, une tentative de câblage direct a été faite
- Un fil fin s’est cassé, provoquant un court-circuit sur le PCB et endommageant la puce contrôleur d’alimentation
- L’identification de la puce endommagée était difficile, mais le collaborateur Yasser a confirmé qu’il s’agissait d’un contrôleur step-down MAX16932CATIS/V+T
- Une nouvelle puce a été commandée puis remplacée dans un atelier de réparation PCB, ce qui a permis de restaurer la MCU
- Un deuxième ordinateur a ensuite été obtenu comme unité de secours
Solution finale et démarrage complet
- Faute de pouvoir se procurer le câble Rosenberger, c’est finalement le Dashboard Wiring Harness complet (80 dollars) qui a été acheté
- Dans le véhicule réel, le système n’est pas câblé avec des cordons individuels mais sous la forme d’un grand faisceau électrique (loom)
- Une fois le faisceau raccordé, l’écran tactile a fonctionné normalement et le système d’exploitation du véhicule a démarré complètement
- Il est alors devenu possible de manipuler l’interface, explorer les interfaces réseau, analyser le bus CAN et tenter une extraction du firmware
Aucun commentaire pour le moment.