Attacco Glassworm: fragilità della supply chain del software
L’attacco Glassworm che ha recentemente colpito l’ecosistema di GitHub dimostra, con allarmante chiarezza, quanto sia facile trasformare i nostri strumenti di sviluppo quotidiani in letali vettori d’infezione. In poche ondate chirurgiche e mirate, quello che consideravamo codice di assoluta fiducia è diventato un potenziale cavallo di Troia digitale, in grado di aggirare silenziosamente le difese tradizionali.
A partire dal 2025, questo sofisticato malware ha iniziato a sfruttare in modo sistematico marketplace molto frequentati come Open VSX e il Visual Studio Marketplace, raggiungendo rapidamente decine di migliaia di download ignari. Estensioni apparentemente innocue, pacchetti npm di uso comune e repository Python sono stati compromessi attraverso modifiche quasi invisibili all’occhio umano.
Tuttavia, queste alterazioni si sono rivelate capaci di rubare credenziali preziose e di manipolare progetti già in fase di produzione. Non ci troviamo di fronte a un banale problema tecnico, ma a una vera e propria crisi di fiducia nell’intera catena di fornitura del software.
Comprendere a fondo come si muove e si evolve l’attacco Glassworm, quali tecniche avanzate sfrutta per nascondersi e quali piattaforme ha colpito finora, risulta fondamentale per chiunque gestisca codice. Questo vale dal singolo sviluppatore freelance fino alle grandi aziende tech. In questo articolo analizzeremo nel dettaglio la cronologia dell’operazione, le tattiche più insidiose impiegate dagli hacker, l’impatto concreto sui team di lavoro e gli strumenti più utili per intercettare tempestivamente il codice nascosto.
Vedremo inoltre come strutturare difese solide e durature, così da ridurre al minimo il rischio che il tuo repository diventi il prossimo anello debole.
Cronologia dell’attacco Glassworm su GitHub
La complessa storia dell’attacco Glassworm si delinea come una progressione costante di ondate sempre più ampie e distruttive.
Quella che inizia come una campagna circoscritta e mirata alle estensioni di editor popolari, si trasforma infatti in pochi mesi in un vero e proprio supply chain attack su scala multi‑piattaforma, capace di eludere i controlli di sicurezza standard.
Nell’ottobre del 2025 vengono scoperte le prime estensioni malevole annidate nel registro Open VSX e nel marketplace ufficiale di Visual Studio Code.
Si tratta di circa una dozzina di pacchetti apparentemente legittimi, che accumulano oltre 35.000 download complessivi prima di essere individuati.
A novembre seguono rapidamente tre nuove estensioni infette, con altri 10.000 download stimati da parte di programmatori. Il 2 dicembre 2025 arriva una terza, preoccupante ondata: almeno 24 pacchetti malevoli consolidano la presenza silente di GlassWorm all’interno degli ambienti di sviluppo aziendali e personali.
L’escalation prosegue senza sosta.
Tra il 31 gennaio e il 14 marzo 2026 emergono ben 72 estensioni maligne su Open VSX. Alcune di queste vengono pubblicate astutamente come extensionPack o sfruttano il meccanismo delle extensionDependencies per diffondere i propri payload in modo laterale, infettando altri componenti.
Nello stesso periodo, una variante particolarmente mirata colpisce quattro estensioni molto scaricate dalla community, superando l’impressionante soglia dei 22.000 download in pochissime settimane.
Dal 3 al 9 marzo 2026, l’attacco Glassworm raggiunge infine la sua piena e drammatica maturità sulla piattaforma di GitHub.
Almeno 151 repository, due pacchetti npm ampiamente utilizzati e un’ulteriore estensione VS Code risultano compromessi in profondità tramite l’inserimento di caratteri Unicode invisibili.
Verso la metà di marzo entra poi in scena la pericolosa variante ForceMemo, la quale utilizza token rubati per effettuare force-push di codice maligno direttamente nei repository Python.
Ad oggi, gli analisti di sicurezza stimano che oltre 400 componenti siano stati infettati nel corso di queste cinque ondate distinte.
Tecniche dell’attacco Glassworm: Unicode invisibile, Solana e ForceMemo
Per comprendere a fondo il motivo per cui l’attacco Glassworm è così insidioso e difficile da arginare, bisogna analizzare da vicino le sue sofisticate tecniche.
I criminali informatici hanno saputo combinare innovazioni tecnologiche su più livelli operativi: dall’offuscamento estremo del codice sorgente fino alla garanzia di persistenza della loro infrastruttura di comando e controllo.
Il primo elemento chiave di questa strategia è l’uso magistrale di caratteri Unicode invisibili, inseriti strategicamente nei blocchi della cosiddetta Private Use Area.
Questi caratteri non compaiono in alcun modo visivamente sullo schermo del programmatore, ma vengono decodificati silenziosamente da uno specifico decoder incluso nel payload iniziale.
In pratica, il codice dannoso è fisicamente presente nel file, ma sia gli strumenti di analisi standard che gli occhi umani lo ignorano del tutto.
I commit infetti sembrano semplici operazioni di refactor o aggiornamenti banali di routine, spesso descritti con testi di accompagnamento probabilmente generati da modelli LLM per aumentarne la credibilità formale.
Il secondo pilastro dell’operazione è il sistema di comando e controllo basato su Solana, una nota blockchain pubblica.
GlassWorm recupera dinamicamente le proprie configurazioni e i payload aggiornati leggendo specifiche transazioni registrate in modo indelebile sulla catena, rendendo l’infrastruttura C2 di fatto incensurabile.
In alcune varianti più recenti, i criminali usano persino Google Calendar come canale di backup nascosto per la comunicazione.
Altre tattiche documentate includono l’uso di estensioni “sleeper”, che inizialmente sembrano del tutto innocue e solo dopo un successivo aggiornamento apparentemente legittimo scaricano la componente malevola.
Infine, la micidiale variante ForceMemo combina tutte queste tecniche di evasione con l’abuso di credenziali GitHub precedentemente rubate.
Tramite operazioni di force-push aggressive e non autorizzate, il gruppo inserisce codice pesantemente offuscato all’interno di file sensibili e cruciali, come i classici setup.py, main.py o app.py dei progetti Python.
È proprio in questo modo che l’attacco Glassworm sfrutta librerie di terze parti, dashboard sviluppate in Streamlit e persino complessi script di ricerca ML per propagarsi nell’ecosistema senza farsi notare dai team di sicurezza.
Impatto reale su sviluppatori, progetti Python e aziende
Oltre ai numeri impressionanti legati ai download, ciò che rende l’attacco Glassworm un evento particolarmente grave nel panorama della cybersecurity è il suo devastante effetto quotidiano sui team di sviluppo.
Viene infatti colpito il vero e proprio cuore pulsante della supply chain del software: estensioni degli editor, dipendenze di pacchetti e repository che fino a ieri erano considerati assolutamente fidati e sicuri.
Già durante la prima ondata di ottobre 2025, circa dodici estensioni infette riescono a raggiungere rapidamente i 35.000 download globali.
Moltissimi sviluppatori ignari installano questi strumenti compromessi sia sui propri ambienti personali che su quelli aziendali, spesso condividendo inavvertitamente gli stessi token GitHub o le medesime credenziali di accesso cloud.
Nel mese di novembre, altre tre estensioni sommano oltre 10.000 download aggiuntivi, mentre a fine gennaio quattro pacchetti malevoli superano agilmente la soglia dei 22.000. Ognuna di queste singole installazioni rappresenta un potenziale, silente punto d’ingresso per il furto sistematico di token operativi e chiavi d’accesso privilegiate.
Quando la campagna malevola si sposta in modo più massiccio e mirato sull’infrastruttura di GitHub, a farne le spese sono soprattutto i progetti basati su Python.
La variante ForceMemo si specializza nell’inserire porzioni di codice offuscato all’interno di file centrali per l’esecuzione, come setup.py e app.py.
I target prediletti dagli attaccanti includono complesse applicazioni web in Django, dashboard per l’analisi dei dati, pacchetti pubblicati su PyPI e delicati componenti di ricerca per l’intelligenza artificiale.
Chiunque esegua questi script infetti all’interno di ambienti CI/CD automatizzati o direttamente sui server di produzione, rischia seriamente l’esfiltrazione di segreti industriali, la sostituzione malevola di file binari o la modifica occulta di dipendenze critiche per il business.
Di fronte a questo scenario, per moltissime organizzazioni rafforzare la sicurezza del codice sorgente diventa non solo una necessità tecnica, ma una vera e propria priorità strategica a livello dirigenziale.
Non si tratta semplicemente di evitare danni economici immediati legati a un data breach. L’attacco Glassworm mina alla base la fiducia nei processi di revisione interni, nell’affidabilità dei marketplace ufficiali e nelle intere catene di distribuzione del software aziendale, imponendo un drastico cambio di paradigma.
Come individuare il codice malevolo nei repository e nelle estensioni
La buona notizia in questo scenario allarmante è che l’attacco Glassworm lascia comunque dietro di sé delle tracce tecniche chiaramente identificabili, a patto che si adottino metodologie e strumenti di indagine mirati.
Il primo e più urgente obiettivo per i team di sicurezza è scovare i famigerati caratteri invisibili e mappare i pattern tipici utilizzati dal decoder malevolo per attivarsi.
Per rilevare con precisione i caratteri Unicode sospetti annidati nei file sorgente, gli analisti possono impiegare strumenti open source come anti-trojan-source oppure integrare l’efficace plugin detect-bidi-characters all’interno delle regole di ESLint.
Questi tool specializzati sono in grado di evidenziare in tempo reale le sequenze anomale presenti nei blocchi U+FE00–U+FE0F e U+E0100–U+E01EF, che sono esattamente quelle spesso usate dall’architettura di GlassWorm per nascondere il proprio payload agli occhi dei programmatori.
In parallelo a queste verifiche, scanner dedicati come glassworm-hunter riescono a riconoscere specifici cluster di selettori CSS invisibili, funzioni di decoder javascript offuscate e le sospette chiamate di rete in uscita verso gli endpoint della blockchain Solana.
Risulta quindi fondamentale integrare fin da subito questi controlli di sicurezza all’interno delle pipeline CI aziendali, così da poter bloccare automaticamente eventuali commit sospetti prima che vengano integrati nel ramo principale.
Per rendere questo processo di rilevamento veramente sistematico e affidabile nel tempo, conviene strutturare a monte alcune verifiche standardizzate e inderogabili. Ecco i principali elementi da includere:
- Analisi periodica dei file critici come setup.py, main.py e app.py
- Controllo mirato di estensioni e plugin installati in editor e IDE
- Ricerca di chiamate a nodi RPC Solana in progetti non legati alle crypto
- Monitoraggio di force-push insoliti e branch riscritti nei repository
Queste pratiche di igiene informatica, seppur rigorose, non eliminano da sole il rischio in modo assoluto, ma riducono enormemente la possibilità che del codice infetto resti inosservato per mesi.
Usate in combinazione tra loro, queste tecniche permettono di individuare rapidamente gli indicatori di compromissione più comuni dell’attacco Glassworm, bloccando la minaccia molto prima che riesca a raggiungere gli ambienti di produzione.
Difendersi dall’attacco Glassworm: credenziali, processi e cultura della sicurezza
Costruire una difesa davvero efficace contro l’attacco Glassworm richiede uno sforzo che va ben oltre la semplice installazione di uno scanner antimalware.
Serve piuttosto una combinazione olistica che unisca una rigorosa gestione delle credenziali d’accesso, processi di sviluppo intrinsecamente robusti e una profonda consapevolezza diffusa in modo capillare tra gli sviluppatori e i responsabili dei dipartimenti IT.
Per prima cosa, diventa assolutamente essenziale controllare in modo proattivo e ruotare con regolarità tutte le credenziali operative.
I token di accesso personali per piattaforme come GitHub, i registri npm e i marketplace come Open VSX non dovrebbero mai avere permessi eccessivi rispetto alle reali necessità, né tantomeno rimanere attivi e dimenticati per anni all’interno di vecchi script.
In presenza di qualsiasi anomalia nei log, come ad esempio operazioni di force-push inattesi o branch storici improvvisamente riscritti, la revoca preventiva e immediata dei token riduce drasticamente la superficie d’attacco a disposizione degli hacker.
È inoltre estremamente utile separare in modo netto gli account personali da quelli di servizio automatizzati, ricordandosi di applicare sempre e senza eccezioni l’autenticazione a più fattori per ogni singolo login.
In parallelo a queste misure igieniche, conviene fortemente adottare una strategia basata su allowlist per quanto riguarda l’uso di estensioni e plugin negli ambienti di lavoro.
Questo significa che solo pochi componenti, preventivamente verificati e approvati dal team di sicurezza, possono essere effettivamente usati in ambienti di produzione o all’interno di contesti di sviluppo particolarmente sensibili.
La fase di revisione del codice sorgente deve necessariamente combinare l’uso di strumenti automatici con attenti controlli manuali incrociati, prestando una particolare attenzione ai file di configurazione Python maggiormente esposti alle manipolazioni.
Processi di code review che siano realmente rigorosi e approfonditi, e non vissuti come un mero passaggio formale, aiutano enormemente a cogliere quei piccoli cambiamenti sospetti che tradiscono la presenza di un intruso.
Infine, ogni team di sviluppo moderno dovrebbe programmare regolarmente delle simulazioni realistiche di compromissione della propria repository principale.
L’obiettivo è misurare empiricamente quanto velocemente la squadra riesca a individuare la breccia, isolare l’infezione e ripristinare la normalità operativa.
Questa solida cultura della vigilanza continua rappresenta oggi il miglior antidoto possibile, proprio perché riduce drasticamente il lasso di tempo che intercorre tra l’intrusione iniziale e la risposta difensiva. Agendo in questo modo strutturato, la minaccia rappresentata dall’attacco Glassworm diventa un rischio tecnicamente gestibile.
Glassworm come spartiacque per la sicurezza del codice
Il fenomeno GlassWorm segna un vero e proprio cambio di fase nell’evoluzione degli attacchi mirati alla catena di fornitura del software. Sfruttando genialmente porzioni di codice invisibile, un’infrastruttura C2 incensurabile basata su blockchain e lo sfruttamento sistematico di token aziendali rubati, l’attacco Glassworm mostra con spietata chiarezza quanto sia ormai fragile il tradizionale modello di fiducia implicita tra strumenti di lavoro, estensioni di terze parti e repository centrali.
Non ci troviamo di fronte a una semplice e fortunata campagna di malware, ma a un severo avvertimento sulla necessità impellente di ripensare l’intero ciclo di sviluppo in una chiave profondamente difensiva.
Le organizzazioni che scelgono di integrare attivamente le scansioni per i caratteri Unicode anomali, i controlli sul traffico verso Solana, una gestione rigorosa delle credenziali e sessioni di code review sostanziali, riescono a trasformare ogni singolo commit in un fondamentale punto di verifica, smettendo di considerarlo un cieco atto di fede. L’implementazione strutturale di strumenti avanzati come SonarQube per l’analisi statica del codice può identificare vulnerabilità nascoste molto prima che diventino un problema reale.
Questa complessa vicenda rivela infine che la vera sicurezza informatica non risiede mai nell’acquisto di un singolo prodotto miracoloso, ma nella costruzione di un ecosistema di pratiche coerenti e stratificate. L’emergenza attuale passerà, ma il nuovo paradigma operativo che ha inaugurato rimarrà lo standard di riferimento. Investire seriamente in formazione continua e simulazioni di attacco mirate aiuterà le organizzazioni a mantenere alta la guardia contro avversari sempre più creativi.
