Jeffrey Cross
Jeffrey Cross

Car Hacking 101: Outils du commerce

La cybersécurité évolue de plus en plus pour inclure des préoccupations liées non seulement à la vulnérabilité des données, mais également à celle de nos voitures de plus en plus informatisées. Dans son nouveau livre Le manuel du pirate de voiture, Craig Smith guide les lecteurs à travers les détails des systèmes informatiques et des logiciels intégrés que vous trouverez dans les véhicules modernes. C’est une excellente ressource si vous essayez de perfectionner vos compétences en automatisme ou si vous êtes intéressé par les réseaux et la sécurité des voitures.

L'extrait suivant couvre le matériel et les logiciels que vous devez connaître pour commencer le piratage de voiture. C’est l’une des nombreuses ressources détaillées que vous trouverez dans Le manuel du pirate de voiture. Le livre est disponible maintenant.


Cette section présente différents outils que vous pouvez utiliser lors de la recherche d’un véhicule. J’ai choisi de me concentrer sur les appareils et logiciels à faible coût, car c’est important pour moi que le plus grand nombre de personnes possible participe à la recherche.

Open Garages souhaite présenter et promouvoir des outils d'aide à la recherche automobile. Si votre entreprise fabrique un excellent produit, n’hésitez pas à contacter Open Garages, mais à moins que vous ne disposiez d’un moyen ouvert de contribuer à votre outil, ne vous attendez pas à une publicité gratuite.

Matériel

Dans cette section, nous aborderons les cartes, telles que le ChipWhisperer, ainsi que les périphériques de type dongle offrant une connectivité CAN. Nous allons d’abord examiner le matériel open source à moindre coût, puis explorer quelques-uns des dispositifs les plus sophistiqués pour ceux qui sont prêts à dépenser un peu plus. Bien qu'il existe de nombreux périphériques rentables pour communiquer avec le bus CAN, le logiciel nécessaire pour interagir avec ces périphériques peut faire défaut, vous devrez donc souvent écrire le vôtre.

Périphériques CAN bas de gamme

Ces dispositifs sont utiles pour détecter le contenu de votre bus CAN et injecter des paquets. Ils vont des cartes de niveau amateur aux dispositifs professionnels qui prennent en charge de nombreuses fonctionnalités personnalisées et peuvent gérer simultanément de nombreux bus CAN différents.

Arduino Shields

De nombreux périphériques Arduino et similaires à Arduino (20 $ à 30 $) prendront en charge CAN avec l’ajout d’un bouclier Arduino. Voici quelques boucliers Arduino supportant CAN:

Contrôleur CANdiy-Shield MCP2515 avec deux connecteurs RJ45 et un protoarea Contrôleur ChuangZhou CAN-Bus Shield MCP2515 avec un connecteur D-sub et bornes à vis Contrôleur DFRobot CAN-Bus Shield STM32 avec un connecteur D-sub SeeedStudio SLD01105P CAN -Bus Shield MCP2515 Contrôleur CAN avec un connecteur D-sub Contrôleur CAN SparkFun SFE Bus-Shield MCP2515 avec un connecteur D-sub et un support de carte SD; a des connecteurs pour un module LCD et GPS

Ces boucliers sont tous assez similaires. La plupart utilisent le contrôleur MCP2515 CAN, bien que le blindage DFRobot utilise un STM32, qui est plus rapide avec plus de mémoire tampon.

Quel que soit le type de bouclier choisi, vous devrez écrire du code pour l’Arduino afin de détecter les paquets. Chaque bouclier est livré avec une bibliothèque conçue pour interfacer avec le bouclier par programmation. Idéalement, ces bus devraient prendre en charge quelque chose comme le protocole LAWICEL, qui leur permet d'envoyer et de recevoir des paquets en série via un outil d'espace utilisateur sur l'ordinateur portable, tel que SocketCAN.

Kit de télématique Freematics OBD-II

Ce kit d’adaptateur Bluetooth OBD-II basé sur Arduino comprend à la fois un dispositif OBD-II et un enregistreur de données. Il est livré avec un GPS, un accéléromètre et un gyroscope, ainsi que des capteurs de température.

CANtact

Eric Evenchick, CANtact, est un périphérique USB CAN très abordable qui fonctionne avec Linux SocketCAN. Il utilise un connecteur DB 9 et présente l'avantage unique d'utiliser des broches de cavalier pour changer les broches CAN et la masse, ce qui lui permet de prendre en charge les connecteurs DB9 vers OBD-II de style américain et britannique. Vous pouvez obtenir CANtact ici.

Raspberry Pi Le Raspberry Pi est une alternative à l'Arduino qui coûte entre 30 et 40 $. Le Pi fournit un système d’exploitation Linux mais n’inclut pas d’émetteur-récepteur CAN; vous devrez donc vous procurer un bouclier.

L'un des avantages de l'utilisation d'un Raspberry Pi sur un Arduino est qu'il vous permet d'utiliser directement les outils Linux SocketCAN, sans avoir à acheter de matériel supplémentaire. En général, un Raspberry Pi peut communiquer avec un MCP2515 via SPI avec seulement quelques câbles de base. Voici quelques implémentations de Raspberry Pi:

Contrôleur CAN Canberry MCP2515 avec bornes à vis uniquement (pas de connecteur D-sub; 23 $) Carberry Deux lignes de bus CAN et deux lignes GMLAN, LIN et infrarouge (ne semble pas être un bouclier de source ouverte; 81 $) Carte PIC-CAN-Bus Contrôleur CAN MCP2515 avec connecteur sub-D et bornes à vis (40 $ à 50 $)

Carte de développement ChipKit Max32 et NetworkShield

La carte ChipKit est une carte de développement qui, avec NetworkShield, peut vous fournir un système CAN interprétable par le réseau. Environ 110 USD, cette solution matérielle open source est vantée par le standard OpenXC et prend en charge les microprogrammes pré-construits d’OpenXC, mais vous pouvez également écrire votre propre microprogramme et faire un CAN brut.

ELM327 Chipset

Le chipset ELM327 est de loin le chipset le moins cher disponible dans le monde (de 13 $ à 40 $), et il est utilisé dans la plupart des périphériques OBD bon marché. Il communique avec l'OBD via le port série et est fourni avec à peu près tout type de connecteur auquel vous pouvez penser, du port USB au Bluetooth, en passant par le Wi-Fi, etc. Vous pouvez vous connecter aux périphériques ELM327 via un port série et ils sont capables d’envoyer des paquets autres que les paquets OBD / UDS. Pour une liste complète des commandes utilisant le ELM327, voir la fiche technique.

Malheureusement, les outils CAN Linux disponibles ne fonctionnent pas sur le ELM327, mais Open Garages a lancé une initiative Web qui inclut des pilotes de détection pour les pilotes du ELM327 appelé CANiBUS. Sachez que l’ELM327 a un espace de mémoire tampon limité. Vous risquez donc de perdre des paquets lorsque le reniflement et la transmission risquent d’être un peu imprécis. Si vous êtes dans une pincée, cependant, c'est l'itinéraire le moins cher.

Si vous souhaitez ouvrir le périphérique et souder quelques fils à votre ELM327, vous pouvez afficher le firmware et le convertir en un périphérique compatible LAWICEL, ce qui permet à votre ELM327 ultra-économique de fonctionner avec Linux et de s'afficher en tant que périphérique slcanX. ! (Vous trouverez des informations sur la mise à jour de votre ELM327 sur le blog makerspace de Area 515 de Des Moines, dans l’Iowa.)

Conseil GoodThopter

Travis Goodspeed, un pirate informatique bien connu, a publié une carte open source à faible coût avec une interface CAN appelée GoodThopter. Le GoodThopter, basé sur ses appareils GoodFet populaires, utilise le MCP2515 et communique via un port série avec sa propre interface personnalisée. Vous devrez entièrement assembler et souder l’appareil vous-même, mais cela ne devrait coûter que quelques dollars, en fonction des pièces disponibles sur votre espace de hackers local.

Interface ELM-USB OBDTester vend un appareil commercial compatible avec ELM-32x pour environ 60 $. OBDTester.com sont les responsables de la bibliothèque PyOBD.

Interface CAN232 et CANUSB

LAWICEL AB produit le dispositif CAN232 du commerce CAN, qui se branche sur un port RS232 avec un connecteur DB9, et une version USB appelée CANUSB (ce dernier coûte entre 110 et 120 dollars).Parce qu’ils sont fabriqués par les inventeurs du protocole LAWICEL, il est garanti que ces dispositifs fonctionnent avec les modules de liaison série can-utils.

Adaptateur vscom

Le VSCOM est un module USB USB commercial et abordable de Vision Systems utilisant le protocole LAWICEL. VSCOM fonctionne avec les can-utils Linux sur liaison série (slcan) et donne de bons résultats. Le dispositif coûte environ 100 $ à 130 $.

Interface USB2CAN

Le convertisseur USB2CAN à partir de 8 appareils est l’alternative la moins chère à une interface CAN non série. Ce petit périphérique USB commercial apparaîtra comme un périphérique can0 standard sous Linux et dispose du support le plus intégré dans cette gamme de prix. La plupart des périphériques qui apparaissent comme des périphériques canX raw sont des cartes PCI et coûtent généralement beaucoup plus cher que ce périphérique.

EVTV Due Board

EVTV.me est spécialisé dans les conversions de voitures électriques. Ils fabriquent de nombreux outils pour faire des choses folles sur votre véhicule historique, comme l'ajout d'une transmission Tesla à celui-ci. L'un de leurs outils est un renifleur CAN open source appelé EVTV Due, qui est essentiellement un Arduino Due avec un émetteur-récepteur CAN intégré et des bornes à vis pour gérer l'interface avec vos lignes CAN. À l'origine, ce tableau était conçu pour fonctionner uniquement avec le logiciel SavvyCAN, qui utilise son outil d'ingénierie inverse des véhicules généralisés (GVRET), mais il prend désormais également en charge SocketCAN.

Enregistreur de données CrossChasm C5

Le CrossChasm C5 est un appareil commercial qui prend en charge le micrologiciel Ford VI et coûte environ 120 $. Le C5 prend en charge le VI, également appelé traducteur CAN, pour convertir les messages CAN au format OpenXC. Il convertit également certains paquets CAN propriétaires en un format générique à envoyer via Bluetooth.

Triple conseil CANBus

Au moment où j'écris ces lignes, le CANBus Triple est encore en développement. Il utilise un faisceau de câbles conçu pour supporter Mazda, mais il prend en charge trois bus CAN de tout véhicule.

Périphériques CAN haut de gamme

Les appareils haut de gamme vous coûteront plus cher, mais ils sont capables de recevoir plus de canaux simultanés et offrent plus de mémoire pour éviter les pertes de paquets. Les outils hautes performances prennent souvent en charge huit canaux ou plus, mais à moins que vous ne travailliez sur des véhicules de course, vous n’avez probablement pas besoin de autant de canaux, alors assurez-vous d’avoir besoin de tels dispositifs avant de verser de l’argent.

Ces appareils viennent souvent avec leur propre logiciel propriétaire ou un abonnement logiciel à un coût parfois élevé. Assurez-vous que le logiciel associé au périphérique que vous choisissez fait ce que vous voulez, car vous serez généralement verrouillé dans son API et son matériel préféré. Si vous avez besoin de périphériques haut de gamme fonctionnant sous Linux, essayez Kvaser, Peak ou EMS Wünsche. Les appareils de ces sociétés utilisent généralement le chipset sja1000 à des prix commençant autour de 400 $.

Séparateur Y de bus CAN

Un séparateur en Y de bus CAN est un appareil très simple qui consiste en un connecteur DLC divisé en deux connecteurs, ce qui vous permet de connecter un appareil à un port et un renifleur CAN à l’autre. Celles-ci coûtent généralement environ 10 dollars sur Amazon et sont en fait assez simples à réaliser par vous-même.

HackRF SDR

HackRF est un SDR de Great Scott Gadgets. Ce projet matériel open source peut recevoir et transmettre des signaux de 10 MHz à 6 GHz. À environ 330 $, vous ne pouvez pas obtenir un meilleur DTS pour le prix.

USRP SDR

USRP est un dispositif SDR modulaire professionnel que vous pouvez créer pour répondre à vos besoins. USRP est open source à des degrés divers, à des prix allant de 500 à 2 000 dollars.

Chaîne d'outils ChipWhisperer

NewAE Technologies produit le ChipWhisperer. Le ChipWhisperer est un système d’attaques par les canaux latéraux, tels que l’analyse de la puissance et les pépins d’horloge. Des systèmes similaires coûtent généralement 30 000 dollars ou plus, mais ChipWhisperer est un système open source qui coûte entre 1 000 et 1 500 dollars.

Conseil Pitaya Rouge

Red Pitaya est un outil de mesure open source qui, pour environ 500 USD, remplace des outils de mesure coûteux tels que les oscilloscopes, les générateurs de signaux et les analyseurs de spectre. Red Pitaya a des interfaces LabView et Matlab, et vous pouvez écrire vos propres outils et applications. Il supporte même des extensions pour des choses comme les boucliers Arduino.

Logiciel

Comme nous l'avons fait avec le matériel, nous allons d'abord nous concentrer sur les outils open source, puis sur ceux qui sont plus coûteux.

Wireshark

Wireshark est un outil de reniflement de réseau populaire. Il est possible d'utiliser Wireshark sur un réseau de bus CAN aussi longtemps que vous utilisez Linux et utilisez SocketCAN. Wireshark n’a aucune fonctionnalité permettant de trier ou de décoder les paquets CAN, mais cela pourrait être utile en cas de pincement.

Module PyOBD

PyOBD, également appelé PyOBD2 et PyOBD-II, est un module Python qui communique avec les périphériques ELM327. Basé sur la bibliothèque PySerial, il est conçu pour vous donner des informations sur la configuration de votre OBD dans une interface pratique. Pour un outil d’analyse spécifique de PyOBD, consultez l’outil OBD2 ScanTool d’Austin Murphy, qui tente de devenir une solution open source plus complète pour le dépannage du diagnostic.

Outils Linux

Linux prend en charge les pilotes CAN prêts à l'emploi et SocketCAN fournit une expérience simple de netlink (interface de carte réseau) lorsqu'il traite avec CAN. Vous pouvez utiliser sa suite can-utils pour une implémentation en ligne de commande et, en tant que logiciel open source, il est facile d’étendre les fonctionnalités à d’autres utilitaires.

Serveur CANiBUS

CANiBUS est un serveur Web écrit en Go by Open Garages. Ce serveur permet à une salle remplie de chercheurs de travailler simultanément sur le même véhicule, que ce soit à des fins pédagogiques ou en renversement d’équipes. Le langage Go est portable sur n'importe quel système d'exploitation, mais vous pouvez rencontrer des problèmes avec les pilotes de bas niveau sur certaines plates-formes. Par exemple, même si vous utilisez CANiBUS sous Linux, vous ne pourrez pas interagir directement avec SocketCAN car Go ne prend pas en charge les indicateurs de socket nécessaires pour initialiser l’interface CAN. (Ce problème pourrait être résolu en implémentant socketcand, mais à ce jour, cette fonctionnalité n'a pas encore été implémentée.) CANiBUS a un pilote pour ELM327 qui prend en charge le sniffing générique. Vous pouvez en apprendre plus sur CANiBUS et télécharger la source.

Kayak

Kayak est une interface graphique basée sur Java permettant d’analyser le trafic CAN. Il possède plusieurs fonctionnalités avancées, telles que le suivi GPS et les capacités d'enregistrement et de lecture. Il utilise socketcand pour fonctionner sur d’autres systèmes d’exploitation. Vous aurez donc besoin d’au moins un renifleur basé sur Linux pour prendre en charge Kayak.

SavvyCAN SavvyCAN est un outil conçu par Collin Kidder de EVTV.me qui utilise un autre cadre conçu par EVTV.me, GVRET, pour parler à des renifleurs HW tels que EVTV Due. SavvyCAN est un outil open source basé sur une interface graphique Qt qui fonctionne sur plusieurs systèmes d'exploitation. Il comprend plusieurs fonctionnalités très intéressantes, telles que l'éditeur DBC, la représentation graphique sur bus CAN, la diffraction de fichiers journaux, plusieurs outils de reverse engineering et toutes les fonctionnalités de détection CAN normales que vous êtes en droit d'attendre. SavvyCAN ne parle pas à SocketCAN, mais il peut lire différents formats de fichiers journaux, tels que les journaux Bushmaster, les journaux Microchip, les formats CRTD et les fichiers journaux génériques au format CSV.

Enregistreur de données O2OO

O2OO est un enregistreur de données OBD-II à code source ouvert qui fonctionne avec ELM327 pour enregistrer des données dans une base de données SQLite à des fins graphiques. Il prend également en charge la lecture des données GPS au format NMEA.

Caribou bienveillant

Caring Caribou, écrit en Python, est conçu pour être le Nmap du piratage automobile. A ce jour, il n’en est qu’à ses balbutiements, mais il montre beaucoup de potentiel. Caring Caring a des caractéristiques uniques, telles que la possibilité de recourir à des services de diagnostic par la force brute, et gère le XCP. Il dispose également de votre fonctionnalité CAN de transmission et d’envoi standard et prend en charge vos propres modules.

Outil d'empreinte digitale c0f

CAN of Fingers (c0f) est un outil open source pour l’empreinte digitale des systèmes de bus CAN. Il prend en charge l’identification de modèles dans un flux de réseau de bus CAN, ce qui peut être utile pour rechercher un signal spécifique sur un bus bruyant.

UDSim ECU Simulator

UDSim est un outil graphique permettant de surveiller un bus CAN et d'apprendre automatiquement les périphériques qui y sont connectés en surveillant les communications. Il est conçu pour être utilisé avec un autre outil de diagnostic, tel qu’un outil de concession ou un outil d’analyse d’un magasin automobile local.

UDSim a trois modes: apprentissage, simulation et attaque. En mode apprentissage, il identifie les modules qui répondent aux requêtes de diagnostic UDS et surveille les réponses. En mode simulation, un véhicule sur le bus CAN simule ou teste des outils de diagnostic. En mode attaque, il crée un profil de fuzzing pour des outils tels que Peach Fuzzer.

Renifleur de bus CAN Octane

Octane est un injecteur et renifleur de bus CAN open source avec une très belle interface pour l'envoi et la réception de paquets CAN, y compris un système de déclenchement XML. Actuellement, il ne fonctionne que sous Windows.

AVRDUDESS GUI

AVRDUDESS est une interface graphique pour AVRDUDE écrite en .NET, bien que cela fonctionne correctement avec Mono sous Linux.

Syntoniseur d'ECU RomRaider

RomRaider est une suite de réglage open source pour l'unité de commande de moteur Subaru qui vous permet d'afficher et de consigner des données et de régler le calculateur. C’est l’un des rares tuners calculateurs open source et il peut gérer les vues 3D et l’enregistrement de données en temps réel. Vous aurez besoin d’un câble Tactrix Open Port 2.0 et du logiciel Tactrix EcuFlash pour pouvoir télécharger et utiliser le micrologiciel de l’écu. Une fois que vous avez téléchargé le flash avec EcuFlash, vous pouvez le modifier avec RomRaider. L’éditeur est écrit en Java et fonctionne actuellement sous Windows et Linux, même si EcuFlash n’est pas pris en charge sous Linux.

Renifleur d'autobus CAN Komodo

Komodo est un renifleur haut de gamme doté d'un système multi-opération performant: le SDK Python. Cela vous coûtera entre 350 et 450 USD, selon que vous souhaitiez une interface simple ou double CAN. Komodo dispose de fonctions d’isolation permettant d’empêcher votre ordinateur de frire en cas de mauvaise connexion, ainsi que de huit broches d’E / S universelles que vous pouvez configurer pour déclencher des actions à partir de périphériques externes. Komodo est fourni avec un logiciel approprié pour vous aider à démarrer, mais le véritable avantage est que vous pouvez écrire votre propre logiciel Komodo.

Véhicule espion

Vehicle Spy est un outil commercial d’Intrepid Control Systems spécialement conçu pour inverser les protocoles de communication CAN et autres véhicules. Le logiciel nécessite une licence par appareil NeoVI ou ValueCAN, deux appareils propriétaires de Vehicle Spy. Le ValueCAN3 est l’appareil le moins cher fonctionnant avec Vehicle Spy. Il a une interface CAN et coûte environ 300 $. Ajoutez le logiciel Vehicle Spy Basic et votre coût sera d’environ 1 300 dollars.

Les appareils NeoIV sont plus haut de gamme, avec plusieurs canaux configurables, à partir de 1 200 dollars environ. Un paquet de base contient un NeoIV (rouge) et un véhicule Spy Basic pour 2 000 $, ce qui permet d'économiser un peu d'argent. Vehicle Spy Professional coûte environ 2 600 dollars sans matériel. (Plusieurs options sont disponibles sur le site Intrepid.)

Tous les périphériques matériels Intrepid prennent en charge le téléchargement de scripts à exécuter sur le bus en temps réel. Vehicle Spy Basic prend en charge les opérations CAN / LIN RX / TX. Vous aurez besoin de la version professionnelle uniquement si le piratage de voiture est un projet à temps plein pour vous ou si vous souhaitez utiliser le clignotement du calculateur ou d’autres fonctionnalités avancées, telles que la simulation de nœud, la création de scripts sur le renifleur ou le calibrage de la mémoire.

Part

Laisser Un Commentaire