Введение в безопасность Интернета транспортных средств — фазз-тестирование CAN-шины
Введение в безопасность Интернета транспортных средств — фазз-тестирование CAN-шины

Введение в безопасность Интернета транспортных средств — фазз-тестирование CAN-шины

🚀🚀В последнее время я очень интересуюсь Интернетом транспортных средств.,Но да не знает, как начать,Обнаружил ICSim случайно,Может использоваться для простой имитации автомобиля.,Поучившись некоторое время, я решил написать несколько заметок.,Боюсь, что забуду после изучения (просто для изучения ссылка).

представлять

🚀🚀ICSim это инструмент для моделирования комбинаций приборов транспортных средств, специально для SocketCAN дизайн. РозеткаCAN да Linux Модуль ядра, поддерживающий интерфейс контроллерной сети (CAN).

Основные особенности
  1. Моделирование комбинации приборов:ICSim Может имитировать приборную панель автомобиля, включая спидометр, тахометр, указатель уровня топлива и т. д. Это полезно для разработчиков и тестировщиков на основе CAN Шина очень полезна для автомобильных электронных систем.
  2. Интегрирован с SocketCAN.:ICSim и Linux из SocketCAN Интерфейс интегрированный, позволяет пользователям проходить стандартные SocketCAN инструменты-эмулятор для общения и отладки.
  3. образование и развитие:этода Изучение автомобильных сетей и протоколовизотличныйинструмент,может помочь инженерам、Исследователи и студенты понимают CAN Автобус по принципу работы и применению.
Сценарии использования
  • разработка программного обеспечения:В разработке электронного блока управления автомобилем(ECU)час,Предварительный тест можно провести с помощью ICSim.,Фактическое оборудование автомобиля не требуется.
  • Преподавание и обучение:предоставить виртуальныйизокружающая среда транспортного средства,Легко обучать CAN автобусное сообщение.
  • Отладка и проверка:и Фактическое оборудование автомобиляиз Перед подключением,Сначала проверьте связь и функциональность в моделируемой среде.

🚀🚀Адрес проекта следующий:

zombieCraig/ICSim: Instrument Cluster Simulator (github.com)

🚀🚀Установить Учебник выглядит следующим образом:

Интернет транспортных средств Безопасностьначиная——ICSim Simulatorиспользовать-CSDN Блог

Фазз-тестирование

🚀🚀Фазз-тестирование Да Автоматизированная технология тестирования для обнаружения уязвимостей и дефектов программного обеспечения. Основная идея состоит в том, чтобы ввести в систему большое количество случайных или полуслучайных входных данных.,Наблюдайте за реакцией системы,Тем самым обнаруживая потенциальные ошибки и уязвимости. Фазз-тестирование часто используется в Тестировании. безопасностии Тест стабильности。

Фаззинг CAN-шины (CAN Packet Fuzzing)

🚀🚀CAN Packet Fuzzing да Технология, применяющая фазз-тестирование к шине сети контроллеров (CAN). МОЖЕТ Шина — это ключевой протокол, используемый в современных автомобилях для связи между электронными блоками управления (ЭБУ). Фазз-тестирование в данном контексте изглавная цельда, отправив исключение или недействительный из CAN кадры данных для обнаружения лазеек и дефектов в стеке сетевых протоколов автомобиля.

Основные шаги
  1. Определить область тестирования:обязательнотестиз CAN Сеть из узлов и типов сообщений.
  2. Генерация нечетких данных:использовать Случайный или полуслучайныйизгенерация метода CAN кадр данных. Эти кадры данных могут быть полностью случайными или могут быть изменены на основе существующих легальных данных.
  3. Отправлять запутанные данные:будет генерироватьиз Нечеткийданныекадр отправлен в CAN В шине моделируется нормальная среда общения.
  4. Мониторинг поведения системы:观察系统对这些Нечеткийданныеизответ,Регистрируйте любое необычное поведение или сбои системы.
  5. Анализ и отчетность:Анализ данныхизненормальное поведение,Выявление потенциальных уязвимостей,И создайте отчет об испытаниях.
Инструменты и программное обеспечение
  • ICSim:Хотя в основномда用于模拟итест,Но его также можно настроить для предварительного CAN Фазз-тестирования.
  • SavvyCAN:用于捕获и分析 CAN данные,в сочетании с другими Фазз-тестированиеинструмент Вместеиспользовать。
  • другой Фазз-тестированиеинструмент:Например Can-Hax,CANard、CANalyzat0r А также пользовательские скрипты и программы, которые умеют генерировать и Отправлять запутанные данныерамка。
главная цель
  • Тестирование безопасности:Обнаружение и устранение возможных вредоносных эксплойтовизлазейки。
  • Тест стабильности:Убедитесь, что система может обрабатывать нештатные ситуации ввода.изстабильность,Избегайте неожиданных сбоев или ошибок.
  • Проверка протокола:验证 CAN Протокол обеспечивает надежность, гарантируя, что он может правильно обрабатывать все типы кадров.
Can-Hax

🚀🚀Я наткнулся на этот инструмент, когда смотрел видео из,да YouTube Blogger — инструмент с открытым исходным кодом,Лично я считаю, что им относительно легко пользоваться.,Просто приди на должность,Конечно SavvyCANDа действительно непобедима! ! ! ! ! !

Установить

🚀🚀Мы просто клонируем его прямо с GitHub. Это относительно просто:

Язык кода:javascript
копировать
git clone https://github.com/rybolov/Can-Hax.git
cd Can-Hax
использовать

🚀🚀Can-Hax даиспользовать can-utils из пакета/фрейма данных отпечатков пальцев и нечеткой сети контроллеров (CAN) из утилит, доступных для большинства Linux.

🚀🚀Шаблоны полезной нагрузки CAN доступны следующим образом: 0 = при использовании не наблюдается.,H=наблюдаемое шестнадцатеричное значение,N = наблюдаемое из десятичного значения,Итак, это выглядит как 00NHHHHH.

получить отпечатки пальцев

🚀🚀Мы используем команду, чтобы получить отпечаток пальца.,xxxxxxx.logdaourusecandump сохранить из файла журнала,xxxxxx.jsondaus из файла отпечатков пальцев.

Язык кода:javascript
копировать
python ./can-hax.py --fingerprint --input xxxxxxx.log -d "ICSIM Vehicle Simulator" -o xxxxxx.json

🚀🚀Например, если я выполню следующую команду, я получу следующий результат:

Язык кода:javascript
копировать
python ./can-hax.py --fingerprint --input candump-2024-06-01_104423.log -d "ICSIM Vehicle Simulator" -o can_1_fingerprint.json

🚀🚀Выход:

Язык кода:javascript
копировать
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < 
 \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.

Testing if candump-2024-06-01_104423.log is a file.
candump-2024-06-01_104423.log is most definitely a file.

Found cansend. We can use this to send CAN packets.
First 3 lines read in as:
(1717253063.833375) vcan0 161#000005500108001C
(1717253063.833432) vcan0 191#010010A141000B
(1717253063.833439) vcan0 164#0000C01AA8000004

Date of last log line: 2024.06.01
Found 37 CAN IDs.
{
    "date": "2024.06.01",
    "description": "ICSIM Vehicle Simulator",
    "fingerprints": {
        "039": "00NH",
        "095": "N0000NHN000000NN",
        "133": "00000000HN",
        "136": "000N0000000000NH",
        "13A": "00000000000000NH",
        "13F": "0000000N000000NH",
        "143": "NHNH00HH",
        "158": "00000000000000NH",
        "161": "00000NN00N0N00NH",
        "164": "0000H0NHHN0000NN",
        "166": "H0NN00NN",
        "17C": "00000000N00000NN",
        "183": "000000NH0000N0NH",
        "188": "00000000",
        "18E": "0000NH",
        "191": "0N00N0HNNN00NH",
        "19B": "00000H000000",
        "1A4": "0000000N000000NH",
        "1AA": "NHHH00000000NNNH",
        "1B0": "000H0000000NNN",
        "1CF": "N00N000000NH",
        "1D0": "000000000000000H",
        "1DC": "0N0000NH",
        "21E": "0NHNNNNNNN0NNH",
        "244": "0000000NHH",
        "294": "0N0H000NHHNH00NH",
        "305": "N0NN",
        "309": "00000000000000HN",
        "320": "0000NN",
        "324": "NNNN000000000HNH",
        "333": "000000000000NH",
        "37C": "HH00HH000NNH00NH",
        "405": "00000N00000000NH",
        "40C": "0NNHNNNHNNNNNNNH",
        "428": "0N0N0000NNNHNH",
        "454": "NNHHNN",
        "5A1": "NN0000000000NNNH"
    },
    "version": "2"
}
Done. Total realtime was 0:00:01.

🚀🚀Давайте вкратце рассмотрим, что примерно означают слова «президент» и «изданные»:

Язык кода:javascript
копировать
 "133": "00000000HN",

🚀🚀133 представляет идентификационный номер автобуса Издакан.,Следующий 0 означает, что изда никогда не менялась.,Всегда да0; H представляет собой шестнадцатеричное число;,То есть, да,Этот бит представлен в шестнадцатеричном формате. N представляет собой десятичное число;,То есть шестнадцатеричное число никогда не встречалось в да.

Фазз-тестирование

🚀🚀 Далее начинаем Фазз-тестирование,Это все размоет (это может занять много времени),можно сократить задержку),Продолжим один за другим.

Язык кода:javascript
копировать
python ./can-hax.py --fuzz --input xxxxxx.json --can vcan0
Язык кода:javascript
копировать
 _____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < 
 \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.

Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.

Found cansend. We can use this to send CAN packets.
CANID 161 00000NN00N0N00NH complexity is 7
Sending CAN frame:  161#0000000000000000
Sending CAN frame:  161#0000000000000001

–input, –can можно упростить, используя -i и -c.

🚀🚀Помимо тестирования всех, мы также можем протестировать определенные CAN ID, указав –canid.

Язык кода:javascript
копировать
python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0
Язык кода:javascript
копировать
 _____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < 
 \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.

Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.

Found cansend. We can use this to send CAN packets.
CANID 19B 00000H000000 complexity is 2
Sending CAN frame:  19B#000000000000

-timing 1 означает задержку изда, а затем задержка составляет одну секунду, команда использовать выглядит следующим образом

Язык кода:javascript
копировать
python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0 --timing 1

🚀🚀Мы также можем быстро указать упрощенный набор возможных значений, используя использовать –Quick или –Superquick.

Язык кода:javascript
копировать
python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0 --timing 1 --quick
Язык кода:javascript
копировать
 _____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < 
 \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.

Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.

Found cansend. We can use this to send CAN packets.
CANID 19B 00000H000000 complexity is 2
Sending CAN frame:  19B#000000000000
Sending CAN frame:  19B#000001000000
Sending CAN frame:  19B#000009000000
Sending CAN frame:  19B#00000A000000
Sending CAN frame:  19B#00000B000000
Sending CAN frame:  19B#00000F000000
Running zeroize now.

Quickda имеет только числа 0, 1, 9, A, B и F, а Superquick имеет только крайние значения 0, 9 и F.

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

Язык кода:javascript
копировать
python ./can-hax.py --fuzz --adaptive --input can_1_fingerprint.json --can vcan0

🚀🚀Это адаптивно,Но я продолжаю увеличиваться на один,Так что это не кажется очень полезным.,Мы можем сделать простое из Фазз-тестирование с вышеперечисленными.

SavvyCAN

🚀🚀Это дапрямо Фазз-тестирование,Скорее безмозглый,Конечно, мы также можем сами установить некоторые правила.,Но да я уже открыл дверь машины, когда был в тестизе,расколоть,Слишком сильно! ! !

Подвести итог

🚀🚀CAN Bus Фазз-тестирование Мощный метод обнаружения и устранения уязвимостей безопасности и проблем стабильности в автомобильных сетевых системах. Систематически генерируя и отправляя исключения CAN По кадрам данных тестеры могут выявить потенциальные дефекты, тем самым повышая безопасность и надежность электронных систем автомобиля. объединить ICSim,Кан-Хакс и SavvyCAN и другие инструменты, которые могут быть эффективно реализованы CAN Автобус Фазз-тестирование и обеспечение надежной защиты сети автомобиля Безопасность.

ссылка

https://www.youtube.com/watch?v=fXTJ6TH32Vg

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose