đ Contexte
PubliĂ© le 22 septembre 2026 par Aikido Security, cet article prĂ©sente une analyse technique dĂ©taillĂ©e d’une extension de la campagne Graphalgo, initialement rapportĂ©e par ReversingLabs en fĂ©vrier 2026. C’est la premiĂšre fois que des malwares sont distribuĂ©s via des providers Terraform.
đŠ Vecteurs de distribution
L’acteur malveillant a utilisĂ© quatre packages compromis :
Providers Terraform :
gocommunity-io/dockerdkreuzwenker/docker(typosquat dekreuzwerker/docker, 56 millions de téléchargements)
Modules Go :
gocommunity.io/orderedbtree(publié le 11 août 2026)gogets.dev/btreex(publié le 8 septembre 2026, avec commits backdatés à novembre 2025)
âïž MĂ©canisme d’activation
Les providers Terraform contiennent des points d’entrĂ©e cachĂ©s dans resource_docker_container_funcs.go, activĂ©s uniquement lorsque le hash SHA256 de la concatĂ©nation des variables containerName et networkID correspond Ă une valeur spĂ©cifique (b9966e3762e9a0d5d263b8cb3cca07294f81af9714d40ddf4628cb85d74e8ad5). Ce hash sert de clĂ© AES pour dĂ©chiffrer un chemin de fichier ZIP (import-resource.sqlite3), dĂ©compresser et exĂ©cuter du code Go via go run ..
Le module gogets.dev/btreex utilise une logique similaire, activée par une valeur entiÚre de prix spécifique dans un objet traité.
đ€ RAT second stage
Le RAT Go de second niveau dispose de deux canaux C2 :
- Slack : collecte d’informations systĂšme (OS, hostname, username, prĂ©sence de
node) envoyĂ©es au canalfrontend-devsdu workspaceportfolio-devs.slack.com. Les communications ultĂ©rieures transitent versportfolio-testers.slack.comdans le canalqa-announcements. - Blockchain : utilisation d’un smart contract Ethereum sur le testnet Arbitrum Sepolia (
0xAD02b5cDE693529d3bdA0266299501ad0193036C) pour récupérer et émettre des commandes chiffrées via les méthodessetCPubKey,serviceData1etserviceData2.
Le malware génÚre une paire de clés éphémÚres et utilise la clé publique hardcodée 302a300506032b656e032100bad013df6eec5d686f4cc8551e0a5c87a0135164bdd1dafb1c75141d1b526702 pour chiffrer les communications. Il interroge la blockchain toutes les 3 secondes et Slack toutes les 10 secondes.
đ Infrastructure et faux Ă©cosystĂšmes Go
L’acteur a créé deux faux Ă©cosystĂšmes Go (gogets[.]dev et gocommunity[.]io) avec des sites web associĂ©s, enregistrĂ©s dans les jours suivant la crĂ©ation des organisations GitHub contrĂŽlĂ©es. Ces domaines servent Ă lĂ©gitimiser les packages malveillants.
Comptes GitHub impliqués : gocommunity-io, go-pack-tech, kreuzwenker, victormmpp, gogets-dev, markcary3, steveb082, go-community-admin.
đ Victimologie
L’analyse des messages Slack rĂ©vĂšle 18 hostnames uniques sur 725 messages : 3 victimes sous Windows, 5 sous Linux, 10 sous macOS. Les tests initiaux ont Ă©tĂ© effectuĂ©s depuis un appareil Windows avec le hostname Frank et l’utilisateur Frank1 Ă partir du 16 juillet 2026.
đ° Nature de l’article
Il s’agit d’une analyse technique approfondie publiĂ©e par Aikido Security, visant Ă documenter une campagne de supply chain active, fournir des IoCs exploitables et alerter la communautĂ© DevOps/Go sur un nouveau vecteur d’attaque via Terraform.
đ§ TTPs et IOCs dĂ©tectĂ©s
TTP
- T1195.001 â Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1204.002 â User Execution: Malicious File (Execution)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1573.001 â Encrypted Channel: Symmetric Cryptography (Command and Control)
- T1102.001 â Web Service: Dead Drop Resolver (Command and Control)
- T1102 â Web Service (Command and Control)
- T1082 â System Information Discovery (Discovery)
- T1036.005 â Masquerading: Match Legitimate Name or Location (Defense Evasion)
- T1553 â Subvert Trust Controls (Defense Evasion)
- T1059.004 â Command and Scripting Interpreter: Unix Shell (Execution)
IOC
- Domaines :
gocommunity.ioâ VT · URLhaus · ThreatFox - Domaines :
gogets.devâ VT · URLhaus · ThreatFox - Domaines :
portfolio-devs.slack.comâ VT · URLhaus · ThreatFox - Domaines :
portfolio-testers.slack.comâ VT · URLhaus · ThreatFox - Domaines :
mediumstar.slack.comâ VT · URLhaus · ThreatFox - SHA256 :
b9966e3762e9a0d5d263b8cb3cca07294f81af9714d40ddf4628cb85d74e8ad5â VT · MalwareBazaar - SHA256 :
5f892a5424e88a21a3eb3d7f82ebf04d8ac31cdb19ada25153be4165df977d0fâ VT · MalwareBazaar - SHA256 :
ab01686d87565250fc4989faddb877d793667b07ec217a61cbd798f5695d62f5â VT · MalwareBazaar - Fichiers :
import-resource.sqlite3 - Fichiers :
btreex.sql - Fichiers :
resource_docker_container_funcs.go - Chemins :
/internal/provider/resource_docker_container_funcs.go - Chemins :
examples/resources/docker_container/import-resource.sqlite3
â ïž Ă propos de ces IOC â ils sont extraits automatiquement de l’article original le 23 septembre 2026 et n’ont pas fait l’objet d’une vĂ©rification externe. Un indicateur peut avoir Ă©tĂ© rĂ©attribuĂ© depuis : une IP de C2 peut redevenir un service lĂ©gitime, un domaine sinkholĂ© peut changer de propriĂ©taire. Aucune garantie d’exactitude ni d’actualitĂ© â contrĂŽlez leur validitĂ© avant tout usage opĂ©rationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- Graphalgo RAT (rat)
đą Indice de vĂ©rification factuelle : 87/100 (haute)
- â aikido.dev â source reconnue (Rösti community) (20pts)
- â 15355 chars â texte complet (fulltext extrait) (15pts)
- â 13 IOCs dont des hashes (15pts)
- â 2/6 IOCs confirmĂ©s (MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (12pts)
- â 10 TTPs MITRE identifiĂ©es (15pts)
- â date extraite du HTML source (10pts)
- ⏠aucun acteur de menace nommé (0pts)
- ⏠pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
gocommunity.io(domain) â VT (3/89 dĂ©tections)gogets.dev(domain) â VT (3/89 dĂ©tections)
đ Source originale : https://www.aikido.dev/blog/graphalgo-terraform-go-modules