Un backdoor compilé dans HAProxy intercepte le trafic et disparaît des compteurs du load balancer
Rapid7 Labs documente « ted », un implant compilé directement dans HAProxy 2.8.12 chez deux entreprises sud-coréennes, qui intercepte le trafic web et efface ses propres connexions des compteurs du load balancer. Il suppose une compromission préalable du serveur : vérifiez l’intégrité de vos binaires de périphérie et surveillez les compteurs de connexions plutôt que d’attendre un correctif HAProxy.
4 septembre 2026. Rapid7 Labs publie l’analyse d’un implant baptisé ted, compilé directement dans HAProxy 2.8.12 chez deux organisations sud-coréennes. 22 novembre 2024. C’est la date de sortie de la version 2.8.12-0fdb194 dont l’implant est dérivé, soit la plus ancienne compilation possible du binaire modifié. Mi-2025. Les premiers dépôts du toolkit apparaissent sur VirusTotal. Pourquoi c’est important : il ne s’agit pas d’une faille HAProxy à corriger, mais d’un rootkit de périphérie qui intercepte le trafic web et s’efface lui-même des compteurs de connexions du load balancer.
Pas une faille HAProxy, un implant compilé dans le binaire
Rapid7 est explicite sur un point que les titres escamotent souvent : ted n’exploite aucune vulnérabilité de HAProxy. L’installer suppose déjà l’exécution de code sur l’hôte et la capacité de remplacer le binaire en service. C’est ce qui distingue ce dossier d’un simple avis de sécurité — le correctif n’est pas un patch de version, mais la détection d’une compromission déjà installée.
L’implant est compilé à l’intérieur du HAProxy 2.8.12 de la victime. Il s’appuie sur l’API de filtrage native, les pools mémoire internes, le planificateur d’événements et l’infrastructure de gestion de processus du proxy : le trafic légitime continue d’être équilibré normalement, pendant que le code malveillant se fond dans le fonctionnement attendu du logiciel. C’est la profondeur d’intégration — et non la sophistication d’un exploit — qui rend l’implant difficile à repérer.
Le toolkit ne se limite pas à HAProxy. Rapid7 a retrouvé le même code dans des versions trojanisées de crond, agetty, atd, sshd et polkitd. Un keylogger SSH chiffre les mots de passe en clair capturés et les écrit vers un chemin fixe. Un stager ne se déploie que si HAProxy ou cron tourne déjà, vérifie qu’il est root, remplace le binaire crond légitime et lui donne l’horodatage de création de /usr/bin/ssh pour brouiller les audits. Il efface ensuite les mots-clés tmp, wget, cron et crond de l’historique bash de root et de six journaux système, dont auth.log et audit/audit.log.
Un canal de commande qui disparaît des compteurs
Le mécanisme de commande et de contrôle (C2) est la partie la plus remarquable du dossier. Une requête vers un chemin d’image précis fait basculer le filtre en mode C2. L’implant décrémente alors les compteurs de connexions actives de HAProxy, ce qui retire la connexion des statistiques du load balancer, écrit le corps de la commande dans un tube nommé sous /tmp, puis remet le canal à zéro : il ne reste rien à transférer, et la commande s’arrête au niveau du proxy. Ni les journaux du backend ni les statistiques du load balancer ne conservent trace de l’échange.
La réponse revient sur la socket brute sous un en-tête HTTP/1.0 200 OK, ce qui la fait ressembler à du trafic web ordinaire. Par ce canal, l’opérateur peut déclencher des beacons, téléverser et télécharger des fichiers, exécuter des commandes shell et remplacer la configuration de l’implant.
Seules les requêtes qui franchissent quatre contrôles reçoivent une page modifiée : présence d’un User-Agent, correspondance avec une règle combinant un motif d’URL et de referer, puis soit une adresse cliente sur liste blanche — vérifiée à l’adresse exacte et au niveau /24 — soit une clé d’opérateur dans l’en-tête Accept-Language qui court-circuite entièrement le filtrage par adresse. À la sortie, l’implant réécrit le type et la longueur du contenu, force le statut à 200 et supprime l’en-tête Accept-Ranges pour empêcher un client de demander des plages d’octets et de remarquer le changement de taille.
L’ombre nord-coréenne et la porte d’entrée groupware
Rapid7 attribue le toolkit, avec une confiance moyenne, à des acteurs étatiques nord-coréens — le billet est classé « DPRK APTs ». Les deux victimes documentées appartiennent aux secteurs automobile et médias sud-coréens, deux cibles récurrentes des groupes liés à Pyongyang. Rapid7 précise néanmoins que « des preuves supplémentaires sont nécessaires » pour une attribution définitive.
Sur la porte d’entrée, les analystes n’ont pas établi de chronologie. Leur hypothèse — une compromission initiale via un portail groupware exposé, cette classe d’outils de collaboration d’entreprise très répandue en Corée — s’appuie sur les travaux d’ENKI, qui ont documenté Kimsuky compromettant un éditeur de groupware par une faille de serveur de messagerie, avec une variante de la famille Gomir.
Cette chaîne d’entrée est cohérente avec le mode opératoire du groupe : une première compromission discrète, puis l’installation d’implants de persistance profonde dans des binaires système et de périphérie. Le curlRAT associé émet un beacon toutes les 12 heures par défaut, et passe à un intervalle de 30 secondes quand l’opérateur active un drapeau ; il s’interrompt sauf s’il trouve un fichier marqueur indiquant que l’hôte est virtualisé.
Détecter un proxy trojanisé
Faute de correctif à appliquer, la réponse est une posture d’intégrité et de surveillance. Les indicateurs publiés par Rapid7 donnent une première liste concrète : les domaines img.monderhouse[.]space, img.smartnords[.]site, img.darklights[.]store, img.responsive.pstatic[.]autos, img.socialteams[.]store et img.worksongo[.]store, ainsi que les fichiers ~/cache/haproxy-1000.cache et /var/lib/sshd/c8c68e629bba773.
# Vérifier l'intégrité du binaire HAProxy (RPM)
rpm -V haproxy
# Comparer l'empreinte du binaire en service à celle du dépôt
sha256sum /usr/sbin/haproxy
# Rechercher les fichiers marqueurs et chemins d'implant documentés
ls -la ~/cache/haproxy-1000.cache /var/lib/sshd/c8c68e629bba773 2>/dev/null
# Surveiller les compteurs de connexions anormaux
echo "show info" | socat stdio /run/haproxy/admin.sock | grep -i cur La surveillance doit cibler les anomalies de compteurs autant que les binaires. Un HAProxy dont le nombre de connexions actives décroît sans raison pendant un échange, ou dont les statistiques ne correspondent pas aux journaux du backend, mérite un audit d’intégrité. Les organisations qui gèrent leurs proxies de périphérie comme une infrastructure immuable — binaires signés, AIDE ou équivalent en alerte, mise à jour par images — réduisent mécaniquement la surface d’un tel implant.
Un précédent : XZ Utils et la montée des implants de chaîne d’approvisionnement
ted s’inscrit dans une tendance que les équipes d’infrastructure ont appris à redouter. En mars 2024, le backdoor XZ Utils — injecté dans une bibliothèque de compression présente sur la quasi-totalité des distributions Linux — a failli ouvrir une porte SSH universelle avant d’être découvert par hasard. Le point commun est frappant : dans les deux cas, la compromission ne passe pas par une faille exploitable à distance, mais par la substitution d’un composant de confiance au cœur d’une infrastructure de production.
La leçon est structurelle. Un proxy, un démon système ou une bibliothèque compilée localement échappe aux contrôles classiques qui visent les applications web et leurs correctifs. La défense qui fonctionne n’est pas le patch — il n’y a rien à patcher — mais l’intégrité : signatures, empreintes, build reproductible, et une surveillance capable de détecter qu’un binaire ou un compteur se comporte autrement qu’avant. Rapid7 note d’ailleurs que le stager efface ses traces des journaux après installation, ce qui rend la détection a posteriori plus fiable que la traque en direct.
Verdict
Si vous exploitez un HAProxy en périphérie, traitez ce dossier comme un signal d’intégrité, pas comme un avis de correctif : vérifiez les empreintes de vos binaires, déployez une surveillance d’intégrité des fichiers et alertez sur les baisses anormales de compteurs de connexions.
Si vous exposez un portail groupware ou un serveur de messagerie d’entreprise, durcissez-le en priorité : c’est la porte d’entrée la plus plausible du toolkit, et la compromission initiale précède toujours l’installation de ted.
Dans tous les cas, ne cherchez pas de patch HAProxy : il n’y en a pas, car la faille n’est pas dans HAProxy. C’est la compromission préalable qu’il faut empêcher, puis détecter.
Références
- Rapid7 Labs — DPRK APTs: Ted backdoor and curlRAT target South Korean media and automotive sectors
- The Hacker News — New Ted Backdoor Hides Inside Victims’ Own HAProxy Builds to Intercept Web Traffic
- ENKI — Analysis of Kimsuky’s attack on a South Korean groupware vendor using a new Gomir family variant