
У компании Tesla есть программа баг-баунти, приглашающая исследователей находить уязвимости безопасности в её автомобилях. Для участия мне нужно было настоящее «железо», поэтому я начал искать на eBay детали Tesla Model 3. Моя цель заключалась в том, чтобы компьютер и сенсорный экран Tesla заработали на моём столе, после чего я мог бы запустить операционную систему машины.
Компьютер машины состоит из двух частей: MCU (Media Control Unit, блока управления медиа) и autopilot computer (AP, компьютера автопилота), расположенных один поверх другого. В машине компьютер размещён перед пассажирским сиденьем, примерно за бардачком. Сама эта деталь размером с iPad и толщиной с 500-страничную книгу. Она заключена в металлический корпус с водяным охлаждением:

Поискав на Ebay «Tesla Model 3 MCU», я нашёл довольно много результатов в ценовом диапазоне $200 - $300. Изучая страницы товаров, я заметил, что многие из продавцов — компании-«утилизаторы», которые скупают разбитые машины, разбирают их и по отдельности продают детали. Иногда они даже выкладывают фотографии самих разбитых машин и позволяют фильтровать страницы товаров по деталям, извлечённым из одного автомобиля.
Чтобы запустить автомобиль и взаимодействовать с ним, мне нужно было ещё кое-что:
Источник постоянного тока, способный выдавать 12 В
Модуль сенсорного экрана из утилизированной Model 3
Дисплейный кабель, чтобы соединить их
В качестве источника питания я выбрал модель с настраиваемыми 0-30 В с Amazon. У неё были версии на 5 А и на 10 А; на тот момент я решил, что надёжнее будет взять с запасом, и заказал версию на 10 А. Как оказалось позже, это было очень верное решение, потому что на пике система потребляла до 8 А. Экраны Model 3 на Ebay имели на удивление высокую цену; предполагаю, что это популярная запчасть. Мне удалось сделать довольно выгодное приобретение за $175.
Сложнее всего было заказать кабель, соединяющий MCU с экраном. Он нужен был мне, потому что и компьютер, и экран продавались с кабелями, обрезанными в нескольких сантиметрах от разъёма (любопытно, что так поступало большинство продавцов вместо того, чтобы просто отсоединить кабеля).
Именно тогда я обнаружил, что Tesla публикует справочник «Electrical Reference» для всех своих автомобилей. На сервисном веб-сайте можно найти конкретную модель, поискать компонент (например, дисплей), и посмотреть, как конкретно должна подключаться деталь, какие кабели/разъёмы для этого используются и даже за что отвечают различные контакты внутри разъёма:

Выяснилось, что для дисплея нужен 6-контактный кабель (2 контакта — 12 В и заземление, 4 контакта — данные) со специальным разъёмом Rosenberger 99K10D-1D5A5-D. Вскоре обнаружилось, что если вы не автомобилестроительная компания, делающая крупные заказы, то отдельный кабель Rosenberger вы приобрести никак не сможете. Этого товара нет на Ebay, на Aliexpress, да и вообще практически никаких поисковых результатов не находится.
Немного покопавшись, я выяснил, что этот кабель очень похож на более распространённый автомобильный кабель LVDS, используемый в машинах BMW для передачи видео. Поначалу мне показалось, что разъёмы выглядят абсолютно так же, как у Rosenberger, поэтому я заказал этот кабель:

Компьютер доставили первым. Попытавшись включить его, я поискал в схемах Tesla и на фотографиях людей, создававших похожие системы настольного MCU, какой контакт какого разъёма мне нужен для подключения 12 В и заземления. Так как вместе с компьютером поставлялись обрезанные кабели, мне удалось зачистить соответствующие провода и присоединить к нужным зажимы блока питания:

Замигала пара красных светодиодов, и компьютер запустился! Так как экрана ещё не было, я пока практически никак не мог взаимодействовать с автомобилем. Прочитав исследование @lewurm на GitHub, я уже знал, что по крайней мере в старых версиях автомобилей внутри машины была сеть, а у некоторых компонентов имелся собственный веб-сервер. Я подключил один конец Ethernet-кабеля к порту рядом с разъёмом питания, а другой — к ноутбуку.
У этой сети нет DHCP, поэтому IP-адрес нужно задавать вручную. Выбираемый IP должен иметь вид 192.168.90.X/24 и быть больше 192.168.90.105, чтобы не конфликтовать с другими хостами в сети. На Reddit я обнаружил содержимое старого файла /etc/hosts, из которого ясно, что хосты обычно привязаны к конкретным IP:
192.168.90.100 cid ice # mcu 192.168.90.100 ic # только в модели Model X/S | IC = instrument cluster 192.168.90.102 gw # шлюз 192.168.90.103 ap ape # ap = автопилот 192.168.90.104 lb # непонятно 192.168.90.105 ap-b ape-b # тоже автопилот 192.168.90.30 tuner # тоже непонятно 192.168.90.60 modem # у него есть ftp-сервер
В посте @lewurm написано, что SSH на порте :22 и веб-сервер на :8080 открыт на 192.168.90.100, то есть на MCU. Осталось ли в новых моделях всё по-прежнему? Да!



Я обнаружил в MCU два сервиса, которые можно исследовать:
-
SSH-сервер, сообщающий «SSH allowed: vehicle parked» («SSH разрешён: машина припаркована»), что довольно забавно, учитывая обстоятельства
Этот SSH-сервер требует особым образом подписанных SSH-ключей, которые предположительно может генерировать только Tesla.
Любопытно, что в программе баг-баунти Tesla предлагает «программу доступа к руту». Исследователи, которые найдут хотя бы одну реальную уязвимость получения рута, получат постоянный SSH-сертификат для своей машины, позволяющий им выполнять вход под рутом и продолжить исследования. Удобная возможность, ведь забравшись внутрь, будет гораздо проще найти дополнительные уязвимости.
-
REST-подобный API на
:8080, возвращавший историю «задач»Этот сервис называется «ODIN» (On-Board Diagnostic Interface Network); он намеренно оставлен открытым для использования с диагностическим инструментом Tesla под названием Toolbox.
Примерно в то же время я снял металлические пластины, чтобы посмотреть, как же выглядят платы изнутри. Здесь мы видим две платы, которые устанавливаются одна поверх другой:

После доставки экрана и кабеля BMW LVDS стало очевидно, что разъём, к сожалению, не подойдёт. Разъём BMW был гораздо толще по краям и его невозможно было подсоединить к экрану. Это вынудило меня импровизировать: я зачистил два обрезанных «хвоста» кабелей MCU и экрана и попытался соединить провода по отдельности. Провода были очень тонкими и нежными. Система проработала пару секунд, а потом обломки проводов упали на плату и закоротили её, из-за чего сгорел один из чипов управления питанием:






Было крайне трудно найти название/модель сгоревшего чипа, особенно из-за того, что часть напечатанного на нём текста была повреждена. Я не мог продолжать проект дальше, поэтому пришлось заказывать новый компьютер.
Тем временем моему другу Яссеру (@n3r0li) удалось совершить невозможное: он каким-то образом идентифицировал чип, как понижающий регулятор MAX16932CATIS/V+T, отвечающий за понижение уровня напряжения питания. Мы заказали чип и отнесли плату в местную мастерскую ремонта плат, где удалось успешно заменить его и починить MCU. Теперь у меня было два компьютера.
Итак, мне очень нужен был кабель Rosenberger, который никак не удавалось достать.
Потерпев неудачу в онлайн-поисках и даже посетив сервисный центр Tesla в Лондоне (беседа, мягко говоря, оказалась странной), мне пришлось смириться с тем, чего я пытался избежать: с покупкой всей системы проводов приборной панели.
В Tesla Electrical Reference наряду с разъёмами можно найти номера всех деталей. Поискав кабель, соединяющий MCU с экраном, я нашёл номер 1067960-XX-E. Введя его на Ebay, я обнаружил этого монстра:

Оказалось, что у машин нет отдельных кабелей; они монтируются в эти большие «пучки», связывающие множество соседних кабелей в одну систему. Именно поэтому я не смог найти отдельный кабель — их попросту не производят. К сожалению, у меня не было никаких других вариантов, кроме как купить весь пучок за $80.
Несмотря на свои размеры, он заработал идеально. Автомобиль запустился, включился сенсорный экран. На моём столе лежал автомобильный компьютер с запущенной операционной системой!


Запустив систему, можно было приступать к экспериментам с пользовательским интерфейсом, взаимодействиям с открытыми сетевыми интерфейсами, исследованию шин CAN и, вероятно, даже попыткам извлечения прошивки.
Комментарии (18)

Arhammon
26.03.2026 16:31я зачистил два обрезанных «хвоста» кабелей MCU и экрана и попытался соединить провода по отдельности. Провода были очень тонкими и нежными. Система проработала пару секунд, а потом обломки проводов упали на плату и закоротили её, из-за чего сгорел один из чипов управления питанием:
На будущее нежные соединения можно делать через пайку в макетную плату, заодно ушей для для измерений напаять. Я так понимаю первый хардовый опыт если нет никакой оснастки?
Впрочем нетерпеливый Девид Шутц вряд ли ответит, но может кому-то пригодиться...

xSVPx
26.03.2026 16:31Я стал в последнее время обжимать. Пришлось только купить гильзы под тонкие провода. Очень удобно и надежно потом соединять временно через какие-нибудь псевдо-ваго коннекторы. Сейчас для любых топологий бывают. Собственно и соединять можно также, обжимаешь и натягиваешь термоусадку.

NutsUnderline
26.03.2026 16:31исследованию шин CAN
@aabzel ого, есть шанс его опередить, хватит в Жигулях копаться :)

aabzel
26.03.2026 16:31Со времен работы в таксопарке яндекс .драйв остался результат взлома can шины Tesla Model 3

aabzel
26.03.2026 16:31хватит в Жигулях копаться :)
А в НПП ИТЭЛМА я вообще на УАЗиках специализировался
Электри ческая УАЗ Буханка на Телеуправлении / Хабр
https://habr.com/ru/articles/957754/

NutsUnderline
26.03.2026 16:31программа баг-баунти, приглашающая исследователей находить уязвимости безопасности в её автомобилях.
понятная и рациональная мотивация. А то покупать недешевые запчасти чтобы покопаться... с другой стороны - я двоих таких любителей знаю :)

NutsUnderline
26.03.2026 16:31альтернативный перевод этой же статьи https://habr.com/ru/articles/1015478/

aabzel
26.03.2026 16:31Ну и PCB у Tesla. Водяное охлаждение в Embedded...
Топология спроектирована с плотностью нейтронной звезды.
Для нас в России это выглядит как инопланетные технологии.

aabzel
26.03.2026 16:31Даже Wago там не такие как в РФ. Какие-то длинные, а не широкие.


xSVPx
26.03.2026 16:31Короткие скорее. Вчера такие покупал как-раз у китайцев, они на 10мм короче. Компактнее. (речь о том что на фото, с плоскими флажками, бывают такие же совершенно обычные они крупнее)
ЗЫ. Это для соединения проводов ваги, т.е. они соединяют провод вставленный с одной стороны с проводом вставленным с другой. А не "один ко всем". Вообще в подобном формфакторе сейчас много всяких соединителей делают.

Moog_Prodigy
26.03.2026 16:31Интересное багбаунти. Нашел рут, и мы тебе в награду дадим рут чтобы ты мог дальше копался под рутом?
У них эти багбаунти вот вообще не коррелируют с ценами на ремонт. Одна удачная уязвимость позволяет зарабатывать миллионы долларов вдолгую, а не какие то сраные 10к. Знаю людей которые с этими "уязвимостями" а по сути хаками, чинят эти теслы практически на потоке.
Lev3250
Достаточно рукожопенький исследователь, который мало того, что имея распиновку и гнёзда, не смог сколхозить свой личный кабель, так ещё и коротнул плату... Надеюсь программист он получше, чем схемотехник
vyacheslavteplyakov
Rerium
Я надеюсь это не жвачка, а холодная сварка...
vyacheslavteplyakov
Ставлю на Surgu
xSVPx
Скорее всего горячая. Греешь в воде, становится мягкой, остывает - твердеет.