Если вы можете управлять своим автомобилем через интернет, то есть вероятность, что это сможет сделать и кто-то другой. По крайней мере, если фирмы вроде Nissan допускают такие грубые просчёты в системах безопасности.
VIN (Vehicle identification number, идентификационный номер транспортного средств) и веб-адрес для доступа к серверу Nissan — это всё, что нужно было знать об автомобиле Nissan Leaf для получения удалённого доступа к системе климат-контроля в салоне, а также к информации о состоянии автомобиля и к статистике. Хорошо, что не к рулевому управлению.
Так было до вечера среды, когда Nissan наконец-то отключила API для мобильного приложения-компаньона. Это произошло через месяц после того, как известный специалист по безопасности Трой Хант отправил отчёт о баге в Nissan. Он честно ждал столько времени, прежде чем огласить информацию для широкой публики.
Трой пишет, что уязвимость к тому времени уже начали эксплуатировать посторонние лица, судя по сообщениям на форумах.
Приложение для запроса информации с сервера использует метод GET, что позволяет отправлять запросы прямо через браузер.
GET https://[redacted].com/orchestration_1111/gdc/BatteryStatusRecordsRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX&tz=Europe/Paris&TimeFrom=2014-09-27T09:15:21
С сервера приходит такой JSON-ответ с данными о системах автомобиля и статистикой.
Другой запрос.
GET https://[redacted].com/orchestration_1111/gdc/RemoteACRecordsRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX
Возвращает ответ с информацией о статусе климат-контроля.
На экране мобильного приложения при этом возникает такая картинка с кнопкой включить/выключить климат-контроль.
Ещё одним GET-запросом можно «нажать» кнопку ВКЛ/ВЫКЛ.
GET https://[redacted].com/orchestration_1111/gdc/ACRemoteRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX&tz=Europe/Paris
Дополнительно присылается некоторая персональная информация о владельце.
Трой Хант подчёркивает, что это даже не просчёт в системе безопасности, а вообще полное её отсутствие. Между мобильным приложением для управления автомобилем и сервером вообще не было никакой авторизации: фирменные API работают полностью анонимно, без токенов авторизации.
Ситуация усугубляется тем, что VIN-коды во всех автомобилях Nissan Leaf отличаются только пятью последними символами, так что GET-запросы можно отправлять перебором кодов, например, из программы Burp.
Трой Хант и сам является владельцем Nissan Leaf, так что он выразил надежду, что компания всё-таки исправит этот баг и возобновит работу сервиса удалённого мониторинга автомобиля с мобильного приложения.
Автор: alizar