Китайский производитель роутеров Zbtlink оказался в центре спора из-за скрытого механизма удалённого управления, обнаруженного в фирменных прошивках. Исследователи VulnCheck утверждают, что устройства самостоятельно подключаются к внешним серверам и позволяют выполнять системные команды. Компания отрицает наличие бэкдора, но одновременно приостановила загрузку части прошивок из-за неназванных уязвимостей.
Технический директор VulnCheck Джейкоб Бейнс изучил один из роутеров Zbtlink и заметил постоянные попытки связаться с командным сервером через интернет. Исследователь назвал найденный компонент ENDLESSDOORS и связал его с небольшой программой rctl, или Remote Control Linux. Исходный код rctl появился на GitHub 14 января 2015 года и с момента публикации не обновлялся.
Программа состоит из клиента и сервера. Сервер принимает подключения на порту 7000, после чего может отправлять отдельные команды оболочки или заставить клиент запустить обратное соединение Bash. При работе с правами root такой механизм предоставляет удалённой стороне широкие возможности для управления операционной системой роутера.
Бейнс обнаружил процессы rctl, замаскированные под потоки ядра Linux. В действительности программы работали в пользовательском пространстве с правами root, но использовали названия, похожие на имена обычных системных компонентов. Маскировка затрудняла поиск подозрительной активности при поверхностной проверке списка процессов.
Соединение между роутером и сервером не предусматривает полноценной аутентификации, обмена ключами или проверки подлинности сторон. При подключении клиент отправляет фиксированное сообщение длиной 39 байт, включающее 33-байтовую метку класса устройства и MAC-адрес локального сетевого интерфейса. Участник, способный перехватить трафик или получить контроль над целевым сервером, потенциально может вмешаться в обмен командами.
Один из адресов, к которым обращалась прошивка, использовал домен rbdg4nzqadui.wikaba.com. По оценке VulnCheck, владелец конечного узла способен управлять устройствами с ENDLESSDOORS, пытающимися установить соединение. Исследователи нашли в проверенных прошивках четыре внешних адреса, причём только один домен имел явную связь с Zbtlink.
Производитель отверг обвинения и заявил, что механизм предназначался исключительно для послепродажного обслуживания и удалённой отладки. Представитель Zbtlink также сообщил, что функцию обычно сохраняют только на тестовых образцах и не включают в серийные поставки.
Публичная страница загрузки прошивок, однако, содержала уведомление о найденных проблемах безопасности. Zbtlink сообщила об уязвимостях в отдельных версиях программного обеспечения, временно удалила затронутые файлы и начала готовить исправления. Архивная копия страницы от 31 июля предупреждения не содержала, а список прошивок оставался доступен для загрузки.
VulnCheck утверждает, что подозрительный компонент присутствовал в прошивках более чем для 20 моделей роутеров. Бейнс также обратил внимание, что программа запускалась при загрузке системы через штатный сценарий и встречалась в образах, выпускавшихся на протяжении нескольких лет.
Zbtlink специализируется на OEM- и ODM-производстве и позволяет заказчикам устанавливать собственное программное обеспечение. Компания ранее продвигала поддержку OpenWrt и предлагала инструменты, позволяющие быстро создавать пользовательские прошивки . Такая модель усложняет оценку масштаба проблемы, поскольку оборудование Zbtlink может продаваться под сторонними названиями и с программным обеспечением заказчиков.
Исследователи нашли устройства под брендами Zbtlink, ZBT, ZBTWiFi и Wiflyer на Amazon, Alibaba и Shopify. Пользовательские прошивки могут содержать другой набор компонентов, поэтому наличие ENDLESSDOORS в каждом выпущенном роутере пока не подтверждено.
VulnCheck не стала заранее уведомлять производителя перед публикацией исследования. Бейнс объяснил решение тем, что согласованное раскрытие обычно применяют к непреднамеренным ошибкам, тогда как найденный компонент выглядел как встроенная функция, запускаемая средствами самой прошивки.
Исследователи опубликовали правила для Suricata, Snort и YARA, которые помогают обнаруживать связанные сетевые соединения и подозрительные процессы. Владельцам затронутых устройств VulnCheck рекомендует заменить роутер или как минимум ограничить исходящий трафик, изолировать локальную сеть и не считать оборудование доверенным до появления проверенной прошивки.