Уязвимость в дисплее Egret GT E-scooter позволяла случайно войти в режим обновления firmware и активировать рабочий режим без защитного PIN. [Я] исследовал протокол методом обратной разработки и переписал firmware на Rust. В результате анализа Bluetooth-трафика и кода мобильного приложения были выявлены данные, не отображавшиеся на экране, а также информация, отправлявшаяся в центральный сервер вместе с уникальным идентификатором scooter. Это было одной из причин для изменения firmware. Когда выяснилось, что scooter использует CAN Bus, были применены осциллограф и самодельный CAN-декодер; было установлено, что линии передачи данных находятся в порте USB-C, который официально предназначен для зарядки телефона. Обновления существовали как минимум в трех вариантах — для дисплея, панели ввода и контроллера; установка новой firmware зависела от решения этой задачи.
Почему это важно
Эта работа показывает, что безопасность электрических scooter не ограничивается только механическими компонентами: взаимосвязь между дисплеем, мобильным приложением, беспроводной связью и контроллером также определяет права доступа к использованию. Дополнительные данные, обнаруженные в Bluetooth-трафике, и передача уникального идентификатора scooter в центральный сервер поднимают вопрос о том, какая информация собирается о пользователе и в какой степени этот поток можно контролировать. Наличие линий CAN в порте USB-C, предназначенном для зарядки телефона, выявляет разницу между официальным назначением устройства и его реальными техническими возможностями. Зависимость firmware от нескольких компонентов показывает, что проблемы безопасности нельзя решить изменением только одной части программного обеспечения. Открытым остается вопрос о том, как эти выводы отразятся на официальном процессе обновления Egret и ее подходе к безопасности.