Un nuovo attacco alla supply chain ha colpito l'ecosistema npm, l'indice dei pacchetti per Node.js, infettando 36 pacchetti con un infostealer chiamato IronWorm. La caratteristica più allarmante del malware è la sua capacità di auto-propagarsi, comportandosi come un vero e proprio worm tra sviluppatori e sistemi di integrazione continua.
Un malware sofisticato scritto in Rust
IronWorm è scritto in Rust, si nasconde dietro un rootkit del kernel basato su eBPF e comunica con l'operatore attraverso la rete Tor. Una volta in esecuzione, prende di mira 86 variabili d'ambiente e 20 file di credenziali che possono contenere chiavi di OpenAI, AWS, Anthropic e npm, file di configurazione di vault, chiavi SSH e persino i file dei wallet di criptovalute Exodus.
Come si diffonde
Il meccanismo di propagazione è ciò che rende IronWorm particolarmente pericoloso. Il malware utilizza le credenziali rubate per pubblicare nuovi pacchetti su npm, compresi i segreti associati al workflow di Trusted Publishing. Dopo aver compromesso l'ambiente di uno sviluppatore o un sistema CI, può pubblicare versioni trojanizzate dei pacchetti di proprietà della vittima, che a loro volta infettano altri sviluppatori e altre pipeline.
L'attacco è partito da un account compromesso di nome 'asteroiddao', che ha pubblicato versioni dei pacchetti contenenti il binario Rust, eseguito tramite lo script 'preinstall'. Curiosamente, i commit malevoli risultano firmati dall'autore "claude" e recano date alterate, in alcuni casi fino a 13 anni nel passato, pur essendo stati spinti solo negli ultimi giorni.
L'attacco fermato in tempo
La buona notizia è che IronWorm è stato individuato molto presto e bloccato prima che si propagasse ai pacchetti più popolari di npm. I ricercatori hanno pubblicato l'elenco completo dei pacchetti e delle versioni interessate.
Come proteggersi
- Aggiorna alle versioni corrette dei pacchetti coinvolti, secondo l'elenco fornito dai ricercatori.
- Ruota immediatamente tutte le chiavi e i token potenzialmente esposti: credenziali cloud, API, SSH e npm.
- Attiva l'autenticazione a due fattori (2FA) su tutti gli account, in particolare quelli con permessi di pubblicazione.
- Verifica gli script 'preinstall' e 'postinstall' delle dipendenze e valuta l'uso di flag come
--ignore-scriptsnelle pipeline CI. - Monitora gli ambienti di sviluppo e CI alla ricerca di processi anomali e connessioni verso la rete Tor.
L'episodio conferma una tendenza ormai consolidata: gli sviluppatori e le loro pipeline sono diventati l'anello debole da colpire per raggiungere, a cascata, migliaia di organizzazioni a valle.