Xiaomi
Инженер Аймилиос Хацистам обнаружил баг в умной маске для сна китайского производства, приобретенной им на Kickstarter.
В собственном блоге мужчина заявляет, что маска от небольшой китайской исследовательской компании считывала мозговую активность незнакомых людей и посылала им электрические импульсы во сне. Он отмечает, что устройство включает функции ЭЭГ-мониторинга мозга, электрической стимуляции вокруг глаз, вибрации, подогрева и звука.
Однако приложение для ее использования оказалось недоделанным до конца. Поскольку маска постоянно отключалась, Аймилиос Хацистам попросил ИИ Claude изменить протокол Bluetooth и создать простую веб-панель управления. Claude в первую очередь просканировал окружающую среду на наличие устройств с Bluetooth Low Energy. Он обнаружил устройство инженера среди 35 других в зоне действия, подключился и определил интерфейс через два канала передачи данных. Один канал отправлял команды, а другой осуществлял их потоковую передачу.
После этого ИИ пытался установить связь с маской, отправив около 100 командных шаблонов, среди которых были кадры Modbus, JSON, необработанные байты и стандартные заголовки. Однако устройство так и не откликнулось из-за нестандартного протокола. Далее Claude взялся за само приложение. Он загрузил APK-файл для Android и декомпилировал его с помощью jadx. Оказалось, что приложение создано на Flutter, что создает проблемы с обратной связью.
Flutter компилирует исходный код Dart в нативный машинный код ARM64, однако его нельзя декодировать как обычно в приложениях Android на Java. Ключевая логика содержится в двоичном файле размером 9 МБ. Однако даже в скомпилированных бинарных файлах содержатся строки, в частности, сообщения об ошибках, URL-адреса, журналы отладки.
Claude запустил программу Strings на бинарном файле. Среди тысяч мусорных строк фреймворка Flutter он обнаружил встроенные учетные данные для брокера сообщений компании, конечные точки облачного API, 15 названий функций конструктора команд, в том числе для настройки вибрации, нагрева, электростимуляции и других, отладочные сообщения протокола, раскрывающие структуру пакета, заголовок, байты направления, типы команд, полезную нагрузку, нижний колонтитул.
Claude использовал blutter — специально предназначенный для декомпиляции скомпилированных файлов Dart из Flutter. Он восстанавливает функции с возможностью чтения аннотаций. Клод определил кодировку и просто считал каждый байт команды из каждой функции. ИИ отправил шестибайтный пакет запроса. Устройство в ответ вернуло 153 байта включая информацию о номере модели, версии прошивки, серийном номере, конфигурации всех восьми каналов датчиков (ЭЭГ с частотой 250 Гц, дыхание, 3-осевой акселерометр, 3-осевой гироскоп). Заряд батареи 83%
ИИ также создал небольшую веб-панель управления. Пока инженер разбирался в системе, Claude пытался использовать закодированные учетные данные для подключения к MQTT-брокера компании. MQTT, как объясняет Аймилиос Хацистам, это стандартный протокол системы обмена сообщениями между пользователем и производителем в интернете вещей, где устройства публикуют показания датчиков и подписываются на команды. Затем устройство начало получать данные. Не только от инженера — от всех. Было активно около 25 устройств. В частности, умные маски для сна, публикующие данные ЭЭГ в режиме реального времени, датчики качества воздуха, регистрирующие температуру, влажность и содержание CO2, датчики присутствия, определяющие занятость помещения.
В частности, Claude записал несколько минут ЭЭГ с двух активных масок для сна. Один пользователь, вероятно, находился в быстрой фазе сна, другой в медленной и глубокой. Маска также обеспечивает электростимуляцию мышц вокруг глаз. Управление осуществляется с помощью простой команды: режим, частота, интенсивность, продолжительность. Поскольку все устройства используют одни и те же учетные данные и одного и того же центрального программного посредника (брокера), возможность считывать мозговую активность также означает возможность отправлять кому-то собственные мозговые импульсы.
Аймилиос Хацистам умышленно не называет название продукта и компании, однако связался с производителем и сообщил об уязвимости. Поскольку история стала очень обсуждаемой на портал Hacker News, инженер опубликовал собственную переписку с Клодом.
ITC сообщал, что Google недавно таки подтвердила баг Pixel с записанными сообщениями, слышимыми на другой стороне, но не для всех аппаратов. Между тем магазины GameStop ненадолго стали «машиной для печати денег» для геймеров Nintendo Switch 2 из-за бага в системе trade-in.
Источник: Aimilios.bearblog
Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.
Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.