Campagna di malware PromptMink basata sull'intelligenza artificiale
Alcuni ricercatori di sicurezza informatica hanno scoperto del codice dannoso nascosto all'interno di un pacchetto npm, dopo che una dipendenza nociva era stata introdotta in un progetto tramite codice scritto in collaborazione con il modello linguistico di grandi dimensioni (LLM) Claude Opus di Anthropic. La scoperta evidenzia come le minacce alla catena di fornitura del software si stiano evolvendo attraverso l'uso improprio dei flussi di lavoro di sviluppo assistiti dall'intelligenza artificiale.
Il pacchetto al centro della campagna, '@validate-sdk/v2', è stato presentato su npm come un kit di sviluppo software di utilità per l'hashing, la validazione, la codifica e la decodifica, nonché per la generazione sicura di numeri casuali. In realtà, era stato progettato per rubare informazioni sensibili da sistemi compromessi. Gli investigatori hanno rilevato indizi che suggeriscono che il pacchetto potrebbe essere stato "codificato con vibe" utilizzando l'intelligenza artificiale generativa. È stato caricato per la prima volta su npm nell'ottobre 2025.
Sommario
PromptMink collegato ad attività di minaccia nordcoreane
I ricercatori hanno denominato la campagna PromptMink e ritengono che sia collegata al gruppo terroristico nordcoreano Famous Chollima, noto anche come Shifty Corsair. Questo gruppo è stato precedentemente associato alla longeva operazione Contagious Interview e alle truffe ai danni di lavoratori IT.
La campagna dimostra una continua attenzione all'ecosistema open source, in particolare agli ambienti legati alle criptovalute e allo sviluppo Web3.
Il commit scritto in collaborazione con l’IA ha introdotto una dipendenza pericolosa
Il pacchetto dannoso è stato inserito tramite un commit del 28 febbraio in un repository di agenti di trading autonomi. Secondo quanto riportato, tale commit è stato co-firmato dal modello Claude Opus di Anthropic. Una volta incluso, il pacchetto ha permesso agli aggressori di accedere ai portafogli di criptovalute e rubare fondi.
La catena di dipendenze si è spostata attraverso più pacchetti. '@validate-sdk/v2' era elencato all'interno di '@solana-launchpad/sdk', che veniva poi utilizzato da un terzo pacchetto chiamato openpaw-graveyard. Questo pacchetto era descritto come un agente AI autonomo in grado di costruire un'identità sociale on-chain sulla blockchain di Solana tramite il protocollo Tapestry, scambiare criptovalute tramite Bankr e interagire con altri agenti su Moltbook.
Un commit del codice sorgente del febbraio 2026 ha aggiunto la dipendenza infetta, causando l'esecuzione di codice dannoso e la conseguente fuga di credenziali che potrebbero esporre i beni del portafoglio.
Strategia di infezione a più livelli progettata per eludere il rilevamento
Gli aggressori hanno utilizzato una struttura di pacchetti a fasi. I pacchetti iniziali apparivano puliti e non contenevano codice dannoso evidente. Successivamente, importavano pacchetti secondari in cui era memorizzata la vera funzionalità dannosa. Se un pacchetto secondario dannoso veniva rilevato o rimosso, veniva rapidamente sostituito.
Alcuni dei pacchetti di primo livello identificati nella campagna includevano:
@solana-launchpad/sdk
@meme-sdk/trade
@validate-ethereum-address/core
@solmasterv3/solana-metadata-sdk
@pumpfun-ipfs/sdk
@solana-ipfs/sdk
Questi pacchetti affermavano di fornire funzionalità relative alle criptovalute e includevano numerose dipendenze affidabili come axios e bn.js, il che contribuiva a farli apparire legittimi. Nascoste tra queste librerie affidabili si celavano, tuttavia, un numero minore di dipendenze dannose.
Tecniche di occultamento utilizzate dagli aggressori
Gli attori della minaccia hanno utilizzato diversi metodi per ridurre i sospetti e migliorare la persistenza:
- Creazione di versioni dannose di funzioni già presenti in librerie legittime e diffuse.
- Utilizzo di typosquatting per i nomi e le descrizioni dei pacchetti che assomigliavano molto a strumenti affidabili
- Suddividere il malware in un loader dall'aspetto innocuo e un payload di secondo stadio.
- Pacchi secondari in rapida rotazione, rimossi o rilevati
Il primo pacchetto noto collegato alla campagna, '@hash-validator/v2', è stato caricato nel settembre 2025.
Espansione oltre npm ed evoluzione del malware
I ricercatori hanno notato segni di questa attività mesi dopo, confermando l'uso di dipendenze transitive per eseguire codice dannoso sui computer degli sviluppatori e rubare dati preziosi. La campagna si è poi estesa al Python Package Index tramite un pacchetto dannoso chiamato scraper-npm, caricato nel febbraio 2026 con funzionalità simili.
Secondo quanto riferito, le versioni più recenti dell'operazione avrebbero stabilito un accesso remoto persistente tramite SSH e utilizzato payload compilati in Rust per rubare interi progetti di codice sorgente e proprietà intellettuale dai sistemi infetti.
Da semplice ladro a minaccia multipiattaforma
Le prime versioni del malware erano programmi JavaScript offuscati che cercavano ricorsivamente nelle directory di lavoro i file .env e .json prima di prepararli per l'esfiltrazione verso un dominio ospitato da Vercel e precedentemente collegato all'attività di Famous Chollima.
Le versioni successive hanno integrato PromptMink come applicazione eseguibile singola Node.js. Tuttavia, ciò ha aumentato le dimensioni del payload da circa 5,1 KB a quasi 85 MB, rendendo la distribuzione meno efficiente. Per superare questa limitazione, gli aggressori sarebbero passati a NAPI-RS, che consente l'utilizzo di componenti aggiuntivi Node.js precompilati scritti in Rust.
Rischi crescenti per la catena di fornitura open-source
La progressione della campagna, da semplice strumento per il furto di informazioni a una famiglia di malware multipiattaforma specializzata che prende di mira Windows, Linux e macOS, mostra una significativa escalation nelle sue capacità. Le sue funzioni ora includono il furto di credenziali, l'installazione di backdoor SSH e il furto di interi progetti di sviluppo.
I ricercatori hanno concluso che Famous Chollima combina codice generato dall'IA con metodi di distribuzione dei pacchetti a più livelli per eludere il rilevamento e manipolare gli assistenti di programmazione automatizzati in modo più efficace rispetto agli sviluppatori umani.