4 min de lecture
~6 minutes
Aikido a trouvé deux providers Terraform et deux modules Go piégés, rattachés à la campagne Graphalgo. L’un d’eux imite le provider Docker le plus populaire du registre, et son payload ne se déchiffre que sur une machine précise. Le malware se pilote ensuite par Slack et par un smart contract Ethereum.
Un n à la place d’un r
Le provider Docker de kreuzwerker pèse 56 millions de téléchargements sur le registre Terraform. Presque tous les dépôts d’infrastructure qui pilotent des conteneurs le déclarent quelque part. Début septembre, un provider nommé kreuzwenker/docker est apparu à côté. Une lettre change, et le reste du nom est identique.
Aikido l’a repéré, avec un second provider, gocommunity-io/dockerd, et deux modules Go : gocommunity.io/orderedbtree (publié le 11 août) et gogets.dev/btreex (le 8 septembre). Les quatre se rattachent à Graphalgo, une campagne documentée en février par ReversingLabs, avec les mêmes clés publiques et la même infrastructure. Aikido ne désigne aucun acteur. The Hacker News retient l’hypothèse d’acteurs nord-coréens, sur la seule base de ces recoupements avec la campagne d’origine
Le typosquatting, on connaît. Ce qui me gêne, c’est l’endroit où le code atterrit. Un provider Terraform est un binaire que le client télécharge puis exécute pendant plan et apply, sur un poste ou un runner qui détient déjà les identifiants cloud, l’accès au dépôt et les secrets de déploiement. Autant dire le meilleur siège de la maison.
Note du PandaRedacteur : on passe des années à durcir le pipeline applicatif, et on laisse un binaire téléchargé sur un registre public s’exécuter avec les clés du royaume. L’IaC, c’est de la supply chain avec un meilleur service de communication.
Une charge qui attend le bon invité
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
Note du PandaRedacteur : les attaquants ont compris que le meilleur domaine de commande, c’est celui que l’entreprise a déjà payé et whitelisté. A quand un malware altassian.net (ah oui ca existe deja…)
Ce que montrent les traces laissées
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
Analyse STRIDE
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
Impact potentiel
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
Ce que je ferais si j’etais vous….
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
Note du PandaRedacteur : « on scanne notre Terraform » est vrai, et ne sert à rien contre un provider qui n’est pas celui que vous croyez. Le scan lit ce que vous écrivez ; l’attaque se cache dans ce que vous téléchargez.
Indicateurs à chercher
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
La famille de défauts
Mes analyses sortent en avant-première sur ma newsletter Substack, avant d'être publiées ici. Pour les recevoir dès leur sortie, abonnez-vous ; vous pouvez aussi relire cette analyse sur Substack et la commenter.
📚 Quelques références pour aller plus loin
- Aikido : Graphalgo campaign spreads to Terraform providers and Go modules
- The Hacker News : Attackers Use Malicious Terraform Providers to Distribute Go Malware
- tl;dr sec #349
- Provider Docker légitime : kreuzwerker/docker sur le registre Terraform
- Shai-Hulud vague 3 : KeyV et ChainDrop
- OpenVSX : les extensions jumelles qui visent le CI/CD
- Plugin4Shell : le pinning par SHA ne vérifiait rien
