Comandos en las cabeceras de las peticiones HTTP no aparecen en los registros de acceso

El nuevo backdoor CWPdoor se oculta directamente dentro del panel de control de servidores Linux, no aparece en los registros de acceso y por ahora permanece invisible para los antivirus. Los investigadores encontraron indicios de infecciones reales, y los objetivos potenciales podrían ser cientos de miles de servidores.
Los especialistas de XLab de la empresa QiAnXin analizaron la versión maliciosa de cwpsrv, el servidor web que ejecuta la interfaz Control Web Panel (CWP). El panel permite gestionar sitios, correo, DNS y otros servicios sin usar la línea de comandos. Según la plataforma Hunter, en el último mes más de 340 000 instancias de CWP estuvieron accesibles desde internet. Se trata de objetivos potenciales, no de sistemas infectados.
El primer indicio lo notaron los investigadores el 29 de junio de 2026. Un script sospechoso cwpsrv_update.sh falsificaba la sustitución del componente del servidor como si fuera una actualización. Para su ejecución requería privilegios root. El script descargaba un archivo malicioso desde la dirección 136.0.141.71, lo reemplazaba por el cwpsrv original y reiniciaba el servicio. Las muestras conocidas están dirigidas a las versiones 1.15.10 y 1.24.0.
La sustitución está diseñada para no interferir con el funcionamiento del panel. El instalador comprueba el arranque de los procesos y, en caso de error, restaura el archivo original. Tras una instalación exitosa elimina archivos temporales y la copia de seguridad, restaura las marcas de tiempo anteriores del archivo y del directorio, y además borra el comando del historial del shell. Al inspeccionar los archivos de forma habitual resulta difícil notar el reemplazo.
El propio CWPdoor no se comunica con un servidor de control por iniciativa propia. El código malicioso está integrado en un cwpsrv modificado basado en Nginx y espera una petición HTTP o HTTPS con tres encabezados especiales. Uno contiene la hora, el segundo el comando cifrado y el tercero la firma digital. Sin una firma correcta la petición se trata como una petición ordinaria.
Tras verificar la firma RSA y que la marca de tiempo esté dentro de cinco minutos, CWPdoor descifra el comando con el algoritmo AES-256-CBC. Un proceso auxiliar separado lo ejecuta, y el resultado se devuelve en la respuesta HTTP cifrada. Al mismo tiempo, el malware modifica el contexto del módulo de registro para que la petición peligrosa no aparezca en los registros de acceso.
La confirmación de infecciones apareció el 30 de septiembre. Desde Brasil subieron a VirusTotal un archivo comprimido con dos archivos sospechosos. Uno se relacionaba con el conocido backdoor de Linux Ebury, el segundo resultó ser CWPdoor. Los motores antivirus no detectaron CWPdoor, aunque la mayoría sí identificó a Ebury. No se ha demostrado relación entre ambos programas; podrían haber sido instalados por distintos atacantes.
En el análisis técnico de XLab se detallan señales de compromiso. A los administradores se les recomienda buscar el socket Unix ngx_http_integrity_helper con el comando ss -axp | grep integrity y comprobar el ejecutable cwpsrv en busca de las cadenas X-Ngx-Integrity. Si hay infección, hay que restaurar el componente limpio, actualizar CWP, cambiar las credenciales del panel y revisar el servidor por otras amenazas. Aún se desconoce cómo obtienen los atacantes el acceso inicial.