Il 30 luglio un hacker ha sfruttato i seed vulnerabili generati da alcuni portafogli hardware Coldcard per rubare bitcoin per un valore di circa decine di milioni da centinaia di indirizzi.
Spiegazione della vulnerabilità della Coldcard: chi ha perso dei Bitcoin e chi è a rischio

Punti chiave
- Il 30 luglio, i furti legati a Coldcard hanno prosciugato i bitcoin da centinaia di portafogli.
- Coinkite afferma che i seed Mk3 presentavano circa 40 bit di entropia invece di 128.
- Gli utenti di Coldcard devono installare il firmware corretto e creare nuovi seed prima di trasferire fondi.
Secondo un'analisi approfondita di Galaxy Research, il furto principale si è svolto in un'azione intensiva e ben coordinata durata circa 25 minuti, mentre un'analisi più ampia ha successivamente collegato circa 1.196 indirizzi e ben 1.083 bitcoin, per un valore di quasi 70 milioni di dollari, a un'attività che si è protratta per circa 41 minuti. Le cifre definitive potrebbero variare man mano che gli investigatori continuano a tracciare le transazioni sulla blockchain pubblica di Bitcoin.
Un bug vecchio di 5 anni colpisce i portafogli Bitcoin in tutto il mondo
I portafogli colpiti appartenevano in gran parte a possessori di lungo periodo che avevano generato i propri seed di recupero utilizzando dispositivi Coldcard con firmware vulnerabile rilasciato a partire da marzo 2021. Coldcard è un portafoglio hardware “air-gapped” prodotto dal produttore canadese Coinkite e progettato per mantenere le chiavi di Bitcoin (BTC) isolate dai dispositivi connessi a Internet.
Molti degli indirizzi svuotati erano rimasti inattivi per anni. L’autore dell’attacco ha agito rapidamente, ha pagato commissioni di transazione fisse elevate e non ha lasciato output di resto, il che significa che ogni indirizzo è stato svuotato completamente. Questo schema suggerisce un’operazione automatizzata che utilizza un elenco predisposto di chiavi private, piuttosto che un trasferimento autonomo dei fondi da parte dei clienti.
Il furto non è stato causato da phishing, malware sul computer di un utente, furto fisico del dispositivo o una violazione remota convenzionale. Al contrario, un errore del firmware ha compromesso la casualità utilizzata da alcuni dispositivi Coldcard durante la creazione dei seed del portafoglio. Tali seed apparivano normali, ma provenivano da un intervallo di combinazioni possibili molto più ristretto rispetto a quanto promesso agli utenti.
Il generatore di numeri casuali di Coldcard ha fallito silenziosamente
Un seed di un portafoglio Bitcoin è un codice segreto, solitamente rappresentato da 12 o 24 parole, da cui il portafoglio genera i propri indirizzi e le chiavi private. Un seed di 12 parole generato correttamente contiene 128 bit di entropia, una misura tecnica che descrive un numero enorme di combinazioni possibili, rendendo di fatto impossibile indovinare il seed.
I dispositivi Coldcard avrebbero dovuto ottenere tale casualità da un generatore di numeri casuali hardware all’interno del microcontrollore del dispositivo. Il componente attinge dal rumore elettrico fisico che un osservatore esterno non dovrebbe essere in grado di prevedere.
Tuttavia, durante una migrazione delle librerie software nel 2021, Coinkite ha rivelato che due funzioni di generazione di numeri casuali con interfacce corrispondenti sono state confuse. Una accedeva al generatore hardware proprio del dispositivo. L’altra era una soluzione software di ripiego poco sicura, destinata alle schede prive di hardware adeguato.
Un’impostazione di configurazione disabilitava il percorso hardware predefinito di MicroPython poiché Coinkite forniva un proprio wrapper hardware. Il software verificava solo se tale impostazione fosse presente, non se fosse abilitata. Poiché l’impostazione era presente ma le era stato assegnato un valore pari a zero, la compilazione si è completata con successo, mentre la generazione del seme è passata silenziosamente al generatore software più debole.
I dati di fabbrica e la temporizzazione hanno sostituito la vera casualità
Tale soluzione di ripiego si basava fortemente su informazioni prevedibili del dispositivo, tra cui un identificatore del chip simile a un numero di serie e valori dell’orologio interno associati ai tempi di avvio. Un aggressore in grado di restringere tali input si troverebbe di fronte a uno spazio di ricerca molto più ridotto rispetto all’intervallo di 128 bit previsto per un seme generato in modo sicuro.
Coinkite ha stimato lo spazio di ricerca effettivo per i semi Mk3 vulnerabili a circa 40 bit in base alle ipotesi attuali. Si tratta comunque di un numero elevato di possibilità, ma può essere esplorato con apparecchiature informatiche specializzate, specialmente quando un malintenzionato può confrontare i semi candidati con gli indirizzi Bitcoin visibili sulla blockchain.

I modelli Coldcard successivi, tra cui l’Mk4, il Q e l’Mk5, hanno aggiunto una componente di casualità proveniente da un elemento sicuro. Tuttavia, solo una parte limitata raggiungeva il generatore interessato, lasciando circa 72 bit di entropia effettiva sui seed creati prima dell’installazione del firmware corretto. Si trattava di un valore superiore rispetto a quello del percorso Mk3, ma comunque inferiore allo standard previsto di 128 bit. La differenza è simile alla sostituzione di una combinazione di serratura veramente casuale con una derivata dal numero di serie della serratura e dall’ora in cui è stata accesa per la prima volta. La combinazione risultante può sembrare casuale, ma chi conosce la formula ed è in grado di stimare le informazioni iniziali può riprodurla. Molti utenti stanno effettuando la migrazione, non solo dai dispositivi Mk3, ma anche dai modelli Mk4, Q e Mk5.
Coinkite invita gli utenti a creare seed completamente nuovi
Coinkite ha pubblicato avvisi di sicurezza e rilasciato un firmware corretto dopo essere venuta a conoscenza della minaccia attiva. L’azienda ha affermato che gli utenti che hanno generato seed sul firmware interessato dovrebbero crearne uno completamente nuovo utilizzando una versione corretta e trasferire i propri bitcoin a indirizzi controllati da quel seed.
L’installazione dell’aggiornamento da sola non è sufficiente. Un seed creato con il sistema difettoso rimane vulnerabile in modo permanente, poiché l’aggiornamento del firmware non può aggiungere casualità alle parole già esistenti.
Coinkite ha consigliato agli utenti di aggiornare il proprio dispositivo, creare un nuovo seed, verificare il backup e l’impronta digitale del portafoglio, confermare l’indirizzo di destinazione, inviare una piccola transazione di prova e quindi trasferire il saldo rimanente. Gli utenti dovrebbero conservare il vecchio backup fino a quando il trasferimento non sarà confermato, ma non dovrebbero più considerare il vecchio seed come sicuro.
L’azienda ha identificato le versioni corrette, tra cui Mk3 versione 4.2.0 o successive, Mk4 e Mk5 versione 5.6.0 o successive e Q versione 1.5.0Q o successive, insieme alle corrispondenti versioni di Edge. I prodotti Tapsigner, Opendime e Satscard utilizzano un codice diverso e, secondo quanto riferito, non sono stati interessati dal problema.
La sicurezza aggiuntiva ha protetto alcuni possessori di Coldcard
Gli utenti che hanno aggiunto un numero sufficiente di lanci di dadi indipendenti durante la generazione del seed sono stati sostanzialmente protetti, poiché la loro casualità ha prevalso sull’input difettoso del software. Coinkite ha affermato che almeno 50 lanci privati con un dado imparziale hanno fornito una protezione adeguata da questo problema, sebbene lanci aggiuntivi possano garantire un margine di sicurezza più ampio.
Una passphrase BIP-39 forte crea inoltre un portafoglio separato che non può essere ricostruito solo dalle parole del seed. I portafogli multi-firma, che richiedono chiavi provenienti da più dispositivi o posizioni prima che i bitcoin possano essere trasferiti, erano in gran parte o completamente protetti quando il seed vulnerabile della Coldcard rappresentava solo una parte della procedura di firma.
Tali misure di sicurezza erano tuttavia facoltative. Molte vittime sembrano aver seguito i consigli di sicurezza standard disponibili all’epoca: acquistare un portafoglio hardware affidabile, generare il seed offline, proteggere il backup e non inserirlo mai in un dispositivo connesso a Internet.
Coinkite si assume la responsabilità mentre il dibattito si sposta sull’IA
Il CEO di Coinkite, Rodolfo Novak, noto come NVK, si è scusato pubblicamente il 31 luglio e ha affermato che l’azienda si assume la piena responsabilità del malfunzionamento del firmware. «Mi dispiace e sono devastato. Il nostro team è affranto dalla notizia di ieri», ha scritto Novak. Ha riconosciuto che la correzione temporanea protegge i seed appena creati, ma non può riparare quelli generati con il software vulnerabile.

Novak ha spiegato che Coinkite pubblicherà un resoconto tecnico completo dopo aver verificato i dettagli e assisterà gli utenti colpiti che intendono presentare denunce alla polizia, richieste di risarcimento assicurativo o avviare indagini indipendenti. Ha inoltre avvertito gli sviluppatori che gli strumenti di intelligenza artificiale (IA) sono ora in grado di scansionare il vecchio codice pubblico alla ricerca di vulnerabilità nascoste più rapidamente di quanto possano rilevarle i processi di revisione tradizionali.
Coinkite ha sottolineato di dover presumere che un aggressore abbia utilizzato l’IA per ispezionare il proprio firmware open-source, sebbene non vi siano prove che stabiliscano come la vulnerabilità sia stata scoperta. L’azienda ha inoltre ammesso che una recente revisione effettuata con un modello di IA di punta non è riuscita a identificare il problema. Diversi produttori concorrenti di portafogli hardware hanno utilizzato i social media per precisare che i loro prodotti non sono interessati dal problema.
«Ledger non è interessata dall’avviso relativo alla Coldcard Mk3 pubblicato di recente», ha dichiarato l’azienda agli utenti di X dopo l’incidente della Coldcard. «I dispositivi Ledger utilizzano un generatore di numeri casuali veri (TRNG) certificato, integrato direttamente nel nostro chip Secure Element, che genera 256 bit di entropia per ogni frase segreta di recupero di 24 parole».
«Utenti Trezor: i vostri fondi sono al sicuro», ha spiegato venerdì il produttore di portafogli hardware Trezor. «Il recente problema di Coldcard è limitato al loro firmware personalizzato e al modo in cui alcuni dei loro dispositivi generavano la casualità. Trezor non condivide quel codice.» L’account Trezor X ha aggiunto:
"Abbiamo sempre combinato tra loro più fonti indipendenti di casualità (hardware del dispositivo + host + Secure Element sui modelli più recenti). Siamo sinceramente dispiaciuti per tutti coloro che hanno perso dei bitcoin."
Cosa devono tenere d’occhio gli utenti di Coldcard
L’identità dell’autore dell’attacco rimane sconosciuta e i bitcoin rubati potrebbero essere trasferiti dai relativi indirizzi di consolidamento in qualsiasi momento. Gli investigatori stanno ancora lavorando per determinare quanti seed vulnerabili siano stati effettivamente generati, quanti bitcoin rimangano esposti e se l’autore dell’attacco abbia già individuato altri portafogli di alto valore. Tuttavia, Coinkite potrebbe non disporre di molte informazioni sui proprietari di molto tempo fa. "Una strana arma a doppio taglio: Coinkite cancella tutti i dati dei propri clienti dopo 120 giorni per proteggersi dalle violazioni dei dati", ha riferito su X il cofondatore di Casa, Jameson Lopp. "Ciò significa che non sono in grado di contattare i clienti che hanno acquistato coldcard vulnerabili negli ultimi 5 anni per avvertirli di questa vulnerabilità."

L’incidente metterà inoltre alla prova la capacità di Coinkite di ripristinare la fiducia in Coldcard e la disponibilità dei produttori di portafogli hardware ad adottare revisioni indipendenti più rigorose della generazione dei seed. Per gli utenti, la priorità immediata è più semplice: chiunque abbia creato un seed su un firmware compromesso senza una forte entropia indipendente dei dadi, una passphrase o una protezione multisignatura dovrebbe considerarlo compromesso e trasferire con cautela i fondi su un portafoglio appena generato.
Al di là del devastante furto, i bitcoiners di tutta la comunità stanno lanciando l’allarme e spingendo gli altri a diffondere la notizia prima che altri portafogli vulnerabili vengano svuotati.
Questo articolo è stato tradotto dall'inglese tramite IA. La versione originale in inglese è la fonte autorevole; le traduzioni automatiche possono contenere imprecisioni, in particolare nella terminologia legale e normativa.
















