Xiaomi Mi Robot

Эксперты по информационной безопасности Денис Гизе и Дэниэл Вегемер поставили для себя интересную цель — взломать популярную модель робота-пылесоса Xiaomi Mi Robot. Казалось бы, ничего сложного в этом быть не должно, однако в ходе исследования выяснилось, что гаджет намного безопаснее большинства смартфонов, смарт-часов и других подобных устройств.

Денис и Дэниэл рассказали о том, как устроено программное обеспечение пылесоса, какими уязвимостями они воспользовались для того, чтобы преодолеть его защиту, а также сколько времени им потребовалось на взлом гаджета.

Аппаратный взлом

В первую очередь исследователи отметили, что «начинка» робота-пылесоса намного мощнее, чем у многих современных смартфонов: он оснащен сразу тремя ARM-процессорами, один из которых получил четыре производительных ядра.

Эксперты попробовали несколько очевидных способов атаки: сначала они проверили, можно ли использовать для взлома порт micro-USB. Оказалось, что нельзя: разработчики Xiaomi защитили это подключение. Затем исследователи полностью разобрали Mi Robot и попытались найти порт для прошивки на материнской плате — эта затея тоже оказалась неудачной.

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

Xiaomi

После серии неудач эксперты решили зайти с другой стороны — они решили провести атаку на аппаратную часть пылесоса. Замкнув фольгой определенные контакты одного из процессоров, им удалось перевести чип в специальный режим, разрешающий не только чтение, но и запись флеш-памяти напрямую через USB-порт. Таким образом исследователи смогли извлечь прошивку Mi Robot, модифицировать ее, а потом загрузить новый образ обратно в устройство, получив над ним полный контроль.

Беспроводной взлом

После подробного разбора прошивки исследователи нашли способ взломать пылесос просто через Wi-Fi, воспользовавшись недоработками в механизме обновления. Процедура установки апдейтов реализована следующим образом: зашифрованный архив с прошивкой загружается через зашифрованное подключение после получения зашифрованного сообщения с командой обновиться.

Однако оказалось, что разработчики все-таки не идеально реализовали этот процесс. Во-первых, архивы с обновлениями защищены одним и тем же статичным паролем rockrobo. Зная это, исследователи подготовили зашифрованный нужным образом пакет с собственной модифицированной прошивкой. Во-вторых, выяснилось, что команду обновить ПО пылесосу можно отправить со смартфон — для этого используется встроенный в приложение Xiaomi ключ. Экспертом потребовалось лишь извлечь этот ключ из приложения, после его они получили возможность отправить пылесосу команду на загрузку и установку обновления, но уже не из облака Xiaomi, а с их сервера.

Итог

Изучая прошивку пылесоса, Денис и Дэниэл выяснили, что она представляет собой операционную систему Ubuntu Linux. Они отметили, что компания применяет уникальные пароли суперпользователя на каждом устройстве, а значит, не существует единого пароля, которым можно взломать целую армию роботов-пылесосов. Также система Mi Robot оснащена сетевым экраном, который блокирует любые полезные для хакеров порты.

Но не все так радужно: обнаружилось, что Mi Robot собирает и отправляет в облачных хранилища Xiaomi слишком много данных — по несколько мегабайт в день. Наряду с безобидной телеметрией пылесос передает названия и пароли Wi-Fi-сетей, к которым он подключался, а также схемы помещений, в которых ему приходилось работать.

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




Канал iG в Telegram — t.me/iguides_ru