Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Совсем недавно у всех на слуху была громкая новость: случилась беда, «Тесла» рулит не туда! Как же после этого доверять «умным» машинам? Чтобы разобраться в серьезности угрозы для перспективной технологии, мы изучим архитектуру системы, историю вопроса, основные уязвимые точки и векторы атаки — а также посмотрим конкретные случаи.
«Тесла» сбилась с курса и оказалась в глухом и унылом месте — не по своей воле, конечно
Начнем с архитектуры. Бортовой компьютер современного автомобиля на самом деле не существует как единое целое. Вместо него мы имеем совокупность электронных блоков управления (Electronic control unit, ECU), соединенных в сеть. С конца восьмидесятых годов и до сегодняшнего дня базовым стандартом этой сети остается так называемая CAN-шина. То есть куски витой пары, которым все блоки ECU передают сообщения одинакового формата.
На самом деле все, конечно, немного сложнее. Шина может быть не одна, а несколько — например, для более важных устройств с повышенным быстродействием и для второстепенных. В таком случае между шинами существует какой-нибудь «мост». А в своей платформе электромобилей MEB автоконцерн Volkswagen и вовсе отказывается от архитектуры на основе CAN-шины и будет использовать вместо нее бортовой Ethernet — и единую операционную систему на основе Android.
Нам же пока важно то, что, каким бы «умным» ни был современный автомобиль, в основе лежит та же самая шина. А значит, по-прежнему актуальна ее принципиально неустранимая уязвимость: получив доступ к CAN (например, подключившись к диагностическому разъему или поставив на шину сниффер), мы получаем доступ ко всей передаваемой информации. Со всеми вытекающими последствиями.
И если мы сможем передать какому-то из блоков ECU свой сигнал, то он послушно выполнит команду. Если это будет блок управления кондиционером, еще не так страшно. А если блок управления тормозами или двигателем? В соответствии с принципом «ломать не строить» (или Garbage in, garbage out — «мусор на входе, мусор на выходе») одна-единственная неправильная команда, поступившая в момент напряженного обгона с выездом на встречную полосу, может привести к печальным последствиям и громким газетным заголовкам.
Впрочем, дела не настолько плохи. Производители не дураки и вполне в состоянии встроить элементы защиты в каждый конкретный блок ECU. Он может отказаться принимать команду, если в ней нет правильной контрольной суммы или если она будет не соответствовать каким-то дополнительным условиям. Очень часто притвориться помощником при парковке можно, только если машина едет задним ходом и не быстрее пяти километров в час, — при других условиях его сигналы будут проигнорированы.
Кроме того, сообщения в CAN-шине — это команды настолько низкоуровневые, что их можно сравнить с машинным кодом. Чтобы понять, что означает последовательность битов, придется долго читать технические инструкции производителя или проводить натурные эксперименты на настоящем автомобиле — или, на безрыбье, на отдельных блоках ECU.
Получается интересная ситуация: на теоретическом уровне взломать автомобиль очень просто, но на практическом понадобится много скрупулезной подготовки. И как-то так вышло, что долгое время этим занимались в основном люди, держащиеся в тени и имеющие сугубо корыстные интересы — не получить контроль над электроникой автомашины, а получить саму автомашину в свои руки.
Только в 2010 году об этой теме заговорили всерьез. На посвященном безопасности симпозиуме Института инженеров электротехники и электроники (IEEE) был представлен доклад инженеров-компьютерщиков из университетов Сан-Диего и Вашингтона.
Они описали множество чрезвычайно интересных особенностей автомобилей как компьютерных систем. В основном эти особенности проистекали из того, что в индустрии много внимания уделяется безопасности при штатном использовании и чрезвычайных ситуациях, но мало — защищенности от целенаправленной атаки на электронные системы автомобиля.
Например, чтобы при аварии двери автомобиля не оказались запертыми, низкоприоритетная сеть, куда был включен блок управления центральным замком, имела «мостовую» связь с высокоприоритетной сетью, в которой были датчики состояния всего автомобиля и блоки разнообразных систем — «помощников» водителя. А продвинутые телематические системы собирали показания множества датчиков и по сотовой связи отправляли их в сервисные центры — чтобы автомобиль заранее мог подсказать владельцу, что скоро настанет пора заглянуть в автосервис, или самостоятельно звонил 911 в случае аварии. Более того, в ту же систему могло быть включено и противоугонное устройство — позволяющее на расстоянии заблокировать двигатель машины.
Что же именно сделала эта команда исследователей? Для начала они написали программу CARSHARK — гибкий инструмент для анализа и внедрения сообщений в CAN-шине. Дальше открываются широкие возможности. Не вдаваясь особенно глубоко в технические подробности, скажем только, что те блоки ECU, в которых была встроена аутентификация, были защищены всего лишь 16-битным ключом. Такую защиту получится обойти методом перебора за несколько дней. После этого можно, например, «перепрошить» ECU — и тогда уже твори что угодно.
Нанести существенный вред можно и просто устроив классическую DoS-атаку: перегруженная бессмысленными сообщениями система становилась неработоспособной. Но можно было и поиграть в героя фильмов про хакеров. Например, в качестве простой и наглядной демонстрации своих сил исследователи написали «демовирус самоуничтожения»: после его запуска машина выводила на спидометр обратный отсчет от шестидесяти, в такт уходящим секундам мигала поворотниками и сигналила, а потом намертво глушила двигатель и блокировала замки, оставляя на спидометре надпись PWNED.
Еще более коварный подход, который продемонстрировали исследователи, — загрузка вредоносного кода в оперативную память телематической системы (внутри которой была полноценная ОС на базе Unix). Они сделали так, чтобы код срабатывал по триггеру (например, разгону до определенной скорости) и перезагружал систему после срабатывания, удаляя себя оттуда. Идеальное преступление!
PWNED!
Но на этом исследователи не остановились. В следующем, 2011 году они представили новый доклад (PDF), в котором рассматривали уже не то, что может сделать с системой злоумышленник, получив к ней доступ, — а то, как именно он может этот доступ получить.
В 2011 году исследователи отмечали в качестве уже реального вектора атаки компьютеры, к которым в автосервисах подключают автомобили, — они используют Windows и часто нуждаются в доступе к интернету… А в качестве теоретического, возможного в будущем — оборудованные на зарядных станциях для электромобилей «умные» зарядки, по которым идет не только ток высокой силы, но и информация.
В отличие от их предыдущего весьма конкретного доклада этот читается скорее как захватывающее повествование о высотах и провалах инженерного искусства. Чего стоит только музыкальный трек в формате WMA, который на компьютере проигрывается как обычная музыка, но на автомобильном плеере отправляет вредоносные пакеты в CAN-шину. Или рассуждения о том, как именно можно подсоединиться к машине по Bluetooth или через телематическую систему с подключением к сотовой связи.
Иными словами, в этом докладе исследователи скорее указывали на потенциальные угрозы, напоминающие сценарии фильмов про хакеров, — с той оговоркой, что они действительно все это проделали в лабораторных условиях, а не просто предположили, что такие вещи могут произойти.
Что ж, после того как это сделала команда исследователей из двух крупных университетов, их достижения смогли повторить два парня в своем гараже — знакомься, Крис Валасек и Чарли Миллер.
Так легендарные хакеры выглядят в жизни
Начали они с того, что дотошно повторили исследования своих предшественников — и написали куда более развернутый и полный доклад. Выводы, описанные в нем, в этой статье уже несколько раз упоминались: для успешного взлома автомобиля нужно много кропотливой предварительной работы, в которой есть свои подводные камни — например, если исследовать блоки ECU отдельно от автомобиля, на специальном испытательном стенде, то они могут (и будут!) вести себя не вполне так, как в рабочих условиях. Но если не бояться всей этой работы, то, когда получишь доступ к автомобилю, будет понятно, что делать, — и можно будет сделать очень многое.
Затем они изучили пару десятков конкретных моделей автомобилей, обращая внимания на детали их сетевой архитектуры — и особенно на возможные векторы удаленной атаки. Именно на этом этапе они выделили так называемые киберфизические компоненты — всевозможные помощники водителя вроде круиз-контроля или блока LKA (Lane Keep Assist, помощник удержания в полосе). Эти устройства одновременно служат самой привлекательной конечной целью для хакера — и важными вехами на пути к по-настоящему самоуправляемому автомобилю.
Валасек и Миллер обнаружили, что, с одной стороны, производители автомобилей используют разные компоненты и сетевую архитектуру, но, с другой стороны, во многих развлекательных системах применяются широко известные решения из обычной пользовательской электроники вплоть до веб-браузеров.
Источник: xakep.ru