Эксперты по информационной безопасности Денис Гизе и Дэниэл Вегемер поставили для себя интересную цель — взломать популярную модель робота-пылесоса Xiaomi Mi Robot. Казалось бы, ничего сложного в этом быть не должно, однако в ходе исследования выяснилось, что гаджет намного безопаснее большинства смартфонов, смарт-часов и других подобных устройств.
Денис и Дэниэл рассказали о том, как устроено программное обеспечение пылесоса, какими уязвимостями они воспользовались для того, чтобы преодолеть его защиту, а также сколько времени им потребовалось на взлом гаджета.
Аппаратный взлом
Следующая попытка взлома осуществлялась через сеть. Денис и Дэниэл просканировали сетевые порты устройства, но все оказались закрыты. Перехват трафика тоже ни к чему не привел — выяснилось, что обмен данными пылесоса с серверами компании полностью зашифрован.
После серии неудач эксперты решили зайти с другой стороны — они решили провести атаку на аппаратную часть пылесоса. Замкнув фольгой определенные контакты одного из процессоров, им удалось перевести чип в специальный режим, разрешающий не только чтение, но и запись флеш-памяти напрямую через USB-порт. Таким образом исследователи смогли извлечь прошивку Mi Robot, модифицировать ее, а потом загрузить новый образ обратно в устройство, получив над ним полный контроль.
Беспроводной взлом
После подробного разбора прошивки исследователи нашли способ взломать пылесос просто через Wi-Fi, воспользовавшись недоработками в механизме обновления. Процедура установки апдейтов реализована следующим образом: зашифрованный архив с прошивкой загружается через зашифрованное подключение после получения зашифрованного сообщения с командой обновиться.Однако оказалось, что разработчики все-таки не идеально реализовали этот процесс. Во-первых, архивы с обновлениями защищены одним и тем же статичным паролем rockrobo. Зная это, исследователи подготовили зашифрованный нужным образом пакет с собственной модифицированной прошивкой. Во-вторых, выяснилось, что команду обновить ПО пылесосу можно отправить со смартфон — для этого используется встроенный в приложение Xiaomi ключ. Экспертом потребовалось лишь извлечь этот ключ из приложения, после его они получили возможность отправить пылесосу команду на загрузку и установку обновления, но уже не из облака Xiaomi, а с их сервера.
Итог
Изучая прошивку пылесоса, Денис и Дэниэл выяснили, что она представляет собой операционную систему Ubuntu Linux. Они отметили, что компания применяет уникальные пароли суперпользователя на каждом устройстве, а значит, не существует единого пароля, которым можно взломать целую армию роботов-пылесосов. Также система Mi Robot оснащена сетевым экраном, который блокирует любые полезные для хакеров порты.
Но не все так радужно: обнаружилось, что Mi Robot собирает и отправляет в облачных хранилища Xiaomi слишком много данных — по несколько мегабайт в день. Наряду с безобидной телеметрией пылесос передает названия и пароли Wi-Fi-сетей, к которым он подключался, а также схемы помещений, в которых ему приходилось работать.
Денис и Дэниэл отметили, что оба способа атаки позволяют взломать только собственные устройства. Первый метод требует физического доступа к пылесосу, а для второго необходимо раздобыть ключ шифрования, чтобы сформировать фальшивый запрос на обновление. Эти ключи генерируются заново при каждой синхронизации устройства с мобильным приложением, не повторяясь. Заполучить такой ключ без доступа к смартфону, подключенному к нужному вам устройству, очень сложно.
Канал iG в Telegram — t.me/iguides_ru