Взлом автомобилей 101: Инструменты для торговли

Взлом автомобилей 101: Инструменты для торговли
Взлом автомобилей 101: Инструменты для торговли
Anonim
Изображение
Изображение

Кибербезопасность все чаще развивается и включает в себя проблемы не только уязвимости данных, но и наших все более компьютеризированных автомобилей. В своей новой книге «Справочник автомобильного хакера» Крейг Смит знакомит читателей со всеми тонкостями компьютерных систем и встроенного программного обеспечения, которые можно найти в современных автомобилях. Это отличный ресурс, если вы пытаетесь отточить свои навыки автоматизации или интересуетесь сетями и безопасностью автомобилей.

В следующем отрывке рассказывается об аппаратном и программном обеспечении, которое вам необходимо знать, чтобы начать взлом автомобиля. Это лишь один из многих подробных ресурсов, которые вы найдете в «Справочнике автомобильного хакера». Книга уже доступна.

В этом разделе обсуждаются различные инструменты, которые вы можете использовать при исследовании транспортного средства. Я решил сосредоточиться на недорогих устройствах и программном обеспечении, потому что для меня важно, чтобы в исследовании приняло участие как можно больше людей.

Open Garages готова демонстрировать и продвигать инструменты, помогающие в автомобильных исследованиях. Если ваша компания производит отличный продукт, смело обращайтесь в Open Garages, но если нет открытого способа внести свой вклад в ваш инструмент, не ждите бесплатной рекламы.

Аппаратное обеспечение

В этом разделе мы рассмотрим платы, такие как ChipWhisperer, а также устройства, подобные ключам, которые обеспечивают соединение CAN. Сначала мы рассмотрим более дешевое оборудование с открытым исходным кодом, а затем рассмотрим несколько устройств более высокого класса для тех, кто готов потратить немного больше денег.

Хотя существует множество недорогих устройств для связи с шиной CAN, программное обеспечение, необходимое для взаимодействия с этими устройствами, может отсутствовать, поэтому вам часто придется писать свое собственное.

Бюджетные CAN-устройства

Эти устройства полезны для анализа содержимого вашей CAN-шины и отправки пакетов. Они варьируются от плат для любителей до профессиональных устройств, которые поддерживают множество пользовательских функций и могут одновременно обрабатывать множество различных шин CAN.

Щиты Arduino

Множество Arduino и Arduino-подобных устройств (от 20 до 30 долларов США) будут поддерживать CAN с добавлением платы Arduino. Вот несколько плат Arduino, поддерживающих CAN:

CANdiy-Shield MCP2515 CAN-контроллер с двумя разъемами RJ45 и протообластью

ChuangZhou CAN-Bus Shield MCP2515 CAN-контроллер с разъемом D-sub и винтовыми клеммами

DFRobot CAN-Bus Shield Контроллер STM32 с разъемом D-sub

SeeedStudio SLD01105P CAN-Bus Shield MCP2515 CAN-контроллер с разъемом D-sub

SparkFun SFE CAN-Bus Shield MCP2515 CAN-контроллер с разъемом D-sub и держателем SD-карты; имеет разъемы для ЖК-модуля и GPS

Эти щиты очень похожи. Большинство из них используют CAN-контроллер MCP2515, хотя щит DFRobot использует STM32, который быстрее и имеет больше буферной памяти.

Независимо от того, какой шилд вы выберете, вам придется написать код для Arduino, чтобы перехватывать пакеты. Каждый щит поставляется с библиотекой, предназначенной для программного взаимодействия с щитом. В идеале эти шины должны поддерживать что-то вроде протокола LAWICEL, который позволяет им отправлять и получать пакеты через последовательный порт с помощью инструмента пользовательского пространства на ноутбуке, такого как SocketCAN.

Комплект телематики Freematics OBD-II

Этот комплект адаптера OBD-II Bluetooth на базе Arduino включает в себя как устройство OBD-II, так и регистратор данных, а также GPS, акселерометр, гироскоп и датчики температуры.

CANtact

CANtact, устройство с открытым исходным кодом от Эрика Эвенчика, представляет собой очень доступное USB-CAN-устройство, работающее с Linux SocketCAN. Он использует разъем DB 9 и имеет уникальное преимущество использования перемычек для изменения того, какие контакты являются CAN и заземлением - функция, которая позволяет ему поддерживать как американские, так и британские разъемы DB9-OBD-II. Вы можете получить CANtact здесь.

Raspberry Pi

Raspberry Pi - альтернатива Arduino, которая стоит от 30 до 40 долларов. Pi оснащен операционной системой Linux, но не имеет CAN-трансивера, поэтому вам придется приобрести щит.

Одним из преимуществ использования Raspberry Pi перед Arduino является то, что он позволяет использовать инструменты Linux SocketCAN напрямую, без необходимости покупать дополнительное оборудование. В общем, Raspberry Pi может общаться с MCP2515 через SPI с помощью простой проводки. Вот некоторые реализации Raspberry Pi:

Canberry MCP2515 CAN-контроллер только с винтовыми клеммами (без разъема D-sub; 23 доллара США)

Carberry Две линии шины CAN и две линии GMLAN, LIN и инфракрасный порт (похоже, не является защитой с открытым исходным кодом; 81 доллар)

Плата CAN-Bus PICAN MCP2515 CAN-контроллер с разъемом D-sub и винтовыми клеммами (от 40 до 50 долларов США)

Макетная плата ChipKit Max32 и NetworkShield

Плата ChipKit - это плата разработки, которая вместе с NetworkShield может дать вам интерпретируемую сетью CAN-систему. Это аппаратное решение с открытым исходным кодом стоимостью около 110 долларов США рекламируется стандартом OpenXC и поддерживает предварительно созданную прошивку OpenXC, но вы также можете написать для него свою собственную прошивку и использовать необработанный CAN.

Набор микросхем ELM327

Набор микросхем ELM327 на сегодняшний день является самым дешевым набором микросхем, доступным где-либо (от 13 до 40 долларов США), и он используется в большинстве дешевых устройств OBD. Он связывается с OBD через последовательный порт и оснащен практически любым типом разъема, который только можно придумать: от USB до Bluetooth, Wi-Fi и так далее. Вы можете подключаться к устройствам ELM327 через последовательный порт, и они способны отправлять пакеты, отличные от пакетов OBD/UDS. Полный список команд, использующих ELM327, см. в техническом описании.

К сожалению, доступные инструменты CAN Linux не будут работать на ELM327, но Open Garages запустила веб-инициативу, которая включает в себя анализ драйверов для ELM327 под названием CANiBUS. Имейте в виду, что ELM327 имеет ограниченное пространство в буфере, поэтому вы потеряете пакеты при перехвате, а передача может быть немного неточной. Однако если вы в затруднительном положении, это самый дешевый маршрут.

Если вы хотите открыть устройство и припаять несколько проводов к вашему ELM327, вы можете перепрошить прошивку и преобразовать ее в LAWICEL-совместимое устройство, которое позволит вашему очень дешевому ELM327 работать с Linux и показывать как устройство slcanX! (Информацию о том, как прошить ELM327, вы найдете в блоге makerspace Area 515 из Де-Мойна, штат Айова.)

Доска GoodThopter

Travis Goodspeed, известный аппаратный хакер, выпустил недорогую плату с открытым исходным кодом и CAN-интерфейсом под названием GoodThopter. GoodThopter, основанный на его популярных устройствах GoodFet, использует MCP2515 и обменивается данными через последовательный порт со своим собственным пользовательским интерфейсом. Вам нужно будет полностью собрать и спаять устройство самостоятельно, но это будет стоить всего несколько долларов, в зависимости от того, какие детали есть в вашем местном хакерском пространстве.

Интерфейс ELM-USB

OBDTester продает коммерческое устройство, совместимое с ELM-32x, примерно за 60 долларов. OBDTester.com поддерживает библиотеку PyOBD.

Интерфейс CAN232 и CANUSB

LAWICEL AB производит коммерческое CAN-устройство CAN232, которое подключается к порту RS232 с разъемом DB9, а также версию USB под названием CANUSB (последняя стоит от 110 до 120 долларов). Поскольку они созданы изобретателями протокола LAWICEL, эти устройства гарантированно работают с модулями последовательного соединения can-utils.

Адаптер VSCOM

VSCOM - это доступный коммерческий USB-модуль CAN от Vision Systems, использующий протокол LAWICEL. VSCOM работает с can-utils Linux по последовательному каналу (slcan) и обеспечивает хорошие результаты. Устройство стоит от 100 до 130 долларов.

Интерфейс USB2CAN

Конвертер USB2CAN от 8devices - самая дешевая альтернатива непоследовательному CAN-интерфейсу. Это небольшое коммерческое USB-устройство будет отображаться как стандартное устройство can0 в Linux и будет иметь наиболее интегрированную поддержку в этом ценовом диапазоне. Большинство устройств, которые отображаются как устройства canX raw, представляют собой карты PCI и обычно стоят значительно дороже, чем это устройство.

Комиссия EVTV

EVTV.me специализируется на переоборудовании электромобилей. Они создают множество отличных инструментов, позволяющих делать сумасшедшие вещи с вашим историческим автомобилем, например, добавлять к нему трансмиссию Tesla. Одним из их инструментов является CAN-сниффер с открытым исходным кодом стоимостью 100 долларов под названием EVTV Due, который по сути представляет собой Arduino Due со встроенным приемопередатчиком CAN и винтовыми клеммами для взаимодействия с вашими линиями CAN. Первоначально эта плата была написана для работы исключительно с их программным обеспечением SavvyCAN, которое использует универсальный инструмент обратного проектирования транспортных средств (GVRET), но теперь она также поддерживает SocketCAN.

Регистратор данных CrossChasm C5

CrossChasm C5 - это коммерческое устройство, поддерживающее прошивку Ford VI, которое стоит около 120 долларов. C5 поддерживает VI, который также известен как переводчик CAN, для преобразования сообщений CAN в формат OpenXC, а также преобразует некоторые собственные пакеты CAN в общий формат для отправки через Bluetooth.

Тройная плата CANBus

На момент написания этой статьи CANBus Triple все еще находится в разработке. Он использует жгут проводов, предназначенный для поддержки Mazda, но поддерживает три CAN-шины любого автомобиля.

Устройства CAN более высокого класса

Устройства более высокого класса обойдутся вам дороже, но они способны принимать больше одновременных каналов и предлагают больше памяти, чтобы предотвратить потерю пакетов. Высокопроизводительные инструменты часто поддерживают восемь и более каналов, но если вы не работаете с гоночными автомобилями, вам, вероятно, не понадобится столько каналов, поэтому убедитесь, что вам нужны такие устройства, прежде чем тратить деньги.

Эти устройства часто поставляются с собственным проприетарным программным обеспечением или с подпиской на программное обеспечение, иногда за значительную дополнительную плату. Убедитесь, что программное обеспечение, связанное с выбранным вами устройством, делает то, что вы хотите, потому что обычно вы будете привязаны к их API и предпочитаемому оборудованию. Если вам нужны устройства более высокого класса, работающие с Linux, попробуйте Kvaser, Peak или EMS Wünsche. Устройства этих компаний обычно используют чипсет sja1000 по цене от 400 долларов США.

Y-образный разветвитель шины CAN

Y-разветвитель CAN-шины - это очень простое устройство, которое по сути представляет собой один разъем DLC, разделенный на два разъема, что позволяет подключать устройство к одному порту, а CAN-сниффер - к другому. Обычно они стоят около 10 долларов на Amazon, и на самом деле их довольно легко сделать самостоятельно.

HackRF SDR

HackRF - это SDR от Great Scott Gadgets. Этот аппаратный проект с открытым исходным кодом может принимать и передавать сигналы в диапазоне от 10 МГц до 6 ГГц. При цене около 330 долларов вы не сможете получить лучшее СДР за эту цену.

СПЗ USRP

USRP - это профессиональное модульное устройство SDR, которое вы можете собрать в соответствии со своими потребностями. USRP имеет открытый исходный код в разной степени по цене от 500 до 2 000 долларов США.

ChipWhisperer Toolchain

NewAE Technologies производит ChipWhisperer. ChipWhisperer - это система для атак по побочным каналам, таких как анализ мощности и сбой тактовой частоты. Подобные системы обычно стоят 30 000 долларов и более, но ChipWhisperer - это система с открытым исходным кодом, стоимость которой составляет от 1 000 до 1 500 долларов.

Доска Красной Питайи

Red Pitaya - это измерительный инструмент с открытым исходным кодом, который примерно за 500 долларов заменяет дорогие измерительные инструменты, такие как осциллографы, генераторы сигналов и анализаторы спектра. Red Pitaya имеет интерфейсы LabView и Matlab, и для него можно писать свои собственные инструменты и приложения. Он даже поддерживает расширения для таких вещей, как щиты Arduino.

Программное обеспечение

Как и в случае с аппаратным обеспечением, мы сначала сосредоточимся на инструментах с открытым исходным кодом, а затем рассмотрим более дорогие.

Wireshark

Wireshark - популярный инструмент для анализа сети. Можно использовать Wireshark в сети CAN-шины, если вы используете Linux и используете SocketCAN. Wireshark не имеет каких-либо функций для сортировки или декодирования CAN-пакетов, но в крайнем случае может оказаться полезным.

Модуль PyOBD

PyOBD, также известный как PyOBD2 и PyOBD-II, представляет собой модуль Python, который взаимодействует с устройствами ELM327. Он основан на библиотеке PySerial и предназначен для предоставления вам информации о настройке OBD в удобном интерфейсе. Информацию о конкретной версии диагностического инструмента PyOBD см. в OBD2 ScanTool от Остина Мерфи, который пытается стать более полным решением с открытым исходным кодом для диагностического поиска и устранения неисправностей.

Инструменты Linux

Linux поддерживает драйверы CAN «из коробки», а SocketCAN обеспечивает простой интерфейс netlink (интерфейс сетевой карты) при работе с CAN. Вы можете использовать его пакет can-utils для реализации из командной строки, а поскольку программное обеспечение с открытым исходным кодом позволяет легко расширить функциональность других утилит.

Сервер CANiBUS

CANiBUS - это веб-сервер, написанный на Go компанией Open Garages. Этот сервер позволяет множеству исследователей одновременно работать над одним и тем же транспортным средством, будь то в учебных целях или в командных сеансах реверса. Язык Go переносим в любую операционную систему, но на некоторых платформах могут возникнуть проблемы с низкоуровневыми драйверами. Например, даже если вы используете CANiBUS в Linux, вы не сможете напрямую взаимодействовать с SocketCAN, поскольку Go не поддерживает необходимые флаги сокетов для инициализации интерфейса CAN. (Эту проблему можно было бы решить, реализовав Socketcand, но на момент написания этой статьи эта функция еще не была реализована.) У CANiBUS есть драйвер для ELM327, который поддерживает общий анализ. Вы можете узнать больше о CANiBUS и загрузить исходный код.

Каяк

Kayak - это графический интерфейс на основе Java для анализа CAN-трафика. Он имеет несколько расширенных функций, таких как GPS-слежение, а также возможности записи и воспроизведения. Он использует сокетcand для работы в других операционных системах, поэтому для поддержки Kayak вам понадобится хотя бы один сниффер на базе Linux.

SavvyCAN

SavvyCAN - это инструмент, написанный Коллином Киддером из EVTV.me, который использует другую структуру, разработанную EVTV.me, GVRET, для общения с аппаратными снифферами, такими как EVTV Due. SavvyCAN - это инструмент с открытым исходным кодом на основе Qt GUI, который работает в нескольких операционных системах. Он включает в себя несколько очень полезных функций, таких как редактор DBC, графическое представление CAN-шины, сравнение файлов журналов, несколько инструментов обратного проектирования и все обычные функции анализа CAN, которые вы ожидаете. SavvyCAN не взаимодействует с SocketCAN, но может читать файлы журналов в нескольких различных форматах, таких как журналы Bushmaster, журналы Microchip, форматы CRTD и общие файлы журналов в формате CSV.

Регистратор данных O2OO

O2OO - это регистратор данных OBD-II с открытым исходным кодом, который работает с ELM327 для записи данных в базу данных SQLite для графических целей. Он также поддерживает чтение данных GPS в формате NMEA.

Заботливый карибу

Caring Caribou, написанная на Python, создана как Nmap для автомобильного взлома. На момент написания этой статьи он все еще находился в зачаточном состоянии, но демонстрирует большой потенциал. Caring Caribou обладает некоторыми уникальными функциями, такими как возможность перебора диагностических служб и обработка XCP. Он также имеет стандартную функцию CAN «обнаружить и отправить» и поддерживает ваши собственные модули.

c0f Инструмент для снятия отпечатков пальцев

CAN of Fingers (c0f) - это инструмент с открытым исходным кодом для снятия отпечатков пальцев в системах CAN-шины. Он имеет некоторую базовую поддержку для идентификации шаблонов в сетевом потоке CAN-шины, что может быть полезно при попытке найти конкретный сигнал на шумной шине.

UDSim ECU Simulator

UDSim - это инструмент с графическим интерфейсом, который может контролировать шину CAN и автоматически изучать подключенные к ней устройства, наблюдая за обменом данными. Он предназначен для использования с другим диагностическим инструментом, например, с дилерским прибором или сканирующим прибором из местного автомобильного магазина.

UDSim имеет три режима: обучение, симуляция и атака. В режиме обучения он определяет модули, которые отвечают на диагностические запросы UDS, и отслеживает ответы. В режиме моделирования он имитирует транспортное средство на шине CAN, чтобы обмануть или проверить диагностические инструменты. В режиме атаки он создает профиль фаззинга для таких инструментов, как Peach Fuzzer.

Октановый анализатор шины CAN

Octane - это сниффер и инжектор CAN-шины с открытым исходным кодом и очень удобным интерфейсом для отправки и получения пакетов CAN, включая систему триггеров XML. В настоящее время он работает только в Windows.

Графический интерфейс AVRDUDESS

AVRDUDESS - это интерфейс с графическим интерфейсом для AVRDUDE, написанный на. NET, хотя он отлично работает с Mono в Linux.

RomRaider ECU Tuner

RomRaider - это пакет настройки с открытым исходным кодом для блока управления двигателем Subaru, который позволяет просматривать и регистрировать данные, а также настраивать ЭБУ. Это один из немногих тюнеров ЭБУ с открытым исходным кодом, который может обрабатывать 3D-изображения и регистрацию данных в реальном времени. Для загрузки и использования прошивки ЭБУ вам понадобится кабель Tactrix Open Port 2.0 и программное обеспечение Tactrix EcuFlash. После того, как вы загрузили флэш-память с помощью EcuFlash, вы можете редактировать ее с помощью RomRaider. Редактор написан на Java и в настоящее время работает в Windows и Linux, однако EcuFlash не поддерживается в Linux.

Komodo CAN Bus Sniffer

Komodo - это сниффер более высокого класса с хорошей многооперационной системой - Python SDK. Это стоит от 350 до 450 долларов в зависимости от того, нужен ли вам интерфейс с одним или двумя CAN. Komodo имеет возможности изоляции, предотвращающие сгорание вашего компьютера, если вы что-то неправильно подключите, а также восемь контактов ввода-вывода общего назначения, которые вы можете настроить для запуска действий с внешних устройств. Komodo поставляется с достойным программным обеспечением, которое поможет вам начать работу, но реальным преимуществом является то, что вы можете написать свое собственное программное обеспечение Komodo.

Автомобильный шпион

Vehicle Spy - это коммерческий инструмент от Intrepid Control Systems, специально разработанный для реверса CAN и других протоколов связи транспортных средств. Для программного обеспечения требуется одна лицензия на каждое устройство NeoVI или ValueCAN, которые являются собственностью Vehicle Spy. ValueCAN3 - самое дешевое устройство, работающее с Vehicle Spy. Он имеет один CAN-интерфейс и стоит около 300 долларов. Добавьте программное обеспечение Vehicle Spy Basic, и ваша стоимость составит около 1300 долларов США.

Устройства NeoIV более высокого класса, с несколькими настраиваемыми каналами, цена начинается примерно с 1200 долларов США. Базовый пакет включает NeoIV (Red) и Vehicle Spy Basic за 2000 долларов США, что позволяет сэкономить немного денег.. Vehicle Spy Professional стоит около 2600 долларов без оборудования. (Несколько вариантов вы найдете на сайте Intrepid.)

Все аппаратные устройства Intrepid поддерживают загрузку сценариев для запуска на шине в режиме реального времени. Vehicle Spy Basic поддерживает операции CAN/LIN RX/TX. Профессиональная версия вам понадобится только в том случае, если взлом автомобилей станет для вас постоянным проектом или если вы хотите использовать перепрошивку ЭБУ или другие расширенные функции, такие как симуляция узлов, сценарии для сниффера или калибровка памяти.