Содержание
Уязвимость Shark в облачной связке робопылесосов дала одному украденному сертификату доступ к командам root на других устройствах в том же регионе AWS. Исследователь tokay0 заявил, что баг до сих пор не закрыли, хотя он сообщил о нем SharkNinja еще 1 марта.
Речь не о фантазии из страшилок про умный дом. По данным исследователя, ошибка открывает живой видеопоток с камеры, сохраненные карты помещений и учетные данные Wi-Fi, которые лежали в открытом виде.
Один сертификат Shark работал шире одного пылесоса
Проблема сидит в слишком широкой политике AWS IoT: сертификат конкретного пылесоса не привязали жестко к этому устройству. Поэтому сертификат, снятый с одного робота, мог читать трафик большой группы устройств и отправлять команды другим пылесосам в том же регионе AWS.
Для умного дома это неприятный класс ошибок. Сам робот может быть обычной коробкой с мотором, камерой и Linux внутри. Но если облако плохо режет права, один ключ начинает работать как универсальный пропуск.
Команды проходили через поле Exec_Command в облачном документе состояния устройства. На стороне пылесоса управляющий демон передавал содержимое этого поля в shell, если команда укладывалась в 1000 байт. Мы намеренно не пересказываем технические шаги атаки, но сама архитектурная ошибка тут видна без лупы.
Tokay0 проверял метод только на купленных им устройствах. Среди них был AV1102ARUS Shark IQ Robot Vacuum XL. На нем исследователь получил reverse shell с другой модели и вытащил живую картинку с бортовой камеры.
Масштаб: 1,5 млн серийников за сутки в одном регионе AWS
За 24 часа наблюдения в одном регионе AWS исследователь насчитал 1 517 605 уникальных серийных номеров Shark. Из них 673 816 устройств, или 44%, ответили на тестовую команду-зонд.
Это не значит, что все эти пылесосы взломали. Цифра показывает устройства, которые были видны и отвечали на проверку. Сертификаты привязаны к региону AWS, поэтому ключ из одного региона не открывает устройства в другом регионе.
Но для владельца разница слабая. Если устройство попало в затронутую группу, в зоне риска оказываются данные из дома: карта комнат, изображение с камеры и параметры Wi-Fi. Робот-пылесос давно перестал быть просто гаджетом для шерсти кота.
Исправление нужно в облаке SharkNinja, а не в прошивке
По словам tokay0, исправление не требует обновления прошивки на самих роботах. SharkNinja должна сузить IoT-политику внутри своего аккаунта AWS или перевыпустить сертификаты с нормальными правами.
Это важный момент для пользователей. Когда баг живет в облаке производителя, дома почти нечего чинить руками. Перезагрузка пылесоса или смена настроек приложения не исправит серверную политику доступа.
- 1 марта: tokay0 отправил отчет в SharkNinja.
- 12 марта: SharkNinja подтвердила получение отчета.
- 27 апреля: компания ответила, что проблема находится на рассмотрении.
- 3 июля: SharkNinja пообещала назвать дату завершения к 10 июля.
- 16 июля: публичного исправления или уведомления от компании не было.
Исследователь пишет, что SharkNinja занижала серьезность бага и сомневалась, нужен ли CVE. При этом в своей политике раскрытия компания обещает «provide regular updates until the reported vulnerability is resolved» — регулярно обновлять статус до закрытия уязвимости.
Сам технический разбор tokay0 вышел в понедельник. По состоянию на 16 июля SharkNinja не опубликовала отдельное сообщение об этой уязвимости.
Похожий сбой уже находили у DJI Romo
История напоминает февральский случай с роботами-пылесосами DJI Romo. Тогда ошибка авторизации открыла доступ примерно к 6700 устройствам, включая камеры, аудио и планы этажей.
DJI закрыла ту проблему за несколько недель. Исследователь, который нашел баг, позже получил вознаграждение $30 000, около 2,7 млн рублей. У SharkNinja ситуация хуже именно сроками: отчет ушел 1 марта, а публичного патча нет к 16 июля.
Такие сбои подталкивают интерес к офлайн-дизайнам умного дома. Если карты помещений и камера не уходят в облако продавца, одна ошибка в AWS-политике не превращается в проблему для сотен тысяч квартир.
Финальная точка в этой истории пока конкретная: tokay0 сообщил SharkNinja о баге 1 марта, компания подтвердила отчет 12 марта, а к 16 июля публичного исправления не опубликовала.