Vue rapprochée d'une unité de serveur informatique contenant plusieurs cartes électroniques et disques durs.

CWPdoor : la porte dérobée invisible dans le serveur web CWP

Des chercheurs de XLab ont mis au jour CWPdoor, une porte dérobée sophistiquée nichée directement dans le serveur web de Control Web Panel (CWP), un outil gratuit pour la gestion des serveurs Linux. Cette infection ne repose pas sur un malware autonome ; elle est insérée dans le code source de cwpsrv, le binaire responsable de l’interface de gestion du panneau.

Le mécanisme est d’une discrétion remarquable. Le code malveillant ne révèle aucune activité suspecte en fonctionnement normal ; il attend uniquement qu’une requête HTTP/HTTPS spécialement formatée, contenant des en-têtes personnalisés comme X-Ngx-Integrity-Time ou X-Ngx-Integrity-Data, soit reçue. Dès cette vérification réussie, l’attaquant peut exécuter des commandes à distance, le tout sans que l’interaction ne soit consignée dans les journaux d’accès.

L’installation, elle, requiert des privilèges root. L’attaquant déploie un script nommé cwpsrv_update.sh, qui se fait passer pour une mise à jour légitime des versions 1.15.10 ou 1.24.0. Ce script remplace le binaire original de cwpsrv par sa version truquée. Ce qui intrigue, c’est la minutie du script : après le remplacement, il restaure les horodatages du fichier et de son répertoire parent à leurs valeurs initiales, et efface l’historique de la session, faisant croire à toute vérification classique (ls ou stat) que le fichier n’a jamais été modifié.

Vue sombre et industrielle à travers une structure métallique, évoquant un environnement technique ou un serveur.

Plusieurs serveurs sont potentiellement vulnérables. Selon les données de la plateforme Hunter de QiAnXin, plus de 340 000 instances de CWP étaient exposées à Internet le mois dernier, les plaçant en cible potentielle. De plus, la présence de cette menace n’est pas théorique ; en septembre 2026, un fichier contenant cwpsrv.suspeito a été détecté sur VirusTotal depuis le Brésil, confirmant que des victimes réelles existent déjà dans la nature.

Comment l’attaque parvient-elle à être si furtive

Le cœur du problème réside dans l’intégration du code malveillant dans le binaire officiel de cwpsrv, qui est lui-même basé sur Nginx. Ce n’est pas un programme qui se comporte mal, c’est un programme légitime qui obéit à des instructions cachées. L’interaction se déroule en plusieurs étapes précises : l’attaquant envoie une requête qui doit d’abord passer une double vérification – un horodatage valide et une signature RSA – interceptée par le processus maître de CWP. Si cette validation passe, le message chiffré est déchiffré et passé à un processus enfant via un socket Unix pour exécution. Le résultat est ensuite réencodé en AES et renvoyé dans une réponse HTTP 200, sans laisser de trace lisible.

Pour aider la communauté de sécurité, les chercheurs ont fourni des indicateurs de compromission précis. Pour détecter l’infection sur un serveur, il est possible d’examiner le socket Unix avec la commande ss -axp | grep integrity, de vérifier les processus avec ps aux | grep cwpsrv à la recherche de processus auxiliaires inattendus, ou encore utiliser strings /usr/local/cwpsrv/bin/cwpsrv | grep X-Ngx-Integrity pour repérer les noms d’en-têtes spécifiques.

Les pistes pour la remédiation

Si un système est compromis, la recommandation est sévère : considérer l’ensemble du serveur comme infiltré. Il faut d’abord tenter de restaurer le binaire original de cwpsrv à partir des sauvegardes que l’installateur crée. Cependant, l’outil efface ces fichiers après une mise à jour réussie, rendant cette étape incertaine. Une seconde démarche essentielle consiste à migrer vers la toute dernière version disponible de CWP et à s’assurer que les commandes de surveillance ne révèlent plus aucune trace de l’en-tête integrity.

Néanmoins, le changement de tous les identifiants du panneau de contrôle est impératif, car la porte dérobée permet théoriquement l’exécution de n’importe quelle commande sur la machine. On doit surveiller l’évolution des campagnes, car l’archive trouvée en provenance du Brésil contenait également des traces de l’Ebury backdoor, un autre type de vulnérabilité qui pourrait avoir été implanté par un acteur différent sur le même hôte.

Sources

Crédits photo