Как взламывают подключенные автомобили и что с этим делать
Подключённые к интернету автомобили с автопилотами, по сути, полуавтономные гаджеты на колёсах, сегодня учатся взаимодействовать со своими механическими собратьями, облачными сервисами и дорожной инфраструктурой, чтобы сделать движение безопаснее, помочь водителю принять правильное решение, а в критической ситуации отреагировать быстрее человека. Вместе с тем, электронная начинка и софт современных автомобилей имеют столько уязвимостей, что их взлом напоминает скорее движение по хайвею, чем бег с препятствиями. В этом посте мы поделимся результатами изучения безопасности современных автомобилей, собранными в исследовании компании Trend Micro, получившем название «Driving Security Into Connected Cars: Threat Model and Recommendations».
Прежде чем перейти к описанию конкретных кейсов, сделаем небольшое введение в проблему. Типичный легковой автомобиль последнего поколения содержит под капотом не только двигатель, но и более 100 млн строк кода. Даже относительно простые модели имеют около 30 электронных блоков управления (ЭБУ), оснащённых собственными процессорами и прошивкой. В люксовых авто таких блоков может быть больше ста. Чтобы взаимодействовать между собой, эти ЭБУ подключаются через лабиринт цифровых шин. Здесь и CAN (Control Area Network), и Ethernet, и FlexRay, LIN и MOST. Все они работают с разной скоростью, передают различные типы данных и обеспечивают соединение между разными частями автомобиля.
Именно ЭБУ управляют критически важными функциями автомобиля: двигателем, коммуникациями, подачей топлива, тормозной системой и безопасностью. Частично управление этими компонентами доступно через головное устройство.
Современные авто оборудованы модулями геопозиционирования, умеют подключаться к мобильному интернету и даже использовать публичные сети Wi-Fi. Такой «смартфон на колёсах», как и его более компактный карманный аналог, имеет беспроводные интерфейсы и может раздавать интернет своим пассажирам.
Мы изучили устройство автомобильных сетей разных производителей и выяснили, что, хотя каждый вендор реализует их по-разному, все архитектуры имеют общие компоненты: шлюзы, ЭБУ, шины CAN, USB- и беспроводные интерфейсы. При всех отличиях они выполняют сходные функции и взаимодействуют между собой одним образом. На основании этих данных мы создали обобщённую архитектуру автомобильной сети.
Структурная схема типовой сети подключённого автомобиля. Источник: Trend Micro
Из схемы видно, что подключённый автомобиль обладает сетевыми интерфейсами, которые позволяют атаковать его удалённо. Результатом таких атак может стать компрометация одного или нескольких ЭБУ и полный перехват управления автомобилем. Рассмотрим несколько случаев таких атак и уязвимости, которыми воспользовались хакеры.
Случай 1: Удалённый взлом Jeep Cherokee в 2015 году
В 2015 году Чарли Миллер и Крис Валасек совместно с корреспондентом журнала Wired продемонстрировали дистанционный взлом подключённой модели автомобиля Jeep Cherokee.
Корреспондент выехал на хайвей, после чего исследователи перехватили управление системами его автомобиля — они включили на полную мощность музыку и кондиционер, заставили работать щётки стеклоочистителя, а затем снизили скорость авто до 10 миль в час, так что другие водители сигналили участнику эксперимента, обгоняя его. Самым ужасным было то, что он полностью лишился контроля: управление мультимедийной системой, кондиционером и даже педалью газа взяли на себя хакеры.
Исследователям удалось обнаружить IP-сеть класса А, которую производитель, компания Chrysler, использовала для своих подключённых автомобилей. Сканируя открытые порты, они выяснили, что в каждом автомобиле был открыт порт 6667, на котором демон сообщений D-Bus принимал команды через протокол Telnet без аутентификации. Отправляя команды демону D-Bus, Миллер и Валасек полностью перехватили управление автомобилем.
Цепочка атаки на Jeep Cherokee. Источник: Trend Micro
Вообще, в процессе изучения внутреннего устройства Jeep Cherokee хакеры нашли много любопытного, например:
- головное устройство может работать с устройствами, подключёнными не только к шине CAN-IHS (CAN Interior High Speed), но и к шине CAN-C (CAN Critical), то есть критические с точки зрения безопасности системы в сетевой архитектуре Jeep не отделены от обычных систем;
- подключиться к Jeep лучше всего через его мобильный сетевой интерфейс, при этом злоумышленник может находиться хоть в другой стране и всё равно сможет управлять транспортным средством;
- диапазон IP-адресов автомобилей Jeep находится в полностью открытом интернет-пространстве, поэтому получить доступ к любому автомобилю может любой пользователь интернета — теоретически можно создать сетевого червя, который просканирует сеть и заразить все подключённые к сети Chrysler автомобили через демон D-Bus, работающий на открытом порте 6667;
- прошивка для микропроцессора Renesas V850 и процессора OMAP (Open Multimedia Applications Platform) доступна для загрузки с сайта Chrysler — это делает возможным реинжиниринг и модификацию (в частности, Миллер и Валасек заставили прошивку интерпретировать SPI сообщения как сообщения CAN и транслировать их на все подключённые к шине CAN ЭБУ);
- алгоритм вычисления контрольной суммы CAN-сообщений, чтобы они выглядели легитимными для ЭБУ автомобиля.
- алгоритм разблокировки ЭБУ для перепрограммирования — оказалось, что ЭБУ ассистента парковки, который считывает CAN-сообщения для манипулирования функцией рулевого управления, также является чипом V850, что позволяет с лёгкостью провести реверс-инжиниринг алгоритма его работы;
- сообщения CAN, которые отключают двигатель и тормоза и поворачивают руль;
- способ подменить CAN-сообщения от настоящих ЭБУ или деактивировать эти ЭБУ, чтобы вместо их команд выполнялись вредоносные CAN-сообщения.
Заметим, что хотя речь тут идёт об автомобилях одного производителя и определённого поколения, эта ситуация совсем не редка в отрасли — это не проблема Chrysler, а системная проблема.
Случай 2: взлом Tesla в 2016 году
В 2016 году специалисты лаборатории безопасности Tencent Keen взломали Tesla Model S. Для атаки они проэксплуатировали сложную цепочку уязвимостей для компрометации компонентов сети автомобиля и внедрения вредоносных CAN-сообщений.
Цепочка атаки на Tesla Model S в 2016 году. Источник: Trend Micro
- Исследователи установили фальшивую точку доступа Tesla Guest, к которой автоматически подключаются все «Теслы» в соответствии со стандартом производителя.
- Используя уязвимости браузера Tesla, выполнили шелл-код, который повысил привилегии через уязвимость ядра Linux CVS-2013–6282. Это позволили отключить модуль безопасности ядра AppArmor.
- Используя повышенные привилегии, получили root-доступ к центральному инфодисплею «Теслы», а с него — к приборной панели, модулю Parrot, управляющему Bluetooth и Wi-Fi, а также к шлюзу шины CAN.
- Далее они модифицировали прошивку шлюза и заставили его отправлять вредоносные CAN-сообщения.
- Tesla Model S игнорирует некоторые сообщения CAN-шины, когда скорость выше установленного предела. Исследователи заблокировали трансляцию сообщений о скорости, подменив идентификатор соответствующего ЭБУ.
- Далее они внедрили собственную прошивку в один из ЭБУ, чтобы получить возможность выполнять операции прямого чтения/записи памяти.
- Используя эту возможность, они смогли перевести ЭБУ в специальный диагностический режим, который блокирует возможность приёма и ответа на CAN-сообщения.
- Таким образом им удалось отключить системы ESP, ABS, управление подачей топлива и тормозной системой.
Случай 3: взлом Tesla в 2017 году
Через год после наглядной демонстрации уязвимостей в Tesla специалисты Tencent Keen проверили, насколько качественно компания Илона Маска провела работу над ошибками. Результатом стала очередная компрометация электромобиля.
Цепочка атаки на Tesla Model S в 2017 году. Источник: Trend Micro
Атака началась всё с той же фальшивой точки доступа Tesla Guest, к которой автомобиль доверчиво подключился. Далее исследователи снова воспользовались уязвимостью браузера на базе движка Webkit. И хотя уязвимость была другая, результат оказался тот же. Не помогло даже обновление ядра Linux, выполненное вендором: хакеры снова отключили AppArmor и получили root-доступ к CID.
После этого исследователи модифицировали прошивку, чтобы она игнорировала проверку ЭЦП Tesla, а затем взломали несколько «пасхалок», встроенных в оригинальную прошивку автомобиля. Несмотря на развлекательный характер «пасхалок» они имели доступ к различным ЭБУ, чем и воспользовались исследователи.
Случай 4: взлом BMW в 2018 году
Чтобы продемонстрировать, что проблемы с безопасностью существуют не только у Tesla, специалисты Tencent Keen провели разработали три варианта атак на автомобили BMW: локальную атаку через USB/OBD-II и две удалённые атаки.
Схема атаки на BMW в 2018 году. Источник: Trend Micro
Первая атака использовала удалённое выполнение кода в BMW ConnectedDrive (набор электронных опций автомобиля, представленный ещё в 2008 году), через перехват HTTP-трафика:
- поскольку сервис BMW ConnectedDrive в службе HU-Intel периодически опрашивает внутренние серверы BMW через 2G или 3G соединение телематического коммуникационного блока (TCB) по протоколу HTTP, исследователи установили фальшивую базовую станцию GSM и перехватили весь GPRS-трафик транспортного средства;
- исследуя перехваченный трафик, они нашли файл инициализации, загружаемый автомобилем, и выяснили его URL; поскольку автомобиль был подключён через подконтрольную хакерам базовую станцию GSM, они смогли подменить содержимое в файле инициализации и проэксплуатировать уязвимость в автомобильном браузере также на базе WebKit;
- в результате они получили веб-шелл, с помощью которого повысили привилегии и получили root-доступ к прошивке через чип HU-Jacinto, который обрабатывает все коммуникации шины CAN;
- итогом стала возможность использования функции CanTransmit_15E2F0 для отправки произвольных CAN-сообщений.
Второй вариант удалённой атаки более сложен и эксплуатирует уязвимости TCB через незащищённые SMS.
Выводы и рекомендации
Подключенные автомобили — лишь один из компонентов умной транспортной сети, которая представляет собой сложнейшую экосистему, содержащую миллионы взаимосвязей, конечных точек и пользователей. Эта экосистема состоит из четырёх основных компонентов:
- собственно подключенного автомобиля;
- сети передачи данных, которая обеспечивает взаимодействие подключенного автомобиля с бэкэндом;
- бэкэнда — серверов, баз данных и приложений, обеспечивающих взаимодействие всей умной транспортной инфраструктуры;
- центра управления безопасностью автомобилей (vehicle security center, VSOC), который собирает и анализирует уведомления, поступающие от остальных компонентов умной транспортной сети.
Сложность умной транспортной системы достигла такого уровня, что крайне сложно прогнозировать, в какую часть периметра будет направлена очередная атака. В связи с этим защита подключённых автомобилей не ограничивается софтом и электроникой транспортного средства. Необходимо также обеспечить безопасность бэкэнда и сети передачи данных.
Комбинированная архитектура подключённых автомобилей. Источник: Trend Micro
Для защиты автомобилей:
- использовать в сети автомобиля сетевую сегментацию, отделив критические узлы от «развлекательно-пользовательские». Это снижает риск бокового перемещения и повышает общую безопасность.
- воспользоваться рекомендациями отраслевой группы ISO и SAE. Разработанный участниками группы свод руководящих принципов обеспечения безопасности подключённых автомобилей — ISO/SAE 21434 содержит ряд предложений, внедрение которых позволит существенно изменить сложившуюся ситуацию.
- внедрить безопасность в качестве обязательной части всех процессов от создания концепции и разработки до производства, эксплуатации, технического обслуживания и вывода из эксплуатации. Для управления рисками следует использовать ISO 31000.
- в обязательном порядке проводить мониторинг рисков в соответствии со стандартом управления информационной безопасностью ISO/IEC 27001.
- внедрить управление исправлениями и обновлениями в соответствии с новым стандартом ISO/AWI 24089 «Транспортные средства — Инжиниринг обновления программного обеспечения»
Для защиты сети передачи данных:
- шифрование потока данных;
- обязательная аутентификация;
- ограничение доступа из публичного интернета к интеллектуальной транспортной сети.
Для защиты бэкенд-инфраструктуры:
- использовать брандмауэры для отслеживания вредоносного трафика и идентификации приложений или устройств, которые генерируют или запрашивают этот трафик;
- воспользоваться брандмауэрами следующего поколения (NGFWs)/ унифицированными шлюзами управления угрозами (UTM), которые могут включать в себя классические брандмауэры, системы предотвращения вторжений (IPS), системы обнаружения вторжений (IDS), антивирусное программное обеспечение, веб-фильтрацию, управление приложениями и другие решения, объединённые в одном устройстве;
- антивирусное программное обеспечение;
- антифишинговое ПО для фильтрации электронной почты сотрудников вендоров, обслуживающих бэкэнд-инфраструктуру, поскольку фишинг — один из основных векторов заражения;
- системы обнаружения взлома (BDS);
- IPS и IDS — системы сетевой безопасности, которые исследуют трафик для обнаружения и предотвращения сетевых атак.