Malware Go diffuso tramite provider Terraform malevoli

Malware Go diffuso tramite provider Terraform malevoli

Provider Terraform malevoli nel registry di HashiCorp hanno distribuito malware basato su Go, secondo i ricercatori, in un attacco alla supply chain collegato ad attori nordcoreani.

I ricercatori di sicurezza hanno reso noto una campagna malware basata su Go che utilizza provider Terraform malevoli e moduli Go pubblicati attraverso l'HashiCorp Terraform Registry, segnando la prima volta che attori malevoli usano questo repository centralizzato come vettore di distribuzione di payload dannosi. Secondo Aikido, i due provider Terraform e i due moduli Go coinvolti sono gocommunity-io/dockerd (222 download), kreuzwenker/docker (1.449 download), gocommunity.io/orderedbtree e gogets.dev/btreex. Il malware distribuito attraverso questi pacchetti mostra sovrapposizioni con Graphalgo, una campagna documentata per la prima volta da ReversingLabs a febbraio e attribuita ad attori nordcoreani (DPRK).

Gli attaccanti contattano sviluppatori potenziali su LinkedIn, Facebook o forum di lavoro fingendosi aziende Web3 inesistenti, poi chiedono loro di completare un compito di programmazione fornendo un repository GitHub benigno che introduce comportamenti malevoli tramite una dipendenza pubblicata su npm o PyPI. L'ultima scoperta coincide con l'identificazione di un nuovo insieme di pacchetti npm malevoli segnalati da Checkmarx, JFrog e SafeDep, tra cui indexed-btree, mathsbase, mathmain, math-universe, modern-events, quick-events, crypto-hasher, events-router, sort-btree, graphcore-js e graphlib-js. L'analisi mostra che in alcuni casi l'esecuzione del malware si attiva solo quando viene eseguita una specifica operazione crittografica, segno distintivo di un'operazione mirata.

JFrog ha descritto il comportamento del payload: si decripta solo quando la vittima risolve un sistema lineare con una specifica matrice, riceve ordini da uno smart contract sulla testnet Ethereum Sepolia, mantiene un secondo canale di comando aperto su Slack e si nasconde dietro conteggi di download fabbricati da una fattoria di worker GitHub Actions. L'impianto è cifrato con crittografia asimmetrica, quindi le sue funzioni esatte restano sconosciute. Contatta un canale Slack e interroga l'endpoint conversations.history ogni 10 secondi, agendo su tre tipi di pacchetto: start packet per iniziare un trasferimento di file, chunk packet per fornire il contenuto del file, ed end packet per unire i chunk. SafeDep ha notato che il percorso blockchain decripta dati remoti, scrive un programma chiamato subwatcher e lo avvia con Node.js, ma i ricercatori hanno recuperato l'impianto e non il codice successivo consegnato attraverso questi canali, quindi non possono dire quali compiti abbia eseguito un operatore su una vittima.

Aikido ha scoperto che il malware distribuito attraverso i provider Terraform e i moduli Go è un port in Go che condivide l'infrastruttura blockchain e Slack con la versione npm. Ha doppi canali di command-and-control (C2) che usano dead drop su blockchain e un token bot Slack. Dopo l'infezione, raccoglie informazioni di sistema tra cui attributi hardware, sistema operativo, hostname e se Node.js è disponibile, poi invia quei dati a un canale Slack controllato dagli attaccanti tramite l'API. Il ricercatore di sicurezza Oliver Smith ha spiegato che dopo la chiamata di check-in, il malware genera una coppia di chiavi pubblica-privata effimera e la combina con due chiavi pubbliche degli attaccanti per creare chiavi condivise, consentendo la comunicazione attraverso canali condivisi senza esporre i messaggi C2 tra host infetti. Il C2 basato su blockchain recupera dati da uno smart contract Ethereum sulla testnet Arbitrum Sepolia usando un indirizzo di contratto hard-coded e interroga per comandi cifrati ogni tre secondi, eseguendoli come codice Go o JavaScript. Smith ha detto che questo meccanismo è un'ulteriore indicazione di un'operazione mirata perché tutti i client consumano tutti i messaggi e non fanno nulla quando non riescono a decriptare messaggi destinati ad altri client.

Il ricercatore di sicurezza di Socket Karlo Zanki ha detto a The Hacker News che Graphalgo continua a seguire lo stesso playbook operativo, probabilmente usando finti colloqui di lavoro come principale vettore di accesso iniziale. L'esecuzione è vincolata da un controllo di base per dati probabilmente forniti dal componente front-end, il che potrebbe suggerire un'attività strettamente mirata ma più probabilmente ostacola l'analisi se i ricercatori scoprono il payload backend senza il corrispondente front end. L'operazione Graphalgo originale mostrava la stessa caratteristica.

La comparsa dei provider Terraform è una tattica nuova, ma Aikido ha aggiunto che forse non sorprende perché può fornire un percorso più diretto verso credenziali di produzione critiche, e mostra che l'attore malevolo sta espandendo la campagna oltre npm e PyPI. Non è la prima volta che avversari nordcoreani usano provider Terraform per la distribuzione di malware. SentinelOne ha riferito la scorsa settimana che il cluster di attività malevole TraderTraitor ha usato file lock di Terraform weaponizzati per distribuire backdoor basate su Rust da registry di provider Terraform personalizzati controllati dagli attaccanti. Zanki ha detto che è troppo presto per concludere con certezza che attori collegati alla DPRK stiano usando i registry Terraform come nuova tattica di distribuzione, ma la loro recente comparsa in due campagne separate rende la coincidenza meno probabile. Ha aggiunto che questi attori sono altamente adattivi e potrebbero adottare i registry Terraform come loro prossimo canale di distribuzione su larga scala.

Separatamente, CloudSEK ha evidenziato un loader JavaScript precedentemente non segnalato chiamato GHAPPIER, distribuito dopo la compromissione di un pacchetto npm legittimo, @dforge-core/dforge-mcp. Al momento non è noto come gli attaccanti abbiano ottenuto accesso all'account del maintainer, sebbene si sospetti che la macchina dello sviluppatore possa essere stata infettata da un'estensione o un pacchetto malevolo. La versione malevola 0.2.21 è rimasta attiva su npm per 35 minuti e 38 secondi il 9 settembre 2026 prima che il maintainer originale annullasse le modifiche e pubblicasse una versione pulita 0.2.22. Lo stesso loader è stato osservato in 65 repository pubblici appartenenti a 22 account distinti. Il ricercatore di CloudSEK Vikas Kundu ha detto che l'operatore ha ottenuto le credenziali memorizzate di uno sviluppatore e poi ha usato quelle credenziali per scrivere in ogni repository in cui quello sviluppatore poteva fare push. Un confronto tra due copie del loader, una dal pacchetto npm e un'altra dal repository di una seconda vittima, ha mostrato che la catena di attacco usa lo stesso host di staging e la stessa richiesta a un dominio Vercel ma differisce nel tag della campagna, ghappier contro g0115. Il secondo payload usa la tecnica NullReceiver per ottenere il suo indirizzo C2 193.247.144[.]38 da un wallet dell'attaccante e presenta la sequenza di byte finale 68656c6c6f6970626f742121 che decodifica in helloipbot!!. Questa attività si sovrappone a una campagna di lunga durata collegata alla Corea del Nord nota come PolinRider.

Anche il progetto Rust ha avvertito di una campagna in corso che prende di mira membri di rust-lang e proprietari di crate popolari, con l'obiettivo di compromettere i loro dispositivi e account per la distribuzione di malware. Adam Harvey, sviluppatore software presso la Rust Foundation, ha detto che gli attaccanti organizzano una videochiamata per qualcosa di positivo come un'opportunità di lavoro, progetto o contratto e poi la usano per indurre l'obiettivo a installare qualcosa come un presunto codec audio mancante o eseguire un comando inserito negli appunti. Creano profili aziendali nuovi ma apparentemente legittimi, incluse presenze plausibili su LinkedIn, per superare un'ispezione superficiale. Il modus operandi si sovrappone alla campagna Contagious Interview legata alla Corea del Nord. Il progetto Rust ha esortato collaboratori e proprietari di crate a esercitare cautela, abilitare l'autenticazione a più fattori e controllare gli account per accessi inattesi.

Per i proprietari di siti web e i team IT, questo gruppo di attacchi alla supply chain è un promemoria che le dipendenze dai registry pubblici non sono automaticamente sicure, anche quando hanno conteggi di download non nulli o appaiono in un repository legittimo. Rivedere il codice di terze parti prima che raggiunga la produzione, fissare le versioni e controllare la cronologia dei publisher restano difese fondamentali. AEU-I, il servizio di consulenza IT e infrastrutturale security-first di AEU Group, aiuta le organizzazioni a introdurre tali revisioni indipendenti delle dipendenze di terze parti e controlli della supply chain senza rivendicare alcun ruolo in queste scoperte.

Come Proteggerti

  1. Se usi Terraform, installa i provider solo dal registry ufficiale di HashiCorp o da un publisher di cui ti fidi già, e non basarti solo sul numero di download.
  2. Durante qualsiasi colloquio di lavoro o test di programmazione non richiesto, non eseguire codice sconosciuto né installare software sul tuo computer; verifica prima l'azienda tramite un sito ufficiale e un canale di contatto separati.
  3. Attiva la verifica in due passaggi (autenticazione a più fattori) per i tuoi account GitHub, npm e di hosting, e controlla la pagina delle attività di accesso recenti per qualsiasi cosa che non riconosci.
  4. Tieni un semplice elenco scritto di tutti i pacchetti e plugin di terze parti da cui dipende il tuo sito web, e aggiorna ciascuno non appena viene annunciata una correzione di sicurezza.
  5. Se un compito di programmazione ti chiede di aggiungere un pacchetto di cui non hai mai sentito parlare, fermati e cerca il nome di quel pacchetto insieme alla parola malicious prima di eseguirlo.
  6. Per i proprietari di siti web, usa un servizio di hosting gestito o di revisione di sicurezza che possa aiutare a controllare il codice di terze parti prima che raggiunga il tuo sito live.

I Termini Spiegati

  • Terraform provider Un plugin che permette allo strumento Terraform di gestire uno specifico servizio cloud o una risorsa.
  • Go module Un pacchetto di codice scritto nel linguaggio di programmazione Go che può essere condiviso e riutilizzato.
  • npm Una libreria pubblica dove gli sviluppatori condividono e scaricano pacchetti di codice JavaScript.
  • PyPI Il Python Package Index, una libreria pubblica di pacchetti di codice Python.
  • command-and-control (C2) Il canale di comunicazione nascosto che un operatore di malware usa per inviare istruzioni ai computer infetti.
  • blockchain dead drop Un modo per nascondere comandi all'interno di uno smart contract su blockchain invece che su un normale server.
  • Ethereum smart contract Un piccolo programma memorizzato sulla blockchain Ethereum che viene eseguito automaticamente quando si verificano determinate condizioni.
  • testnet Una copia separata di una blockchain usata per i test, dove i token digitali non hanno valore nel mondo reale.

Servizi AEU correlati

  • AEU-I Consulenza IT e sicurezza