AsyncAPI sotto attacco su npm: botnet multistadio eseguita al require, CI/CD compromessa e payload da IPFS
Featured

AsyncAPI sotto attacco su npm: botnet multistadio eseguita al require, CI/CD compromessa e payload da IPFS

Una recente campagna di supply chain attack ha colpito il registro npm coinvolgendo pacchetti della namespace AsyncAPI e distribuendo un malware botnet multistadio. I pacchetti compromessi sono:

  • asyncapi-generator-helpers 1.1.1
  • asyncapi-generator-components 0.7.1
  • asyncapi-generator 3.3.1
  • asyncapi-specs 6.11.2 e 6.11.2-alpha.1

Il rischio è rilevante per chi sviluppa con Node.js e integra questi moduli in pipeline di build o in flussi di lavoro di sviluppo, perché il codice malevolo viene eseguito quando il modulo infetto viene caricato (ad esempio tramite require), non durante npm install.

Catena di infezione e distribuzione del payload

La catena di infezione inizia con un payload offuscato di primo stadio che scarica un secondo stadio cifrato da IPFS. In pratica i pacchetti contengono un impianto JavaScript nascosto, con un file sorgente iniettato che decodifica un downloader comune. Quando Node.js esegue require del modulo, viene avviato un processo in background che recupera e lancia il malware da IPFS.

Il secondo stadio include un loader JavaScript cifrato chiamato sync.js, scritto in percorsi specifici del sistema operativo e poi eseguito. Il download avviene tramite un gateway IPFS pubblico, rendendo più complessa la rimozione del contenuto e la tracciabilità dell’infrastruttura.

Framework C2 e capacità del malware

Il payload finale è associato a un framework di comando e controllo chiamato Miasma, progettato per operazioni modulari su larga scala. Supporta più canali C2 indipendenti, tra cui:

  • HTTP
  • Nostr relay
  • IPFS
  • BitTorrent DHT
  • mesh P2P basata su libp2p GossipSub
  • smart contract su Ethereum

Le funzionalità includono furto di credenziali, avvelenamento di strumenti AI, movimento laterale in LAN e propagazione tipo worm anche verso altri ecosistemi come PyPI e Cargo. Per la persistenza, il malware può creare:

  • Linux: voci di avvio automatico su systemd e crontab
  • macOS: launchd
  • Windows: chiavi di registro
Compromissione CI/CD e implicazioni sulla provenance

Un elemento critico riguarda la compromissione della CI/CD. Gli attaccanti avrebbero ottenuto accesso in push ai repository e sfruttato workflow legittimi di GitHub Actions per pubblicare versioni malevole con attestazioni di provenienza valide tramite OIDC. Questo dimostra che la provenance SLSA conferma che un workflow autorizzato ha prodotto il pacchetto, ma non garantisce che i commit che hanno attivato il rilascio fossero legittimi.

Le versioni malevole sono state rimosse dal registro npm, ma è consigliato considerare potenzialmente compromessi gli endpoint che hanno importato o eseguito le versioni indicate, soprattutto in ambienti di build e CI.

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.