Una nuova campagna di attacco alla supply chain del software sta colpendo il registro npm con quasi 800 pacchetti malevoli progettati per distribuire malware multipiattaforma su Windows, macOS e Linux. I nomi dei pacchetti sembrano generati in modo casuale o creati con tecniche di typosquatting per ingannare gli sviluppatori e indurli a installare dipendenze sbagliate.
A differenza di molte minacce npm che sfruttano gli hook di installazione come preinstall o postinstall, questa ondata punta su un approccio più subdolo: i pacchetti includono un file README che invita a caricare il modulo con require e, così facendo, avviare la catena di infezione.
L’esecuzione porta al download e avvio di un componente chiamato WEL1DROPPER che agisce da downloader. Una volta avviato, il dropper rileva sistema operativo e architettura della macchina e scarica un payload compatibile tramite infrastrutture remote ospitate su Cloudflare Workers. Se il download via HTTPS non riesce, il malware passa a un meccanismo alternativo basato su DNS TXT record, recuperando il payload a pezzi da un dominio dedicato e ricostruendolo localmente tramite concatenazione e decodifica Base64. Questa tecnica rende più difficile il blocco tradizionale basato su URL e consente di mascherare il traffico come normali richieste DNS.
Nello stadio finale, il binario viene scritto in una cartella temporanea ed eseguito con cmd.exe su Windows o con /bin/sh su Linux e macOS. Su Windows il malware adotta misure di evasione interferendo con ETW e AMSI per ridurre la visibilità dei controlli di sicurezza. Vengono inoltre eseguiti controlli per individuare sandbox o ambienti virtuali e viene stabilita persistenza attraverso chiavi di registro Run e attività pianificate. Su macOS la logica è simile con controlli anti-analisi e persistenza tramite LaunchAgent. Su Linux il campione è un ELF compresso con UPX che scarica ulteriori componenti e può portare al dispiegamento di framework di command and control come Sliver.
Un dettaglio rilevante è la presenza di un file che simula un SDK di telemetria legittimo ma contiene la stessa logica di download. Questo rumore intenzionale è pensato per far apparire il comportamento come analytics e rallentare le revisioni rapide del codice. Per ridurre il rischio è fondamentale verificare i nomi delle dipendenze, bloccare installazioni non necessarie, controllare gli indicatori di compromissione e applicare policy di controllo sulle dipendenze npm nei flussi CI/CD.