Исследователи XLab компании QiAnXin обнаружили бэкдор cwpdoor в веб-сервере cwpsrv, который входит в бесплатную панель Control Web Panel (CWP) для управления Linux-хостингом. Модифицированная программа принимает команды через веб-запросы и выполняет их, не записывая сами запросы в журнал доступа.

Для установки вредоносного компонента нужны права root. Как злоумышленники получают их, XLab не выяснила. Это важная граница известного: найденный бэкдор позволяет скрытно управлять сервером, но сам по себе не объясняет, как атакующие впервые проникают на него.
29 июня исследователи перехватили установщик, замаскированный под скрипт обновления. Он рассчитан на версии cwpsrv 1.15.10 и 1.24.0 и заменяет исполняемый файл сервера на модифицированный. 30 сентября архив с копией бэкдора загрузили на VirusTotal из Бразилии. По оценке XLab, это означает, что «в реальной среде уже есть пострадавшие серверы». Число заражений исследователи не оценили.
В обычном режиме подменённый cwpsrv ведёт себя как легитимная программа. Бэкдор активируется, если запрос содержит корректные временную метку и подпись, а также специальные HTTP-заголовки, начинающиеся с
Установщик сохраняет исходные даты файла после замены. Поэтому обычные проверки через
Для поиска заражения исследователи предлагают проверить Unix-сокет, процессы и содержимое файла:
Опубликованные индикаторы компрометации:
Поскольку cwpdoor способен выполнять произвольные команды, заражённый сервер следует считать полностью скомпрометированным: нужно сменить все учётные данные Control Web Panel и проверить систему на другие угрозы. В том же архиве из Бразилии нашли Ebury — бэкдор для OpenSSH, который также похищает учётные данные и действует как минимум с 2009 года. Связаны ли Ebury и cwpdoor, неизвестно: по версии XLab, их могли установить разные злоумышленники на один сервер.

Изображение носит иллюстративный характер
Для установки вредоносного компонента нужны права root. Как злоумышленники получают их, XLab не выяснила. Это важная граница известного: найденный бэкдор позволяет скрытно управлять сервером, но сам по себе не объясняет, как атакующие впервые проникают на него.
29 июня исследователи перехватили установщик, замаскированный под скрипт обновления. Он рассчитан на версии cwpsrv 1.15.10 и 1.24.0 и заменяет исполняемый файл сервера на модифицированный. 30 сентября архив с копией бэкдора загрузили на VirusTotal из Бразилии. По оценке XLab, это означает, что «в реальной среде уже есть пострадавшие серверы». Число заражений исследователи не оценили.
В обычном режиме подменённый cwpsrv ведёт себя как легитимная программа. Бэкдор активируется, если запрос содержит корректные временную метку и подпись, а также специальные HTTP-заголовки, начинающиеся с
X-Ngx-Integrity. Тогда команда из запроса передаётся на выполнение. Установщик сохраняет исходные даты файла после замены. Поэтому обычные проверки через
ls и stat могут показывать, будто cwpsrv не менялся. На момент проверки XLab файл не обнаруживался ни одним из 63 антивирусных движков VirusTotal. Для поиска заражения исследователи предлагают проверить Unix-сокет, процессы и содержимое файла:
- []
ss -axp | grep integrity — появление ngx_http_integrity_helper указывает на сокет, используемый бэкдором. []
ps aux | grep cwpsrv — следует искать неожиданные вспомогательные процессы, запущенные cwpsrv. []
strings /usr/local/cwpsrv/bin/cwpsrv | grep X-Ngx-Integrity — команда проверяет наличие характерных имён заголовков. Опубликованные индикаторы компрометации:
- [] MD5 установщика
cwpsrv_update.sh: e505d4ffa21cf494a5dc2d7c8f4f1236 [] MD5 заражённого
cwpsrv 1.15.10: 965aea67fb40de1bab5169ada993349f [] MD5 заражённого
cwpsrv 1.24.0: d3f4e95113d49ab3991b45e457bda75b [] IP сервера загрузки:
136.0.141[.]71 [] URL установщика:
https://136.0.141[.]71/static/cwpsrv_update.sh [] URL файла для версии 1.15.10:
https://136.0.141[.]71/static/cwpsrv_1.15.10 [] URL файла для версии 1.24.0:
https://136.0.141[.]71/static/cwpsrv_1.24.0 /usr/local/cwpsrv/bin. Её имя начинается с cwpsrv.prev- и заканчивается датой и временем. Но установщик, согласно своему описанию, после успешной замены удаляет «временные файлы и резервную копию», так что нужного файла может уже не быть. После восстановления следует обновить CWP до последней версии и убедиться, что ss -axp | grep integrity ничего не выводит. Поскольку cwpdoor способен выполнять произвольные команды, заражённый сервер следует считать полностью скомпрометированным: нужно сменить все учётные данные Control Web Panel и проверить систему на другие угрозы. В том же архиве из Бразилии нашли Ebury — бэкдор для OpenSSH, который также похищает учётные данные и действует как минимум с 2009 года. Связаны ли Ebury и cwpdoor, неизвестно: по версии XLab, их могли установить разные злоумышленники на один сервер.