Ricevi DeafLetter
Una selezione settimanale di segnali, vulnerabilità e guide. Gli avvisi critici restano facoltativi.
Puoi cancellarti in ogni momento. Privacy policy.
Attori della minaccia legati alla Corea del Nord hanno pubblicato provider Terraform malevoli nel HashiCorp Registry e moduli Go su siti falsi, estendendo la campagna Graphalgo da npm e PyPI a un vettore più vicino alle credenziali di produzione cloud. La scoperta, pubblicata il 22 settembre 2026 da Aikido, documenta un meccanismo di attivazione condizionale basato sull'hash SHA256 di variabili runtime e un doppio canale di comando e controllo che sfrutta blockchain Ethereum e Slack.
- Almeno due provider Terraform malevoli (gocommunity-io/dockerd, kreuzwenker/docker) e due moduli Go (gocommunity.io/orderedbtree, gogets.dev/btreex) sono stati pubblicati per distribuire malware Go, secondo il report di Aikido.
- L'attivazione richiede che SHA256(containerName + networkID) corrisponda all'hash specifico b9966e3762e9a0d5d263b8cb3cca07294f81af9714d40ddf4628cb85d74e8ad5, che funge da chiave AES per decifrare il payload nascosto in un file .sqlite3 apparentemente innocuo.
- Il doppio canale C2 combina uno smart contract su Arbitrum Sepolia (indirizzo 0xAD02b5cDE693529d3bdA0266299501ad0193036C) con workspace Slack dedicati, con comunicazione cifrata tramite scambio di chiavi effimere.
- Il malware condivide infrastruttura con la campagna Graphalgo documentata da ReversingLabs a febbraio 2026: stessa chiave pubblica Ed25519, stessi indirizzi blockchain e stessi workspace Slack, secondo le evidence tecniche pubblicate.
Come funziona l'attivazione condizionale
Il provider malevolo kreuzwenker/docker è un typosquat del legittimo kreuzwerker/docker, che ha registrato circa 56 milioni di download. La differenza di una sola lettera nel nome espone gli utenti a un pacchetto che, all'apparenza, replica la funzionalità del provider ufficiale ma contiene codice aggiunto nel file resource_docker_container_funcs.go.
L'attivazione non è immediata: il malware calcola SHA256 della concatenazione di due variabili Terraform, containerName e networkID, e confronta il risultato con l'hash prefissato b9966e3762e9a0d5d263b8cb3cca07294f81af9714d40ddf4628cb85d74e8ad5. Solo quando il valore corrisponde, l'hash viene usato come chiave AES per decifrare il percorso del payload nascosto all'interno del file examples/resources/docker_container/import-resource.sqlite3.
Questa architettura rende inefficace la scansione statica: senza le variabili runtime corrette, il file .sqlite3 appare come dati di esempio legittimi e il codice malevolo resta inerte. Il malware è quindi progettato per attivarsi in ambienti specifici, presumibilmente quelli degli sviluppatori contattati tramite le campagne di social engineering "fake interview" tipiche degli operatori DPRK.
Il doppio canale C2: blockchain come dead drop, Slack per il controllo
Una volta attivato, il malware stabilisce due canali di comunicazione asincroni. Il primo è uno smart contract sulla rete di test Arbitrum Sepolia, indirizzo 0xAD02b5cDE693529d3bdA0266299501ad0193036C, usato come dead drop blockchain: l'attore inserisce comandi crittografati nella blockchain, dove rimangono accessibili ma non direttamente riconducibili a un server C2 tradizionale.
Il secondo canale sfrutta API Slack con bot token. Il check-in iniziale avviene nel canale frontend-devs del workspace portfolio-devs.slack.com; le comunicazioni successive migrano su portfolio-testers.slack.com nel canale qa-announcements. Il malware genera coppie di chiavi effimere e utilizza chiavi condivise per decifrare i messaggi destinati al proprio client, scartando quelli per altri endpoint infetti.
"The C2 mechanism is further indication that this malware is part of a targeted operation. The threat actor's ability to issue commands is bottlenecked because all clients consume all messages and no-op when they fail to decrypt messages intended for other clients" — Oliver Smith, Aikido
Il polling è misurato: ogni 3 secondi per la blockchain, ogni 10 secondi per Slack. Il canale qa-announcements conteneva 1240 messaggi cifrati dal 16 luglio 2026; il contratto blockchain aveva registrato 1402 transazioni dal 6 agosto 2026, secondo i dati di Aikido.
L'infrastruttura condivisa con Graphalgo e l'estensione a Go
Il malware è un port Go della campagna Graphalgo, documentata originariamente da ReversingLabs a febbraio 2026 su npm e PyPI. La continuità è verificata attraverso elementi concreti: la stessa chiave pubblica Ed25519 (302a300506032b656e032100bad013df6eec5d686f4cc8551e0a5c87a0135164bdd1dafb1c75141d1b526702), già riscontrata in payload npm da aprile 2026; gli stessi indirizzi smart contract; gli stessi workspace Slack.
Gli attori hanno costruito un ecosistema falso per sostenere la distribuzione: siti come gogets.dev e gocommunity.io simulano registry Go legittimi, con moduli che richiedono input specifici per l'attivazione. Il modulo gogets.dev/btreex, ad esempio, richiede un valore intero price preciso e usa commit backdatati a novembre 2025 per apparire consolidato.
Nei messaggi di check-in sono stati identificati 18 hostname unici: 3 Windows, 5 Linux, 10 macOS. Il primo messaggio nel canale Slack è datato 16 luglio 2026, da un dispositivo Windows con hostname Frank e username Frank1. Tuttavia, il dossier non specifica se questi 18 hostname si riferiscano esclusivamente al vettore Terraform o includano vittime della campagna Graphalgo su npm.
Cosa fare adesso
- Ispezionare i lock file .terraform.lock.hcl: verificare che i provider dichiarati corrispondano esattamente a nomi ufficiali, senza typosquatting di una sola lettera come kreuzwenker al posto di kreuzwerker.
- Vincolare i download di provider a registry approvati e, dove possibile, a mirror interni verificati, riducendo la superficie di esposizione a pacchetti pubblicati direttamente nel HashiCorp Registry.
- Implementare il pinning di hash per i provider Terraform, confrontando sistematicamente gli hash attesi con quelli effettivamente scaricati nel workflow CI/CD.
- Monitorare il traffico in uscita verso endpoint Slack API non autorizzati e verso reti blockchain di test come Arbitrum Sepolia in ambienti di build e produzione.
Attribuzione e limiti del dossier
Il report di Aikido e le citazioni di Karlo Zanki per Socket convergono nel collegare l'operazione agli attori DPRK, ma con gradazioni diverse. Zanki, citato da The Hacker News, ha affermato: "Troppo presto per concludere con sicurezza che attori DPRK usino i registry Terraform come nuova tattica, ma la presenza in due campagne separate rende la coincidenza meno probabile".
Il dossier non identifica con certezza il gruppo DPRK specifico: Graphalgo presenta sovrapposizioni operative con TraderTraitor, Jade Sleet e Famous Chollima, ma l'attribuzione a un APT preciso non è definitiva. Non è noto il metodo di pubblicazione nel HashiCorp Registry (account compromesso o creato ex novo), né quanti download abbiano effettivamente ricevuto i provider malevoli prima della rimozione.
Il payload finale cifrato, recuperato ma non decifrato da SafeDep/JFrog, mantiene incerta la funzionalità esatta dello stadio successivo all'attivazione. Il malware raccoglie informazioni di sistema (hardware, sistema operativo, hostname, disponibilità node) ma il dossier non specifica la natura dei dati ulteriormente esfiltrati.
L'estensione dai package manager tradizionali (npm, PyPI) al HashiCorp Registry segna un escalation significativa: i provider Terraform operano con privilegi elevati sull'infrastruttura cloud, con accesso diretto a credenziali AWS e stati di deployment. L'attivazione condizionale, in questo contesto, non è una complicazione tecnica superflua: è il requisito che permette al malware di attraversare intere pipeline di sicurezza senza lasciare tracce analizzabili staticamente.
Fonti
- https://thehackernews.com/2026/09/attackers-use-malicious-terraform.html
- https://www.aikido.dev/blog/graphalgo-terraform-go-modules
- https://gbhackers.com/terraform-lock-files/
- https://kudelskisecurity.com/research/how-dprks-contagious-interview-campaign-targets-developers
- https://thehackernews.com/2026/02/lazarus-campaign-plants-malicious.html
- https://thehackernews.com/2026/04/new-wave-of-dprk-attacks-uses-ai.html#graphalgo-uses-fake-companies-to-drop-rat
- https://thehackernews.com/2026/09/malicious-npm-package-indexed-btree-hid.html
- https://thehackernews.com/2026/09/jade-sleet-linked-to-indian-it-provider.html
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.
Fonti
Ricevi DeafLetter
Una selezione settimanale di segnali, vulnerabilità e guide. Gli avvisi critici restano facoltativi.
Puoi cancellarti in ogni momento. Privacy policy.