Хакер #305. Многошаговые SQL-инъекции
Осенью прошлого года в Калифорнии разрешили использовать цифровые автомобильные номера, работающие на электронных чернилах (e-ink). Не прошло и полугода, а исследователи уже обнаружили уязвимости в этой системе, позволяющие отслеживать каждый номерной знак, перепрограммировать его или стереть.
О проблемах цифровых номерных знаков рассказал известный ИБ-эксперт Сэм Карри (Sam Curry), давно изучающий уязвимости современных автомобилей. В начале января 2023 года эксперт опубликовал в своем блоге большую статью, посвященную множеству проблем, которые он и его друзья обнаружили в системах Ferrari, BMW, Rolls Royce, Porsche и других производителей. О части этих исследований Карри уже рассказывал в прошлом году, а часть оказалась новой.
Одно из исследований Карри и его друзей было посвящено современным цифровым номерам, единственным крупным производителем которых пока выступает компания Reviver. Номера этого производителя, известные как Rplate, выпускаются в аккумуляторной и проводной версиях, причем последняя предназначена только для коммерческих автопарков. Reviver утверждает, что срок службы батареи составляет пять лет, так как e-ink потребляет энергию только при смене изображения.
Номера Rplate привлекли внимание экспертов, так как они комплектуются SIM-картой для удаленного отслеживания и обновления. К примеру, одной из особенностей номеров на электронных чернилах является уведомление о том, что транспортное средство находит в угоне и перемещается без ведома его владельца. В таком случае номер может измениться на надпись «Украдено» («STOLEN»).
Стоит отметить, что цифровые номера Reviver начали появляться на дорогах Калифорнии еще в 2017 году в рамках пилотной программы. В компании говорят, что с момента старта программы и до момента официальной легализации Rplate в использование было введено около 10 000 номеров.
«Поскольку номерной знак можно использовать для отслеживания транспортных средств, мы очень заинтересовались Reviver и начали проверку их мобильного приложения», — пишет Карри.
Создав новую учетную запись Reviver, исследователи обнаружили, что этой учетной записи был присвоен уникальный JSON-объект «company», который позволял им добавлять субпользователей. Несколько других полей JSON также можно было редактировать, в том числе одно, которое определяло тип учетной записи как CONSUMER («Потребитель»).
Однако изменить значение на какое-либо другое сходу не удалось, так как другие типы учетных записей не удалось отыскать в коде мобильного приложения. Тогда Карри и его коллеги решили зайти с другой стороны и обратились к URL-адресу для сброса пароля, используемого Reviver.
«Мы заметили, что сайт [для сброса пароля] имеет множество функций, включая администрирование транспортных средств, автопарков и учетных записей пользователей», — пишет эксперт.
Как оказалось, JavaScript на сайте содержал полный список ролей, и это позволяло исследователям менять тип своей учетной записи на любой другой. В итоге они получили доступ к роли под названием REVIVER, с которой пользовательский интерфейс сайта не работал нормально. Исследователи быстро догадались, что это учетная запись администратора, вообще непредназначенная для взаимодействия с пользовательским интерфейсом.
«Используя нашу учетную запись суперадминистратора с полной авторизацией, мы получили возможность выполнить любой из обычных вызовов API (просмотр местоположения автомобиля, обновление номерных знаков, добавление новых пользователей в учетные записи) и любые действия», — пишет Карри.
Хуже того, помимо повышения привилегий роль REVIVER предоставляла доступ к любому дилерскому центру, работающему с цифровыми номерами, что позволяло Карри удаленно изменить изображения по умолчанию с надписи «DEALER» на любую другую.
«Настоящий злоумышленник мог удаленно обновить, отследить или вообще удалить чьи-либо номера Reviver», — заключил специалист.
В настоящее время все обнаруженные исследователи проблему уже исправлены. В своем отчете Карри отмечает, что компания устранила уязвимости «менее чем за 24 часа».