08.06.2019

Угнать за 6 секунд. Критические уязвимости в автосигнализациях

image

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

Автор: Ken Munro


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

Мы же убедились, что установка подобных сигнализаций сделает ваш автомобиль ЕЩЕ БОЛЕЕ УЯЗВИМЫМ. Эти устройства, как бы улучшающие безопасность, могут иметь бреши и стать причиной разного рода неприятностей, как, например, утечки персональных данных, остановки двигателя во время движения или даже кражи транспортного средства.

После покупки и проверки нескольких высокотехнологичных «умных» сигнализаций на общую стоимость примерно в 5 тысяч долларов мы выяснили, что две наиболее популярные системы имеют критические уязвимости, позволяющие:

  • Отслеживать местонахождение автомобиля в режиме реального времени.

  • Узнать марку автомобиля и информацию о владельце.

  • Отключить сигнализацию.

  • Разблокировать автомобиль.

  • Включить/отключить иммобилайзер

  • «Убить» двигатель во время вождения.

  • Подслушивать водителя через микрофон.

  • Угнать транспортное средство.

Угрозам, описанным выше, подвержены более 3 миллионов транспортных средств.

Если вам лень читать статью, на видео ниже описываются ключевые аспекты:

https://www.youtube.com/watch?v=aZUQmJMuf8c

Что привлекло наш интерес?

В рекламе сигнализаций Pandora утверждается о неуязвимости производимой продукции. Заявление не очень разумное, что могут подтвердить Джон Макафи и Битфи. Подобные утверждения сродни красной тряпке для специалистов по безопасности.

Рисунок 1: Комментарии Битфи насчет неуязвимости сигнализации

По поводу неуязвимости Битфи сказал следующее: «Честно говоря, нам кажется, что приятнее оказаться под колесами автомобиля, чем утверждать о неуязвимости чего-либо».

С тех пор с сайта производителя Pandora громкое заявление было убрано, хотя мы успели сделать скриншот:

Рисунок 2: Заявление о неуязвимости сигнализаций Pandora

Мы исследовали продукцию двух брендов: Viper (в Великобритании продается под брендом Clifford) и Pandora, являющиеся наиболее крупными производителями сигнализаций.

Удивителен тот факт, что обе уязвимости являются относительно простыми и связаны с небезопасными прямыми ссылками на объект (IDOR) внутри API.

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

Можно отследить координаты конкретного транспортного средства и далее спровоцировать остановку и разблокировку дверей. Обмануть систему защиты и водителя не составляет особого труда.

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

Сигнализация Viper Smart Start

Рисунок 3: Мобильное приложения для сигнализации Viper Smart Start

Инфраструктура бэкэнда для Viper Smart Start предоставляется компанией CalAmp.

Уязвимость в виде IDOR находится в запросе «modify user» (изменение информации о пользователе). За исключением запроса /users/Update/xxxxx во всех остальных местах API проверка на предмет авторизации происходит корректно.

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

Пример запроса:

	
POST /users/Update/861772 HTTP/1.1

Host: colt.calamp-ts.com

Connection: close

Content-Length: 342

Accept: application/json, text/javascript, */*; q=0.01

Origin: https://colt.calamp-ts.com

X-Requested-With: XMLHttpRequest

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Content-Type: application/x-www-form-urlencoded

Referer: https://colt.calamp-ts.com/dashboard/home

Accept-Encoding: gzip, deflate

Accept-Language: en-US,en;q=0.9
 Cookie: __utma=36020146.382676338.1549803856.1549803856.1549803856.1; __utmc=36020146; __utmz=36020146.1549803856.1.1.utmcsr=medium.com|utmccn=(referral)|utmcmd=referral|utmcct=/@evstykas/remote-smart-car-hacking-with-just-a-phone-2fe7ca682162; kohanasession=flrd2pb6lcqohnu3ld79p9oif7; __utmt=1; __utmb=36020146.8.10.1549803856

	 FirstName=f&LastName=l&Email=egw2%40mailinator.com&Phone=123+132-1321&UserName=egw2%40mailinator.com&Password=!Password1&Language=English&Measurement=Imperial&Timezone=Etc%2FGMT%2B8&Pincode=0&Question=What%2Btown%2Bwere%2Byou%2Bborn%2Bin%253F&Answer=no&MsgFlag=0&DaylightSavings=0&CustomAttributes=%5B%5D&SessionId=flrd2pb6lcqohnu3ld79p9oif7

Пример работы скрипта для изменения пароля:

Рисунок 4: Пример изменения пароля в сигнализации Viper Smart Start

Сигнализация Pandora

Брешь также представляет собой небезопасную прямую ссылку на объект POST-запроса https://pro.p-on.ru/api/sputnik/workers?id=xxxx в параметре JSON с именем «email».

Пример запроса:

POST /api/sputnik/workers?id=xxxxx HTTP/1.1

Host: pro.p-on.ru

Connection: close

Content-Length: 167

Accept: application/json, text/javascript, */*; q=0.01

Origin: https://pro.p-on.ru

X-Requested-With: XMLHttpRequest

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Content-Type: application/json

Referer: https://pro.p-on.ru/workers/185000

Accept-Encoding: gzip, deflate

Accept-Language: en-US,en;q=0.9

Cookie: lang=en; sid=4020f4ba21edb3082902e227937995d6

{"id":xxxxx,"name_f":"name","name_i":"name_i","name_o":"name_o","groups":[],"email":"newemail","type":"user","company_perms":0}

Таким образом, можно изменить существующую электронную почту, инициировать сброс пароля, а затем пройти авторизацию и получить полный контроль над приложением. Тот же самый сценарий можно реализовать против административных учетных записей, имеющих доступ к нескольким транспортным средствам. Также возможна серьезная утечка информации. Просто подставьте свой идентификатор пользователя в адресе https://pro.p-on.ru/workers/xxxxx вместо «xxxxx».

Рисунок 5: Замена электронной почты и пароля учетной записи, привязанной к сигнализации Pandora

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

Каковы последствия взлома?

В обоих случаях можно выбрать интересующий автомобиль. Как насчет элегантного и дорогого Range Rover:

Рисунок 6: Выбор автомобиля

Затем начать отслеживать местонахождение выбранного транспортного средства в режиме реального времени:

Рисунок 7: Местонахождение и параметры автомобиля

И, при необходимости, начать преследование.

Рисунок 8: Преследование обнаруженного ранее автомобиля

… и отключить сирену и мигалки.

Теперь водитель останавливается для проведения расследования. Мы настроили иммобилайзер таким образом, чтобы дальнейшее движение оказалось невозможным. А поскольку доступ к аккаунту учетной записи также заблокирован, сбросить иммобилайзер не удастся.

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

Рисунок 9: Разблокировка автомобиля

А дальше злоумышленник уезжает на автомобиле.

Убийство двигателя на заказ (раздел не для слабонервных)

Было обнаружено, что есть возможность «убить» двигатель в транспортном средстве, оснащенным сигнализацией Viper, во время движения. Рекламные ролики для устройств Pandora также свидетельствуют о такой возможности, но у нас не получилось.

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

Функционал не доступен в интерфейсе мобильного приложения сигнализации Viper, но присутствует в API.

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

Подслушивание водителей

В сигнализации Pandora предусмотрен микрофон для отсылки сигналов SOS.

Используя вышеупомянутую брешь, можно активировать микрофон удаленно.

Таким образом, миллионы водителей находятся под угрозой прослушки.

Управление CAN

В обеих сигнализациях есть возможность отсылки любых CAN-сообщений. И здесь становится совсем грустно.

В последние годы у автомобильных сигнализаций появилась возможность работать с CAN (Controller Area Network; Сеть контроллеров) напрямую. Этот функционал добавлен вследствие сложности современных транспортных средств. Кроме того, упрощается подключения и установка сигнализации.

Современные высокотехнологичные сигнализации могут автоматически определять марку транспортного средства и настраивать набор команд в соответствии с форматом используемых CAN-сообщений. Таким образом, время установки сигнализации значительно сокращается.

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

Насколько нам известно, программирование сигнализации выполняется локально при помощи приложения, установленного на ноутбуке, или (что более интересно) при помощи телефона и Bluetooth. Кроме того, похоже существуют методы программирования «в эфире» при помощи API, однако этот функционал задокументирован не полностью, и мы пока не смогли изучить эту возможность.

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

Однако…

Функции запуска/остановки уже доступны.

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

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

В автомобилях Mazda 6, Range Rover Sport, Kia Quoris, Toyota Fortuner, Mitsubishi Pajero, Toyota Prius 50 и RAV4, похоже, есть скрытая функциональность, присутствующая в API, для удаленного управления скоростью круиз-контроля.

Некоторые обходные пути для запуска/остановки также требуют отправки ложного сообщения педали тормоза для имитации водителя, заводящего автомобиль и нажимающего педаль.

Раскрытие уязвимости

Мы связывались с поставщиками тестируемых сигнализаций и дали срок 7 дней на отключение или исправление уязвимого API, что намного меньше стандартных 90 дней. Почему?

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

Помимо нас другие деятели также изучали умные сигнализации, и есть высокая вероятность, что профессиональные злоумышленники тоже обнаружили эти проблемы.

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

Представители Pandora отреагировали в течение 48 часов, и уязвимость была исправлена быстро. На следующее утро мы удостоверились, что проблема решена.

Представители Viper ответили быстрее, однако потратили чуть больше времени на исправление бреши. Также подтверждаем, что вопрос решен.

Мы не проводили всестороннее тестирование API, поскольку потребовалось бы дополнительное разрешение, которого у нас не было. Нам не известно, есть ли еще уязвимости в API.

Однако оба производителя отреагировали оперативно. Специалисты оказались компетентными, отзывчивыми, и все вопросы решили оперативно. Урок всем разработчикам IoT-устройств.

Заключение

Мы многократно убедились в легкости эксплуатации уязвимостей на базе IDOR в IoT-устройствах. Однако этот случай - первый, когда подобные проблемы могли привести к катастрофе такого масштаба.

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

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

Протестированные сигнализации не защищают от атак с использованием ретрансляции и до исправления упомянутых проблем даже позволяют реализовать дополнительные сценарии.

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