Car Hacking: так ли безопасны системы безопасности автомобиля?

Информационный портал по безопасности

  • Главная
  • Поиск
  • Контакты
  • RSS

Car Hacking: так ли безопасны системы безопасности автомобиля?

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

Зачем?

Будь бдителен

Введение

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

Автомобили постепенно обрастают различными плюшками и примочками для комфорта водителя и пассажиров, что создает новые опасности проникновения в сеть бортовой электроники. С появлением беспроводных каналов связи с авто (гарнитура Bluetooth, Wi-Fi) полигон для хакеров расширился в разы. В этой статье мы не будем прямо затрагивать варианты проникновения по беспроводным каналам, а посмотрим в сторону проводных технологий.

Для автомобильной промышленности производители микроконтроллеров выпускают отдельные специальные линейки своих продуктов. Причем делают это тихо, по особым заказам, и для широкой общественности (да и узкой тоже) такие продукты недоступны. Основные особенности таких контроллеров:

  • специфический набор периферии;
  • шифрование прошивки и расшифровка кода на лету при выполнении;
  • многоядерность со встроенным механизмом общей памяти и разделением доступа к этой памяти.

Код прошивки пытаются защитить от дизассемблирования, реверс-инжиниринга и, в итоге, перепрошивки микроконтроллера. Однако, помимо возможности непосредственного «отравления» прошивки, существует одна глобальная проблема. Автомобиль, как я уже сказал, просто напичкан электроникой. Вся эта силиконовая (упс, конечно же, кремниевая :)) армия микроконтроллеров должна как-то между собой общаться, а также взаимодействовать с человеком (водителем, пассажиром) и внешними факторами. Для обеспечения этих диалогов между контроллерами в автомобиле есть настоящая внутренняя сеть.

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

Структура сети

Еще не так давно основная задача, возлагаемая на бортовую систему авто, сводилась к расстановке датчиков в контрольных точках (уровень топлива, температура масла) и отображению состояния на приборной панели. В основном это были самостоятельные устройства, которые огромным жгутом собирались на центральном блоке. Как ты понимаешь, анализ одного сигнала — это два провода, управление одним исполнительным устройством — это тоже два провода (рис. 1).


Рис. 1. Один центральный блок управления

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


Рис. 2. Три функциональных блока

Выход — объединить все в сеть. В этом случае каждый функциональный блок опрашивает «родные» ему датчики, а «соседям» по запросу может отдать результаты измерения (либо рассылает в режиме «маячка»), а также передать от «соседа» управляющую команду «родному» датчику.


Рис. 3. Три функциональных блока объединены в сеть

Казалось бы, вершина эволюции, но встает вопрос-проблема: есть блоки управления и мониторинга критически важных параметров (например, тормоза или ABS). Также есть блоки комфорта (кондиционер, управление стеклоподъемниками). Если одновременно по одной шине начнет идти трафик для кондиционера и тормозов, то может случиться, что попрохладнее ты сделаешь последний раз в жизни. Для разрешения подобной ситуации шины разделяют физически, также для критически важных систем обмен данными идет на более высоких скоростях.

Но все-таки это сеть, а значит, нужно коммутировать шины между собой. Для этого используют шлюз (CAN gateway), который фактически выполняет функции обычного такого роутера сетей Ethernet:

  • логическое объединение шин (медиаконвертер);
  • производит арбитраж трафика по уровню критичности (QoS);
  • является файрволом и не пропускает в шину трафик, не предназначенный для данной шины (собственно, файрвол он и есть);
  • имеет порт для подключения диагностического оборудования.

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

  • Узлы с требованием реального времени реакции. Управление двигателем, тормозной системой, ABS, электроусилитель руля, подушки безопасности и так далее. Общее название будем использовать ECU-BUS (Engine Control Unit).
  • Узлы со средним уровнем времени реакции. Центральный замок, парктроники, наружное освещение (фары, поворотники), датчики давления в шинах. Будем называть в дальнейшем MS-BUS (Middle Speed Bus).
  • Узлы второстепенной важности. Навигационная система, мультимедиасистема и прочие плюшки. Будем называть LS-BUS (Low Speed Bus).

    Градация эта не официальная, разные производители добавляют свои разделения блоков управления на группы, но нам с тобой хватит и этого.

    Помимо того что данные ECU-BUS имеют высокий приоритет на так называемой общей «виртуальной» шине автомобиля, внутри этой группы данные передаются на очень высокой скорости (все-таки тормозить начать желательно как можно раньше после того, как водитель принял решение об этом, а выбросить подушку безопасности желательно до того, как нос водителя достигнет руля). В некоторых автомобилях MS-BUS и LS-BUS объединены, что вносит дополнительные проблемы безопасности (ведь в итоге получается, что центральный замок «висит» на той же шине, что и магнитола).

    Обмен данными по шине CAN

    Физический уровень

    CAN — это акроним от Controller Area Network, то есть специально спроектированная сеть для обмена данными между различными контроллерами. Применяется не только в автомобильной промышленности, но и во многих системах автоматизации.

    Шина CAN является двухпроводным интерфейсом, то есть для обмена данными достаточно всего двух сигнальных линий:

    • CAN+, CANH, CAN HIGH — сигнал положительного импульса;
    • CAN-, CANL, CAN LOW — сигнал отрицательного импульса.

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


    Рис. 4. Осциллограмма обмена данными по шине CAN

    Опорное напряжение — 2,5 В (запомни это значение), 0 называется доминантным битом, 1 — рецессивным. Почему доминантный? Потому что он является активным сигналом, и если два устройства захотят передать одновременно один 1, а второй 0, то на приемнике окажется 0.

    Так кто все-таки 0, а кто 1

    Шина CAN последовательная, то есть биты передаются друг за другом от старшего бита к младшему. Понятие байт к CAN малоприменимо, и в основном оперируют термином «поле», длина поля не обязана быть кратна байту (8 битам).

    Протокол обмена

    Обмен данными производится фреймами. Фрейм состоит из четырех основных полей:

    • идентификатор отправителя, он же является основой арбитража передачи данных;
    • управляющее поле;
    • данные;
    • контрольная сумма.


    Рис. 5. Диаграмма фрейма CAN

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

    Поясню. Взгляни на фрейм: передача идет «слева направо», то есть первым уйдет идентификатор. При передаче идентификатора узел внимательно слушает, что творится на линии. Если он передал 1, а на линии вдруг оказался 0, то это будет означать, что кто-то более приоритетный пытается передать свои данные. В этой ситуации передатчик, поймавший 0 вместо переданного 1, замолкает. Таким образом, чем младше идентификатор у передающего узла, тем выше у него приоритет.

    На рис. 6 изображен порядок арбитража на шине CAN. Положим длину идентификатора для удобства равной 8 бит, `node3` имеет ID > 0x10 (00010000b), `node2` имеет ID > 0x20 (00100000b), а `node1` имеет (00000011b). Как видишь, когда `node2` захотел передать 1 из своего идентификатора, ее «забили» `node1` и `node3`, поэтому `node2` будет молчать на время передачи фрейма. Аналогичная ситуация случалась и с `node3`, его 1 забил `node1` своим 0. В итоге остался один `node1`, вытеснив всех своими 0 в идентификаторе.


    Рис. 6. Арбитраж на линии CAN

    Контроль ошибок

    Многие контроллеры ведут учет коллизий на линии. Если по какой-то причине два узла начинают передавать одновременно, не обращая внимания на арбитраж (например, какой-то узел влез в середину посылки фрейма от другого узла), то в итоге не сходится контрольная сумма пакета. В этом случае узел, зафиксировавший ошибку, отправляет в линию сообщение об ошибке передачи. Узел, передававший фрейм, вновь пытается его передать. Если количество подряд идущих ошибок передачи достигает некоего предела, узел замолкает на определенное время. Применительно к автомобильной сети центральный узел делает пометку, что для такого-то узла сети есть проблемы. Помимо страдальца, который не смог отправить фрейм, фиксируется и узел, который зарегистрировал ошибку. Так получается карта неисправности бортовой сети. Бортовой компьютер на основе этой карты может принять решение об отказе электроники и вывести водителю сообщение об этом. Для ошибок в критических линиях бортовой компьютер может даже принять решение аварийно остановить автомобиль.

    Возможные точки подключения

    Пришло время поискать, куда бы нам воткнуться. Самая желанная точка подключения — это отладочный порт, OBD (OnBoard Debug). OBD используется для диагностики автомобиля на СТО.


    Рис. 7. Фото разъема OBD

    Почему это такое лакомое место? Сейчас объясню и даже на картинке покажу. Посмотри на распиновку разъема:

    1. Manufacturer discretion — * GM: J2411 GMLAN/SWC/Single-Wire CAN[12]
    * VW/Audi: Switched +12 to tell a scan tool whether the ignition is on.
    * Ford: Infotainment CAN High[12]
    2. Bus Positive Line of SAE J1850 PWM and VPW
    3. Manufacturer discretion — * Ford: DCL(+) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc.
    * Ford: Medium Speed CAN-High[12]
    * Chrysler: CCD Bus(+)[12]
    4. Chassis ground
    5. Signal ground
    6. CAN-High (ISO 15765-4 and SAE J2284)
    7. K-Line of ISO 9141-2 and ISO 14230-4
    8. Manufacturer discretion — * BMW: Second K-Line for non OBD-II (Body/Chassis/Infotainment) systems.
    9. Manufacturer discretion — * GM: 8192 bit/s ALDL where fitted.
    * Ford: Infotainment CAN-Low
    10. Bus Negative Line of SAE J1850 PWM only (not SAE J1850 VPW)
    11. Manufacturer Discretion — * Ford: DCL(-) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc.
    * Ford: Medium Speed CAN-Low[12]
    * Chrysler: CCD Bus(-)[12]
    12. Manufacturer discretion — 13. Manufacturer discretion — * Ford: FEPS – Programming PCM voltage
    14. CAN-Low (ISO 15765-4 and SAE J2284)
    15. L-Line of ISO 9141-2 and ISO 14230-4
    16. Battery voltage


    Рис. 8. Распиновка разъема ODB

    Сразу бросаются в глаза контакты 6 и 14 (и не только потому, что они зеленым цветом выделены на картинке). Согласно спецификации, это CAN+ и CAN- соответственно. Но это еще не все, на контакты 3 и 11, а также 1 и 9 Ford вывел свои внутренние шины. Делаю акцент на этом неспроста. Штатные CAN+ и CAN- (6-й и 14-й контакты разъема) в общем случае не обязаны соединяться непосредственно с физическими шинами автомобиля. Зачастую на команды по этой шине отвечает контроллер диагностики, либо запросы идут через шлюз, который неплохо справляется с функцией фильтрации (в том числе может фильтровать трафик при движении автомобиля). Протокол обмена по этой шине стандартизирован, и для совместимости все производители выводят туда диагностику. Но вот давать доступ к остальным шинам никто никому не обязан.

    CAN можно «пощупать» тремя способами:

    • На разъеме OBD можно мультиметром «пощупать» уровень 2,5 В (да-да, тот самый опорный) относительно земли (4-й и 5-й контакты).
    • С помощью двухканального осциллографа находишь витую пару проводов, щупами на нее цепляешься и смотришь относительный сигнал «есть чо?» :). При выключенном зажигании, как правило, на CAN тишина, при включении зажигания бортовая электроника начинает «болтать». Можешь потыкать кнопочки управления стеклами, блокировкой дверей, увидел «странное» совпадение — ты у цели (об этом еще поговорим).
    • Последний — достаточно ненадежный способ, но, как говорится, лучше что-то, чем вообще ничего. Сопротивление терминирующего резистора в линии CAN равно волновому сопротивлению проводов, а оно, в свою очередь, составляет 120 Ом. Два резистора (по одному на каждый конец линии) дают 60 Ом между CAN+ и CAN-.

    Не забываем про необходимость 12V-питания от бортового аккумулятора автомобиля. Скорее всего, без электричества ты, конечно, не останешься, но только в том случае, если автопроизводитель не сделал пакость в виде подачи питания на OBD-порт только при вставленном ключе и включенном зажигании.

    Также отмечу следующую особенность: современный автомобиль практически всем управляет с помощью контроллеров. Соответственно, если изучить автомобиль определенной модели, то можно найти провода шины в самых неожиданных местах. Например, кабель от парктроника проходит недалеко от задних фонарей, и доступ к ним можно получить через технологическое отверстие замены лампочек в фарах.

    Под капотом найти линии CAN сложнее, но они там есть. Доступ к подкапотному пространству дается не так легко, как салон авто, но не будем исключать и этот вариант.

    Слушаем и запоминаем

    Итак, ты дочитал до этого места, CAN-шину нашел, что дальше? Дальше начинается самое любопытное.

    Во-первых, тебе понадобится «честный» CAN-драйвер. Под драйвером я подразумеваю микросхему преобразования уровней, реализующую физическую часть протокола CAN. Таких в интернете великое множество, есть даже шилд для Arduino CAN-Schield. Зачем честный, ведь можно взять обычную микросхему, преобразующую логический уровень TTL микроконтроллера в сигнал шины CAN? Можно, но не нужно. Вспомни про фиксацию ошибок, лучше возложить весь арбитраж и контроль линии на железку, чем самому анализировать эхо-биты с шины (это еще и не так просто сделать ввиду высоких скоростей на шине), ошибиться где-нибудь и в итоге выдать себя, забив счетчик ошибок. Этот совет, конечно, актуален только в том случае, если не стоит цель довести водителя до сумасшествия, замусорив CAN-шину и взвинтив счетчик ошибок на линии :).

    Дальше два варианта:

  • Воспользоваться поиском и найти на автомобиль описание протокола.
  • Реверс-инжиниринг.

    Первым путем ты и сам в состоянии пройти, пойдем вторым. Надо как-то подключиться к шине. Для этого, конечно же, лучше использовать USB или хаб Ethernet-CAN. Обычный USART (RS232) тебе точно не подойдет, скорости нешуточные, и рядовые микросхемы просто не рассчитаны на них.

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

    Самый простой способ — повторение такой последовательности действий:

    • включить снифер;
    • нажать кнопку стеклоподъемника;
    • остановить снифер;
    • воспроизвести в линию подслушанное;
    • наблюдать за результатом.

    Вот прямо так, скорее всего, у тебя ничего не получится. Связано это с тем, что трафик придется все-таки разобрать, найти что-то общее, подергать стеклами вверх-вниз. В общем, обычные процедуры при анализе протоколов, за исключением того, что работать придется с непривычным форматом.

    Потенциальные атаки

    Атака на шину CAN

    Пробежавшись еще раз по изложенному материалу делаем, вывод, что с безопасностью в авто все плохо. Все очень плохо. Не так давно в журнале уже публиковался обзор дырявости SCADA-систем. Но для того, чтобы в SCADA-систему проникнуть, необходимо получить доступ на объект, после чего физически уже попасть в систему (если система не имеет выхода во внешний мир, конечно, иначе все упрощается). В автомобиле доступ «на объект» получить гораздо проще.

    Наверное, будет логично спросить: что же так долго было распинаться про CAN? Ответ на поверхности: получив доступ к шине (в любом ее проявлении), ты получаешь полный доступ ко всей электронике автомобиля в том или ином виде. А это значит, что ты можешь вытворять практически все что угодно с двигателем, тормозами, центральным замком и прочими узлами, подключенными к сети CAN (или сопряженными с ней).

    Микроконтроллеры, используемые в автомобильной автоматике, содержат модуль аппаратного шифрования. Однако трафик почему-то не шифруется (по крайней мере то, что мне встречалось). Правда, есть один бонус в противовес: вс-таки в некоторых автомобилях датчики надо прописывать на гейте.

    Скажу еще пару слов про безопасность многострадального OBD-разъема. Его расположение скрыто от глаз. Но от глаз кого? Пользователя, то есть автовладельца. Разглядеть какой-то гаджет в разъеме OBD достаточно проблематично. В интернете продается полно «адаптеров» для этого самого OBD-разъема, позволяющих использовать Wi-Fi и Bluetooth для доступа к «диагностическим» данным.

    Защита OBD-разъема

    Универсальный модем ELM327


    Структурная схема ELM327

    Вбив запрос в Гугл по теме OBD-адаптеров, ты получишь такое количество устройств, что глаза разбегаются. Есть популярные, есть не очень. На коне компания ELM Electronics, производящая микросхемы серии ELM. На базе этих чипов построено большинство адаптеров. Микросхемы представляют собой мост между USART- и OBD-портом, на одном конце физика CAN, на другом USART с интерфейсом AT-команд. Чип получает АТ-команды, болтает на «птичьем» с автомобилем по шине CAN и возвращает ответ в универсальном формате. Самый крутой чип — ELM327, он поддерживает огромное количество протоколов, моделей автомобилей, поддерживает добавление параметров, которые еще не содержатся во внутренней памяти. Периодически выходят новые версии этой микросхемы, расширяя список автомобилей и считываемых параметров. Must have, если ты хочешь сделать свою крутую железку диагностики авто. Одна из приятных фишек — ELM327 имеет возможность работать в режиме снифера и демонстрировать тебе весь трафик CAN-шины. Микросхема выпускается в двух исполнениях: обычное энергопотребление и пониженное энергопотребление. Менее прожорливая микросхема имеет также незначительное отличие в назначении одного вывода (подробнее смотри даташит на сайте производителя).

    Эти устройства позиционируются либо как «игрушка» (то есть просто дополнительный экранчик на мобильном гаджете, показывающий скорость, уровень топлива и еще много параметров, которые не отображает штатный бортовой компьютер), либо как удобный способ диагностики или сброса ошибок бортового компьютера автомобиля без проводов. Что тут сказать? Прошивка этого «адаптера» известна только производителю, массовые закладки в BIOS мы уже проходили, а собрать такой же адаптер не составит особого труда, так как запчастей всего: микроконтроллер, беспроводной модуль, драйвер CAN. В итоге, собрав незамысловатое устройство, получающее по Wi-Fi или Bluetooth команду, можно открыть автомобиль. Установка такого «гаджета» останется незаметной для владельца, а возможностей установить его, поверь, больше чем достаточно (посчитай в минутах, сколько твой автомобиль находится открытый, без присмотра, а воткнуть железку в разъем — дело пары секунд).

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

    Отдельным пластом стоят бортовые мультимедиасистемы. Послушать радио — это уже прошлый век, теперь подавай мультики детям на мониторы в передних сиденьях, видео пассажиру, навигацию водителю, а также хорошо бы еще телефон скрестить с авто и интернет, чтобы в пробке почитать новости и почту. Все эти красоты достаются непросто, если делать их с нуля, НО! Но в мультимедиасистемах авто стоят операционные системы типа Windows, Linux, Android, портированные под ARM (Android особо и портировать нечего). Архитектура ARM, конечно, усложняет жизнь, не все хак-фишки работают так же, как на x86 (а то и вообще не работают), но зато есть и свои особенности и баги. Одной из дверей в систему служат «отравленные» видео- или звуковые файлы, подсовывание флешек с автозапуском (наткнулся один раз на такую систему, которая вдруг решила стартануть автозапуск с флешки, вставленной в USB-разъем). Отдельная тема — это «CD-диски для навигационной системы» :). Какое-то время это был популярный способ захватить ось авто, так как навигационный софт был уж ну совсем дырявый.

    Приятный бонус для хакера — постоянно растущая популярность новомодных беспроводных технологий (новомодных для авто). Так как в бортовой технике эти технологии в новинку, то они переживают период пока еще дырявого развития (уж домашние роутеры сколько лет существуют на рынке, а дыры там одна смешнее другой). Опубликовано множество результатов анализа защищенности беспроводных соединений с бортовым компьютером, с каждым годом они утешительнее, но пока рано говорить о зрелости.

    Получив доступ к мультимедиасистеме (если доступ через беспроводной канал предоставляется только к ней), ты получаешь автоматом доступ к шине CAN (хоть какой-то), дальше сценарий понятен.

    Сигнализация

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

    Основной техникой вскрытия сигнализации является прослушка эфира. Этот старый прием не потерял своей актуальности со времен простых систем с ручным кодированием брелока (бинарный код выставлялся переключателями в брелоке и на автомобиле) и по сей день. Прослушивается эфир во время постановки и снятия авто с охраны, повторяется последовательность без владельца, открывается авто. Только системы стали сложнее, авто все чаще и больше хочет «поболтать» с брелоком, чтобы определить, свой это или чужой, появились сложные алгоритмы кодирования последовательностей диалога автомобиля с брелоком. Однако реверс-инжиниринг никто не отменял, хакеры слушают, запоминают, разбирают протокол по кусочкам и открывают автомобили. Тут, как и во всеобщей проблеме шифрования, продолжается борьба за усиление стойкости шифра, дабы сделать метод взлома дороже, чем сам объект взлома, при этом не сделав из брелока сигнализации дата-центр.

    Интересные особенности из жизни страхователей

    Трендом в наше время можно назвать сигнализацию с GSM-модемом и GPS-трекером. Тут появляются соответствующие им две цели атак:

    • GPS;
    • GSM.

    С GPS все более или менее однозначно: запутать GPS, чтобы не сработал выход из зоны охраны, либо «увести» подставными координатами автомобиль в противоположное направление.

    С GSM немножко интереснее. Первое, что приходит в голову, — заглушить сигнал GSM, чтобы блок сигнализации не смог отправить тревожное сообщение на пульт охраны. Ответом производителей автосигнализаций было добавление keepalive. Если за отведенный интервал на сервер не приходит «маячок» от автомобиля, стоит забеспокоиться. Очередным витком развития сигнализаций стала обратная связь с авто через GSM, как следствие, появились дыры и «закладки». Закладки «от производителя», конечно, появились раньше, чем было объявлено «официально» о существовании обратной связи. Разработчики сигнализаций давно уже научились и следить за автомобилями, и обновлять прошивки втихаря. Собственно, сама фишка обратной связи пришла от более простых брелочных сигнализаций, увеличилось только расстояние до объекта управления и сложность системы. Пришлось ведь реализовать какой-то протокол, защита получения команды только от санкционированных отправителей. Однако не так давно было продемонстрировано, что все это также подлежит расчленению и взлому.

    Отдельным островком остается дополнительная защита в виде иммобилайзера. Однако, если вспомнить, что иммобилайзеры представляют собой обычную RFID-метку со всеми ее достоинствами и недостатками, вектор атаки моментально становится ясен.

    Вместо заключения

    Как бы я тут ни драматизировал, реальный взлом автомобиля — дело далеко не тривиальное и недешевое. Автопроизводители постоянно придумывают какие-то фишки, чтобы лишить возможности подключения к шине автомобиля, закрывают дыры в софте, доступном пользователю. Однако хакеры не дремлют, война уже объявлена. Подливает в огонь масла Google, желающая выпустить полностью автоматизированный гугломобиль. В ответ на желание «корпорации добра» хакеры и скептики предупреждают, что пока, наверное, рановато выпускать автопилот для автомобиля. Авто — не самолет за десятью заборами и с кучей охраны, это живая мишень, стоящая в каждом дворе. Будь внимателен, не подпускай незнакомых личностей к своему имуществу, не забывай ставить на сигнализацию, ну и проявляй общую бдительность.

    WARNING

    WARNING

    Впервые опубликовано в журнале «Хакер» от 03/2015.
    Автор: Антон Сысоев ([email protected])

    Современные системы безопасности автомобилей

    Рынок автомобильной безопасности переживает реальные изменения. Проблемы с безопасностью заставляют рынок более динамично реагировать на новые стандарты и технологии в области транспорта. Многие ведущие автомобильные производители ставят безопасность вождения на первое место, особенно если водитель – не человек.

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

    Как сказал предприниматель и инженер-программист Марк Андрессен, «Программное обеспечение поедает мир». Если это так, то следующий курс будет подаваться «на колесах». Для любого наблюдателя теперь ясно, что программное обеспечение уже становится основой автомобильной конкуренции для автопроизводителей. Статистика показывает, что программное обеспечение станет основным двигателем рентабельности автопроизводителя.

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

    Атаки на системы передачи данных и электронные блоки управления (ЭБУ), особенно убедительно это было доказано Чарли Миллером и Крисом Валясеком на автомобиле Jeep, требуют надежных криптографические систем безопасности, и чем быстрее – тем лучше. Это связано с автономным вождением и подключением транспортного средства к внешним устройствам (интеллектуальная инфраструктура «смарт шоссе») обеспечить должный уровень надежности просто невозможно. Безопасность станет фундаментом для любой конкретной разработки в сфере автотранспорта, вплоть до специфических процессоров. Безопасность должна стать основой автомобильных систем и подсистем, как ДНК для человека.

    Ненадежность означает ответственность

    Рынок систем безопасности известен текущими решениями в системах управления автотранспортом (таких как ЭБУ, работающие под сетевым контролем, CAN, шины данных), которые ненадежны, что возлагает на плечи производителей огромнейшую потенциальную ответственность. Данная проблема может быть решена только с помощью более продвинутых технологий, чем у атакующих хакеров. Из – за громких хакерских атак, «ударов по карманам» производителей и судебных процессов, связанных с вопросами защищенности и гибкости, началась гонка между производителями по улучшению «надежности» транспортных средств.

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

    Поскольку на карту ставится жизнь и здоровье людей нельзя обойтись без строгой стандартизации в этой области, а также без реализации законодательной базы. Однако специфика данных систем пока точно не определена. Самыми яркими примерами законодательной заинтересованности в автомобильной безопасности являются отчет о надежности автомобилей Markey и закон SPY Car. Когда Вашингтон приступит к действиям, очевидно, что возрастет срочность разработки, анализа, тестирования, реагирования и стандартизации автомобильной безопасности. Однако, прежде чем технические решения могут быть стандартизированы и / или законодательно закреплены, важно понять, что подразумевается под понятием «автомобильной безопасности».

    Мобильная вычислительная платформа

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

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

    Криптографическая безопасность означает, что математические алгоритмы, методы, протоколы, криптографические ключи и сертификаты, подобные тем, которые используются для защиты банковских систем, смарт-карт, мобильной инфраструктуры и защищенных веб-сайтов, должны быть сконструированы в транспортных средствах (и в их производственных системах). Эти методологии будут использоваться для защиты датчиков, исполнительных механизмов, ЭБУ, коммуникационных шин, точек доступа электронных блоков и шлюзов для связи с внешним миром.

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

    Если автономные автомобили являются «большой вещью», то по-настоящему надежная автомобильная архитектура для ЭБУ, шлюзов, контроллеров домена / области и их производственных систем — это то, что делает возможным существование этой «большой вещи». Поэтому нельзя назвать преувеличением повышенные требования к криптографической безопасности, которая является непременным условием будущего автомобилестроения.

    ЭБУ являются основой проблемы безопасности автомобилей, потому что они и шины, которые их соединяют, должны быть защищены. Невозможно сказать, передаются ли сигналы или сообщения от аутентифицированного отправителя или они были повреждены (то есть потеряли целостность данных). Это нужно изменить быстро, и каждый автопроизводитель, производитель электронных блоков управления и поставщик автомобильных микросхем знают об этом и работают над этим. Тем не менее, нет четких стандартов, и эти подходы часто имеют тенденцию к разбиению на подзадачи.

    По мере роста количества вычислительных узлов в автомобильной сети, способы, с помощью которых эти узлы могут быть атакованы, возрастают экспоненциально.

    Автомобильные криптографические стандарты и архитектуры для безопасных ЭБУ и других процессоров не стандартизированы. OEM производители, Tier Ones и Tier Two поставщики полупроводниковых изделий не договорились об общем стандарте для обеспечения безопасности и обновления программного обеспечения транспортных средств и заводов, но все же стараются найти общее решение, которое в настоящее время не может предложить ни один из них. Прошлые мероприятия по стандартизации, такие как EVITA, все еще не продвинулись далеко, несмотря на почти десятилетие работы в сфере автомобильных экосистем.

    Это означает, что нет крепкого фундамента, когда речь идет об автомобильной безопасности, и многие предложения вносятся стартапами, созданными компаниями по компьютерной безопасности, сетевыми компаниями, консультантами по управлению, IP провайдерами, компаниями мобильной связи, OEM производителями, уровнями Tier Ones, уровнями Tier Twos, и другими.

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

    Принципы автомобильной безопасности

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

    • Защищенность автомобильных систем начинается с процессора. Процессоры должны быть персонализированы с использованием закрытых ключей, встроенным защищенным оборудованием и процессами. Система управления качеством Certicom — пример оборудования, используемого для выполнения этой задачи.
    • Следующим шагом является обеспечение надежности операционной системы. Примером может служить микроядровая архитектура ОС BlackBerry QNX SDP 7.0. Она разделяет критические компоненты ОС на свои собственные разделы защищенной памяти, обеспечивает временное разделение потоков, использует зашифрованную файловую систему, предлагает функции с несколькими политиками безопасности и обеспечивает сетевую безопасность для уменьшения поверхности атаки.
    • Необходимо управлять различными уровнями критической надежности. Примером этого является гипервизор True Type 1 BlackBerry QNX, который позволяет изолировать виртуальные функциональные модули, обеспечивая еще один уровень надежности и безопасности — он может изолировать критически важные для защищенности функции, не связанные с ней.
    • У ЭБУ и модулей будут установлены сертификаты, которые могут использоваться для аутентификации других модулей или других автомобилей и инфраструктуры (V2X). Эти сертификаты должны выдаваться и управляться с использованием управляемой системы PKI, например, предлагаемой Certicom.
    • Программное обеспечение должно быть легко обновляемым у представителей производителей или сервисных центрах через системы обновления программного обеспечения, такие как предлагаемые BlackBerry IoT.
    • Поставщики «послепродажного» оборудования или услуг по обслуживанию должны иметь возможность продавать и обновлять программное обеспечение на защищенных устройствах.
    • Связь между электронными блоками управления должна быть аутентифицирована, а сообщения должны быть подписаны, чтобы избежать вредоносных сообщений, которые могут создать неполадки в работе.
    • Доступ к «чувствительной электронике» автомобиля через различные порты должен быть защищен от не аутентифицированного подключения.
    • OEM производители должны иметь возможность позволять или не позволять использование определенных электронных устройств во время производства и в процессе эксплуатации автомобиля (например, для обеспечения соблюдения политики безопасности).
    • Программное обеспечение необходимо внимательно исследовать и внедрять для обеспечения большей защищенности транспортных средств. Для этого требуются очень специфические инструменты, также предоставляемые BlackBerry.

    Кто сейчас лидирует?

    Интересно отметить, что недавние результаты опроса по степени защищенности IoT (рисунок выше) очень тесно связаны с опросами 2015 года, посвященным автомобильной встроенной безопасности, которая была до взлома Jeep. С тех пор ситуация сильно изменилась.

    Первичные исследования, недавно проведенные с автомобильными производителями, Tier Ones и Tier Twos, показывают, что безопасность «очень важна», что подтвердили более 95% респондентов. Эта новая статистика действительно соответствует свидетельствам крупномасштабных инвестиций в автомобильные шлюзы безопасности, «тертые» ЭБУ (аппаратные модули безопасности или HSM) и контроллеры домена, безопасное выполнение операций, надежные операционные системы, защищенную прошивку по радиоканалу (FOTA) обновлений, мониторинга работоспособности системы безопасности и защищенных процессоров (рисунок ниже). Автомобильная промышленность быстро «перешагнула» уровень обычного смарт устройства для достижения совсем другого уровня защищенности и надежности.

    Безопасность начинается с цепочки поставок

    Как отмечено выше, механизмы защищенности, такие как ключи и сертификаты, должны быть введены в электронные блоки управления на заводе в процессе сборки. Для этого производственная система должна иметь глобальный охват, быть управляемой на распределенной основе, быть обновляемой различными организациями и оставаться безопасной в течение многих лет. Чтобы поддерживать максимальную гибкость, персонализация и обновление компонентов системы должны быть расположены как можно ближе к самой точке производства, что является важной задачей глобального производственного плана:

    Многоуровневая безопасность

    Современные автомобили имеют несколько уровней защищенности. Многоуровневая кибербезопасность не будет опцией, но будет коммерчески обязательной и утвержденной правительством (рисунок ниже). Предпосылки уже есть.

    Системы многоуровневой системы безопасности включают в себя следующие факторы:

    • Изоляция автомобильной электроники от внешних интерфейсов с помощью брандмауэров.
    • Применение строгого контроля доступа, позволяющее только известным / проверенным объектам доступ к системам транспортного средства.
    • Кластеризация сетей транспортных средств с одинаковой важностью в доменах, чтобы лучше изолировать критически важные для безопасности системы от других.
    • Защита сетей в автомобиле с криптографической аутентификацией, целостностью данных и, возможно, более поздним шифрованием.
    • Использование систем обнаружения / предотвращения вторжений (IPS / IDS) для обнаружения и противодействия хакерским атакам.
    • Защита работы электронных блоков управления через безопасную загрузку, безопасное обновление и прочие особенности.
    • Обновление ЭБУ для внедрения защищенных процессоров.
    • Защищенные шлюзы, приемопередатчики и коммутаторы для защиты сетей.
    • Защита криптографических ключей с использованием аппаратного хранилища ключей (например, защищенных криптографических элементов и / или HSM).
    • Использование высокоскоростных защищенных криптографических элементов для аутентификации сигналов V2X.
    • Движение в сторону защищенности на основе PKI с использованием корневого узла безопасности и активного управления сертификатами.

    Воспроизведение

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

    Индустрия должна быстро найти способ криптографической защиты существующих шин с низкой пропускной способностью, таких как CAN, через которые соединяются блоки управления. Шины с более высокой пропускной способностью, такие как Ethernet, поступают на автомобильные платформы, чтобы удовлетворить потребность в более быстром и большем объеме передачи информации. Эти системы имеют более высокий уровень надежности, но они не избавят производителей от необходимости модернизации существующей шины CAN. Данный процесс несет в себе существенные проблемы, связанные с ресурсами, стоимостью, реализацией и управлением (особенно ключами безопасности).

    На каком этапе сейчас процесс?

    Индустрия автомобильной безопасности, как упоминалось ранее, находится в зародыше. Пока нет четких лидеров в отрасли автомобильной защищенности и «интеллектуальной» инфраструктуры. Общие ключи RSA, PKI на основе RSA, PKI на основе ECC и смешанные системы находятся в разных состояниях разработки и реализации с OEM-производителями, Tier Ones и Tier Twos. Используются и рассматриваются различные типы хранения и обновления ключей, в том числе и автомобильные проверенные платформенные модули (TPM), HSM и другие методы.

    Эволюция методов защиты происходит на чисто прагматичной основе, поскольку стандарты существуют не долго. В отрасли используется подход, основанный на «обходах», а это означает, что некоторый тип быстрого решения для обеспечения безопасности, возможно, с использованием общих симметричных ключей, похоже, является новым первым шагом (сканирование). За этим может последовать более надежный подход с использованием инфраструктуры открытых ключей (прогулка). Впоследствии может быть принят (запущен) еще более безопасный подход с использованием шин с более высокой пропускной способностью, таких как Ethernet и более сложные контроллеры домена / области и шлюзы, оснащенные решениями на основе PKI.

    PKI, скорее всего, будет частью любого долгосрочного решения. Это потому, что PKI более безопасен и управляем при более высоком разрешении (то есть ключ для каждого ЭБУ), чем подходы общего ключа.

    Безопасность требуется не только на управляющих шинах и ЭБУ, но и на транспортных средствах и транспортных средствах + смарт инфраструктура (включая V2X), а также на системах обработки и обновления. Различные схемы будут реализованы для V2X и внутренней безопасности транспортного средства в зависимости от потребностей. V2X уже принимает PKI.

    Интересные выводы

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

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

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

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

    Свидетельством технического и рыночного лидерства компаний полупроводниковых элементов являются автомобильные аппаратные устройства безопасности различного рода, такие как HSM, защищенные процессоры и автомобильные TPM. Одна из особенностей, общая для этих устройств, заключается в том, что кремниевые производители выяснили, что ключ к криптографической безопасности «хранит секретный ключ в секрете». Поэтому эти продукты все чаще хранят секретный ключ в защищенном оборудовании.

    Конечно, не последнюю роль в надежности электронных компонентов играет программное обеспечение. Они должны все время работать вместе тщательно и надежно, чтобы обеспечить высшую степень надежности транспортного средства. Программное обеспечение нуждается в защищенном оборудовании, которое должно быть сделано и обновлено с достаточным уровнем защищенности. Зная это, уже можно расшифровать программное обеспечение, которое будет определять автомобильным будущим: электроника, программное обеспечение, безопасность и надежность должны стать единым целым.

    http://security-corp.org/infosecurity/26750-car-hacking-tak-li-bezopasny-sistemy-bezopasnosti-avtomobilya.html

    Современные системы безопасности автомобилей

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Похожее

    Предупреждающие знаки дорожного движения: пояснения

    ПДД про знаки предупреждающие об опасности На всех автодорогах и трассах России присутствуют специальные обозначения. В обязанности водителя входит знание и соблюдение всех запрещающих, предписывающих и предупреждающих знаков. В пособиях по ПДД достаточно подробно расписывается их значение, но здесь речь пойдёт преимущественно о знаках, предупреждающих об опасности. Их соблюдение предостерегает автомобилистов от угрозы, которая ожидает […]

    Экологический класс автомобиля: как узнать, таблица, законы | Авто Премиум Citroёn

    Экологический класс автомобиля: как узнать, таблица, законы Вопросы, рассмотренные в материале: Что значит экологический класс автомобиля С чего начался «экологический автомобильный переход» в России Какие бывают экологические классы автомобилей Как узнать экологический класс автомобиля Какие изменения имеются по экологическим классам автомобилей с 2018 года Что известно про экологический налог Поскольку Россия является одной из стран-участниц […]