Специалист показал, как любой желающий мог в реальном времени следить за камерами в 118 странах.

Обычная радионяня с Amazon привела к находке, которая затронула больше миллиона камер по всему миру. Специалист по безопасности Сэмми Аздуфал проверил устройство по просьбе коллеги и обнаружил, что инфраструктура китайской компании Meari Technology позволяет посторонним получать доступ к уведомлениям, снимкам и данным чужих камер почти без ограничений.
Meari выпускает камеры и программное обеспечение для сотен брендов, которые продают устройства под собственными названиями. Среди них CloudEdge, Arenti, BOIFUN, PetTec, SV3C, Joystek и Luvion. Все устройства используют общую облачную платформу, одни и те же серверы и набор одинаковых библиотек внутри приложений.
Во время проверки Аздуфал нашёл пять уязвимостей, получивших идентификаторы CVE. Самая опасная позволяла любому владельцу учётной записи CloudEdge подписаться на глобальный поток сообщений MQTT и в реальном времени получать события от чужих камер. За пять минут через один сервер специалист получил более 14 тысяч сообщений от 2117 устройств из десятков стран.
Доступ к чужим камерам (xn0tsa)
В сообщениях содержались уведомления о движении, ссылки на снимки с камер, данные о привязке устройств и параметры прямого подключения. Среди утёкших данных оказались серийные номера камер, адреса электронной почты владельцев и ссылки на видеозаписи.
Отдельная проблема затронула изображения тревожных событий. Снимки автоматически загружались в облачное хранилище Alibaba Cloud без защиты и срока действия ссылок. Любой человек, получивший адрес изображения, мог открыть файл без авторизации. Специалист утверждает, что за несколько минут собрал сотни снимков с дверных звонков и радионянь.
Производитель попытался скрыть часть файлов под расширением «.jpgx3», однако защита оказалась простым XOR-шифрованием первых 1024 байт изображения. Ключ генерировался на основе серийного номера камеры, который передавался в том же сообщении MQTT. Аздуфал показал, что восстановить оригинальный снимок можно за несколько строк кода.
Ещё одна уязвимость позволяла узнать внешний IP-адрес любой камеры по серийному номеру. Запрос подписывался ключом, который жёстко прописан во всех приложениях экосистемы Meari. По словам специалиста, таким способом удалось определить примерное местоположение более 13 тысяч устройств.
Проверка приложений CloudEdge и связанных брендов показала, что вся экосистема использует одинаковые встроенные ключи шифрования, пароли для P2P-подключений и ключи подписи API. Замена таких ключей потребует перепрошивки всех устройств, уже находящихся у пользователей.
Кроме CVE, Аздуфал обнаружил открытые административные панели, сервер конфигурации с учётными данными баз данных и внутренними ключами компании, а также инструменты управления видеопотоками и облачными записями. На одном из серверов работали стандартные учётные данные admin:public.
Специалист считает, что проблемы связаны не с отдельными ошибками, а с архитектурой всей платформы. По его оценке, инфраструктура Meari обслуживает как минимум 1,1 млн устройств в 118 странах.
Переписка с производителем длилась почти семь недель. Изначально компания заявила, что затронутые устройства «устарели», однако на момент публикации MQTT-серверы продолжали передавать данные камер. Координацией раскрытия уязвимостей занимались runZero и Агентство по кибербезопасности и защите инфраструктуры США. (CISA)