Вразливість в інфраструктурі Tesla дозволяла отримати контроль над будь-яким автомобілем

Розкрито відомості про проблемах в організації захисту у мережі компанії Tesla, що дозволили повністю скомпрометувати інфраструктуру, що здійснює взаємодію з автомобілями споживачів. У тому числі, виявлені проблеми давали можливість отримати доступ до сервера, який відповідає за підтримку каналу зв'язку з автомобілями та відправлення команд, що передаються через мобільний додаток.

У результаті атакуючий зумів через інфраструктуру Tesla отримати root-доступ до інформаційної системи будь-якого автомобіля або віддалено передати на автомобіль керуючі команди. У тому числі було продемонстровано можливість відправлення на автомобіль таких команд, як запуск двигуна та розблокування дверей. Для отримання доступу потрібно лише знання VIN-номера автомобіля жертви.

Вразливість була виявлена ​​на початку 2017 року дослідником безпеки Джейсоном Хьюзом
(Джейсон Хьюз), який відразу поінформував компанію Tesla про проблеми та оприлюднив виявлені ним відомості лише через три з половиною роки після інциденту. Зазначається, що компанія Tesla у 2017 році усунула проблеми за лічені години після отримання повідомлення про вразливість, після чого кардинально посилила захист своєї інфраструктури. За виявлення вразливості досліднику було виплачено винагороду розміром 50 тисяч доларів США.

Розбір проблем з інфраструктурою Tesla почався з декомпіляції інструментарію, що пропонується для завантаження із сайту toolbox.teslamotors.com. Користувачам автомобілів Tesla, які мають обліковий запис на сайті service.teslamotors.com, надавалася можливість завантаження всіх модулів для розробників. Модулі були зашифровані найпростішим способом, а ключі шифрування віддавалися тим самим сервером.

Декомпілювавши отримані модулі в код мовою Python, дослідник виявив, що в коді зустрічаються вшиті облікові дані для різних сервісів Tesla, що знаходяться у внутрішній мережі компанії, вхід якої здійснюється через VPN. У тому числі в коді вдалося знайти облікові дані користувача одного з хостів у піддомені dev.teslamotors.com, що знаходиться у внутрішній мережі.

До 2019 року для підключення автомобілів до сервісів Tesla застосовувався VPN на базі пакету OpenVPN (згодом був замінений на реалізацію на основі websocket) з використанням ключа, що генерується для кожного автомобіля. VPN використовувався для забезпечення роботи мобільного додатка, отримання списку станцій заряджання акумуляторів та інших подібних сервісах. Дослідник спробував просканувати мережу, доступну після підключення свого автомобіля через VPN і виявив, що доступна клієнтам підсіть на належному рівні не ізольована від внутрішньої мережі Tesla. У тому числі виявився досяжним хост у піддоміні dev.teslamotors.com, до якого було знайдено облікові дані.

Скомпрометований сервер виявився вузлом для керування кластером та відповідав за доставку додатків на інші сервери. При вході на вказаний хост вдалося отримати частину вихідних текстів внутрішніх сервісів Tesla, включаючи mothership.vn та firmware.vn, які відповідають за передачу команд на автомобілі клієнтів та доставку прошивок. На сервері також було знайдено паролі та логіни для доступу до СУБД PostgreSQL та MySQL. Принагідно з'ясувалося, що доступ до більшості компонентів можна отримати і без знайдених у модулях облікових даних, виявилося достатньо відправити HTTP-запит до Web API з доступної клієнтам підмережі.

Серед іншого на сервері було знайдено модуль, всередині якого був файл good.dev-test.carkeys.tar з ключами до VPN, які застосовуються в процесі розробки. Зазначені ключі виявилися робітниками та дозволили підключитися до внутрішнього VPN компанії vpn.dev.teslamotors.com.
На сервері також було знайдено код сервісу mothership, вивчення якого дозволило визначити точки підключення до багатьох сервісів, що управляють. Було з'ясовано, що більшість даних сервісів, що управляють, доступні на будь-якому автомобілі, у разі підключення з використанням знайдених VPN-ключів для розробників. Через маніпуляцію з сервісами вдалося витягти ключі доступу для будь-якого автомобіля, що оновлюються щодня, а також копії облікових даних будь-якого клієнта.

Зазначені відомості дозволяли визначити IP-адресу будь-якого автомобіля, з яким встановлено з'єднання через VPN. Так як підмережа vpn.dev.teslamotors.com не була належним чином відділена міжмережевим екраном через прості маніпуляції з маршрутизацією вдалося дістатися IP клієнта і підключитися до його автомобіля по SSH з правами root, скориставшись отриманими раніше обліковими даними клієнта.

Крім того, отримані параметри VPN-з'єднання до внутрішньої мережі дозволяли надсилати запити до будь-яких автомобілів через Web API mothership.vn.teslamotors.com, які приймалися без додаткової автентифікації. Наприклад, при проведенні тестів вдалося продемонструвати визначення поточного розташування автомобіля, розблокувати двері та запустити двигун. Як ідентифікатор для вибору мети атаки використовується VIN-номер автомобіля.

Джерело: opennet.ru

Додати коментар або відгук