
CrowdStrike: il ladro npm PhantomRaven probabilmente scritto dall'IA
CrowdStrike afferma che il ladro npm PhantomRaven, diffuso tramite oltre 100 pacchetti, è stato probabilmente scritto con un modello di IA.
L'attacco alla catena di fornitura npm dietro il ladro di informazioni PhantomRaven è stato molto probabilmente scritto con l'aiuto di un modello linguistico di grandi dimensioni, secondo un'analisi delle Counter Adversary Operations di CrowdStrike pubblicata questa settimana. npm è la libreria pubblica dove gli sviluppatori JavaScript scaricano pezzi di codice già pronti, chiamati pacchetti, e un attacco attraverso di essa abusa della fiducia che gli sviluppatori ripongono in quella libreria. CrowdStrike ha affermato di essere giunta a questa valutazione con alta fiducia, citando commenti prolissi, codice segnaposto (sezioni di un programma lasciate incomplete) e pattern di analisi statistica dei token, che esaminano come è stato scritto il codice piuttosto che cosa fa. L'azienda descrive l'operazione come motivata finanziariamente.
Un ladro di informazioni è un tipo di malware che copia dati privati come password, chiavi di accesso e informazioni di sessione da un computer e li invia a chi lo controlla. PhantomRaven è stato segnalato per la prima volta da Koi Security e DCODX alla fine di ottobre 2025, quando hanno richiamato l'attenzione su una campagna in cui più di 100 pacchetti malevoli sono stati caricati su npm per rubare token di autenticazione, segreti CI/CD e credenziali GitHub dalle macchine degli sviluppatori. Secondo CrowdStrike, la campagna ha combinato lo slopsquatting con il typosquatting. Il typosquatting significa pubblicare un pacchetto il cui nome sembra quasi identico a uno popolare, così uno sviluppatore installa la cosa sbagliata per errore. Lo slopsquatting significa registrare un nome che uno strumento di codifica IA potrebbe inventare quando suggerisce un pacchetto che in realtà non esiste.
I pacchetti stessi erano solo la copertura. Invece di contenere il codice di furto, recuperavano una dipendenza dinamica remota, ovvero codice scaricato da un server esterno dopo l'installazione, in modo che le librerie presenti nel registro non venissero segnalate dagli strumenti di sicurezza. Una volta in esecuzione, quel codice remoto scansionava l'ambiente dello sviluppatore alla ricerca di indirizzi email, raccoglieva informazioni sull'ambiente CI/CD (la pipeline automatizzata che costruisce, testa e rilascia software) e raccoglieva un'impronta del sistema che includeva l'indirizzo IP pubblico. Poi trasmetteva i risultati a un server controllato dall'attaccante. Il malware era anche progettato per raccogliere dettagli di runtime, la data e l'ora correnti, il nome utente e gli indirizzi email memorizzati nelle configurazioni Git e npm, e le variabili d'ambiente CI/CD utilizzate da GitHub Actions, GitLab CI, Jenkins e CircleCI. Queste variabili spesso contengono le chiavi e i token che consentono a un sistema di build di pubblicare codice, distribuire un sito o raggiungere un account cloud.
Le ultime scoperte di CrowdStrike affermano che l'attore dietro l'operazione è attivo da novembre 2022 e sostiene di essere un cacciatore di bug bounty che ha raccolto ricompense da almeno nove organizzazioni nei settori tecnologico, retail e ospitalità. I programmi di bug bounty pagano le persone che segnalano responsabilmente difetti di sicurezza. L'azienda ha affermato di non aver osservato informazioni rubate da questo malware comparire nei negozi di log di ladri, i mercati dove vengono scambiate le credenziali rubate, il che a suo avviso suggerisce che l'operatore utilizza probabilmente il ladro di informazioni solo per identificare opportunità di bug bounty. CrowdStrike ha contrastato ciò con il modello abituale, in cui attori criminali noleggiano strumenti pronti all'uso o eseguono il proprio malware, e ha affermato che questo attore sembra aver costruito PhantomRaven stesso per compromettere risorse aziendali e poi ha usato tali compromissioni come leva quando richiedeva ricompense da programmi di divulgazione consolidati.
Almeno due account npm mantenuti dall'operatore sono stati osservati spingere pacchetti che contenevano PhantomRaven: jpdhellonpm1, collegato a un pacchetto chiamato transform-jsbi-to-bigint, e jpd15, collegato a uno chiamato sort-imports-es6-autofix. Entrambi gli account npm non sono più accessibili. Altre identità online collegate alla stessa operazione includono jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 e packagedharsh.
La ricercatrice di sicurezza Maddie Stewart ha anche notato che nell'agosto 2025 l'attore ha affermato di aver scoperto una vulnerabilità di esecuzione di codice in modalità remota (RCE) attraverso un pacchetto npm malevolo che aveva pubblicato. RCE significa essere in grado di eseguire i propri comandi sulla macchina di qualcun altro. Secondo quel resoconto, l'attore ha detto di aver compromesso la macchina target ed eseguito il proprio script preinstall, un piccolo pezzo di codice che viene eseguito automaticamente durante l'installazione, il che, secondo lui, gli ha permesso di ottenere RCE.
C'è dell'altro. Sono emerse prove che lo stesso attore ha tentato di spingere pacchetti sul Python Package Index (PyPI), l'equivalente Python di npm, contenenti codice per un ladro di informazioni che mostra somiglianze con PhantomRaven. CrowdStrike osserva che il probabile uso di un modello linguistico di grandi dimensioni sottolinea come gli attori delle minacce stiano adottando sempre più questa tecnologia, comprimendo il tempo e lo sforzo che tali campagne richiedono. Per i proprietari di siti web e i team IT, la domanda pratica è dove risiede il rischio. Il codice che viene eseguito durante l'installazione può raggiungere gli stessi segreti che una pipeline di build utilizza per pubblicare un sito, quindi anche la copia di un progetto che non tocca mai la produzione merita attenzione.
Ecco perché vale la pena una revisione periodica di come il software viene costruito e distribuito. AEU-I, il nostro servizio di IT, infrastruttura e consulenza incentrato sulla sicurezza, è un punto da cui iniziare per i team che desiderano aiuto per esaminare esattamente questo. Fino ad allora valgono le basi: sappi da cosa dipende il tuo progetto e sostituisci le chiavi che utilizza se qualcosa si rivela essere stato manomesso.
Come Proteggerti
- Se uno dei tuoi siti web o app utilizza i pacchetti npm transform-jsbi-to-bigint o sort-imports-es6-autofix, chiedi a chi li mantiene di rimuovere quei pacchetti e cambiare tutte le password o le chiavi di accesso utilizzate dal progetto.
- Attiva l'accesso in due passaggi per i tuoi account GitHub e npm, in modo che una password rubata da sola non sia sufficiente per entrare.
- Chiedi al tuo sviluppatore di elencare le librerie di codice esterne da cui dipende il tuo sito e di spiegare qualsiasi cosa che nessuno di voi riconosce.
- Considera ogni password o chiave di accesso memorizzata in un progetto come esposta se un pacchetto strano è mai stato installato, e sostituiscila invece di riutilizzarla.
- Sii sospettoso di un pacchetto il cui nome è quasi uguale a uno che già usi, o che hai trovato tramite un assistente di codifica IA invece che da una fonte ufficiale.
- Mantieni aggiornati i tuoi strumenti di build e distribuzione, e concedi loro solo il livello di accesso necessario per svolgere il loro lavoro.
I Termini Spiegati
- npm Una libreria online pubblica dove gli sviluppatori scaricano pezzi di codice già pronti, chiamati pacchetti, per progetti JavaScript.
- information stealer Un tipo di malware che copia password, chiavi e altri dati privati da un computer e li invia a un attaccante.
- large language model Un programma di IA addestrato su enormi quantità di testo e codice che può produrre nuovo testo o codice quando richiesto.
- CI/CD La pipeline automatizzata che costruisce, testa e rilascia software, comprese le chiavi di accesso necessarie per pubblicare un sito.
- typosquatting Pubblicare un pacchetto con un nome che è una copia quasi identica di uno popolare, sperando che le persone lo installino per errore.
- slopsquatting Registrare un nome di pacchetto che uno strumento di codifica IA potrebbe inventare, sperando che uno sviluppatore copi il nome inventato da un suggerimento.
- remote dynamic dependency Codice che un pacchetto scarica ed esegue da un server esterno dopo l'installazione invece di essere incluso nel pacchetto.
- remote code execution (RCE) La capacità di un attaccante di eseguire i propri comandi sul computer di qualcun altro.