Jeffrey Cross
Jeffrey Cross

Car Hacking 101: Handwerkszeug

Zunehmend wird die Cyber-Sicherheit immer wichtiger und betrifft nicht nur die Anfälligkeit von Daten, sondern auch unsere zunehmend computerisierten Autos. In seinem neuen Buch Das Handbuch zum Auto-HackerCraig Smith führt die Leser durch die Details der Computersysteme und der eingebetteten Software, die Sie in modernen Fahrzeugen finden. Dies ist eine großartige Ressource, wenn Sie Ihre Automationsfähigkeiten verbessern oder ein Interesse an den Netzwerken und der Sicherheit von Autos haben.

Der folgende Auszug beschreibt die Hardware und Software, die Sie benötigen, um mit dem Hacken von Autos zu beginnen. Dies ist nur eine von vielen detaillierten Ressourcen, die Sie finden Das Handbuch zum Auto-Hacker. Das Buch ist ab sofort verfügbar.


In diesem Abschnitt werden verschiedene Tools erläutert, die Sie bei der Untersuchung eines Fahrzeugs verwenden möchten. Ich habe mich für kostengünstige Geräte und Software entschieden, weil es mir wichtig ist, dass möglichst viele Menschen an der Forschung teilnehmen.

Open Garages ist bereit, Werkzeuge zur Unterstützung der Automobilforschung vorzustellen und zu fördern. Wenn Ihr Unternehmen ein großartiges Produkt herstellt, wenden Sie sich bitte an Open Garages. Wenn Sie jedoch keinen offenen Beitrag zu Ihrem Tool leisten können, erwarten Sie keine kostenlose Werbung.

Hardware

In diesem Abschnitt werden sowohl Karten wie der ChipWhisperer als auch Dongle-ähnliche Geräte behandelt, die CAN-Konnektivität bieten. Wir werden uns zunächst mit kostengünstigerer Open-Source-Hardware befassen und dann ein paar High-End-Geräte für diejenigen erkunden, die etwas mehr Geld ausgeben möchten. Obwohl es viele kostengünstige Geräte für die Kommunikation mit dem CAN-Bus gibt, kann die für die Interaktion mit diesen Geräten erforderliche Software fehlen, so dass Sie häufig eigene schreiben müssen.

Untergeordnete CAN-Geräte

Diese Geräte sind nützlich, um den Inhalt Ihres CAN-Busses zu erfassen und Pakete einzuspeisen. Sie reichen von Hobbyisten-Boards bis hin zu professionellen Geräten, die viele benutzerdefinierte Funktionen unterstützen und viele verschiedene CAN-Busse gleichzeitig bedienen können.

Arduino-Schilde

Zahlreiche Arduino- und Arduino-ähnliche Geräte (20 bis 30 US-Dollar) unterstützen CAN mit einem Arduino-Schild. Hier sind einige Arduino-Schilde, die CAN unterstützen:

CANdiy-Shield MCP2515 CAN-Controller mit zwei RJ45-Steckverbindern und einem Protoarea-ChuangZhou CAN-Bus Shield MCP2515 CAN-Controller mit D-Sub-Anschluss und Schraubklemmen DFRobot CAN-Bus Shield STM32-Controller mit D-Sub-Anschluss SeeedStudio SLD01105P CAN -Bus Shield MCP2515 CAN-Controller mit D-Sub-Anschluss SparkFun SFE CAN-Bus Shield MCP2515 CAN-Controller mit D-Sub-Anschluss und SD-Kartenhalter; hat Anschlüsse für ein LCD- und GPS-Modul

Diese Schilde sind alle ziemlich ähnlich. Die meisten betreiben den MCP2515 CAN-Controller, obwohl der DFRobot-Shield eine STM32 verwendet, die mit mehr Pufferspeicher schneller ist.

Unabhängig davon, für welches Schild Sie sich entscheiden, müssen Sie Code für das Arduino schreiben, um Pakete zu schnüffeln. Zu jeder Abschirmung gehört eine Bibliothek, die programmgesteuert mit der Abschirmung verbunden ist. Idealerweise sollten diese Busse etwas wie das LAWICEL-Protokoll unterstützen, wodurch sie das Senden und Empfangen von Paketen über ein serielles Programm über ein Userspace-Tool auf dem Laptop wie SocketCAN ermöglichen.

Freematics OBD-II Telematics Kit

Dieses Arduino-basierte OBD-II-Bluetooth-Adapter-Kit verfügt über ein OBD-II-Gerät und einen Datenlogger. GPS, Beschleunigungsmesser, Gyro und Temperatursensoren sind ebenfalls enthalten.

CANtact

CANtact, ein Open-Source-Gerät von Eric Evenchick, ist ein sehr kostengünstiges USB-CAN-Gerät, das mit Linux SocketCAN funktioniert. Es verwendet einen DB 9-Anschluss und hat den einzigartigen Vorteil, dass mit Jumper-Pins geändert wird, welche Pins CAN und Masse sind. Mit dieser Funktion können sowohl DB9-zu-OBD-II-Steckverbinder nach US- als auch mit UK-Typ unterstützt werden. Sie können CANtact hier bekommen.

Raspberry Pi Der Raspberry Pi ist eine Alternative zum Arduino, die etwa 30 bis 40 US-Dollar kostet. Der Pi ist mit einem Linux-Betriebssystem ausgestattet, enthält jedoch keinen CAN-Transceiver, sodass Sie einen Schild kaufen müssen.

Die Verwendung eines Raspberry Pi gegenüber einem Arduino hat den Vorteil, dass Sie die Linux SocketCAN-Tools direkt verwenden können, ohne zusätzliche Hardware kaufen zu müssen. Im Allgemeinen kann ein Raspberry Pi mit einem MCP2515 über SPI kommunizieren, wobei nur einige grundlegende Verdrahtungen erforderlich sind. Hier sind einige Implementierungen von Raspberry Pi:

Canberry MCP2515 CAN-Controller nur mit Schraubklemmen (kein D-Sub-Stecker; $ 23) Carberry Zwei CAN-Bus-Leitungen und zwei GMLAN-Leitungen, LIN und Infrarot (scheint keine Open-Source-Abschirmung zu sein; PICAN-CAN-Bus-Platine MCP2515 CAN-Controller mit D-Sub-Stecker und Schraubklemmen (40 bis 50 US-Dollar)

ChipKit Max32 Development Board und NetworkShield

Das ChipKit-Board ist ein Entwicklungsboard, das zusammen mit dem NetworkShield ein vom Netzwerk interpretierbares CAN-System bietet. Diese Open-Source-Hardwarelösung wird mit rund 110 US-Dollar vom OpenXC-Standard angepriesen und unterstützt vorgefertigte Firmware von OpenXC. Sie können jedoch auch Ihre eigene Firmware dafür schreiben und Roh-CAN verwenden.

ELM327-Chipsatz

Der ELM327-Chipsatz ist bei weitem der billigste verfügbare Chipsatz (von $ 13 bis $ 40) und wird in den meisten billigen OBD-Geräten verwendet. Es kommuniziert über serielle Daten mit dem OBD und wird mit nahezu jeder Art von Anschluss geliefert, den Sie sich vorstellen können, von USB über Bluetooth bis hin zu WLAN und so weiter. Sie können über serielle Geräte eine Verbindung zu ELM327-Geräten herstellen, und sie können andere Pakete als OBD / UDS-Pakete senden. Eine vollständige Liste der Befehle, die das ELM327 verwenden, finden Sie im Datenblatt.

Leider können die verfügbaren CAN-Linux-Tools nicht auf der ELM327 ausgeführt werden. Open Garages hat jedoch eine Web-Initiative gestartet, die auch Sniffing-Treiber für die ELM327 mit dem Namen CANiBUS enthält. Seien Sie sich bewusst, dass der ELM327 über einen begrenzten Pufferplatz verfügt, so dass Sie Pakete verlieren, wenn das Sniffing und die Übertragung etwas ungenau sind. Wenn Sie sich in einer Notlage befinden, ist dies die billigste Route.

Wenn Sie das Gerät öffnen und ein paar Drähte an die ELM327 anlöten möchten, können Sie die Firmware erneut flashen und in ein LAWICEL-kompatibles Gerät umwandeln. Dadurch kann Ihr über die preisgünstiges ELM327 mit Linux arbeiten und als slcanX-Gerät angezeigt werden ! (Informationen zum Flashen Ihrer ELM327 finden Sie im Area 515-Makerspace-Blog von Des Moines, Iowa.)

GoodThopter Board

Travis Goodspeed, ein bekannter Hardware-Hacker, hat ein kostengünstiges Open-Source-Board mit einer CAN-Schnittstelle namens GoodThopter herausgebracht. Der GoodThopter, der auf seinen beliebten GoodFet-Geräten basiert, verwendet MCP2515 und kommuniziert seriell mit einer eigenen benutzerdefinierten Schnittstelle. Sie müssen das Gerät komplett zusammenbauen und zusammenlöten, dies sollte jedoch nur ein paar Dollar kosten, je nachdem, welche Teile in Ihrem örtlichen Hackerspace verfügbar sind.

ELM-USB Interface OBDTester verkauft ein handelsübliches ELM-32x-kompatibles Gerät für rund 60 US-Dollar. OBDTester.com sind die Betreuer der PyOBD-Bibliothek.

CAN232 und CANUSB-Schnittstelle

LAWICEL AB produziert das handelsübliche CAN-Gerät CAN232, das an einen RS232-Port mit DB9-Anschluss angeschlossen wird, und eine USB-Version namens CANUSB (die letztere geht von $ 110 bis $ 120).Da sie von den Erfindern des LAWICEL-Protokolls hergestellt werden, funktionieren diese Geräte garantiert mit den seriellen Verbindungsmodulen von can-utils.

VSCOM-Adapter

Das VSCOM ist ein kostengünstiges, kommerzielles USB-CAN-Modul von Vision Systems, das das LAWICEL-Protokoll verwendet. VSCOM arbeitet mit den Linux-Can-Utils über die serielle Verbindung (Slcan) und liefert gute Ergebnisse. Das Gerät kostet etwa 100 bis 130 US-Dollar.

USB2CAN-Schnittstelle

Der USB2CAN-Konverter von 8devices ist die billigste Alternative zu einer nicht seriellen CAN-Schnittstelle. Dieses kleine, handelsübliche USB-Gerät wird unter Linux als standardmäßiges can0-Gerät angezeigt und bietet die in dieser Preisklasse am besten integrierte Unterstützung. Bei den meisten Geräten, die als canX raw-Geräte angezeigt werden, handelt es sich um PCI-Karten, die in der Regel erheblich mehr kosten als dieses Gerät.

EVTV Due Board

EVTV.me ist auf Umbauten von Elektroautos spezialisiert. Sie stellen viele großartige Werkzeuge bereit, um verrückte Dinge an Ihrem historischen Fahrzeug anzufertigen, beispielsweise das Hinzufügen eines Tesla-Antriebsstrangs. Eines ihrer Tools ist ein 100-Dollar-Open-Source-CAN-Sniffer namens EVTV Due, bei dem es sich im Wesentlichen um ein Arduino Due mit integriertem CAN-Transceiver und Griff-Schraub-Terminals handelt, die eine Schnittstelle zu Ihren CAN-Leitungen herstellen. Dieses Board wurde ursprünglich so geschrieben, dass es ausschließlich mit der SavvyCAN-Software arbeitet, die das Generalized Vehicle Reverse Engineering Tool (GVRET) verwendet. Jetzt wird jedoch auch SocketCAN unterstützt.

CrossChasm C5 Datenlogger

Der CrossChasm C5 ist ein kommerzielles Gerät, das die Ford VI-Firmware unterstützt und etwa 120 US-Dollar kostet. Der C5 unterstützt das VI, das auch als CAN-Übersetzer bezeichnet wird, um CAN-Nachrichten in das OpenXC-Format zu konvertieren, und konvertiert einige proprietäre CAN-Pakete in ein allgemeines Format, das über Bluetooth gesendet werden kann.

CANBus Triple Board

Während ich dies schreibe, befindet sich der CANBus Triple noch in der Entwicklung. Es verwendet einen Kabelbaum, der Mazda unterstützt, aber drei CAN-Busse eines Fahrzeugs.

High-End-CAN-Geräte

Höhere Endgeräte kosten mehr Geld, sie können jedoch mehr Kanäle gleichzeitig empfangen und bieten mehr Speicher, um Paketverluste zu vermeiden. Hochleistungs-Tools unterstützen häufig acht oder mehr Kanäle. Wenn Sie jedoch nicht an Rennfahrzeugen arbeiten, benötigen Sie wahrscheinlich nicht so viele Kanäle. Stellen Sie daher sicher, dass Sie solche Geräte benötigen, bevor Sie Geld verlieren.

Diese Geräte werden oft mit eigener proprietärer Software oder einem Software-Abonnement zu teilweise erheblichen Zusatzkosten geliefert. Stellen Sie sicher, dass die mit dem von Ihnen ausgewählten Gerät verknüpfte Software Ihren Wünschen entspricht, da Sie normalerweise in die API und die bevorzugte Hardware eingebunden werden. Wenn Sie High-End-Geräte benötigen, die unter Linux funktionieren, probieren Sie Kvaser, Peak oder EMS Wünsche aus. Die Geräte dieser Unternehmen verwenden den sja1000-Chipsatz normalerweise zu Preisen ab etwa 400 US-Dollar.

CAN Bus Y-Splitter

Ein CAN-Bus-Y-Splitter ist ein sehr einfaches Gerät, bei dem es sich im Wesentlichen um einen DLC-Steckverbinder handelt, der in zwei Steckverbinder aufgeteilt ist. Dadurch können Sie ein Gerät an einen Port und einen CAN-Sniffer an den anderen anschließen. Diese kosten normalerweise bei Amazon rund 10 US-Dollar und sind eigentlich ganz einfach für Sie.

HackRF SDR

HackRF ist ein SDR von Great Scott Gadgets. Dieses Open Source-Hardwareprojekt kann Signale von 10 MHz bis 6 GHz empfangen und senden. Bei etwa 330 US-Dollar können Sie keine bessere SZR für den Preis erhalten.

USRP SDR

USRP ist ein professionelles, modulares SDR-Gerät, das Sie nach Ihren Bedürfnissen erstellen können. USRP ist in unterschiedlichem Maße Open Source zu Preisen zwischen 500 und 2.000 USD.

ChipWhisperer Toolchain

NewAE Technologies stellt den ChipWhisperer her. Der ChipWhisperer ist ein System für Seitenkanalangriffe wie Leistungsanalyse und Taktstörungen. Ähnliche Systeme kosten normalerweise 30.000 Dollar oder mehr, aber der ChipWhisperer ist ein Open-Source-System, das zwischen 1.000 und 1.500 Dollar kostet.

Rote Pitaya-Tafel

Red Pitaya ist ein Open-Source-Messwerkzeug, das für rund 500 US-Dollar teure Messgeräte wie Oszilloskope, Signalgeneratoren und Spektrumanalysatoren ersetzt. Red Pitaya verfügt über LabView- und Matlab-Schnittstellen, und Sie können Ihre eigenen Tools und Anwendungen dafür schreiben. Es unterstützt sogar Erweiterungen für Arduino-Schilde.

Software

Wie bei der Hardware konzentrieren wir uns zunächst auf Open Source-Tools und behandeln dann die teureren.

Wireshark

Wireshark ist ein beliebtes Netzwerk-Sniffing-Tool. Es ist möglich, Wireshark in einem CAN-Bus-Netzwerk zu verwenden, solange Sie Linux ausführen und SocketCAN verwenden. Wireshark bietet keine Funktionen, um CAN-Pakete zu sortieren oder zu decodieren, es könnte jedoch hilfreich sein.

PyOBD-Modul

PyOBD - auch PyOBD2 und PyOBD-II genannt - ist ein Python-Modul, das mit ELM327-Geräten kommuniziert. Es basiert auf der PySerial-Bibliothek und bietet Ihnen Informationen zu Ihrem OBD-Setup in einer komfortablen Benutzeroberfläche. Informationen zu einem bestimmten Scan-Tool-Zweig von PyOBD finden Sie in OBD2 ScanTool von Austin Murphy, das versucht, eine umfassendere Open-Source-Lösung für die Fehlerbehebung bei der Diagnose zu werden.

Linux-Tools

Linux unterstützt CAN-Treiber sofort und SocketCAN bietet eine einfache Erfahrung mit Netlink (Netzwerkkartenschnittstelle) im Umgang mit CAN. Sie können die Can-Utils-Suite für eine Befehlszeilenimplementierung verwenden. Als Open-Source-Software können Sie die Funktionalität leicht auf andere Dienstprogramme erweitern.

CANiBUS-Server

CANiBUS ist ein in Go by Open Garages geschriebener Webserver. Dieser Server ermöglicht es einem Raum voller Forscher, gleichzeitig an demselben Fahrzeug zu arbeiten, sei es für Unterrichtszwecke oder für Team-Rückwärtsfahrten. Die Go-Sprache kann auf jedes Betriebssystem portiert werden. Auf bestimmten Plattformen können jedoch Probleme mit Low-Level-Treibern auftreten. Selbst wenn Sie CANiBUS beispielsweise unter Linux ausführen, können Sie nicht direkt mit SocketCAN interagieren, da Go nicht die erforderlichen Socket-Flags zum Initialisieren der CAN-Schnittstelle unterstützt. (Dieses Problem könnte durch die Implementierung von socketcand behoben werden, aber zum jetzigen Zeitpunkt muss diese Funktion noch implementiert werden.) CANiBUS verfügt über einen Treiber für ELM327, der generisches Sniffing unterstützt. Sie können mehr über CANiBUS erfahren und die Quelle herunterladen.

Kajak

Kayak ist eine Java-basierte GUI zur Analyse des CAN-Verkehrs. Es verfügt über mehrere erweiterte Funktionen wie GPS-Tracking sowie Aufnahme- und Wiedergabefunktionen. Socketcand wird für die Verwendung mit anderen Betriebssystemen verwendet. Sie benötigen mindestens einen Linux-basierten Sniffer, um Kayak zu unterstützen.

SavvyCAN SavvyCAN ist ein von Collin Kidder von EVTV.me geschriebenes Tool, das ein anderes von EVTV.me entwickeltes Framework, GVRET, verwendet, um mit HW-Sniffern wie EVTV Due zu kommunizieren. SavvyCAN ist ein auf Qt GUI basierendes Open Source-Tool, das auf mehreren Betriebssystemen funktioniert. Es enthält einige sehr nützliche Funktionen, wie den DBC-Editor, die CAN-Bus-Grafik, Protokolldateien, verschiedene Reverse-Engineering-Tools und alle normalen CAN-Sniffing-Funktionen, die Sie erwarten würden. SavvyCAN spricht nicht mit SocketCAN, kann jedoch verschiedene Protokolldateiformate lesen, wie Bushmaster-Protokolle, Microchip-Protokolle, CRTD-Formate und generische CSV-formatierte Protokolldateien.

O2OO-Datenlogger

O2OO ist ein Open-Source-OBD-II-Datenlogger, der mit ELM327 Daten zur grafischen Darstellung in einer SQLite-Datenbank aufzeichnet. Es unterstützt auch das Lesen von GPS-Daten in NMEA-Format.

Caribou fürsorglich

Caring Caribou, geschrieben in Python, wurde entwickelt, um die Nmap des Automotive-Hackings zu sein. Zum jetzigen Zeitpunkt steckt es noch in den Kinderschuhen, zeigt aber viel Potenzial. Caring Caribou verfügt über einige einzigartige Funktionen, z. B. die Möglichkeit, Diagnosedienste brutal zu erzwingen und XCP zu handhaben. Es verfügt auch über Ihre standardmäßige Sniff-and-Send-CAN-Funktionalität und unterstützt Ihre eigenen Module.

c0f Fingerabdruck-Tool

CAN of Fingers (c0f) ist ein Open Source-Tool zum Fingerprinting von CAN-Bussystemen. Es bietet einige grundlegende Unterstützung für das Erkennen von Mustern in einem CAN-Bus-Netzwerkstrom. Dies kann hilfreich sein, wenn Sie versuchen, ein bestimmtes Signal auf einem verrauschten Bus zu finden.

UDSim ECU-Simulator

UDSim ist ein GUI-Tool, mit dem ein CAN-Bus überwacht und die daran angeschlossenen Geräte automatisch erkannt werden können, indem die Kommunikation überwacht wird. Es ist für die Verwendung mit einem anderen Diagnosetool konzipiert, z. B. einem Händlerwerkzeug oder einem Scan-Tool aus einem lokalen Kfz-Geschäft.

UDSim verfügt über drei Modi: Lernen, Simulation und Angriff. Im Lernmodus werden Module identifiziert, die auf UDS-Diagnoseabfragen antworten, und die Antworten werden überwacht. Im Simulationsmodus simuliert es ein Fahrzeug auf dem CAN-Bus, um Diagnosewerkzeuge zu täuschen oder zu testen. Im Angriffsmodus erstellt es ein Fuzzing-Profil für Werkzeuge wie Peach Fuzzer.

Octane CAN Bus Sniffer

Octane ist ein Open-Source-CAN-Bus-Sniffer und -Injektor mit einer sehr schönen Schnittstelle zum Senden und Empfangen von CAN-Paketen, einschließlich eines XML-Triggersystems. Derzeit läuft es nur unter Windows.

AVRDUDESS GUI

AVRDUDESS ist ein GUI-Frontend für AVRDUDE, das in .NET geschrieben wurde, funktioniert jedoch gut mit Mono unter Linux.

RomRaider ECU-Tuner

RomRaider ist eine Open-Source-Tuning-Suite für die Subaru-Motorsteuereinheit, mit der Sie Daten anzeigen, protokollieren und das Steuergerät abstimmen können. Es ist eines der wenigen Open-Source-ECU-Tuner und kann 3D-Ansichten und Live-Datenprotokollierung verarbeiten. Sie benötigen ein Tactrix Open Port 2.0-Kabel und die Tactrix EcuFlash-Software, um die Firmware des Steuergeräts herunterzuladen und zu verwenden. Nachdem Sie den Flash mit EcuFlash heruntergeladen haben, können Sie ihn mit RomRaider bearbeiten. Der Editor ist in Java geschrieben und funktioniert derzeit unter Windows und Linux, EcuFlash wird jedoch nicht unter Linux unterstützt.

Komodo CAN Bus Sniffer

Komodo ist ein High-End-Sniffer mit einem schönen Multioperationssystem - Python SDK. Es kostet ungefähr 350 bis 450 Dollar, abhängig davon, ob Sie eine Single- oder Dual-CAN-Schnittstelle wünschen. Komodo verfügt über Isolationsfunktionen, um zu verhindern, dass Ihr Computer brät, wenn Sie etwas falsch verdrahten, sowie acht universelle E / A-Pins, die Sie konfigurieren können, um Aktionen von externen Geräten auszulösen. Komodo wird mit einer anständigen Software geliefert, die Sie zum Laufen bringt, aber der eigentliche Vorteil ist, dass Sie Ihre eigene Komodo-Software schreiben können.

Fahrzeug-Spion

Vehicle Spy ist ein kommerzielles Tool von Intrepid Control Systems, das speziell für die Umkehrung von CAN- und anderen Fahrzeugkommunikationsprotokollen entwickelt wurde. Die Software erfordert eine Lizenz pro NeoVI- oder ValueCAN-Gerät, beides proprietäre Geräte für Vehicle Spy. Der ValueCAN3 ist das billigste Gerät, das mit Vehicle Spy funktioniert. Es hat eine CAN-Schnittstelle und kostet etwa 300 US-Dollar. Fügen Sie die Vehicle Spy Basic-Software hinzu, und Ihre Kosten belaufen sich auf etwa 1.300 $.

Die NeoIV-Geräte verfügen über mehrere konfigurierbare Kanäle und beginnen bei rund 1.200 US-Dollar. Ein Basispaket enthält einen NeoIV (Red) und einen Vehicle Spy Basic für 2.000 US-Dollar, was etwas Geld spart. Vehicle Spy Professional kostet ohne Hardware rund 2.600 US-Dollar. (Auf der Site von Intrepid finden Sie mehrere Optionen.)

Alle Intrepid-Hardwaregeräte unterstützen das Hochladen von Skripts, um auf dem Bus in Echtzeit ausgeführt zu werden. Vehicle Spy Basic unterstützt CAN / LIN-RX / TX-Operationen. Sie benötigen die Professional-Version nur, wenn das Hacken von Autos ein Vollzeitprojekt für Sie sein wird, oder wenn Sie Steuergeräte-Flash oder andere erweiterte Funktionen verwenden möchten, z. B. Knotensimulation, Skripting für den Sniffer oder Speicherkalibrierung.

Aktie

Leave A Comment