Содержание статьи
- Архитектура: CAN-шина, блоки ECU и прочее
- Ученые вступают в бой
- Повод задуматься
- Крис Валасек и Чарли Миллер — легендарный дуэт
- Печальная история о джипе и аудиосистеме
- Подарок судьбы: безалаберный провайдер с дырявой сетью
- Прикладная философия: безопасность в разработке и безопасность в использовании
- Кто рулит «Теслой»?
- Опасный лайфхак
- Сенсоры: как роботы видят мир
- GPS: алло, я где?
- Китайская комната: о чем думает автопилот
- Нейросеть не любит шума
- Человеческое, слишком человеческое: ограничения технологии
- Уровни автономности
- Как перестать беспокоиться и полюбить «умную» машину
Архитектура: CAN-шина, блоки ECU и прочее
Начнем с архитектуры. Бортовой компьютер современного автомобиля на самом деле не существует как единое целое. Вместо него мы имеем совокупность электронных блоков управления (Electronic control unit, ECU), соединенных в сеть. С конца восьмидесятых годов и до сегодняшнего дня базовым стандартом этой сети остается так называемая CAN-шина. То есть куски витой пары, которым все блоки ECU передают сообщения одинакового формата.
На самом деле все, конечно, немного сложнее. Шина может быть не одна, а несколько — например, для более важных устройств с повышенным быстродействием и для второстепенных. В таком случае между шинами существует какой-нибудь «мост». А в своей платформе электромобилей MEB автоконцерн Volkswagen и вовсе отказывается от архитектуры на основе CAN-шины и будет использовать вместо нее бортовой Ethernet — и единую операционную систему на основе Android.
Нам же пока важно то, что, каким бы «умным» ни был современный автомобиль, в основе лежит та же самая шина. А значит, по-прежнему актуальна ее принципиально неустранимая уязвимость: получив доступ к 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). Они сделали так, чтобы код срабатывал по триггеру (например, разгону до определенной скорости) и перезагружал систему после срабатывания, удаляя себя оттуда. Идеальное преступление!
Но на этом исследователи не остановились. В следующем, 2011 году они представили новый доклад (PDF), в котором рассматривали уже не то, что может сделать с системой злоумышленник, получив к ней доступ, — а то, как именно он может этот доступ получить.
Повод задуматься
В 2011 году исследователи отмечали в качестве уже реального вектора атаки компьютеры, к которым в автосервисах подключают автомобили, — они используют Windows и часто нуждаются в доступе к интернету... А в качестве теоретического, возможного в будущем — оборудованные на зарядных станциях для электромобилей «умные» зарядки, по которым идет не только ток высокой силы, но и информация.
В отличие от их предыдущего весьма конкретного доклада этот читается скорее как захватывающее повествование о высотах и провалах инженерного искусства. Чего стоит только музыкальный трек в формате WMA, который на компьютере проигрывается как обычная музыка, но на автомобильном плеере отправляет вредоносные пакеты в CAN-шину. Или рассуждения о том, как именно можно подсоединиться к машине по Bluetooth или через телематическую систему с подключением к сотовой связи.
Иными словами, в этом докладе исследователи скорее указывали на потенциальные угрозы, напоминающие сценарии фильмов про хакеров, — с той оговоркой, что они действительно все это проделали в лабораторных условиях, а не просто предположили, что такие вещи могут произойти.
Крис Валасек и Чарли Миллер — легендарный дуэт
Что ж, после того как это сделала команда исследователей из двух крупных университетов, их достижения смогли повторить два парня в своем гараже — знакомься, Крис Валасек и Чарли Миллер.
Начали они с того, что дотошно повторили исследования своих предшественников — и написали куда более развернутый и полный доклад. Выводы, описанные в нем, в этой статье уже несколько раз упоминались: для успешного взлома автомобиля нужно много кропотливой предварительной работы, в которой есть свои подводные камни — например, если исследовать блоки ECU отдельно от автомобиля, на специальном испытательном стенде, то они могут (и будут!) вести себя не вполне так, как в рабочих условиях. Но если не бояться всей этой работы, то, когда получишь доступ к автомобилю, будет понятно, что делать, — и можно будет сделать очень многое.
Затем они изучили пару десятков конкретных моделей автомобилей, обращая внимание на детали их сетевой архитектуры — и особенно на возможные векторы удаленной атаки. Именно на этом этапе они выделили так называемые киберфизические компоненты — всевозможные помощники водителя вроде круиз-контроля или блока LKA (Lane Keep Assist, помощник удержания в полосе). Эти устройства одновременно служат самой привлекательной конечной целью для хакера — и важными вехами на пути к по-настоящему самоуправляемому автомобилю.
Валасек и Миллер обнаружили, что, с одной стороны, производители автомобилей используют разные компоненты и сетевую архитектуру, но, с другой стороны, во многих развлекательных системах применяются широко известные решения из обычной пользовательской электроники вплоть до веб-браузеров.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»