Database delle minacce Malware Malware GlassWorm

Malware GlassWorm

Una nuova ondata della campagna malware GlassWorm sta prendendo di mira attivamente le catene di fornitura del software, sfruttando i token GitHub rubati per iniettare codice dannoso in centinaia di repository. Questa operazione si concentra principalmente su progetti basati su Python, tra cui applicazioni Django, codice di ricerca sul machine learning, dashboard Streamlit e pacchetti PyPI.

La trappola d'attacco è ingannevolmente semplice ma estremamente efficace: un malware offuscato viene aggiunto a file comunemente eseguiti come setup.py, main.py e app.py. Qualsiasi sviluppatore che installi dipendenze tramite pip install o esegua codice clonato da un repository compromesso attiva inconsapevolmente il payload dannoso.

Acquisizioni silenziose di repository: la tecnica ForceMemo

Questa evoluzione della campagna, ora denominata ForceMemo, introduce un metodo furtivo per compromettere i repository. Gli autori della minaccia ottengono l'accesso agli account degli sviluppatori e manipolano i repository senza lasciare tracce convenzionali.

Effettuando il rebase di commit legittimi con codice dannoso e forzandone il push sul ramo predefinito, gli aggressori preservano i metadati originali dei commit, inclusi messaggio, autore e timestamp, mascherando di fatto l'intrusione. Questo approccio elimina indicatori visibili come pull request o cronologie di commit sospette, rendendo il rilevamento significativamente più difficile.

Catena di esecuzione dell’attacco: dal furto delle credenziali alla consegna del payload.

La campagna ForceMemo segue un processo di intrusione strutturato e a più fasi:

  • Gli ambienti di sviluppo vengono inizialmente compromessi tramite estensioni dannose di Visual Studio Code e Cursor che contengono componenti GlassWorm progettati per raccogliere credenziali sensibili, inclusi i token di GitHub.
  • Le credenziali rubate vengono quindi utilizzate per iniettare payload offuscati codificati in Base64 nei file Python in tutti i repository associati all'account compromesso.
  • Il malware incorporato esegue controlli ambientali, evitando in particolare l'esecuzione su sistemi configurati con impostazioni regionali russe. Successivamente, interroga un portafoglio blockchain Solana per recuperare dinamicamente l'URL di consegna del payload.
  • Vengono scaricati payload aggiuntivi, tra cui codice JavaScript crittografato progettato per il furto di criptovalute e l'esfiltrazione di dati.

Comando e controllo basati su blockchain: un’infrastruttura resiliente

Una caratteristica distintiva di questa campagna è la sua dipendenza dalla blockchain di Solana come meccanismo di comando e controllo (C2). Invece di server tradizionali, gli aggressori memorizzano gli URL del payload all'interno dei campi memo delle transazioni, collegati a specifici indirizzi di portafoglio.

L'analisi rivela che l'attività collegata al portafoglio principale è iniziata già il 27 novembre 2025, mesi prima che venissero rilevate le compromissioni del repository. Il portafoglio ha elaborato decine di transazioni, con aggiornamenti frequenti delle posizioni dei dati, a volte anche più volte al giorno. Questo approccio decentralizzato aumenta la resilienza e complica le operazioni di smantellamento.

Ampliare la superficie di attacco: npm e le infezioni tra ecosistemi

La campagna si è estesa dagli ecosistemi Python alle catene di fornitura JavaScript. Due pacchetti npm di React Native, react-native-international-phone-number (versione 0.11.8) e react-native-country-select (versione 0.3.91), sono stati temporaneamente compromessi e distribuiti con malware incorporato.

Queste versioni dannose hanno introdotto hook di preinstallazione che eseguono codice JavaScript offuscato, il quale avvia una catena di infezione simile. Il malware evita nuovamente i sistemi russi, recupera le istruzioni del payload tramite un portafoglio Solana e distribuisce minacce specifiche per la piattaforma.

L'esecuzione avviene interamente in memoria utilizzando tecniche runtime come `eval()` o il sandboxing di Node.js, riducendo al minimo le tracce forensi. Inoltre, un meccanismo di persistenza impedisce la reinfezione entro 48 ore memorizzando localmente un timestamp.

Tattiche avanzate di elusione e distribuzione

Le versioni più recenti di GlassWorm dimostrano una maggiore sofisticazione nelle modalità di distribuzione e occultamento. Sfruttando i meccanismi di extensionPack e extensionDependencies, gli aggressori distribuiscono payload dannosi in modo transitivo attraverso ecosistemi di estensioni affidabili.

Precedenti campagne collegate allo stesso gruppo di hacker hanno compromesso oltre 151 repository GitHub utilizzando caratteri Unicode invisibili per nascondere codice dannoso. Nonostante le diverse strategie di offuscamento e distribuzione, tutte le campagne si basano costantemente sulla stessa infrastruttura basata su Solana, confermando un quadro operativo unificato.

Estensioni IDE dannose: prendere di mira gli ambienti di sviluppo

La campagna si è inoltre infiltrata negli strumenti di sviluppo tramite un'estensione dannosa identificata come reditorsupporter.r-vscode-2.8.8-universal, che prende di mira l'IDE Windsurf. Mascherata da plugin di supporto per il linguaggio R, distribuisce un programma per il furto di informazioni basato su Node.js.

Una volta installata, l'estensione recupera i payload crittografati dalle transazioni blockchain, li esegue in memoria e distribuisce i componenti compilati per estrarre dati sensibili dai browser basati su Chromium. La persistenza è garantita da attività pianificate e modifiche al Registro di sistema di Windows, assicurando l'esecuzione all'avvio del sistema.

Il malware prende di mira specificamente gli ambienti di sviluppo, escludendo i sistemi russi, replicando il comportamento osservato in altre varianti di GlassWorm.

Indicatori di portata e impatto

Le analisi di sicurezza indicano che la campagna ha compromesso una parte sostanziale dell'ecosistema open source, colpendo oltre 433 progetti su diverse piattaforme. Tra questi figurano repository GitHub (Python e JavaScript), estensioni di VS Code e librerie npm.

Tutti i percorsi di infezione convergono in ultima analisi sull'implementazione di un programma di furto di informazioni basato su JavaScript, evidenziando un obiettivo finale comune di raccolta di credenziali ed esfiltrazione di dati.

  • Oltre 433 progetti e pacchetti compromessi confermati
  • Molteplici vettori di distribuzione, tra cui GitHub, npm ed estensioni IDE.
  • Utilizzo coerente dell'infrastruttura blockchain di Solana per la consegna del payload.
  • Esclusione ripetuta dei sistemi russi in tutte le varianti

Valutazione strategica: una nuova era di attacchi alla catena di approvvigionamento

La campagna ForceMemo rappresenta una significativa escalation nelle minacce alla catena di fornitura del software. La sua combinazione di manipolazione furtiva della cronologia di Git, infrastruttura C2 basata su blockchain e vettori di infezione multipiattaforma dimostra un elevato livello di maturità operativa.

Il riutilizzo delle infrastrutture, unitamente all'evoluzione dei meccanismi di distribuzione, indica un avversario adattivo, capace di scalare gli attacchi mantenendo al contempo persistenza ed elusione. Questo passaggio da compromissioni isolate a intrusioni coordinate e multi-ecosistema sottolinea il crescente rischio che incombe sugli ambienti di sviluppo moderni e sulle comunità open source.

Tendenza

I più visti

Caricamento in corso...