Водитель стал заложником электроники


Русский топ, 4.08.2016 14:38   –   topru.org


Народ в сетях офигевает от новостей с заголовками «Хакеры научились провоцировать дорожно-транспортные происшествия!» (мы все умрём, ага). На самом деле под такими заголовками скрывается новость о том, что «специалисты по кибербезопасности» взломали управление автомобиля Jeep Cherokee, получив с помощью ноутбука доступ к системе автоматической парковки и электронному стояночному тормозу.

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

Давайте я объясню на пальцах, в чем там дело. Сначала с приходом цифровых технологий из автомобиля стали исчезать механические связи управления — например, дроссельная заслонка больше не связана с педалью газа тросиком, ее поворачивает шаговый электромотор по командам процессора. Процессор в системах активной АБС (это у которой стоит электронасос высокого давления для гидравлики) может задействовать тормоза без вашего нажатия на педаль тормоза, или наоборот — заблокировать вашу педаль так, что при нажатии на нее машина не будет тормозить. Роботизированная коробка передач не имеет ни одной механической связи с рукоятками управления — все переключения и выжим сцепления осуществляют электромоторы. Электрический ручник опять же. Фактически единственная механическая связь, которая осталась — это рулевая трапеция, на нее электроника воздействует сервоприводами, но водитель всё еще контролирует поворот колес.

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

Это не специфично автомобильное изобретение (хотя дурачкам рассказывают, будто бы Бош придумал эту шину для автомобилей — но на самом деле это были такие «автомобили», которые из пушки стреляют). Сейчас протокол CAN является стандартом ISO (например, ISO 11898) в области последовательной передачи данных. CAN-шина обеспечивает подключение любых устройств, которые могут одновременно принимать и передавать цифровую информацию (дуплексная система). Она широко применяется в промышленной электронике, авиации и в военных системах.

На картинке в заголовке показан «рентген» автомобиля Mercedes A-klasse с выделением электронных модулей, соединенных CAN-шиной. Подобную структуру имеет примерно половина современных автомобилей (например, Ford Fiesta начиная с 5-го поколения), а на другой половине (как, например, в Chery Kimo) используется схема с модулем Body Control — в результате часть второстепенных блоков соединены не цифровыми сигналами с CAN-шиной, а аналоговыми с модулем Body Control, который, в свою очередь, сидит на шине CAN.

Надежность определяется линейной структурой шины и равноправностью ее узлов, так называемой мультимастерностью (Multi Master Bus), при которой каждый узел CAN может получить доступ к шине. Любое сообщение может быть послано одному или нескольким узлам. Все узлы одновременно считывают с шины одну и ту же информацию, и каждый из них решает, принять данное сообщение или игнорировать его.

Физически CAN-шина — это два провода (причем с одним и тем же, только противофазным, сигналом), на которые параллельно навешены все блоки.

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

Да-да — модуль, управляющий подушками, тоже сидит на этой же шине. Умные конструкторы, конечно, делают его «глухим» (то есть он не может получать команд снаружи, он только отправляет информационные пакеты о своём состоянии) — но так делают далеко не все.

Ранее эти возможности уже проявлялись на уровне «глюков» программного обеспечения подключенных к шине CAN блоков, вызывавших забавные эффекты. Например, АБС на автомобиле УАЗ Патриот после движения в гору с буксованием колес на последующем движении с горы с некоторой вероятностью прекращала тормозить вовсе. То есть водитель нажимал педаль тормоза — а тормоза не тормозили, и машина весело летела под горку.

Или, например, на автомобиле Порше Каенн из-за сбоев в заднем парктронике блокировался запуск двигателя, и начинали сыпаться фантомные «отказы» множества разных узлов. Казалось бы — какая связь этих узлов с парктроником? А очень простая — шина CAN. Сошедший с ума парктроник сыпал в эту шину команды с произвольным (мусорным) содержимым, они периодически случайно совпадали с форматом команд (или данных) какого-то модуля, модуль пытался выполнить команду (или другой модуль принимал эти неправильные данные) — ну и дальнейшее очевидно.

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

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

Пока что автопром предложил паллиативную систему — просто разделить CAN-шину на два отдельных сегмента:

CAN-шина

Сегмент «CAN-привод» обслуживает всё, что непосредственно управляет автомобилем, подключенные к нему модули не имеют связи с внешними сетями. Сегмент «CAN-комфорт» обслуживает всякие вспомогательные свистелки и грелки пупка, в том числе пресловутую мультимедию. Хакер может взломать доступ к сегменту «CAN-комфорт» — но это не даст ему контроля над двигателем, тормозами и тому подобными важными системами.

Сегодня в СМИ





Свежие комментарии