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

 

Security ∩ Safety

Для автопроизводителей безопасность была важным моментом всегда. Но только для них безопасность — это «safety», а мы говорим про безопасность как «security». Эти множества вопросов имеют пересечения и общие темы, но это не одно и то же. Главный же интерес для нас эта тема представляет потому, что автомобили становятся все более «компьютеризированными» и мир IT и мир автопрома сближаются. Естественно, это увеличивает количество возможных угроз, поверхность для атак и вообще довольно сильно меняет парадигму безопасности автомобиля.

Знаешь, в мире ИБ принято пугать: мол, если вы не подумаете об ИБ сейчас, то вашу систему взломают и вы будете страдать потом. В контексте автопрома этот подход работает великолепно. Например, о безопасности SCADA и АСУ ТП говорили давно, однако это мало кого интересовало, но стоило Stuxnet выйти в паблик, как тема безопасности АСУ ТП стала активно популяризироваться и развиваться. То же самое, только без «публичных инцидентов», происходит и в мире автопрома. Хакеры со всего мира начинают все пристальнее смотреть в эту сторону, включая последнее исследование (правда, очевидное по результатам) от небезызвестных Чарли Миллера и Криса Валасека. Кроме того, посмотри на инициативу Tesla, которая обещала выплатить 10 тысяч долларов тому, кто сможет взломать их автомобиль. Интерес есть, люди есть, работа идет. Давай посмотрим, почему это так интересно и важно.

 

Компьютеры и сети везде

Практически в любом современном автомобиле присутствует компьютер. Многие вещи автоматизированы и управляются с его помощью. Это ведь так удобно и логично: в автомобиле множество сенсоров/контроллеров — ECU. Фактически это такая АСУ ТП на колесах. Есть контроллеры (ECU): контроллер/датчик давления в шинах, электрозамков, стеклоподъемников, датчики температуры двигателя и множество других, — и все это связано в единую сеть специальной шиной (например, одна из самых популярных — CAN) и управляется ОС в реальном времени, например QNX. Ну и понятно, что каждый современный ECU сам по себе процессор и софт.

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

Например, у тойоты в 2009 году было зафиксировано около 2000 инцидентов произвольного самоускорения и 16 таких случаев привели к смерти. Одной из причин были как раз «внешние наводки». Кстати, поэтому же в самолетах просят выключать телефоны. Да, авиаконструкторы занимаются тестированием и защитой от наводок, так что мобильники не должны повлиять, ну скажем, на выпуск закрылок, но вот почему-то любят в этой сфере «перестраховаться».

Но вернемся к компьютерам и автомобилям. Одна из проблем ИБ в целом — у каждого автопроизводителя «своя» реализация. Поэтому мы имеем разные сетевые архитектуры по сути похожих систем. В нашем понимании эта архитектура также в идеале должна учитывать вопросы ИБ. Например, у некоторых машин CPU/OС, отвечающая за ABS, замки и прочее, — это один компонент, а CPU/ОС, отвечающая за MP3-проигрыватель и фильмы, — совершенно другой. В теории такая изоляция безопаснее, но вот у некоторых производителей это один общий компонент или они подключены напрямую в CAN (без сегментации). Разумеется? при таком подходе к архитектуре получается, что при компрометации системы развлечений, например через MP3 (как внешний источник), мы даем контроль не только над самой «развлекательной системой», но и над всей ABS, двигателем и прочим. Все это усугубляется самим протоколом шины CAN: разумеется, тут нет шифрования, более того, шина работает в режиме широковещательных запросов, соответственно, если посылается пакет в шину, далее он идет по шине и ECU смотрит, «его ли это пакет».

Помимо CAN, есть множество других популярных у производителей протоколов, вроде MOST или FlexRay, кроме того, есть и старый добрый Ethernet! Так что ты понимаешь, что автомобильная сеть довольная забавная и разнообразная штука. При этом технологии развиваются — нас ждет, возможно, и IP ;).

 

Вектора атак

Как видишь, такая архитектура довольно «уязвима» в случае прямого доступа к CAN. Любому, кто работает или связан с технологиями в автопроме, в принципе, все это и так известно, но изменить что-либо трудно. Я уже говорил об исследовании Чарли Миллера и Криса Валасека, ребята вживую продемонстрировали недостатки такого подхода: подрубились напрямую к CAN разных тачек и стали спуфить сообщения в шину, манипулируя ECU. Советую ознакомиться. Кроме того, «взлом тачек» — это еще и классика: взламывание автозамков, смена прошивок ECU и прочий fun-and-profit. Тема просто огромная и широкая, поэтому в рамках моей скромной колонки мы поговорим лишь об удаленных угрозах и попытаемся сформировать поверхность для атаки, учитывая все вышесказанное про архитектуру внутренней сети.

 

Беспроводные технологии

Начнем c банальных и многократно озвученных вещей — беспроводных протоколов коммуникации в нашем авто. Bluetooth, Wi-Fi — доверенная сеть с пользователем для работы с системой развлечений.

  • Bluetooth — довольно очевидный вектор атаки, и говорить тут особо нечего — можно искать ошибки имплементации протокола, можно просто делать pair на наушники :).
  • Wi-Fi — старый добрый Wi-Fi, как правило, используется для доступа в инет с различными целями — обновить карты, получить инфу о пробках, обновить ленту твиттера, наконец! Вектора атаки опять же разнообразны — можно искать уязвимости реализации стека, а можно делать MITM / Fake AP. Как и с BT, вектора могут быть интереснее в зависимости от того, какое «приложение» автомобиля работает и что оно делает. Например, если оно качает новую версию МP3-плеера по инету, а ты митм, то выводы очевидны… В любом случае, это уже атаки на программный стек «системы развлечений», и он может очень разнообразным. Кроме того, нельзя не отметить связь car2car, технологии «будущего», позволяющей машинам быть в единой сети для оптимизации трафика в экстренных ситуациях.
  • GPS — спуфинг координат, потеря ориентации. Опять же атаки на реализацию.
  • GSM/3G/4G — уже сейчас в некоторые автомобили можно вставлять сим-карту и пользоваться услугами твоего оператора сотовой связи, у некоторых есть возможность подключить такой доступ через внешний USB-порт. В первом случае у нас опять возможность baseband-атак, как и везде. В общем, опять одни и те же технологии — одни и те же атаки.

Кроме привычного стека беспроводных технологий, в авто присутствует и свой неповторимы шарм:

  • Radio/RDS — кто знает, что, кроме аудиосигнала, в радио передается и «текстовая» информация. Обычно это может быть название радиостанции, название текущей музыкальной композиции, но этот же канал очень часто используется для передачи сообщений о пробках и прочих проблемах на дорогах. Эта информация парсится и передается в навигационное оборудование, которая на основе этих данных может поменять тебе маршрут. Атаки очевидны — так как информация передается в открытом виде, никто не мешает ее проспуфить, тем самым заставить навигационное оборудование думать, что на этой улице у нас пробка, а та улица закрыта… так что не будет никакого выбора, кроме как ехать по третьей улице. Такая атака вполне реализуема и была продемонстрирована еще в 2007 году, но воз и ныне там (а что сделать?) [http://phrack.org/issues/64/5.html#article]. Ну и как классика — всегда можно найти дыры в парсере этой инфы, если повезет (и да, не забываем про car2car).
  • Замки — как ты знаешь, многие замки как бы «беспроводные». Радиосигнал и криптография. Вектор атаки очевиден — открывание дверей всеми хацкерами с SDR не самая приятная штука, но если реализация и криптография хорошая, то не так просто это и сделать. Тем не менее вектор есть вектор, кроме того, да, опять же можно запывнить сам ECU.
  • Immobiliser — по сути, еще одна беспроводная защита от угона, может быть RFID, суть та же, что и замок, только на «двигатель». Нет иммобилайзера — машина не поедет.
  • Беспроводные TPMS — ECU, контролирующий давление в шинах… И так как провода к такому ECU проводить тяжело, разумно сделать их беспроводными. Таким образом, пацаны с SDR могут играться с твоим давлением. Вектор крайне опасный и неприятный.
 

Система развлечений

Система развлечений уже полноценный «комп», люди хотят парсить свою ленту в твиттере прямо из машины, а не только слушать музыку. Отсюда порождается множество векторов атаки в зависимости от используемого ПО. Говорить про это в отрыве от реального примера довольно тяжело, но что будет, если загружаемый MP3-файл вызовет BoF в CPU HeadUnit машины? Правильно, компрометация системы и доступ к CAN… (я взял худший случай). Ну и подумай сам — браузер из машины + clienе side атаки, короче, тема широкая и довольно реальная.

Навигация

Отдельным пунктом можно выделить атаки на навигацию авто. Про спуфинг GPS и RDS мы говорили, но есть еще пучок возможных атак, который зависит от используемой системы и ее возможностей. Например, обновление карт через интернет или получение информации о пробках и роутинге через тот же интернет.

Connected Car

Как можно заметить из предыдущих двух пунктов, угрозы плавно множатся с появлением идеи connected car. Теперь уже машина в интернете, и ты пользуешься своим андроид-девайсом, чтобы получать инфу с авто или управлять ее элементами. Добавим к этому облака и персонализацию пользователя в интернете, и выходит, что поверхность атаки переросла из «просто на машину и ее компоненты» в «машину, ее компоненты, мобильные устройства и автомобильные сервисы в сети Интернет». То есть теперь, чтобы атаковать автомобиль, можно пывнить серваки в инете. Например, пользователь имеет аккаунт в облачном картографическом сервисе, где у него сохранены маршруты следования и прочие данные, через банальную и скучную SQLi мы попадаем в его аккаунт в этом сервисе и меняем стандартный маршрут или получаем информацию о его текущем маршруте. Зависит от сервиса и архитектуры и функций, но в целом идея понятна. Но давай глянем на скорое будущее, что нам обещает Mercedes-Benz в 2015 году: открывание дверей удаленно через iPhone, а кроме того, контроль — координаты, состояние и так далее. Смартфон становится частью автомобиля. Ну и да, очевидно, что тема ПДн и личной информации выходит чуть выше, чем раньше, так как добавляются угрозы раскрытия нашего местоположения, наших путей и связей.

eHorizont — система контроля и оповещения. Вкусная цель для хакера?
eHorizont — система контроля и оповещения. Вкусная цель для хакера?
 

Автоматическое вождение — будущее уже рядом

Google Car на слуху у всех. Автопилот на дороге. Само по себе ездит, объезжает пешеходов и следит за ситуацией на дороге в 360 градусов обзора. Кроме раcпиаренного Google, такие же проекты есть и у Mercedes-Benz, Audi, BMW, Volvo, да и у других автопроизводителей. Теперь прикинем вектора атак с манипуляцией маршрута из предыдущих пунктов, и получается, что хакеры смогут, в некой теории, просто управлять удаленно машинами. Ну кроме шуток, ФБР уже предупредило, что такая технология открывает, например, новые возможности для терроризма, причем ФБР сделало это предположение на полном серьезе — управляемое дистанционное оружие. Я же хотел бы поднять этот вопрос с другой стороны — вектора атак. Кроме очевидного — взлом CPU/ECU, у нас есть возможность манипулировать навигационной системой и таким образом просто спуфить координаты GPS или, манипулируя информацией о трафике, можно заставить машину свернуть на нужную нам дорогу. Это первое, а второе — например, тот же Google Car использует Lidar для построения «реальной карты» на ближайшие десятки метров, а что будет, если засветить эту камеру лазером или накинуть грязную тряпку? Поведение машины должно быть предсказуемо. Например, Mercedes не имеет Lidar, а использует заранее сделанные карты 3D от HERE/Nokia, но тогда вопрос: что будет, если дорога в реальном положении дел будет не соответствовать тому, что есть на картах? Разумеется, инженеры предусмотрели эти вопросы, так как это Safety, а там у них все строго. Тем не менее возникает еще вопрос: вот банальная атака, гопник со знаком STOP в руках выходит на дорогу, машина распознает знак и останавливается? Я уже вижу, что мир будет меняться, так как такие знаки уже не будут работать как надо, возможно, сделают радиознаки или интернет-контроль с сертификацией дорог для «автоматического вождения». Вариантов много, но рисков меньше не становится, пока количество угроз только растет.

Mercedes-Benz — грузовик, который ездит сам. Практичненько и удобно (угонять груз, не выходя из дома?)
Mercedes-Benz — грузовик, который ездит сам. Практичненько и удобно (угонять груз, не выходя из дома?)
 

Вместо прощания

Надеюсь, тема была интересной, я же для себя определенно чувствую огромный потенциал в этом направлении. Работая в компании, которая непосредственно занимается проектами по Connected Car, навигации и задачам автоматического вождения, я вижу и такие вектора атак, которые не озвучил тут по понятным причинам :). Тем не менее есть еще много путей «влияния» на автомобиль, и мы не можем обойти вниманием эту отрасль в нашем журнале. Так что, я думаю, мы наверняка вернемся к этой теме, но уже более детально. Да пребудет с вами Сила и безопасная езда на дорогах!

Оставить мнение

Check Also

Безопасность превыше всего. 9 простых трюков, которые сделают жизнь линуксоида секьюрнее

Жизнь обычных людей складывается из мелочей. Жизнь линуксоида складывается из множества ма…