Разбитое ветровое стекло Tesla Model 3 принесло хакеру $10 000 по программе Bug Bounty


    Идея в том, что название хакерского автомобиля с 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 поможет восстановить прошивку.
    • +52
    • 16.8k
    • 7
    Share post

    Comments 7

      0
      Я тут подумал, что постоянное онлайн-слежение за всеми параметрами автомобиля в будущем — это неизбежная необходимость (Почему в этой теме? Да потому что Тесла, походу, и есть первый автопроизводитель, который постоянно собирает максимум доступной информации об автопарке своих автомобилей). Имеется в виду — с появлением автопилотов. Почему? Дело даже не в том, что автопилот, подключенный к сети, будет намного более информирован и подготовлен, чем офлайн-автопилот, главная причина — нелегальные прошивки, которые будут менять поведение автопилота так, как захочется владельцу. При этом ответственность за инциденты с полностью автопилотными автомобилями будет возлагаться на производителя, поэтому в интересах производителя автомобиля с автопилотом будет постоянный контроль «правильности» ПО на автомобиле и контроль показателей работы автопилота. Ну и до кучи — огромнейшая постоянно пополняющаяся база обучения для ИИ-автопилотов.
      0
      На Хабре была похожая XSS год или два назад :-)
        0

        Баян-таки случился IRL!
        https://xkcd.com/327/

        Only users with full accounts can post comments. Log in, please.