Attacchi alla supply chain: pacchetti malevoli e librerie di wallet compromesse
Un attacco alla supply chain crypto nasconde codice malevolo in software di cui ti fidi. Scopri come funzionano i pacchetti e le librerie di wallet compromessi e come proteggerti.
Un attacco alla supply chain crypto si verifica quando i criminali compromettono software da cui dipendono wallet, app o siti web, come un pacchetto open source, un’estensione del browser o un server di aggiornamento, così che il codice malevolo raggiunga gli utenti attraverso un canale fidato. In genere il codice sostituisce gli indirizzi di destinazione, inietta un wallet drainer in un sito o ruba seed phrase, e spesso le vittime non sbagliano nulla se non usare un prodotto di cui già si fidano.
Questi attacchi riguardano tutti nel mondo crypto, non solo gli sviluppatori. I wallet e le app decentralizzate moderni sono costruiti con centinaia di componenti di terze parti, e un singolo componente compromesso può colpire molti prodotti contemporaneamente. Questa guida spiega come funzionano gli attacchi, a cosa fare attenzione e come ridurre la tua esposizione come utente o sviluppatore.
Come funziona un attacco alla supply chain
La «supply chain» di un’app crypto è tutto ciò che la compone: librerie di codice, strumenti di build, provider di hosting, reti di distribuzione dei contenuti e server di aggiornamento. Un attacco segue in genere questi passaggi:
- 1Ottenere l’accesso. L’aggressore colpisce con il phishing un maintainer di una libreria popolare, acquista un pacchetto abbandonato, indovina una password debole o sfrutta un server di build.
- 2Inserire codice malevolo. Pubblica una nuova versione con codice nascosto, spesso offuscato e progettato per attivarsi solo in determinate condizioni, ad esempio quando è presente un wallet crypto.
- 3Diffondersi con gli aggiornamenti. Le app che scaricano automaticamente l’ultima versione della libreria includono il codice malevolo nella build successiva o, nel caso dei siti web, non appena lo script viene caricato.
- 4Rubare. Il codice può sostituire gli indirizzi copiati negli appunti, mostrare una falsa richiesta di transazione, chiedere una seed phrase o iniettare un drainer nel front-end di un’app decentralizzata.
- 5Nascondersi. Spesso gli aggressori rimuovono rapidamente il codice dopo l’uso, rendendo più difficile l’indagine.
Esistono incidenti reali documentati che seguono questo schema. Nel 2018, una dipendenza malevola aggiunta a un popolare pacchetto JavaScript era progettata per derubare gli utenti di una specifica app di wallet bitcoin. Nel dicembre 2023, una versione compromessa della libreria Connect Kit di Ledger ha fatto sì che, per un breve periodo, diverse app decentralizzate mostrassero un wallet drainer ai propri utenti. Entrambi i casi dimostrano che il punto debole era il codice condiviso, non gli utenti. Per approfondire, leggi Rischi degli indirizzi vanity e degli indirizzi somiglianti.
Punti di ingresso comuni
| Punto di ingresso | Come viene sfruttato | Chi viene colpito |
|---|---|---|
| Pacchetti open source (npm, PyPI e simili) | Pubblicazione di una versione malevola o caricamento di un pacchetto con nome quasi identico | App e sviluppatori che usano il pacchetto |
| Script front-end caricati da terze parti | Script modificato per iniettare un drainer | Ogni visitatore del sito |
| Estensioni del browser | Estensione venduta o dirottata, poi aggiornata con codice malevolo | Utenti che hanno installato l’estensione |
| Aggiornamenti delle app | Server di aggiornamento o chiavi di firma compromessi | Utenti che installano l’aggiornamento |
| Strumenti per sviluppatori e pacchetti suggeriti dall’IA | Nomi di pacchetti falsi che sembrano plausibili | Sviluppatori che installano senza controllare |
Il typosquatting, ovvero caricare un pacchetto con un nome molto simile a quello di uno popolare, è particolarmente diffuso. Uno sviluppatore che sbaglia a digitare il nome di un pacchetto può installare malware senza accorgersene.
Un esempio ipotetico
Questo è un esempio illustrativo e composito, non un caso reale. Immagina un piccolo exchange decentralizzato che carica una popolare libreria di connessione dei wallet da un registro pubblico di pacchetti. Una mattina il maintainer della libreria cade vittima di phishing e l’aggressore pubblica una nuova versione. Il sito dell’exchange carica automaticamente l’ultima versione.
Per qualche ora, ogni utente che collega un wallet vede quella che sembra una normale richiesta di swap. In realtà è una richiesta di approvare i propri token al contratto dell’aggressore. Gli utenti che leggono con attenzione la schermata di approvazione del wallet notano un contratto sconosciuto e si fermano. Chi clicca senza leggere perde i propri token. Il team dell’exchange scopre il problema quando gli utenti segnalano perdite e pubblica un avviso, ma a quel punto il codice è già stato rimosso.
Segnali d’allarme per gli utenti
- Un’app familiare chiede all’improvviso una seed phrase o un passaggio di «convalida del wallet» mai richiesto prima.
- Un’azione di routine genera una richiesta insolita nel wallet, come un’approvazione illimitata o una firma per un contratto sconosciuto.
- L’indirizzo mostrato sullo schermo del tuo hardware wallet non corrisponde a quello che intendevi usare.
- Un’estensione del browser si aggiorna e richiede nuove autorizzazioni, in particolare per leggere e modificare i dati su tutti i siti web.
- Un progetto o dei ricercatori di sicurezza pubblicano avvisi urgenti di non usare un sito o un’app.
Molti di questi segnali si sovrappongono a quelli dei malware degli appunti e delle false app di wallet, che usano tecniche simili. Vedi anche: Falsi aggiornamenti del browser e malware captcha che prendono di mira gli utenti crypto.
Come proteggerti
Come utente
- 1Usa un hardware wallet e leggi indirizzo, importo e contratto sul suo schermo prima di confermare.
- 2Riduci al minimo le estensioni. Rimuovi quelle che non usi e fai attenzione quando un’estensione cambia proprietario o chiede nuove autorizzazioni.
- 3Separa i fondi. Conserva gli investimenti a lungo termine in un wallet che si collega raramente ai siti web e usa un altro wallet per la DeFi di tutti i giorni.
- 4Fermati dopo gli avvisi di sicurezza. Evita di usare un’app finché non conferma che il problema è stato risolto.
- 5Revoca periodicamente le approvazioni non necessarie.
Come sviluppatore o progetto
- Blocca le versioni delle dipendenze e usa i lockfile; revisiona le modifiche prima di aggiornare.
- Controlla con attenzione i nomi dei pacchetti e preferisci librerie ben mantenute.
- Richiedi l’autenticazione a più fattori per gli account dei registri di pacchetti e dei servizi di hosting del codice.
- Usa release firmate e, dove possibile, build riproducibili, così che gli utenti possano verificare i binari.
- Usa una content security policy e la subresource integrity per gli script di terze parti.
Cosa fare se sei stato colpito
- 1Smetti di usare l’app o l’estensione coinvolta e disconnetti tutti i wallet.
- 2Controlla la cronologia delle transazioni alla ricerca di approvazioni o trasferimenti nel periodo interessato.
- 3Revoca le approvazioni sospette e sposta i fondi rimanenti su un nuovo wallet con una nuova seed phrase se la tua seed phrase potrebbe essere stata esposta.
- 4Raccogli hash delle transazioni e indirizzi, poi segnala l’incidente tramite i canali ufficiali del progetto e il nostro modulo di segnalazione truffe.
Segui la checklist completa in cosa fare subito se il tuo wallet è stato compromesso.
In sintesi
Gli attacchi alla supply chain trasformano software affidabile in un canale di furto, quindi non puoi limitarti a evitare i link sospetti. Considera lo schermo del tuo hardware wallet e le richieste del wallet come il controllo finale, mantieni ridotto il software che usi e reagisci in fretta agli avvisi di sicurezza ufficiali. Gran parte della responsabilità spetta a chi sviluppa: bloccate, revisionate e firmate tutto ciò che rilasciate.
Domande frequenti
Che cos’è un attacco alla supply chain nel mondo crypto?
È un attacco in cui i criminali compromettono un software da cui dipendono altri prodotti, come una libreria di codice, un’estensione del browser o un aggiornamento di un’app, invece di colpire direttamente gli utenti. Quando il software affidabile viene aggiornato, il codice malevolo raggiunge ogni app e ogni utente che lo utilizza, spesso per rubare crypto o sostituire indirizzi.
Un attacco alla supply chain può colpire un hardware wallet?
Lo schermo di un hardware wallet è progettato per proteggerti anche se il tuo computer o un sito web sono compromessi, perché confermi l’indirizzo e l’importo reali sul dispositivo. Gli attacchi possono comunque indurti ad approvare una transazione malevola se non leggi lo schermo, quindi verifica sempre i dettagli sul dispositivo stesso.
Come faccio a sapere se un sito che ho usato è stato colpito?
Di solito lo scopri dagli annunci ufficiali del progetto coinvolto o dai ricercatori di sicurezza. Se un progetto che hai usato segnala una libreria o un front-end compromessi, controlla se hai firmato qualcosa nel periodo interessato, revoca le approvazioni e, se necessario, sposta i fondi su un nuovo wallet.
I wallet open source sono al sicuro dagli attacchi alla supply chain?
L’open source aiuta perché più persone possono esaminare il codice, ma non rende il software immune. Il codice malevolo può entrare tramite dipendenze, account dei maintainer compromessi o sistemi di build. Build riproducibili, release firmate e una gestione attenta delle dipendenze riducono il rischio.
