PhantomRaven ha usato pacchetti npm e codice remoto per cercare i segreti degli sviluppatori
Oltre 100 pacchetti npm malevoli diffondono PhantomRaven per rubare credenziali e segreti CI/CD agli sviluppatori tramite codice remoto.
Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA
Immagine illustrativa generata con AI
CrowdStrike ha collegato PhantomRaven, un infostealer JavaScript distribuito tramite oltre 100 pacchetti npm malevoli, a un operatore motivato da finalità economiche che si presentava come ricercatore di bug bounty.
La campagna di supply chain ha preso di mira gli sviluppatori attraverso slopsquatting e typosquatting. Una volta installati, i pacchetti recuperavano altro codice da un’infrastruttura controllata dall’attaccante, consentendo a PhantomRaven di analizzare i sistemi di sviluppo ed esfiltrare credenziali, dettagli di configurazione e segreti CI/CD.
CrowdStrike ritiene con elevata probabilità che alla produzione del malware abbia contribuito un large language model. Tra gli elementi a sostegno di questa valutazione figurano commenti al codice insolitamente estesi, sezioni segnaposto incomplete e un’analisi statistica dei pattern dei token nel codice sorgente.
Oltre 100 pacchetti hanno preso di mira gli ambienti degli sviluppatori
Koi Security e DCODX hanno identificato per la prima volta la campagna alla fine di ottobre 2025. I pacchetti malevoli erano stati caricati nel registro npm, dove gli sviluppatori potevano imbattersi in essi cercando dipendenze o digitando i nomi dei pacchetti.
L’operazione combinava due strategie di denominazione. Il typosquatting si basa su nomi simili a quelli di pacchetti legittimi, nella speranza che gli utenti commettano errori di digitazione o non notino differenze minime. Lo slopsquatting prende di mira nomi di pacchetti plausibili, che un LLM potrebbe suggerire anche se nessun pacchetto legittimo esiste con quel nome.
Nel corso della campagna sono stati caricati oltre 100 pacchetti. Tuttavia, non sono stati resi pubblici né un elenco completo dei pacchetti rimossi, né l’inventario delle versioni interessate, né un avviso di sicurezza npm.
Almeno due account npm sono stati associati a pacchetti PhantomRaven pubblicati:
jpdhellonpm1, che ha pubblicatotransform-jsbi-to-bigintjpd15, che ha pubblicatosort-imports-es6-autofix
Entrambi gli account risultavano inaccessibili al momento della preparazione dell’analisi. Altre identità collegate all’attività includono jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 e packagedharsh.
La perdita di accesso ai due account rappresenta una forma di contenimento, ma non dimostra che ogni pacchetto malevolo o identità correlata sia stato rimosso. Inoltre, non esiste alcuna conferma pubblica che tutta l’infrastruttura associata all’attaccante sia stata disabilitata.
Le dipendenze remote nascondevano la funzionalità principale dell’infostealer
Il modello di distribuzione di PhantomRaven separa il pacchetto visibile su npm dal codice responsabile della maggior parte delle attività malevole.
I pacchetti utilizzano una dipendenza dinamica remota esterna, o RDD, ospitata su un server controllato dall’operatore. Dopo l’installazione, il pacchetto recupera da quell’infrastruttura la funzionalità eseguibile. Questo approccio lascia nel pacchetto npm vero e proprio una quantità inferiore di codice palesemente malevolo e rende meno affidabile l’analisi statica dell’artefatto pubblicato.
Offre inoltre maggiore flessibilità all’operatore. Il codice distribuito da remoto può potenzialmente essere modificato senza pubblicare una nuova versione del pacchetto, mentre i difensori che esaminano soltanto l’artefatto presente nel registro potrebbero non vedere la stessa funzionalità eseguita sul sistema della vittima.
Il codice recuperato analizza l’ambiente dello sviluppatore e può raccogliere:
- Indirizzi email e altri dati sull’identità dello sviluppatore.
- Informazioni sull’ambiente CI/CD locale.
- Un fingerprint del sistema che include l’indirizzo IP pubblico della macchina.
- Dettagli del runtime e data e ora correnti.
- Nomi utente e indirizzi email memorizzati nella configurazione di Git e npm.
- Variabili d’ambiente associate a GitHub Actions, GitLab CI, Jenkins e CircleCI.
- Token di autenticazione, credenziali dei sistemi di controllo del codice sorgente e altri segreti esposti.
Le informazioni raccolte vengono trasmesse a un server controllato dall’attaccante.
Non sono state segnalate attività distruttive o simili a quelle dei ransomware. Non ci sono prove che PhantomRaven cifri i dati, danneggi i sistemi o interrompa deliberatamente le pipeline di build. Il suo scopo documentato è la raccolta di informazioni.
Le conseguenze possono comunque estendersi oltre la workstation dello sviluppatore. Un token CI/CD sottratto può consentire l’accesso a repository del codice sorgente, sistemi di build, workflow di deployment o altre risorse aziendali, a seconda delle autorizzazioni associate al token.
Nel codice sorgente del malware sono emerse tracce dell’uso di un LLM
CrowdStrike ha attribuito con elevata probabilità un ruolo a un LLM, senza sostenere di avere una prova diretta del modello o del servizio utilizzato. La valutazione si basa su diverse caratteristiche rilevate nel codice di PhantomRaven.
Un indizio era rappresentato dalla quantità e dallo stile dei commenti. Gli sviluppatori di malware a volte documentano il codice, ma spiegazioni prolisse che ripetono operazioni semplici possono ricordare l’output prodotto dagli assistenti di programmazione. I ricercatori hanno inoltre individuato logiche segnaposto non completate, segno che il codice di base generato potrebbe non essere stato portato a termine o ripulito completamente.
Un ulteriore indicatore è arrivato dall’analisi statistica dei token. Questo tipo di analisi esamina i pattern con cui vengono costruiti il codice e il testo che lo accompagna, cercando distribuzioni compatibili con un output generato da un modello.
Nessuna di queste caratteristiche, presa singolarmente, dimostra il coinvolgimento dell’AI. I commenti possono essere scritti manualmente, i segnaposto sono comuni nel software incompleto e i classificatori basati sui token non sono infallibili. Considerati nel loro insieme, tuttavia, hanno portato CrowdStrike a concludere che probabilmente un LLM abbia contribuito alla creazione di PhantomRaven.
Questo risultato non implica che la campagna fosse autonoma. Sembra che un operatore umano abbia comunque selezionato gli obiettivi, creato le identità nel registro, pubblicato i pacchetti, gestito l’infrastruttura esterna e ricevuto le informazioni sottratte.
Il valore operativo dell’AI generativa è più concreto: può ridurre lo sforzo necessario per abbozzare codice, spiegare API non familiari, produrre varianti e assemblare uno strumento funzionante. PhantomRaven mostra come queste efficienze possano essere applicate agli attacchi alla software supply chain invece che allo sviluppo legittimo.
L’operatore presentava l’attività come ricerca per bug bounty
Secondo CrowdStrike, l’attore è attivo dal novembre 2022 e si presenta pubblicamente come ricercatore di bug bounty. A quanto riferito, sostiene di aver ricevuto ricompense da almeno nove organizzazioni nei settori della tecnologia, del retail e dell’ospitalità.
Maddie Stewart ha riferito che, nell’agosto 2025, l’attore dichiarò di aver individuato una vulnerabilità di remote code execution utilizzando un pacchetto npm malevolo. Secondo tale dichiarazione, il pacchetto avrebbe compromesso una macchina bersaglio eseguendo il relativo script preinstall e avrebbe presumibilmente ottenuto l’esecuzione di codice da remoto.
Questa ricostruzione evidenzia una distinzione fondamentale tra i test di sicurezza autorizzati e la compromissione. Pubblicare un pacchetto che sottrae informazioni o esegue codice su sistemi senza un’autorizzazione esplicita non equivale a svolgere test all’interno di un perimetro di bug bounty definito.
CrowdStrike non ha osservato dati di PhantomRaven pubblicizzati sui marketplace di stealer log. L’azienda ritiene quindi che l’operatore utilizzi probabilmente il malware per individuare potenziali vulnerabilità da presentare nei programmi di bug bounty, anziché vendere i dati raccolti attraverso i canali criminali consolidati.
Questa valutazione descrive la probabile motivazione, non la legittimità della tecnica. Identità degli sviluppatori, token e variabili CI/CD rimangono dati sensibili indipendentemente dal fatto che l’operatore intenda monetizzarli tramite una segnalazione a un programma di bug bounty o attraverso un mercato criminale.
L’attore sembra inoltre aver tentato di pubblicare sull’indice dei pacchetti Python, o PyPI, pacchetti contenenti codice simile per il furto di informazioni. L’attività nota potrebbe quindi non essere limitata all’ecosistema npm.
I difensori devono analizzare le dipendenze e i segreti esposti
Non esiste una patch del vendor perché PhantomRaven non è una vulnerabilità di uno specifico prodotto software. Non sono stati segnalati CVE, punteggio CVSS, livello di gravità formale, numero confermato di vittime, firma di rilevamento o comunicazione completa sulle attività di remediation.
Le organizzazioni dovrebbero iniziare esaminando le dipendenze npm, i lockfile, i log delle installazioni e le cache interne dei pacchetti alla ricerca di librerie inattese. I due pacchetti identificati pubblicamente, transform-jsbi-to-bigint e sort-imports-es6-autofix, richiedono un’analisi diretta, ma non devono essere considerati un elenco completo degli indicatori.
I team di sicurezza dovrebbero inoltre esaminare:
- Gli eventi di installazione dei pacchetti che hanno attivato
preinstallo altri script del ciclo di vita. - Le connessioni in uscita avviate durante l’installazione delle dipendenze.
- Le dipendenze che scaricano codice eseguibile da infrastrutture esterne a npm.
- Gli accessi inattesi ai file di configurazione di Git e npm.
- I processi che leggono le variabili d’ambiente CI/CD.
- Le credenziali associate agli account degli sviluppatori e di automazione create o modificate di recente.
Se un pacchetto sospetto è stato eseguito, rimuoverlo non è sufficiente. Le credenziali GitHub, GitLab, npm, Jenkins, CircleCI e di altri sistemi CI/CD potenzialmente esposte devono essere revocate o ruotate; è inoltre necessario esaminare i log dei repository e delle pipeline per individuare eventuali accessi successivi.
I team possono ridurre l’esposizione futura fissando le versioni delle dipendenze, imponendo l’uso dei lockfile, limitando gli script del ciclo di vita quando possibile a livello operativo e controllando l’accesso alla rete durante le build. I nuovi pacchetti dovrebbero essere valutati in base alla storia del publisher, alla disponibilità del codice sorgente, agli eventuali download remoti inattesi e alle discrepanze tra lo scopo dichiarato e il comportamento durante l’installazione.
Il principale vantaggio di PhantomRaven non era lo sfruttamento sofisticato di una vulnerabilità. Era l’accesso ottenuto grazie alla fiducia degli sviluppatori, combinato con codice remoto rimasto al di fuori del pacchetto inizialmente esaminato.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
