Par Arthur Dekeyser
En résumé
Un honeypot a reçu une session complète d’agent Opencode le 30 août.
La requête exposait des chemins Windows, des sorties de fichiers et onze outils locaux.
Un endpoint malveillant pourrait demander des commandes si l’agent autorise les outils automatiquement.
Le signal : Un honeypot a reçu 210 requêtes Opencode en 91 secondes, avec un manifeste de 11 outils et des données issues d’un poste Windows.
Vous appréciez ce genre d'analyse ?
Chaque mardi et vendredi, l'essentiel en business & IA décryptées en 5 minutes. Gratuit, sans engagement.
+11 000 fondateurs abonnés
Un honeypot exposé a reçu, le 30 août 2026, 210 requêtes en 91 secondes. Elles contenaient un corps de 224 Ko et un historique de 88 messages provenant d’Opencode, un agent de programmation en terminal. La session venait d’un environnement Windows. Elle a été relayée par une adresse China Unicom située dans le Hebei. L’utilisateur demandait, en chinois, une analyse du style de deux romans présents dans son dossier Downloads. L’agent avait déjà listé le répertoire, copié les fichiers dans %TEMP%, extrait leur contenu et lancé un script Python. Plusieurs commandes PowerShell figuraient dans l’historique. La requête finale contenait le mot « continuer » et tout le manifeste d’outils.
Le backend usurpé portait le nom fofa-ds-NNNNN, présenté comme un modèle DeepSeek. Le honeypot répondait pourtant sur plusieurs interfaces non authentifiées, dont /v1/models, /v1/chat/completions, une interface de type Ollama et un serveur MCP. Mis en ligne le 18 juillet, il annonçait quatre modèles locaux ordinaires. Le 26 août, un client Opencode/0.2.0 a testé des alias comme auto/best-coding, auto/claude-opus et auto/best-reasoning. Le 27 août, un contrôle nommé NodeHealthCheck/1.0 a demandé fofa-opus-NNNNN. Le 30 août, trois alias ont été validés depuis plusieurs points. Le jeton Authorization: Bearer free figurait sur 247 des 248 requêtes observées. Voir Opencode.
Le schéma observé suggère une collecte structurée. Le préfixe fofa renvoie à FOFA, moteur de recherche d’Internet, tandis que les suffixes ds, opus et sol évoquent différents fournisseurs ou modèles. Le nombre masqué correspondait aux octets de l’adresse publique du honeypot. Le même schéma a été utilisé depuis un hôte Vultr, une sortie Cloudflare, le relais China Unicom et un contrôleur de santé. L’observation soutient une chaîne plausible, sans identifier son opérateur. Un scanner aurait indexé des endpoints exposés. Un intermédiaire aurait ajouté des alias. Une liste de modèles gratuits aurait ensuite propagé cette configuration vers des agents ou des relais. Le client Go-http-client/2.0 est compatible avec un intermédiaire écrit en Go, sans désigner de produit précis.
Les outils transmis ne transportaient pas seulement du texte. La requête indiquait onze fonctions locales, dont bash, read, write et edit, avec tool_choice: auto. Un endpoint contrôlé par un opérateur pouvait répondre avec une demande d’appel de fonction. Cette réponse pouvait viser une commande PowerShell ou une lecture de fichier. Un fichier .aws/credentials ou une clé SSH aurait ainsi pu être demandé, si l’agent avait accès au chemin concerné. La documentation actuelle d’Opencode indique que l’agent de construction autorise généralement bash, read et edit/write sans validation. La configuration exacte de la version observée peut toutefois différer. Les permissions peuvent être durcies, tandis que --auto réduit les barrières d’approbation. Consulter les permissions Opencode.
Le honeypot a refusé d’exécuter quoi que ce soit. Il a répondu aux 210 requêtes avec une phrase fixe et finish_reason: stop. Les répétitions s’expliquent probablement par un relais qui attendait un flux ou rejetait une réponse non interprétable. Cette décision appartenait au honeypot, pas à l’agent connecté. La session prouve que plusieurs commandes PowerShell avaient été exécutées avant l’arrivée de la requête. Elle ne prouve pas qu’une commande hostile aurait été acceptée sans validation humaine. Une approbation éventuelle aurait eu lieu dans l’interface locale, absente des échanges réseau. L’analyse établit donc une capacité possible, pas une compromission démontrée. Elle montre surtout qu’un endpoint de modèle participe au contrôle d’un agent équipé d’outils.
L’incitation économique reste forte des deux côtés. Un service compatible avec l’interface OpenAI et une capacité d’inférence suffisante peuvent attirer certains clients. FOFA et Shodan servent à découvrir gratuitement des services exposés. Les utilisateurs recherchent, eux, un accès gratuit à des modèles coûteux. Une configuration d’agent peut tenir dans une seule ligne baseURL. Le honeypot n’annonçait aucun modèle recherché, mais il est passé du premier balayage à une session réelle en six semaines. Quatre jours ont séparé son intégration apparente à un groupe d’endpoints et l’arrivée du trafic d’agent. Un endpoint malveillant pourrait produire des réponses plausibles pendant des jours ou des semaines, puis réserver un appel d’outil à une session choisie. L’auteur présente ce scénario comme une hypothèse, sans observation d’une exploitation.
Gardez un coup d'avance en IA et tech.
Chaque mardi et vendredi, l'essentiel en business & IA décryptées en 5 minutes. Zéro spam.
+11 000 fondateurs abonnés