Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Briefing du discours :

Pour beaucoup d’entre nous, une voiture est l’un des achats les plus coûteux que nous puissions faire. Dans un monde où tout est connecté, il est naturel de vouloir contrôler sa voiture à distance : recevoir des rappels de l'endroit où nous l'avons garée, vérifier que nous avons oublié de verrouiller les portes, ou encore démarrer le moteur à distance pour préchauffer ou refroidir l'habitacle. selon la période de l'année.

De nombreux fabricants proposent des systèmes d’alarme en option qui offrent cette commodité et cette tranquillité d’esprit. Mais dans quelle mesure pouvons-nous faire confiance aux fournisseurs de ces systèmes pour protéger l’accès à nos voitures dans le domaine numérique ? Dans cette conférence, Jmaxxz parlera de ce qu'il a découvert en examinant l'un de ces systèmes.

Jmaxxz est connu pour son travail avec les systèmes de maison intelligente August Smart Lock (présentation au DEFCON 24 « Backdooring The Frontdoor »). Ces dernières années, il s’est concentré sur les appareils IoT. Il a participé aux sections « IoT village zero day » des DEFCON 24 et DEFCON 25 et a finalement décidé qu'il était temps d'explorer un produit du marché automobile secondaire - un démarreur à distance (ci-après dénommé RS).

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Donc, je m'appelle J-Max, je suis programmeur de profession et hacker par vocation. Je suis impliqué dans tout ce qui concerne les serrures et tout au long de cette conversation, vous entendrez de nombreuses déclarations qui expriment uniquement mes opinions et n'ont aucun rapport avec les opinions de mes employeurs passés, présents et futurs. Comme vous l'avez probablement compris, nous parlerons de voitures, notamment de démarreurs à distance et de systèmes d'alarme. Commençons par un peu de contexte, ce qui est important dans ce contexte car beaucoup considèrent de tels systèmes comme un luxe inutile.
Là où je vis, il fait plutôt froid et mon ami souffre d'une maladie appelée syndrome de Raynaud. Le froid provoque des spasmes des vaisseaux sanguins des mains, le flux sanguin vers les doigts est fortement réduit et des signes d'engelures apparaissent, notamment une nécrose des tissus. La diapositive montre à quoi cela ressemble habituellement.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

En novembre dernier, je n'avais toujours pas décidé ce que je lui offrirais pour Noël. Elle rentre donc de l'aéroport bouleversée parce que sa voiture n'a jamais réchauffé sur le chemin du retour. À ce moment-là, j'ai réalisé que je lui offrirais un système de démarrage du moteur à distance et j'ai commencé à chercher la meilleure option. Il s’avère que le marché des démarreurs à distance est assez vaste et que de nombreux fabricants ne fournissent pas suffisamment d’informations sur leur produit.

Ils ne vous disent pas comment installer le système ni quels outils utiliser pour programmer l'appareil. C'est un problème pour moi car c'est ma voiture, mon démarrage à distance, et j'ai besoin d'avoir accès à ces outils. J'ai donc cherché un peu plus et j'ai trouvé une entreprise canadienne, Fortin, qui produit de tels démarreurs et fournit volontiers toute la documentation nécessaire. J'ai opté pour ce produit et j'ai commencé à chercher une télécommande adaptée. Le fait est que si vous utilisez une télécommande standard avec un démarreur à distance, sa portée d'action sera limitée à la portée de la télécommande standard. Des télécommandes de rechange sont proposées et fonctionnent dans une plage allant d'un demi-mile à un mile et demi. Selon les avis des consommateurs, il s'agit d'un coup publicitaire, car en réalité la distance est beaucoup plus courte. C'est là le problème, car mon amie doit démarrer le moteur de sa voiture sur le parking de l'aéroport dès qu'elle descend de l'avion, soit à environ 800 mètres.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Ce serait donc formidable si elle pouvait simplement sortir son téléphone, ouvrir l'application et appuyer sur Démarrer. J'ai trouvé un produit tiers appelé MyCar qui est entièrement compatible avec le démarreur Fortin. Il s'agit d'un petit porte-clés doté d'une carte SIM et d'un récepteur GPS que vous pouvez installer dans votre voiture et le connecter au démarreur à distance. Ensuite, à l’aide d’une application mobile, vous pouvez démarrer le moteur à distance, déverrouiller les serrures, etc.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

J'ai pensé que ce serait génial : juste après l'atterrissage de l'avion, mon amie peut démarrer le moteur, et le temps qu'elle arrive à la voiture, la cabine sera déjà chaude.

Parlons donc un peu du fonctionnement des démarreurs à distance. Pour ce faire, vous devez d’abord comprendre comment démarre le moteur d’une voiture. Jusqu'au milieu des années 2 environ, un démarreur de voiture était un verrou mécanique traditionnel associé à une combinaison de clé et de commutateur. Il fallait insérer la clé et la tourner pour terminer le circuit électrique. Ensuite, les serrures étiquetées « antidémarrage » sont devenues populaires aux États-Unis. Cela semble compliqué, mais ce n'est qu'une serrure électronique. Vous disposez donc d’une serrure mécanique, qui est la clé d’une serrure électronique, qui, à son tour, est un transpondeur et contient certaines informations pouvant être lues. Et tant que vous n'aurez pas ouvert la serrure électronique, votre voiture ne démarrera pas. Sur le côté droit de la glissière, vous voyez XNUMX clés : celle de gauche est pour l'antidémarrage et celle de droite est pour le contacteur d'allumage ordinaire. Il actionne simplement les composants mécaniques de la serrure, tandis que la clé gauche déverrouille la serrure électronique, qui démarrera le moteur de la voiture.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Pourquoi je te parle de ça ? Le démarrage à distance fonctionne via l'antidémarrage. Sur la diapositive suivante, vous voyez un schéma de connexion de l'appareil Fortin EVO One à l'antidémarrage - en bas à gauche, vous voyez une paire de contacts désignés comme IMO. En haut à droite du diagramme, vous voyez deux lignes : CAN LOW et CAN HIGH. Ce sont des contacts pour la connexion au bus CAN automobile. La raison pour laquelle les démarreurs à distance sont connectés au bus CAN est de réduire les coûts d'installation car moins de connexions sont utilisées lors de l'installation. Si le démarreur à distance peut lire les données du bus CAN ou envoyer des commandes via le bus CAN, cela réduit le temps d'installation du système de démarrage à distance du moteur.

En haut à gauche du diagramme se trouvent tout un tas de GPIO associés au contrôle ou à la lecture d'informations sur la machine. Par exemple, vous souhaitez que les lumières clignotent ou qu'un klaxon retentisse lorsque vous appuyez sur le bouton de verrouillage. Des choses comme celle-ci peuvent être contrôlées à l’aide de ces GPIO. En bas à gauche du schéma, vous pouvez voir un gros connecteur encombrant : il s'agit de l'interface qui contourne le verrouillage mécanique. Autrement dit, vous n'avez pas besoin d'insérer et de tourner la clé dans le contact car cette interface permet au relais du système de démarrage à distance de communiquer directement avec la serrure électrique.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Les diapositives suivantes montrent les étapes d'installation d'un démarreur à distance. Elle consiste principalement à déposer le cache de la colonne de direction, à installer et à connecter le boîtier DS. Cela a l'air assez effrayant, mais c'est facile à faire.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Les télécommandes elles-mêmes se connectent à ce que Fortin appelle une liaison de données. Le système utilise le protocole propriétaire de transfert de données physiques UART - un émetteur asynchrone universel qui échange des données à une vitesse de 9600 XNUMX bauds. Le démarreur à distance Fortin se connecte simplement via un bus UART aux deux télécommandes que vous voyez sur la diapositive.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Après avoir installé la DS, j'ai réfléchi à la manière dont de tels dispositifs pourraient affecter la sécurité de la voiture. Évidemment, la DS doit contourner l'antidémarrage, alors dans quelle mesure est-ce sûr en termes de possibilité de vol ou d'interception du contrôle de la voiture ? Cela s'applique non seulement à la transmission de données sur le réseau cellulaire, mais également au signal de démarrage à distance lui-même. J'ai donc commencé à chercher sur Internet des informations du fabricant sur le protocole de transfert de données utilisé et je me suis retrouvé sur des forums où des gens écrivaient que Fortin refusait de fournir ce protocole. L'une des raisons : « Nous ne diffusons pas de telles informations car EVO n'est pas un jouet pour amateurs, il est destiné à être utilisé par des professionnels.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

En tant que professionnel, j'ai décidé de construire ma propre machine sur le bureau. J'ai mis la main sur une deuxième unité du système EVO, assemblé un circuit imprimé représentant la voiture, ajouté des interrupteurs pour simuler l'allumage, un bouton pour la pédale de frein et tout un tas de LED pour indiquer différents états.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

En rassemblant tout cela, j'ai connecté le dispositif de surveillance de liaison de données FTI et j'ai commencé à collecter ces données. Au début, cela ressemble à une diapositive, et ce qui se passe ici n'est pas tout à fait clair. Mais si vous regardez attentivement, vous pouvez dire qu'il y a certainement une sorte de structure ici.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Attention, chaque fois que j'appuie sur un bouton de ma télécommande, le message que l'antenne envoie à ma DS commence toujours par 0C et se termine par 0D. Donc, si nous divisons simplement ce que nous obtenons, en supposant que 0C est le début et 0D est la fin, nous nous retrouverons avec quelque chose comme ceci.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Il y a déjà une sorte de structure clairement visible ici, vous pouvez donc comprendre ce qui se passe. En passant du temps à suivre quel message apparaissait après avoir appuyé sur un bouton spécifique, j'ai pu créer un tableau de commandes, dont chacune correspondait à une action spécifique. Autrement dit, lorsque vous appuyez sur un bouton de la télécommande, l'antenne envoie une commande au module de démarrage à distance qui ressemble à ceci.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Voici à quoi ressemble une structure d’équipe typique.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Lorsque vous appuyez sur un bouton de la télécommande, l'antenne envoie une telle commande au démarreur à distance. Il est réveillé par l'octet 0C, suivi de 2 octets, qui représentent selon moi le sens de transmission. C'est intéressant car l'UART a déjà une direction de signal, j'ai donc marqué ces octets comme "déchets", il suffit de les traiter comme une constante. Ceci est suivi d'un seul octet indiquant la commande que l'utilisateur souhaite exécuter. Il peut s'agir de verrouiller ou d'ouvrir les portes, de désactiver l'alarme, etc. En général, tout ce que vous souhaitez faire à distance est associé à cette commande. La charge utile FF FF F1 est une adresse, ou un identifiant, qui identifie l'antenne distante d'où provient le message. Si l'unité DS ne reconnaît pas l'identifiant, la commande est ignorée. Si la DS accepte l'identifiant, une procédure en plusieurs étapes démarre, qui comprend la vérification de la présence de la clé dans le contact, l'allumage ou l'arrêt du moteur, l'appui sur la pédale de frein, etc. En fait, ce processus n’a pas beaucoup d’importance, c’est juste que l’appareil apprend l’identifiant en ce moment.

A la fin du message il y a un octet avec une somme de contrôle et un octet indiquant la fin de la commande. Maintenant que nous comprenons le fonctionnement du protocole, que pouvons-nous faire ? J'ai quelques vidéos sur le sujet. Malheureusement, pour une raison quelconque, la vidéo est sans son, je vais donc vous dire ce qui se passe à l'écran. À gauche de la colonne de direction, sur le boîtier du tableau de bord, se trouve une boîte blanche contenant des composants électroniques dotés du micrologiciel Particle.IO qui comprend le protocole Fortin. Le fil avec la pointe bleue est l'antenne. Cette chose me permet d'interagir avec le démarreur à distance depuis l'intérieur de la voiture et de voir ce qui se passe sur l'écran de l'ordinateur portable.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

J'envoie donc la commande lock unlock à la voiture mais ça ne marche pas car la DS ne connaît pas cette antenne. Comme je l'ai déjà mentionné, il ne s'agit que d'un UART dont la propriété est de prendre en charge la communication dite bidirectionnelle, grâce à laquelle vous pouvez obtenir à distance des informations sur l'état de la voiture. Par exemple, si le moteur a été physiquement démarré ou arrêté, l'unité DS enverra un message correspondant à l'antenne de la télécommande. Dans ce cas, le message contiendra l'adresse de cette même antenne.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Le problème est que la communication s'effectue à l'aide du protocole UART, et toute personne qui se connecte au bus UART peut voir l'adresse à laquelle un message donné est envoyé, mon firmware a donc la capacité de cloner l'adresse d'une antenne existante, ce que je fais avec la commande appropriée.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Pour générer un message, il vous suffit d'ouvrir la portière de la voiture. Comme vous pouvez le constater, la DS envoie un message à l'antenne indiquant que la porte était ouverte et l'alarme s'active immédiatement.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Pour désactiver l'alarme, j'envoie la commande « déverrouiller », après quoi le son de l'alarme est désactivé et la voiture est déverrouillée. Vous devrez me croire sur parole, car nous n'avons pas réussi à faire jouer cette vidéo avec le son. Essayons de lire à nouveau la vidéo.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Eh bien, le son est apparu (ndlr : la même vidéo avec le son est diffusée à l'écran). Alors, vous avez vu comment j'ai envoyé la commande DS et activé l'alarme, le tout sans clé. Essayons maintenant de démarrer la voiture de la même manière ; pour ce faire, regardez la vidéo suivante.

Habituellement, si vous tapez simplement « démarrer » et essayez de démarrer le moteur, cela ne fonctionnera pas. La raison en est qu’il s’agit d’une voiture à transmission manuelle et que les systèmes de démarrage à distance ont une procédure spéciale pour ces voitures. Dans ce cas, vous devez appuyer sur le bouton du démarreur à distance pendant que la clé est sur le contact et que le moteur tourne. Ensuite, vous pouvez retirer la clé, sortir de la voiture, fermer la porte, après quoi la DS coupera le moteur et verrouillera la porte. Ceci est fait pour empêcher la voiture de répondre au démarrage du moteur à distance pendant la conduite, car cela est dangereux. Cependant, il ne s’agit pas d’une fonctionnalité de sécurité complète. C'est assez facile à prouver en regardant le démarreur à distance EVO. Vous voyez ce fil en boucle jaune conçu pour fonctionner avec une transmission manuelle. S'il est coupé, ce bloc peut être utilisé pour une voiture à transmission automatique. Cette conception de l'unité vous permet de ne pas utiliser de réglages particuliers lors de l'installation de la DS dans des voitures équipées de différents types de transmission.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Le système n'a donc pas répondu à la commande "start", je vais donc remettre ce bloc en place et juste couper ce fil pour rompre la connexion. Désormais, si vous répétez la commande « start », un signal sonore retentira et les indicateurs d'état des systèmes de la voiture s'allumeront sur le tableau de bord, comme cela se produit lorsqu'une clé est insérée dans la serrure.

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 1

Nous disposons actuellement d'une voiture que nous pouvons démarrer à distance sans clé dans le contact, mais le module DS n'est pas tout ce dont nous avons besoin. Dans des circonstances normales, vous ne pourrez toujours pas partir avec une voiture démarrée à distance, mais essayons quand même.

Pour désactiver le blocage du volant, vous devez insérer une clé ordinaire dans le contacteur d'allumage, qui n'a pas de transpondeur. Comme vous pouvez le constater, il suffit de déplacer la clé en position avant de démarrer le moteur et le volant de la Subaru Impreza se met à tourner complètement librement.

Cependant, si vous n’avez pas de clé, alors lorsque vous appuyez sur la pédale de frein, la voiture cale. Il est assez simple de contourner cette limitation. Vous devez comprendre comment la voiture indique au démarreur à distance que le frein est serré. Vous voyez plusieurs ports multicolores à l'arrière du boîtier du module EVO - le câble du bus CAN sera connecté ici. Il suffit de retirer simplement ce câble de l'unité DS après le démarrage à distance de la voiture, et il ne répondra pas à l'appui sur la pédale de frein. Puisque cette unité est située sous le couvercle de la colonne de direction, je donne la commande "start" via mon ordinateur portable, la voiture démarre, j'ouvre la porte, je sors de la voiture et je retire le connecteur du bus CAN de l'unité EVO. Comme vous pouvez le constater, le moteur de la voiture tourne, mais nous n’avons toujours pas de clé dans le contact.

Maintenant, si vous appuyez sur la pédale de frein, rien ne se passera car l'EVO ne sait pas qu'elle a été enfoncée. Après cela, je peux prendre le volant, appuyer sur le frein, déplacer le levier de vitesses en position « Drive » et la voiture commence à bouger. Tout cela se fait sans aucune clé.

21:40

Conférence DEFCON 27. Votre voiture est ma voiture. Partie 2

Quelques publicités 🙂

Merci de rester avec nous. Vous aimez nos articles ? Vous voulez voir du contenu plus intéressant ? Soutenez-nous en passant une commande ou en recommandant à vos amis, cloud VPS pour les développeurs à partir de 4.99 $, un analogue unique des serveurs d'entrée de gamme, que nous avons inventé pour vous : Toute la vérité sur le VPS (KVM) E5-2697 v3 (6 Cores) 10Go DDR4 480Go SSD 1Gbps à partir de 19$ ou comment partager un serveur ? (disponible avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher dans le centre de données Equinix Tier IV à Amsterdam ? Ici seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199$ aux Pays-Bas! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99$ ! En savoir plus Comment construire une infrastructure corp. classe avec l'utilisation de serveurs Dell R730xd E5-2650 v4 qui valent 9000 XNUMX euros pour un sou ?

Source: habr.com

Ajouter un commentaire