Эксперт проэксплуатировал уязвимость в браузере электрокара Tesla Model 3
Исследователь безопасности Крис Уильямс (Chris Williams) рассказал о том, как ему далось успешно проэксплуатировать известную уязвимость ( CVE-2020-6418 ) в браузере на базе Chromium в автомобиле Tesla Model 3.
Идея проэксплуатировать уязвимости в браузере пришла в голову исследователю сразу же после того, как он приобрел себе новенький электрокар Tesla Model 3 в конце 2019 года. Уильямс начал следить за обновлениями и патчами для движка V8, которые можно было бы использовать для создания эксплоита, но проект "завис" до тех пор, пока в феврале 2020 года ему не попалась на глаза публикация в блоге организации Exodus Intelligence, занимающейся предоставлением информации об уязвимостях. Публикация была посвящена проблеме с Chrome, известной как Patch-gapping, когда промежутком между разработкой патча и его доставкой конечным пользователям могут воспользоваться киберпреступники для осуществления атак.
В то время Tesla выпустила несколько обновлений для своего ПО, и в релизе 2020.4.1 использовалась версия Chromium 79.0.3945.88. Поскольку программное обеспечение Tesla опередило патч от Google на несколько недель, казалось весьма вероятным, что браузер в автомобиле окажется уязвимым, предположил исследователь и оказался прав.
Для изучения уязвимости Уильямс использовал версию JavaScript-движка с возможностью отладки (в проекте Chromium она называется d8). Сначала он идентифицировал коммиты в проект V8, соответствующие интересующей его версии Chromium, введя номер версии в нужное окно консоли OmahaProxy.
"Сначала нам нужно настроить среду разработки и собрать V8 в этом коммите. В репозитории The depot_tools содержится все необходимое для сборки Chromium и всех его компонентов в стандартной виртуальной машине на amd64 Ubuntu 18.04", - сообщил Уильямс.
Сборка d8 в режиме отладки на MacBook Pro заняла у исследователя 25 минут. Затем он запустил "голую" версию разработанного Exodus Intelligence эксплоита, модифицированную таким образом, чтобы она запускалась не в браузере, а в d8. Однако здесь Уильямс потерпел неудачу.
Исследователь начал экспериментировать с эксплоитом от Exodus Intelligence 1 марта 2020 года и быстро понял, что он не работает на используемой им версии Chromium. С помощью процедуры git bisect Уильямс выяснил причину своей неудачи и 6 марта реализовал addrof. Весь следующий день у него ушел на реализацию fakeobj и получение привилегий для чтения/записи данных, а еще через день исследователю удалось выполнить shell-код и понять, что в дело вступает песочница. 11 марта 2020 года он завершил сборку доступных системных вызовов.
В начале апреля 2021 года компания Tesla исправила уязвимость.