Идея в том, что название хакерского автомобиля с XSS-пейлоадом всплывёт где-нибудь во внутренних системах Tesla Motors
Специалист по безопасности Сэм Карри рассказал, как ему удалось обнаружить критическую уязвимость в приложении удалённой диагностики Tesla Model 3. Этот автомобиль со встроенным веб-браузером, бесплатным LTE и беспроводным обновлением программного обеспечения — настоящий компьютер на колёсах.
Итак, все началось с того, что ему в ветровое стекло попал камень. Здесь-то и сработал установленный заранее XSS-хантер.
Автомобиль по имени %x.%x.%x.%x
Сразу после покупки автомобиль Сэм Карри выбрал установил для него имя %x.%x.%x.%x. Смысл в том, чтобы проверить наличие уязвимости форматирования строки, какая была у 2011 BMW 330i.
Хакер установил имя смартфона %x%x%x%x и подключался к разным устройствам, в том числе к автомобилю 2011 BMW 330i
К сожалению, в «Тесле» ничего не нашлось. Повозившись в разными форматами ввода, автовладелец убедился, что разрешённая длина ввода очень велика и тут вряд ли можно чего-нибудь добиться. Тогда он присвоил автомобилю имя своего XSS-хантера, как на фотографии с КДПВ, и продолжил играться с функциональностью Model 3.
Идея была в том, что название хакерского автомобиля всплывёт где-нибудь во внутренних компании системах Tesla, где отсутствует фильтрация ввода. На самом деле очень часто разработчики забывают поставить такую фильтрацию в системах, которые работают только во внутренней сети (интранете). Предполагается, что никакой посторонний человек не имеет к ним доступа. Поэтому якобы и санация ввода не нужна. Конечно, это большая ошибка, чем и пользуются злоумышленники.
В данном случае в роли «злоумышленника» выступил автовладелец Сэм Карри, который присвоил автомобилю имя с XSS-пейлоадом.
Blind XSS — простая, но зачастую очень эффективная атака на веб-приложения. В процессе атаки в веб-страницу внедряется вредоносный код. Он будет выполнен на компьютере жертвы при открытии им этой страницы, «выстрелит» во внутренней сети и принесёт зломышленнику улов в виде какой-то внутренней информации, которая доступна только из админки.
Хакер хорошо провёл время, пытаясь из имени «Теслы» загрузить разные файлы, но особо ничего не получилось. Тогда он оставил это имя — и забыл о нём.
Камень
Прошло несколько месяцев, а в июне 2019 года во время одной из поездок камень из-под колёс впереди идущего автомобиля влетел прямо в ветровое стекло «Теслы».
Сэм Карри отрепортил в техподдержку через встроенное приложение, назначил дату встречи и продолжил поездку.
На следующий день ему на телефон пришло текстовое сообщение об улове от XSS-хантера. Он проверил — и действительно, кто-то запустил пейлоад в корпоративной сети компании Tesla Motors, а именно в домене https://redacted.teslamotors.com
: здесь часть адреса скрыта (redacted). Это было просто замечательно.
Скриншот от хантера показывал, что сотрудник Tesla Motors просматривал показатели автомобиля, а доступ осуществлялся через URL с указанием ID автомобиля. Заголовок реферерра включал номер VIN в качестве аргумента: https://redacted.teslamotors.com/redacted/5YJ31337
.
XSS сработал на панели управления, через которую происходит просмотр статистики по всему парку автомобилей Tesla.
Среди прочего, на скриншоте были текущие показатели автомобиля: скорость, температура, номер версии прошивки, давление в шинах, активные информационные сообщения и много другой интересной информации:
VIN: 5YJ3E13374KF2313373 Car Type: 3 P74D Birthday: Mon Mar 11 16:31:37 2019 Car Version: develop-2019.20.1-203-991337d Car Computer: ice SOE / USOE: 48.9, 48.9 % SOC: 54.2 % Ideal energy remaining: 37.2 kWh Range: 151.7 mi Odometer: 4813.7 miles Gear: D Speed: 81 mph Local Time: Wed Jun 19 15:09:06 2019 UTC Offset: -21600 Timezone: Mountain Daylight Time BMS State: DRIVE 12V Battery Voltage: 13.881 V 12V Battery Current: 0.13 A Locked?: true UI Mode: comfort Language: English Service Alert: 0X0
Вдобавок, в программе были дополнительные вкладки для прошивки, просмотра шины CAN, географической информации и других разделов, названия которых звучат интересно. Некоторая функциональность внутреннего приложения Tesla, словленная хантером:
Сэм попробовал зайти на redacted.teslamotors.com, но неудачно. Очевидно, это было внутреннее приложение компании. Самое интересное, что это приложение позволяло сотрудникам Tesla вручную накатывать произвольные апдейты на конкретные автомобили, изменять их конфигурацию и так далее.
Хакер не проверял, но у него возникло сильное подозрение, что если подставить соответствующий ID в адресную строку, то он может вытянуть жизненно важные показатели работы и других автомобилей. Теоретически, всех автомобилей в парке Tesla. Потому что ID в URL идут по порядку.
Сразу после поездки Сэм Карри отправил в Tesla Motors краткое сообщение об уязвимости, хотя он и не мог её воспроизвести.
К чести автопроизводителя, отдел безопасности практически сразу присвоил уязвимости максимальный уровень P1, прокомментировал её — и выкатил апдейт в течение 12 часов.
А примерно через две недели автору выплатили вознаграждение $10 000 по программе Bug Bounty. Отдел безопасности подтвердил, что баг действительно серьёзный.
В принципе, уязвимость довольно простая, и вознаграждение стало приятным бонусом к бесплатной замене ветрового стекла. Сэм Карри не уверен, каким образом хакер может извлечь максимальную пользу из этой XSS во внутреннем домене, но? по крайней мере? он может просматривать текущую статистику любого автомобиля, зная его ID.
Исправление вышло 20 июня, вознаграждение выплачено 11 июля 2019 года.
Сэм Карри говорит, что у Tesla просто фантастическая программа выплаты вознаграждений за найденные уязвимости. Они действительно помогают хакерам: если в попытках взлома вы случайно сломаете автомобиль и он превратится в кирпич, то техподдержка Tesla поможет восстановить прошивку.
Автор: alizar