Датчики давления в шинах автомобиля: пробуем провести DoS-атаку

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Датчики TPMS (Tire-pressure monitoring system, системы мониторинга давления в шинах) активно изучались множество лет назад. Они периодически передают давление в шинах, температуру и уникальный ID, которым можно злоупотреблять для слежения за транспортным средством. Однако существует и ещё один аспект: современные датчики TMPS также имеют приёмник, который обычно используется для включения передачи данных, когда в автомобиле появляется новый датчик TPMS («процедура обучения»).

У нас в Европе датчики TPMS обычно передают сигналы в диапазоне 433 МГц (предназначенном для ISM — промышленности, науки и медицины). Приёмник работает на частоте 125 кГц, очень близкой к LF RFID. Проще всего использовать приёмник, поискав наличие несущей частоты 125 кГц, а затем включив передачу данных. Современные датчики обычно более совершенны и используют модулированную несущую, содержащую пакеты команд; передача данных включается, только если получена правильная команда.

Если у вас есть приёмник, то, разумеется, вы можете не только включать передачу данных: например, в нём может быть поддержка различных команд, а некоторые датчики даже позволяют выполнять таким образом обновление прошивки.

Одной из таких поддерживаемых команд является переключение датчика в режим транспортировки («Shipping»). Зачем он нужен? Когда датчик работает обычным образом, он ожидает движения (внутри него находится датчик ускорения/ударов) и начинает периодически передавать данные только при вращении колеса. Это нужно для экономии энергии аккумулятора. Если датчик TPMS ещё не установлен в шину, он не должен реагировать на движения, поэтому и используется режим «Shipping». В этом режиме датчик просыпается только каждые несколько секунд и проверяет наличие сигнала 125 кГц; если он есть, датчик проверяет наличие правильных команд, например, команды на включение передачи данных, которая обычно также приводит к выходу из режима «Shipping» и переключает датчик в обычный режим работы.

Этим режимом «Shipping» можно злоупотреблять: если мы сможем переключить датчик TPMS колеса автомобиля в режим «Shipping», то датчик больше не сможет передавать данные, и спустя какое-то время загорится индикатор контроля давления в шинах. Здесь надо уточнить: этот предупреждающий индикатор просто раздражает водителя, но не влияет на безопасность автомобиля, потому что отключенный датчик TMPS не влияет на само давление в шине.

Я решил изучить несколько датчиков TPMS разных автомобилей на предмет возможности такого отключения. Я выбрал датчики автомобилей BMW и Ford. Стоит обратить внимание, что с большой вероятностью это касается и других производителей автомобилей, поскольку существует ограниченное количество производителей датчиков TPMS, снабжающих датчиками различных автомобилестроителей. Выбор BMW и Ford был обусловлен тем, что мне удалось найти кучу дешёвых бывших в употреблении датчиков для этих легковых автомобилей.

Кроме того, я искал только «OEM»-датчики для BMW и Ford; это значит, что такие датчики были установлены самим производителем автомобилей. Существуют также «универсальные» датчики, обычно устанавливаемые продавцами шин; в конце поста есть примечания о них.

Инструмент для передачи данных на 125 кГц создать довольно просто: существует дешёвый инструмент активации датчиков TMPS EL-50448, передающий только несущую частоту без модуляции. Однако «железо» можно легко модифицировать, обеспечив модуляцию несущей: бОльшую часть времени для передачи данных используется OOK (On-Off Keying); это означает, что несущая частота просто включается и отключается. В EL-50448 для генерации несущей частоты задействуется усилитель мощности с неиспользуемым контактом «enable» (включения), поэтому можно использовать этот контакт для модуляции несущей. Скорость передачи данных низка, часто используется скорость 3900 бод. Чаще всего применяется манчестерское кодирование битов данных, то есть несущая частота меняется в два раза чаще (7800 изменений в секунду). В этом нет ничего особого, и реализовать это можно, вероятно, при помощи любого предпочитаемого вами микроконтроллера. Затраты на такую систему составят меньше 20 евро, а радиус передачи будет примерно 20 см.

Как найти команду для включения режима «Shipping»? Брутфорс с проверкой всех возможных команд применим, только если команда короткая. Причина этого заключается в том, что датчик ищет низкочастотный сигнал 125 кГц раз в несколько секунд. Если команда не длиннее двух байт, то брутфорс возможен (он займёт несколько дней), но для более длинных команд он неприменим. Стоит также заметить, что нужно найти способ распознавания наличия реакции датчика TPMS на отправляемые команды, например, мониторинг энергопотребления датчика или получение сигнала данных 433 МГц (разумеется, это сработает, если переданная вами команда вызвала передачу данных).

Ещё один вариант — поискать те инструменты TPMS, которые используют продавцы шин и ремонтные мастерские для проверки датчиков TPMS. Некоторые из этих инструментов, возможно, поддерживают переключение датчика TPMS в режим «Shipping».

Вот какие результаты обнаружил я (чтобы данные нельзя было использовать при злоумышленных действиях, я не буду вдаваться в подробности):

  • BMW:

    Один датчик, используемый во многих моделях легковых автомобилей и изготовленный производителем датчиков TPMS «A», можно переключить в режим «Shipping». Деактивированный датчик TPMS можно активировать другой командой. Кроме того, если датчик обнаружит быстрое изменение давления (например, при накачивании шины), то датчик выходит из режима «Shipping». Команда имеет длину четыре байта, поэтому брутфорс неприменим.
  • Ford:

    Один датчик, используемый во многих моделях легковых автомобилей и изготовленный производителем датчиков TPMS «A» (тот же производитель, что и выше), можно переключить в режим «Shipping». Это та же команда, что и у описанного выше датчика BMW. Деактивированный датчик TPMS можно активировать другой командой.

    Другой датчик, используемый во многих моделях легковых автомобилей и изготовленный производителем датчиков TPMS «B», можно переключить в режим «Shipping». Деактивированный датчик TPMS можно активировать другой командой. В данном случае команда имеет длину всего два байта, поэтому я проверил все комбинации, что привело к обнаружению множества других «интересных» команд. Вот некоторые из примеров:

    • Можно полностью отключить датчик TPMS. В таком случае он больше ни на что не будет реагировать, вам придётся вскрыть корпус датчика и выполнить аппаратный сброс или отключить аккумулятор, чтобы снова его активировать.
    • Можно переключить датчик в непрерывный режим «передачи несущей частоты» на 433 МГц. В этом режиме датчик будет непрерывно передавать несущую частоту 433 МГц. Пока не разрядится аккумулятор или не будет выполнен аппаратный сброс (см. выше), он не будет больше ни на что реагировать. Существует ещё две подобных команды, передающих сдвинутую вверх или вниз частоту (при передаче данных в датчике используется FSK-модуляция, Frequency Shift Keying).

    Эти примеры показывают, что можно, по сути, уничтожить этот конкретный датчик, передав соответствующую команду. Кроме того, если датчик находится в режиме «передачи несущей частоты», то он, вероятно, мешает работе брелока-контроллера автомобиля, в котором используется та же частота, что и у датчика TPMS.

Чтобы передать эти низкочастотные сигналы 125 кГц, нужно находиться рядом с машиной, но для обнаружения сигнала требуется всего несколько секунд. Если использовать для передатчика антенну побольше (которая, по сути, является катушкой), например, помещающуюся в портфель, то можно увеличить радиус передачи до метра с лишним.

Как избежать таких проблем? На самом деле довольно просто — команда для переключения в режим «Shipping» не должна разрешаться, если измеряемое давление в шине больше определённого предела, ведь это означает, что датчик установлен в шину транспортного средства. То же самое относится и к другим командам датчика производителя «B», которые, скорее всего, являются каким-то производственным тестом или командами разработчика. Обратите также внимание, что во время моих тестов описанные команды можно было выполнять даже тогда, когда измеряемое давление в шине находилось в диапазоне стандартного колеса автомобиля.

Перед публикацией этой статьи я связался с производителями автомобилей (BMW и Ford). Вот что из этого вышло:

  • BMW:

    Контактную информацию для сообщений о проблемах с безопасностью можно найти на веб-сайте BMW. Спустя несколько дней после сообщения о проблеме мне позвонил по телефону официальный представитель. Оказалось, что BMW уже известна эта проблема, она была выявлена на этапе внутреннего контроля. В новых датчиках TPMS эта проблема решена блокировкой некоторых команд, когда давление в шине выше определённого предела.
  • Ford:

    Мне не удалось найти никакой контактной информации службы безопасности на веб-сайте Ford Germany, поэтому я связался с лицом, отвечающим за «связи с общественностью». Он пообещал найти кого-нибудь, чтобы заняться проблемой. Спустя несколько дней я получил ответ, что это может мешать работе системы TPMS из-за природы передачи радиосигналов, и что эта проблема им известна. Мне не удалось напрямую связаться с соответствующим специалистом, и я ответил, что обнаруженная проблема связана не с помехами, а с «отказом в обслуживании» и что существует возможность уничтожения определённого типа датчиков TPMS, используемых в легковых автомобилях Ford. Больше я не получил никакой информации о проблеме безопасности. Спустя несколько недель я снова уведомил компанию, что собираюсь рассказать о проблеме, и получил разрешение.

Примечания об «универсальных» датчиках, обычно используемых продавцами шин: эти датчики «универсальны», потому что могут программироваться для различных моделей легковых автомобилей. Для продавца шин основная выгода таких датчиков в том, что достаточно иметь в наличии небольшой ассортимент «универсальных» датчиков и не требуется приобретать множество различных OEM-датчиков для каждой модели автомобилей. Для программирования этих «универсальных» датчиков чаще всего используется низкочастотный сигнал 125 кГц, передающий данные программирования в датчик. Многие такие «универсальные» датчики можно перепрограммировать вне зависимости от замеряемого давления в шинах, поэтому проще всего провести атаку «отказ в обслуживании», всего лишь перепрограммировав датчики под другую модель автомобиля.



На правах рекламы


Серверы с бесплатной защитой от DDoS — это про нас! Все серверы «из коробки» защищены от DDoS-атак, создайте собственную конфигурацию виртуального сервера в пару кликов.

Источник: https://habr.com/ru/company/vdsina/blog/531760/


Интересные статьи

Интересные статьи

Есть несколько способов добавить водяной знак в Битрикс. Рассмотрим два способа.
VUE.JS - это javascript фрэймворк, с версии 18.5 его добавили в ядро битрикса, поэтому можно его использовать из коробки.
Не за горами новая, 14-я версия Java, а значит самое время посмотреть, какие новые синтаксические возможности будет содержать эта версия Java. Одной из таких синтаксических возможностей является ...
Компании растут и меняются. Если для небольшого бизнеса легко прогнозировать последствия любых изменений, то у крупного для такого предвидения — необходимо изучение деталей.
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...