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

Архитектура: CAN-шина, блоки ECU и прочее

Начнем с архитектуры. Бортовой компьютер современного автомобиля на самом деле не существует как единое целое. Вместо него мы имеем совокупность электронных блоков управления (Electronic control unit, ECU), соединенных в сеть. С конца восьмидесятых годов и до сегодняшнего дня базовым стандартом этой сети остается так называемая CAN-шина. То есть куски витой пары, которым все блоки ECU передают сообщения одинакового формата.

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

WWW

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

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

И если мы сможем передать какому-то из блоков ECU свой сигнал, то он послушно выполнит команду. Если это будет блок управления кондиционером, еще не так страшно. А если блок управления тормозами или двигателем? В соответствии с принципом «ломать не строить» (или Garbage in, garbage out — «мусор на входе, мусор на выходе») одна-единственная неправильная команда, поступившая в момент напряженного обгона с выездом на встречную полосу, может привести к печальным последствиям и громким газетным заголовкам.

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

Кроме того, сообщения в CAN-шине — это команды настолько низкоуровневые, что их можно сравнить с машинным кодом. Чтобы понять, что означает последовательность битов, придется долго читать технические инструкции производителя или проводить натурные эксперименты на настоящем автомобиле — или, на безрыбье, на отдельных блоках ECU.

 

Ученые вступают в бой

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

Только в 2010 году об этой теме заговорили всерьез. На посвященном безопасности симпозиуме Института инженеров электротехники и электроники (IEEE) был представлен доклад инженеров-компьютерщиков из университетов Сан-Диего и Вашингтона.

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

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

INFO

Еще пару строк об архитектуре: в современных автомобилях почти всегда есть специальный диагностический разъем OBD-II и специальный диагностический режим, предназначенный для автомехаников. И чтобы в любом автосервисе в любой глуши специалист имел возможность «подебажить» машину, доступ к этому режиму, по сути, предоставляется... через доступ к разъему. Да, именно так. Практически логин root, пароль password. На использовании этого режима основаны многие примеры из этой статьи.

Что же именно сделала эта команда исследователей? Для начала они написали программу CARSHARK — гибкий инструмент для анализа и внедрения сообщений в CAN-шине. Дальше открываются широкие возможности. Не вдаваясь особенно глубоко в технические подробности, скажем только, что те блоки ECU, в которых была встроена аутентификация, были защищены всего лишь 16-битным ключом. Такую защиту получится обойти методом перебора за несколько дней. После этого можно, например, «перепрошить» ECU — и тогда уже твори что угодно.

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

Еще более коварный подход, который продемонстрировали исследователи, — загрузка вредоносного кода в оперативную память телематической системы (внутри которой была полноценная ОС на базе Unix). Они сделали так, чтобы код срабатывал по триггеру (например, разгону до определенной скорости) и перезагружал систему после срабатывания, удаляя себя оттуда. Идеальное преступление!

PWNED!
PWNED!

Но на этом исследователи не остановились. В следующем, 2011 году они представили новый доклад (PDF), в котором рассматривали уже не то, что может сделать с системой злоумышленник, получив к ней доступ, — а то, как именно он может этот доступ получить.

 

Повод задуматься

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

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

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

 

Крис Валасек и Чарли Миллер — легендарный дуэт

Что ж, после того как это сделала команда исследователей из двух крупных университетов, их достижения смогли повторить два парня в своем гараже — знакомься, Крис Валасек и Чарли Миллер.

Так легендарные хакеры выглядят в жизни
Так легендарные хакеры выглядят в жизни

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

Затем они изучили пару десятков конкретных моделей автомобилей, обращая внимание на детали их сетевой архитектуры — и особенно на возможные векторы удаленной атаки. Именно на этом этапе они выделили так называемые киберфизические компоненты — всевозможные помощники водителя вроде круиз-контроля или блока LKA (Lane Keep Assist, помощник удержания в полосе). Эти устройства одновременно служат самой привлекательной конечной целью для хакера — и важными вехами на пути к по-настоящему самоуправляемому автомобилю.

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

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии