LINUX.ORG.RU

Избранные сообщения josser

Поиск уязвимости в автомобильной магнитоле

Форум — Security

Здравствуй ЛОР, с необычным кмк вопросом сегодня я.

Ищу совета, помощи.

История длинная, начну издалека и надеюсь у вас хватит терпения дочитать до конца.

В моей машине с самого начала ее существования была установлена довольно примитивная магнитола. Хотелось чего-то помощней с навигацей и блекджеком.
Купил, поставил.

Тут небольшое отступление: автомобили марки Citroen и Peugeot комплектуются магнитолами производства компании Magneti Marelli.
Магнитолы эти одинаковы внутри и отличаются лишь интерфйсом.
Некоторые имеют тач, и часть функций там выведена на кнопки на экране. Некоторые тача не имеют и тогда эти функции выведены на хардварные кнопки.

Для подгонки по месту использования под конкретный автомобиль используется специальный дейвайс и программка разработки опять же концерна PSA. Суть в том что бы отредактировать некое подобие реестра зашитого внутри магнитолы.
Техник на СТО подключается к магнитоле через CAN-шину в автомобиле и задает настройки. Настроек очень много, начиная от «дизель/бензин» и до «количество динамиков». Можно также включать различные опции, например поддержку Mirror Link, Android Auto.

Однако не все так просто. Как оказалось, перед тем как отправить параметр конфигурации в магнитолу, мерзкая программулина связывается с материнским кораблем, в смысле сервером и проверяет - а чо ваще на этой машине должно стоять? И если ответ ее не устроит, то параметр в магнитолу не прописывается.

Моя магнитола снята как раз с автомобиля Peugeot 208 а установлена в Citroen C4. Машины немножко похожи но понятное дело телекодировать магнитолу не удается так как сервер видит что наи моей машине эта магнитола стоять не должна. Если кто не в курсе, все автомобили идентифицируются по уникальному VIN-номеру.

Как только не пытались мы с электриком на СТО обойти защиту - ничего не получается. Как потом я узнал позже, над этой проблемой бьется еще пара человек в инете но они больше по ремонту машин специалисты а не по компьютерам. Поэтому результата от них ждать не приходится.

Итак я уже подхожу к сути. Коротко - я пытаюсь найти способ как задать некоторые параметры в магнитоле.
Разобрав прошивку я обнаружил что параметры хранятся в sqlite базах (их несколько разбитых по категориям). Т.е вместо телекодирования через спец-кабель и программку можно поменять параметры прямо в файлах, подумал я и обрадовался.
Первое что я попробовал - это подменить данные в sqlite-файлах в прошивке и подсунуть файл прошивки с измененными файлами как обновление. Безуспешно, так как магнитола проверяет целостность файлов прошивки каким-то мерзким способом, а именно у них там своя (!) реализация crc32. Вот так например выглядит файл с контрольными суммами для одного из файлов (только одного, не спрашивайте меня почему тут несколько строк «size») :
CRC32: -1308817588
SIZE: 42635998
SIZE_1: 43126784
SIZE_2: 43601920
SIZE_4: 44634112
SIZE_8: 46972928
SIZE_16: 51953664
SIZE_32: 62914560

Понять как почитать такую контрольную сумму я не смог а инструкций в интернете понятное дело нет.

На данный момент у меня есть две идеи по способам изменения этих параметров.
1) Хардварный способ. Операционка и юзерские настройки магнитолы хранятся на micro-sd флешке. Флешка натурально вставленна в слот и ее можно достать. Идея в том что бы разобрать магнитолу и поправить файлы прямо на ней. Есть шанс получить «кирпич» если в магнитоле есть система защиты от подобных действий.

2) Софтварный способ.
В магнитоле есть браузер и возможность выходить в интернет. Т.е базовый план в том что бы выйти таким образом в инет, узнать свой IP, просканировать nmap-ом и попытаться найти стандартные уязвимости а если повезет и там есть telnet или подобная штука то подобрать пароль.

Есть мнение что в магнитоле работает операционка vxWorks. Быстрый гугл по CVE для vxWorks не дает никаких результатов.

В общем, в порядке эксперимента хочу обратится к знающим товарищам с такими вот вопросами:
1) Есть ли какие-то стандартные алгоритмы/способы поиска уязвимостей в embedded системах?
2) Может быть у вас есть альтернативные идеи как получить доступ к файловой системе так что бы ось не узнала об этом факте и поменять там что-то?

Само собой, хардварный способ сейчас самый перспективный но софтварный тоже стоит разрабатывать так как я вангую шифрование на флешке.

Спасибо )

 ,

josser
()