Contexte et découverte

Des chercheurs en cybersécurité ont identifié, en septembre 2026, la première utilisation du registre centralisé de HashiCorp comme vecteur de diffusion d’un logiciel malveillant écrit en Go. Le code malveillant est publié sous forme de deux modules Go (gocommunity-io/dockerd avec 222 téléchargements et kreuzwenker/docker avec 1 449 téléchargements) ainsi que deux providers Terraform, tous hébergés sur le même registre. Cette campagne s’inscrit dans la continuité du groupe Graphalgo, déjà lié à des acteurs nord‑coréens, et rejoint des opérations antérieures comme TraderTraitor qui utilisait des fichiers de verrouillage Terraform.

Mécanisme de distribution et vecteurs

Les acteurs malveillants ciblent des développeurs via LinkedIn, Facebook ou des offres d’emploi fictives dans le secteur Web3. Ils incitent les victimes à cloner un dépôt GitHub « benin », puis à ajouter une dépendance npm ou PyPI contenant le charge utile. Le même schéma apparaît avec les packages npm récemment signalés (indexed-btree, mathsbase, crypto-hasher, etc.). Une fois la dépendance intégrée, le code Go s’installe automatiquement lors de la compilation du provider Terraform, profitant de la confiance accordée aux packages du registre HashiCorp.

Architecture du malware et canaux C2

Le malware possède une architecture hybride : il collecte des informations système (CPU, OS, hostname, disponibilité du nœud) puis les transmet à un canal Slack via l’API conversations.history, interrogée toutes les 10 secondes. En parallèle, il maintient un canal de command‑and‑control basé sur la blockchain, utilisant un contrat intelligent codé en dur sur le testnet Arbitrum Sepolia d’Ethereum. Le client interroge le contrat toutes les trois secondes, récupère des commandes chiffrées asymétriquement et les exécute soit en Go, soit en JavaScript. La décryption ne s’active que lorsqu’une opération cryptographique précise (résolution d’un système linéaire avec une matrice spécifique) est réalisée, ce qui limite l’exécution à des environnements ciblés. Le malware génère également une paire de clés éphémère, combine sa clé privée avec deux clés publiques d’acteurs pour créer une clé partagée, assurant que les communications C2 restent invisibles entre les hôtes infectés.

Implications et contre‑mesures

Cette chaîne d’attaque montre que les registres de fournisseurs d’infrastructure-as-code peuvent devenir des points d’entrée critiques, surtout lorsqu’ils distribuent des artefacts compilés. La double utilisation de Slack et de la blockchain augmente la résilience du C2, rendant la détection par les systèmes de prévention traditionnels plus difficile. Les organisations doivent renforcer la validation des dépendances Terraform, appliquer des politiques de provenance stricte (ex. : signatures de packages), et surveiller les appels réseau inhabituels vers les API Slack et les nœuds Ethereum. Enfin, la communauté doit partager les empreintes de téléchargement et les hash des packages compromis afin de limiter la propagation future.