Jeffrey Cross
Jeffrey Cross

Auton hakkerointi 101: Kaupan työkalut

Tietoverkkoturvallisuus kehittyy yhä useammin, eikä se koske pelkästään tietojen haavoittuvuutta, vaan yhä enemmän tietokoneistettuja autoja. Uudessa kirjassaan Car Hackerin käsikirja, Craig Smith vie lukijat läpi tietokonejärjestelmien ja sulautettujen ohjelmistojen, joita löydät nykyaikaisista ajoneuvoista. Se on hyvä resurssi, jos yrität hioa automaatiotaitojasi tai jos olet kiinnostunut autojen verkkoista ja turvallisuudesta.

Seuraava ote kattaa laitteet ja ohjelmistot, jotka sinun tarvitsee tietää autojen hakkeroinnin aloittamiseksi. Se on vain yksi monista yksityiskohtaisista resursseista Car Hackerin käsikirja. Kirja on nyt saatavilla.


Tässä osassa käsitellään erilaisia ​​työkaluja, joita haluat ehkä käyttää ajoneuvoa tutkittaessa. Olen päättänyt keskittyä edullisiin laitteisiin ja ohjelmistoihin, koska minulle on tärkeää, että tutkimukseen osallistuu mahdollisimman monta ihmistä.

Avoimet autotallit ovat valmiita esittelemään ja edistämään autoteollisuuden apuvälineitä. Jos yrityksesi tuottaa erinomaista tuotetta, ota rohkeasti yhteyttä avoimiin autotalleihin, mutta jos ei ole avoin tapa osallistua työkaluun, älä odota ilmaista julkisuutta.

Laitteisto

Tässä osiossa käsitellään ChipWhispererin kaltaisia ​​levyjä sekä dongle-tyyppisiä laitteita, jotka tarjoavat CAN-yhteyksiä. Tarkastelemme ensin edullisempia, avoimen lähdekoodin laitteita ja tutkimme sitten joitakin korkeampia palveluita niille, jotka haluavat viettää hieman enemmän rahaa. Vaikka on olemassa monia kustannustehokkaita laitteita kommunikoida CAN-väylän kanssa, näiden laitteiden kanssa vuorovaikutuksessa tarvittava ohjelmisto voi puuttua, joten sinun täytyy usein kirjoittaa oma.

Alemman tason CAN-laitteet

Nämä laitteet ovat hyödyllisiä CAN-väylän sisällön salaamiseen ja pakettien ruiskuttamiseen. Ne vaihtelevat harrastajatason levyistä ammattikäyttöön tarkoitettuihin laitteisiin, jotka tukevat paljon mukautettuja ominaisuuksia ja voivat käsitellä monia erilaisia ​​CAN-väylöitä samanaikaisesti.

Arduino Shields

Lukuisat Arduino- ja Arduino-kaltaiset laitteet ($ 20 - $ 30) tukevat CAN: a lisäämällä Arduino-kilpi. Seuraavassa on muutamia Arduino-suojaimia, jotka tukevat CAN: a:

CANdiy-Shield MCP2515 CAN -ohjain kahdella RJ45-liittimellä ja protoarea ChuangZhou-CAN-väyläkaapilla MCP2515 CAN-ohjain D-sub-liittimellä ja ruuviliittimillä DFRobot CAN-Bus Shield STM32-ohjain D-sub-liittimellä SeeedStudio SLD01105P CAN -Bus Shield MCP2515 CAN -ohjain D-sub-liittimellä SparkFun SFE CAN-Bus Shield MCP2515 CAN-ohjain D-sub-liittimellä ja SD-kortin pidikkeellä; on liitännät LCD- ja GPS-moduuleille

Nämä kilvet ovat kaikki melko samanlaisia. Useimmat käyttävät MCP2515 CAN -ohjainta, vaikka DFRobot-suojaus käyttää STM32: ää, joka on nopeampi, kun puskurimuistia on enemmän.

Riippumatta siitä, mikä kilpi valitset, sinun on kirjoitettava koodi Arduinolle, jotta voit pakata paketteja. Jokaisessa kilvessä on kirjasto, joka on suunniteltu liitettäväksi kilpeen ohjelmallisesti. Ihannetapauksessa näiden linja-autojen pitäisi tukea jotain LAWICEL-protokollaa, jonka avulla ne voivat lähettää ja vastaanottaa paketteja sarjaportin kautta kannettavalla tietokoneella, kuten SocketCAN.

Freematics OBD-II-telematiikkasarja

Tämä Arduino-pohjainen OBD-II-Bluetooth-sovitinsarja sisältää sekä OBD-II-laitteen että tiedonkeruulaitteen, ja siinä on GPS, kiihtyvyysmittari ja gyro- ja lämpötila-anturit.

cantact

Eric Evenchickin avoimen lähdekoodin laite, CANtact, on erittäin edullinen USB-CAN-laite, joka toimii Linux SocketCANin kanssa. Se käyttää DB 9 -liitintä ja sillä on ainutlaatuinen etu käyttää hyppynappia vaihtamaan, mitkä nastat ovat CAN- ja ground-ominaisuuksia - ominaisuus, jonka avulla se voi tukea sekä US- että UK-tyyliä DB9: tä OBD-II-liittimiin. Voit saada CANtactia täällä.

Raspberry Pi Raspberry Pi on vaihtoehto Arduinolle, joka maksaa noin 30 dollaria 40 dollariin. Pi tarjoaa Linux-käyttöjärjestelmän, mutta ei sisällä CAN-lähetin-vastaanotinta, joten sinun on ostettava kilpi.

Raspberry Pi: n käyttäminen Arduinoon on se, että voit käyttää Linux SocketCAN -työkaluja suoraan ilman, että tarvitset lisää laitteistoa. Yleensä Raspberry Pi voi puhua MCP2515: n kanssa SPI: n kanssa vain muutamalla perusjohtimella. Tässä muutamia Raspberry Pi-toteutuksia:

Canberry MCP2515 CAN -ohjain vain ruuviliittimillä (ei D-sub-liitintä; $ 23) Carberry Kaksi CAN-väylää ja kaksi GMLAN-linjaa, LIN ja infrapuna (ei näytä olevan avoimen lähdekoodin suoja, $ 81) PICAN CAN-Bus Board MCP2515 CAN-ohjain D-sub-liittimellä ja ruuviliittimillä ($ 40–50)

ChipKit Max32 Development Board ja NetworkShield

ChipKit-kortti on kehityskortti, joka yhdessä NetworkShieldin kanssa antaa sinulle verkon tulkittavan CAN-järjestelmän. Noin 110 dollaria OpenXC-standardi tukee tätä avoimen lähdekoodin laitteistoratkaisua, ja se tukee OpenXC: n esivahvistettua laiteohjelmistoa, mutta voit myös kirjoittaa oman laiteohjelmiston ja tehdä raakaa CAN-ohjelmaa.

ELM327 Chipset

ELM327-piirisarja on ylivoimaisesti halvin piirisarja, joka on saatavilla missä tahansa (13 dollaria 40 dollariin), ja sitä käytetään useimmissa halvoissa OBD-laitteissa. Se kommunikoi OBD: n kanssa sarjaliikenteessä ja siinä on lähes minkä tahansa tyyppisiä liittimiä, joista voit ajatella, USB: stä Bluetoothiin, Wi-Fi: iin ja niin edelleen. Voit muodostaa yhteyden ELM327-laitteisiin sarjaportin kautta, ja ne voivat lähettää muita paketteja kuin OBD / UDS-paketteja. Täydellinen luettelo komennoista ELM327: n avulla on tietolomakkeessa.

Valitettavasti käytettävissä olevat CAN Linux -työkalut eivät toimi ELM327: ssä, mutta Open Garages on aloittanut web-aloitteen, joka sisältää CANMBUS-nimisen ELM327: n sniffing-ohjaimet. Varoitetaan, että ELM327: llä on rajoitettu puskuritila, joten menetät paketteja, kun nuuskaaminen ja lähetys voi olla hieman epätarkka. Jos olet kuitenkin hyppysellinen, tämä on halvin reitti.

Jos olet valmis avaamaan laitteen ja juottamaan muutaman johdon ELM327-laitteeseesi, voit kiertää laiteohjelmiston ja muuntaa sen LAWICEL-yhteensopivaksi laitteeksi, jonka avulla uber halpaa ELM327: ää toimimaan Linuxin kanssa ja näkymään slcanX-laitteena ! (Löydät tietoja siitä, miten ELM327: n salama-alue Des Desinesin, Iowan Area 515 makerspace -blogissa).

GoodThopterin hallitus

Travis Goodspeed, tunnettu laitteistohacker, on julkaissut avoimen lähdekoodin edullisen kartongin, jossa on CAN-liitäntä nimeltä GoodThopter. GoodThopter, joka perustuu hänen suosittuihin GoodFet-laitteisiinsa, käyttää MCP2515: ää ja kommunikoi sarjaliikenteessä oman mukautetun käyttöliittymänsä avulla. Sinun täytyy koota ja juottaa laitteesi täydellisesti itse, mutta sen pitäisi maksaa vain muutama dollari, riippuen siitä, mitä osia sinulla on paikallisella hakkeritilallasi.

ELM-USB-liitäntä OBDTester myy kaupallisen ELM-32x-yhteensopivan laitteen noin 60 dollaria. OBDTester.com ovat PyOBD-kirjaston ylläpitäjiä.

CAN232 ja CANUSB-liitäntä

LAWICEL AB tuottaa kaupallisen CAN-laitteen CAN232, joka liitetään RS232-porttiin, jossa on DB9-liitin, ja USB-version nimeltä CANUSB (jälkimmäinen menee 110-120 dollariin).Koska ne ovat LAWICEL-protokollan keksijöiden tekemiä, nämä laitteet ovat taattua toimimaan can-utils-sarjaliikennemoduulien kanssa.

VSCOM-sovitin

VSCOM on edullinen kaupallinen USB-CAN-moduuli Vision Systemsiltä, ​​joka käyttää LAWICEL-protokollaa. VSCOM toimii Linux-kanavien avulla sarjaliitännässä (slcan) ja tarjoaa hyviä tuloksia. Laite maksaa noin 100 - 130 dollaria.

USB2CAN-liitäntä

8-laitteiden USB2CAN-muunnin on halvin vaihtoehto ei-sarjan CAN-liitännälle. Tämä pieni, kaupallinen USB-laite näkyy normaalina Can0-laitteena Linuxissa ja sillä on eniten integroitu tuki tässä hintaluokassa. Useimmat laitteet, jotka näkyvät canX-raaka-laitteina, ovat PCI-kortteja ja tyypillisesti maksavat huomattavasti enemmän kuin tämä laite.

EVTV: n johtokunta

EVTV.me on erikoistunut sähköautojen muuntamiseen. He tekevät paljon hyviä työkaluja hullujen asioiden tekemiseen historialliselle ajoneuvollesi, kuten Tesla-voimansiirron lisääminen siihen. Yksi niiden työkaluista on 100 dollarin avoimen lähdekoodin CAN sniffer, jota kutsutaan EVTV Due: ksi, joka on pohjimmiltaan Arduino Due, jossa on sisäänrakennettu CAN-lähetinvastaanotin ja kahva-ruuviliittimet CAN-linjojen kanssa. Tämä hallitus kirjoitettiin alun perin toimimaan pelkästään SavvyCAN-ohjelmistollaan, joka käyttää yleistä ajoneuvon käänteistekniikkaa (GVRET), mutta tukee nyt myös SocketCANia.

CrossChasm C5 Data Logger

CrossChasm C5 on kaupallinen laite, joka tukee Ford VI: n laiteohjelmistoa ja maksaa noin 120 dollaria. C5 tukee VI: ta, joka tunnetaan myös CAN-kääntäjänä, muuntamaan CAN-viestit OpenXC-muotoon, ja se muuntaa joitakin patentoituja CAN-paketteja yleiseen muotoon lähetettäväksi Bluetoothin kautta.

CANBus Triple Board

Kun kirjoitan tämän, CANBus Triple on edelleen kehitteillä. Se käyttää johdinsarjaa, joka on suunniteltu tukemaan Mazdaa, mutta se tukee kolmea CAN-väylää minkä tahansa ajoneuvon kanssa.

Korkeamman tason CAN-laitteet

Korkeamman tason laitteet maksavat sinulle enemmän rahaa, mutta ne pystyvät vastaanottamaan enemmän samanaikaisia ​​kanavia ja tarjoavat enemmän muistia pakettien katoamisen estämiseksi. Tehokkaat työkalut tukevat usein kahdeksaa tai useampaa kanavaa, mutta jos et toimi kilpa-ajoneuvoissa, et todennäköisesti tarvitse niin monta kanavaa, joten varmista, että tarvitset näitä laitteita, ennen kuin pudotat rahaa.

Näissä laitteissa on usein oma patentoitu ohjelmisto tai ohjelmistotilaus joskus merkittävillä lisäkustannuksilla. Varmista, että valitsemaasi laitteeseen liittyvä ohjelmisto tekee mitä haluat, koska olet yleensä lukittu niiden API: han ja ensisijaiseen laitteistoon. Jos tarvitset korkeampia laitteita, jotka toimivat Linuxin kanssa, kokeile Kvaseria, Peakiä tai EMS Wünscheä. Näiden yritysten laitteet käyttävät tyypillisesti sja1000-piirisarjaa hinnoilla, jotka alkavat noin 400 dollaria.

CAN-väylä Y-Splitter

CAN-väylä Y-jakaja on hyvin yksinkertainen laite, joka on pohjimmiltaan yksi DLC-liitin, joka on jaettu kahteen liittimeen, jonka avulla voit kytkeä liitännän yhdelle portille ja CAN-haarautua toiseen. Nämä maksavat yleensä noin 10 dollaria Amazonista ja ovat itse asiassa melko yksinkertaisia.

HackRF SDR

HackRF on SDR alkaen Scott Scott. Tämä avoimen lähdekoodin laitteistoprojekti voi vastaanottaa ja lähettää signaaleja 10 MHz: stä 6 GHz: iin. Noin 330 dollaria, et voi saada parempaa SDR: ää hintaan.

USRP SDR

USRP on ammattimainen, modulaarinen SDR-laite, jonka voit rakentaa tarpeidesi mukaan. USRP on avoimen lähdekoodin vaihtelevassa määrin 500 - 2 000 dollarin hinnoilla.

ChipWhisperer Toolchain

NewAE Technologies tuottaa ChipWhispererin. ChipWhisperer on järjestelmä sivukanavien hyökkäyksille, kuten tehon analyysi ja kellon häiriö. Samankaltaiset järjestelmät maksavat yleensä 30 000 dollaria tai enemmän, mutta ChipWhisperer on avoimen lähdekoodin järjestelmä, joka maksaa 1,000 - 1500 dollaria.

Red Pitaya Board

Red Pitaya on avoimen lähdekoodin mittaustyökalu, joka korvaa noin 500 dollaria kalliita mittaustyökaluja, kuten oskilloskooppeja, signaaligeneraattoreita ja spektrianalysaattoreita. Red Pitayassa on LabView- ja Matlab-rajapinnat, ja voit kirjoittaa omia työkaluja ja sovelluksia. Se tukee jopa laajennuksia sellaisiin asioihin kuin Arduino-kilvet.

Ohjelmisto

Kuten teimme laitteistolla, keskitymme ensin avoimen lähdekoodin työkaluihin ja sitten kattamaan kalliimpia.

Wireshark

Wireshark on suosittu verkkotyökalu. Wiresharkia on mahdollista käyttää CAN-väyläverkossa niin kauan kuin käytät Linuxia ja käytät SocketCANia. Wiresharkilla ei ole ominaisuuksia, jotka auttavat lajittelemaan tai purkamaan CAN-paketteja, mutta se voisi olla hyödyllistä puristuksessa.

PyOBD-moduuli

PyOBD, joka tunnetaan myös nimellä PyOBD2 ja PyOBD-II, on Python-moduuli, joka on yhteydessä ELM327-laitteisiin. Se perustuu PySerial-kirjastoon ja on suunniteltu antamaan sinulle tietoja OBD-asetuksista kätevässä käyttöliittymässä. PyOBD: n tietyn skannaustyökalun haarukasta katso Austin Murphyn OBD2 ScanTool, joka yrittää tulla täydellisemmäksi avoimen lähdekoodin ratkaisuksi vianmäärityksessä.

Linux-työkalut

Linux tukee CAN-ohjaimia ulos ruudusta, ja SocketCAN tarjoaa yksinkertaisen netlink (verkkokortti-liitäntä) -kokemuksen käsitellessäsi CAN: ää. Voit käyttää can-utils-sviittiä komentorivin toteutukseen ja avoimen lähdekoodin ohjelmistona on helppo laajentaa toimintoja muihin apuohjelmiin.

CANiBUS-palvelin

CANiBUS on Web-palvelin, joka on kirjoitettu Go by Open Garages -palvelussa. Tämä palvelin sallii tutkijoiden täynnä olevan huoneen työskennellä samaan ajoneuvoon samanaikaisesti joko opetustarkoituksiin tai tiimien peruuttamista varten. Go-kieli on siirrettävissä mihin tahansa käyttöjärjestelmään, mutta tietyillä alustoilla saattaa olla ongelmia matalan tason ohjaimien kanssa. Esimerkiksi, vaikka käytät CANiBUSia Linuxissa, et pysty suoraan toimimaan SocketCANin kanssa, koska Go ei tue tarvittavia liitäntälippuja alustamaan CAN-liitäntä. (Tämä ongelma voidaan ratkaista toteuttamalla socketcandia, mutta tämän kirjoituksen jälkeen tätä ominaisuutta ei ole vielä toteutettu.) CANiBUS: lla on ohjain ELM327: lle, joka tukee yleistä nuuskausta. Voit oppia lisää CANiBUSista ja ladata lähteen.

Kajakki

Kayak on Java-pohjainen GUI CAN-liikenteen analysoimiseksi. Siinä on useita lisäominaisuuksia, kuten GPS-seuranta ja tallennus- ja toisto-ominaisuudet. Se käyttää pistorasiaa toimiakseen muissa käyttöjärjestelmissä, joten tarvitset vähintään yhden Linux-pohjaisen snifferin Kayakin tukemiseksi.

SavvyCAN SavvyCAN on työkalu, jonka on kirjoittanut EVTV.me: n Collin Kidder, joka käyttää toista EVTV.me: n, GVRETin suunnittelemaa kehystä, keskustelemaan HW-sniffereiden kanssa, kuten EVTV Due. SavvyCAN on avoimen lähdekoodin Qt-GUI-pohjainen työkalu, joka toimii useissa käyttöjärjestelmissä. Se sisältää useita erittäin mukavia ominaisuuksia, kuten DBC-editori, CAN-väyläpiirrokset, lokitiedoston poikkeama, useita käänteistekniikan työkaluja ja kaikki tavanomaiset CAN-sniffing-ominaisuudet, joita voit odottaa. SavvyCAN ei puhu SocketCANiin, mutta se voi lukea useissa eri lokitiedostomuodoissa, kuten Bushmaster-lokit, Microchip-lokit, CRTD-muodot ja yleiset CSV-muotoiset lokitiedostot.

O2OO Data Logger

O2OO on avoimen lähdekoodin OBD-II-tietolokero, joka toimii yhdessä ELM327: n kanssa tietojen tallentamiseksi SQLite-tietokantaan piirtotarkoituksiin. Se tukee myös GPS-tietojen lukemista NMEA-matossa.

Caribou-hoito

Pythonissa kirjoitettu Caribou on suunniteltu autoteollisuuden hakkerointiin. Tämän kirjoituksen jälkeen se on vielä lapsenkengissään, mutta siinä on paljon potentiaalia. Caribou-hoidolla on joitakin ainutlaatuisia ominaisuuksia, kuten kyky diagnostiikkapalveluihin, ja hoitaa XCP: tä. Siinä on myös tavallinen sniff-and-CAN -toiminto ja tuetaan omia moduuleja.

c0f Sormenjälkityökalu

Sormien CAN (c0f) on avoimen lähdekoodin työkalu CAN-väyläjärjestelmien sormenjälkien ottamiseen. Siinä on jonkin verran perustukea CAN-väylän verkkovirran kuvioiden tunnistamiseksi, mikä voi olla hyödyllistä, kun yritetään löytää tietty signaali meluisassa väylässä.

UDSim ECU Simulator

UDSim on GUI-työkalu, joka voi valvoa CAN-väylää ja oppia siihen liitetyt laitteet automaattisesti katsomalla viestintää. Se on suunniteltu käytettäväksi toisen diagnostiikkatyökalun, kuten jälleenmyyntityökalun tai paikallisen autokaupan skannaustyökalun kanssa.

UDSimillä on kolme tilaa: oppiminen, simulointi ja hyökkäys. Opetustilassa se tunnistaa moduulit, jotka vastaavat UDS-diagnostiikkakyselyihin ja valvovat vastauksia. Simulointitilassa se simuloi CAN-väylän ajoneuvoa huijata tai testata diagnostisia työkaluja. Hyökkäystilassa se luo fuzzing-profiilin työkaluille, kuten Peach Fuzzer.

Oktaani-CAN-väylä

Octane on avoimen lähdekoodin CAN-väylä, joka on erittäin mukava käyttöliittymä CAN-pakettien lähettämiseen ja vastaanottamiseen, mukaan lukien XML-liipaisujärjestelmä. Tällä hetkellä se toimii vain Windowsissa.

AVRDUDESS-käyttöliittymä

AVRDUDESS on .NET: ssä kirjoitettu AVRDUDE: n graafinen käyttöliittymä, vaikka se toimii hyvin Monon kanssa Linuxissa.

RomRaider ECU-viritin

RomRaider on avoimen lähdekoodin virityssarja Subarun moottorinohjausyksikölle, jonka avulla voit katsella ja kirjata tietoja ja virittää ECU: n. Se on yksi harvoista avoimen lähdekoodin ECU-virittimistä, ja se voi käsitellä 3D-näkymiä ja suoran datan kirjaamista. Tarvitset Tactrix Open Port 2.0 -kaapelin ja Tactrix EcuFlash -ohjelmiston, jotta voit ladata ja käyttää ECU: n laiteohjelmistoa. Kun olet ladannut salaman EcuFlashilla, voit muokata sitä RomRaiderilla. Editori on kirjoitettu Java-muodossa ja toimii tällä hetkellä Windowsissa ja Linuxissa, vaikka EcuFlash ei tue Linuxia.

Komodo CAN Bus Sniffer

Komodo on korkealuokkainen sniffer, jossa on mukava monikäyttöjärjestelmä - Python SDK. Se maksaa noin 350 - 450 dollaria riippuen siitä, haluatko yhden tai kahden CAN-liitännän. Komodolla on eristysominaisuudet, jotka estävät tietokoneesi paistamisen, jos väärät jotain, sekä kahdeksan yleiskäyttöistä IO-nastaa, jotka voit määrittää käynnistämään ulkoisten laitteiden toiminnot. Komodolla on joitakin kunnollisia ohjelmistoja, jotka auttavat sinua toimimaan, mutta todellinen etu on, että voit kirjoittaa oman Komodon ohjelmiston.

Ajoneuvon vakooja

Vehicle Spy on kaupallinen työkalu Intrepid Control Systemsiltä, ​​joka on suunniteltu erityisesti CAN- ja muiden ajoneuvoyhteyskäytäntöjen kääntämiseen. Ohjelmisto vaatii yhden lisenssin NeoVI- tai ValueCAN-laitteelle, molemmat ajoneuvon Spy-laitteille. ValueCAN3 on halvin laite, joka toimii Vehicle Spy: n kanssa. Siinä on yksi CAN-liitäntä ja se maksaa noin 300 dollaria. Lisää ajoneuvon vakoiluohjelmisto ja kustannukset ovat noin 1 300 dollaria.

NeoIV-laitteet ovat korkeampia, ja niissä on useita konfiguroitavia kanavia, jotka alkavat noin 1200 dollarista. Peruspaketti sisältää NeoIV (Red) ja Vehicle Spy Basic 2 000 dollaria, mikä säästää vähän rahaa. Ajoneuvon vakoiluauto maksaa noin 2600 dollaria ilman laitteistoa. (Löydät useita vaihtoehtoja Intrepidin sivustolla.)

Kaikki Intrepid-laitteistot tukevat skriptien lataamista bussilla reaaliajassa. Auton Spy Basic tukee CAN / LIN RX / TX -toimintoja. Tarvitset ammattimaisen version vain, jos auton hakkerointi on kokopäiväinen projekti sinulle tai jos haluat käyttää ECU: n vilkkumista tai muita lisäominaisuuksia, kuten solmun simulointia, skriptausta hauskaa tai muistin kalibrointia.

Osake

Jättänyt Kommenttia