Analisi

UNC1069 trasforma Axios in un vettore di spionaggio: WAVESHAPER.V2 colpisce la supply chain npm

Dario Fadda 12 Aprile 2026

Per tre ore e diciannove minuti, tra la mezzanotte e le 03:20 UTC del 31 marzo 2026, chi ha eseguito npm install axios ha involontariamente invitato un RAT nordcoreano nei propri sistemi. L’attacco alla supply chain del pacchetto Axios — 70 milioni di download settimanali, il client HTTP più usato dell’ecosistema JavaScript — porta la firma di UNC1069, un cluster APT legato alla Corea del Nord e motivato finanziariamente che da anni prende di mira sviluppatori e infrastrutture crypto. L’operazione dimostra ancora una volta che il vettore più efficace per infiltrarsi in ambienti protetti non è un exploit zero-day: è la fiducia umana.

L’ingegneria sociale che ha aperto la porta

Tutto comincia mesi prima della compromissione vera e propria. Gli operatori di UNC1069 si sono avvicinati a Jason Saayman, maintainer principale di Axios su npm, fingendosi il fondatore di una società legittima e ben nota nel settore tech. Non si sono limitati a creare un profilo falso: hanno clonato digitalmente l’identità della persona reale, creando una replica convincente sia del soggetto sia dell’azienda. “Hanno calibrato ogni dettaglio specificamente su di me”, ha scritto Saayman nel post-mortem dell’incidente.

Il contatto si è trasformato in una chiamata video su Microsoft Teams. Durante il meeting, gli attaccanti hanno simulato un problema audio e hanno convinto Saayman a installare un componente “mancante” per risolvere l’incompatibilità. Il file che il maintainer ha eseguito non era una patch per Teams: era WAVESHAPER.V2, il RAT cross-platform del gruppo. Da quel momento UNC1069 disponeva delle credenziali npm di Saayman e del controllo sul suo ambiente di sviluppo.

La catena di attacco: da npm al C2 in tre passi

Una volta ottenuto l’accesso all’account npm, gli attaccanti hanno pubblicato due release backdoorate: axios@1.14.1 e axios@0.30.4. Entrambe iniettavano una dipendenza malevola — plain-crypto-js@4.2.1 — che non esiste nel registro legittimo npm. Il pacchetto conteneva SILKBELL, un dropper offuscato che si attivava automaticamente tramite un hook postinstall nello script setup.js, senza alcuna interazione da parte dell’utente o dello sviluppatore.

SILKBELL stabiliva una connessione con l’infrastruttura C2 di UNC1069 e scaricava WAVESHAPER.V2, adattando il payload al sistema operativo rilevato. Il comportamento variava per piattaforma:

  • Windows: copia di powershell.exe in %PROGRAMDATA%\wt.exe, persistenza via chiave di registro HKCU\Software\Microsoft\Windows\CurrentVersion\Run con nome “MicrosoftUpdate” e batch nascosto system.bat.
  • macOS: binario Mach-O installato in /Library/Caches/com.apple.act.mond, eseguito tramite zsh.
  • Linux: backdoor Python scaricato in /tmp/ld.py ed eseguito con nohup.

WAVESHAPER.V2: capacità operative e firma anomala

La versione V2 del backdoor introduce comunicazione via JSON, raccolta estesa di informazioni di sistema e un set ampliato di comandi rispetto alla versione precedente documentata da Mandiant. Le principali funzionalità includono: peinject per l’iniezione in memoria di shellcode e PE, rundir per la ricognizione del filesystem con raccolta di metadati, esecuzione di script arbitrari e terminazione di processi. Il beaconing avviene via HTTP ogni 60 secondi verso la porta 8000 del server C2.

L’anomalia più curiosa — e paradossalmente più utile per i difensori — è la stringa User-Agent hardcodata in tutte e tre le varianti di piattaforma: mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0). Un fingerprint da Internet Explorer 8 su Windows XP è immediatamente anomalo su qualsiasi macchina moderna, e ancor più su host macOS o Linux. Sebbene garantisca un routing coerente lato server C2, è un indicatore di compromissione banalmente rilevabile su qualunque proxy o SIEM moderno.

Attribuzione: UNC1069 e la rete finanziaria di Pyongyang

L’attribuzione a UNC1069 è stata effettuata in modo indipendente da Google Threat Intelligence Group (GTIG), Microsoft Threat Intelligence e Mandiant. Il cluster è tracciato sotto diversi alias: Sapphire Sleet, STARDUST CHOLLIMA, Alluring Pisces, BlueNoroff, CageyChameleon e CryptoCore. Attivo almeno dal 2018, UNC1069 è motivato finanziariamente e ha storicamente preso di mira istituzioni finanziarie, exchange di criptovalute e maintainer di pacchetti open source ad alta diffusione, nella logica di massimizzare il potenziale di accesso a valle.

Il collegamento tecnico più solido emerso dall’analisi è l’infrastruttura C2: il dominio sfrclak[.]com risolve sull’IP 142.11.206[.]73, e le connessioni da questo server sono state tracciate verso un nodo AstrillVPN precedentemente attribuito a UNC1069 in campagne separate. Il binario macOS presenta poi sovrapposizioni significative con WAVESHAPER nella versione originale documentata da Mandiant, rendendo la catena di attribuzione robusta e multi-vendor.

Impatto e analisi del blast radius

La finestra di esposizione — circa tre ore — ha limitato il numero diretto di compromissioni. eSentire ha identificato 19 organizzazioni clienti colpite, principalmente nel settore dello sviluppo software in Nord America ed EMEA. Tuttavia la nuova analisi pubblicata il 12 aprile 2026 sottolinea come il “blast radius” reale vada ben oltre queste cifre dirette: pipeline CI/CD, container Docker, ambienti serverless e toolchain di build che eseguono automaticamente npm ci potrebbero aver scaricato le versioni malevole senza che gli sviluppatori ne fossero consapevoli, specialmente in organizzazioni prive di monitoraggio sui log di installazione npm.

Indicatori di Compromissione (IoC)

# Pacchetti npm malevoli
axios@1.14.1
axios@0.30.4
plain-crypto-js@4.2.1

# Hash file
SILKBELL (setup.js): e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
Windows RAT:         617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101

# Infrastruttura C2
IP:       142.11.206[.]73
Domini:   sfrclak[.]com
          callnrwise[.]com
Endpoint: hxxp://sfrclak[.]com:8000/6202033
Porta:    8000 (beaconing HTTP, intervallo 60s)

# User-Agent anomalo (presente su Windows, macOS e Linux)
"mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0)"

# Persistenza Windows
Chiave registro: HKCU\Software\Microsoft\Windows\CurrentVersion\Run -> "MicrosoftUpdate"
File: %PROGRAMDATA%\wt.exe (copia mascherata di powershell.exe)
File: system.bat (nascosto)

# Persistenza macOS
/Library/Caches/com.apple.act.mond

# Persistenza Linux
/tmp/ld.py (eseguito con nohup)

Raccomandazioni per i difensori

Chi ha eseguito npm install o npm ci il 31 marzo 2026 tra le 00:21 e le 03:20 UTC deve considerare i propri ambienti compromessi fino a prova contraria. Le azioni prioritarie: verificare i log di installazione npm per la presenza di axios@1.14.1, axios@0.30.4 o plain-crypto-js; controllare il traffico di rete in uscita verso 142.11.206.73 su porta 8000 con il caratteristico User-Agent IE8; cercare la chiave di registro “MicrosoftUpdate” nel percorso Run e il file wt.exe in %PROGRAMDATA% su sistemi Windows.

Sul piano preventivo, le pratiche raccomandate includono: pinning esplicito delle versioni nei file lock, disabilitazione degli aggiornamenti automatici delle dipendenze, implementazione di policy di “release cooldown” supportate dai principali package manager, monitoraggio continuo dell’esecuzione degli hook postinstall, e adozione di soluzioni di Software Composition Analysis (SCA) che alertino su nuove dipendenze transitive non attese. L’incidente Axios dimostra che anche i pacchetti più fidati e consolidati possono diventare vettori di attacco: la fiducia cieca nell’ecosistema open source è un lusso che le organizzazioni non possono più permettersi.

💬 [[ unisciti alla discussione! ]]


Questo è un blog del Fediverso: puoi trovare quindi questo articolo ovunque con @blog@insicurezzadigitale.com e ogni commento/risposta apparirà qui sotto.

Se vuoi commentare su UNC1069 trasforma Axios in un vettore di spionaggio: WAVESHAPER.V2 colpisce la supply chain npm, utilizza la discussione sul Forum.
Condividi esempi, IOCs o tecniche di detection efficaci nel nostro 👉 forum community