Vulnerabilità Coldcard: Un Bug di 8 Anni Causa Perdite per $130 Milioni in Bitcoin

Un bug critico nel generatore di numeri casuali del wallet hardware Coldcard ha esposto a un attacco che ha portato al furto di circa 2.055 BTC, pari a circa $130 milioni al prezzo attuale. L'azienda produttrice, Coinkite, ha pubblicato un dettagliato rapporto tecnico che rivela come l'errore sia rimasto non rilevato per otto anni.

L'Entropia e la Generazione dei Seed

L'errore principale risiedeva nella generazione dei seed, che è il punto di partenza per la creazione di chiavi private e indirizzi Bitcoin. Coldcard utilizza un chip hardware dedicato per generare numeri casuali, ma un problema di configurazione ha fatto sì che il sistema utilizzasse invece un algoritmo software di fallback, chiamato Yasmarang, che produce numeri pseudo-casuali.

I numeri pseudo-casuali, sebbene possano apparire casuali, sono in realtà deterministici. Se un attaccante conosce il valore iniziale (seed), può prevedere l'intera sequenza di numeri generati. Nel caso di Coldcard, il seed era derivato dal numero di serie del chip e dall'orologio interno, riducendo drasticamente la complessità del problema di ricerca a circa 40 bit per i modelli più vecchi e 72 bit per i più recenti, rispetto ai 128 bit previsti.

L'Attacco e le Perdite

Secondo Galaxy Research, almeno 1.596 BTC sono stati rubati in tre onde confermate di attacchi, con una quarta onda sospetta che porterebbe il totale a circa 2.055 BTC. Coinkite stima che almeno 15 attaccanti diversi abbiano sfruttato la vulnerabilità. Uno dei trasferimenti ha spostato $70 milioni in soli 41 minuti.

La Scoperta del Bug

Il bug è stato introdotto durante la migrazione del codice crittografico di Coldcard alla libreria libsecp256k1, utilizzata anche da Bitcoin Core. Un errore di configurazione ha fatto sì che il sistema utilizzasse il generatore software invece di quello hardware. Coinkite sospetta che l'errore sia stato scoperto tramite l'uso di strumenti di intelligenza artificiale.

Le Conseguenze e le Soluzioni

Coinkite ha rilasciato un aggiornamento del firmware che risolve il problema, ma non può riparare i seed già generati. Gli utenti devono rigenerare i loro seed e trasferire i fondi su nuovi indirizzi. Alcuni utenti hanno considerato l'uso di dadi fisici per generare entropia aggiuntiva, ma sviluppatori come Luke Dashjr hanno avvertito che i dadi comuni non sono sufficientemente sicuri.

L'Importanza dell'Entropia

L'entropia è una misura dell'incertezza e della casualità. Per un wallet Bitcoin, l'entropia determina quanto lavoro un attaccante dovrebbe fare per indovinare la chiave privata. Con 128 bit di entropia, il numero di combinazioni possibili è così grande che è praticamente impossibile da indovinare. Con solo 40 bit, però, diventa un problema risolvibile con strumenti informatici moderni.

Lezioni Apprese

L'incidente sottolinea l'importanza di avere più fonti di entropia e di non fare affidamento su un singolo componente. La vulnerabilità non è stata causata da un bias leggero nell'entropia, ma dal fatto che un componente critico ha smesso di funzionare senza che nessuno se ne accorgesse.

Gli utenti di Coldcard e di altri wallet hardware dovrebbero prendere in considerazione l'uso di passphrase BIP-39 robuste e di fonti di entropia aggiuntive per migliorare la sicurezza dei loro seed.

Contesto e Impatto sul Mercato

L'incidente di Coldcard ha scosso l'intero ecosistema delle criptovalute, sollevando preoccupazioni sulla sicurezza dei wallet hardware. Gli esperti del settore hanno iniziato a esaminare più da vicino le vulnerabilità potenziali nei dispositivi di stoccaggio a freddo, e alcuni utenti hanno iniziato a trasferire i loro fondi su piattaforme diverse per maggiore sicurezza. Il valore di mercato di Coinkite e di altri produttori di wallet hardware ha subito fluttuazioni significative, riflettendo l'ansia degli investitori.

Analisi Tecnica Approfondita

L'errore di configurazione che ha portato all'uso del generatore software invece di quello hardware è stato causato da un dettaglio tecnico apparentemente banale: un guardiano di costruzione che utilizzava #ifndef. Questo comando verifica se una impostazione è definita, piuttosto che se è attiva. Coinkite aveva definito l'impostazione come zero, che significa "spento". Tuttavia, zero conta ancora come definito, quindi il controllo di sicurezza è passato e la costruzione è stata completata senza problemi. Entrambe le versioni della funzione avevano firme identiche, quindi nulla sembrava errato.

Il generatore di numeri pseudo-casuali (PRNG) utilizzato come fallback, Yasmarang, non era progettato per essere utilizzato su dispositivi con chip di casualità hardware. Questo ha portato a una significativa riduzione dello spazio di ricerca, rendendo possibile per gli attaccanti indovinare le chiavi private con strumenti informatici moderni.

Risposta della Comunità

La comunità di sviluppo di Bitcoin e di altre criptovalute ha reagito rapidamente all'incidente. Block's engineering team ha pubblicato un'analisi dettagliata del problema, sottolineando che i dispositivi più recenti avevano uno spazio di ricerca effettivo di circa 2^32 candidati, mentre i modelli più vecchi erano completamente deterministici con informazioni sufficienti. Gli sviluppatori hanno anche avvertito che l'uso di dadi fisici per generare entropia aggiuntiva non è sufficientemente sicuro.

Implicazioni per la Sicurezza delle Criptovalute

L'incidente di Coldcard ha evidenziato l'importanza di avere più fonti di entropia e di non fare affidamento su un singolo componente. La vulnerabilità non è stata causata da un bias leggero nell'entropia, ma dal fatto che un componente critico ha smesso di funzionare senza che nessuno se ne accorgesse. Questo ha portato a una revisione delle pratiche di sicurezza in tutto il settore, con un focus maggiore sull'audit del codice e sui test di sicurezza.

Lezioni per gli Utenti

Il Ruolo dell'Intelligenza Artificiale

Coinkite sospetta che il bug sia stato scoperto tramite l'uso di strumenti di intelligenza artificiale. Questo solleva preoccupazioni sull'uso dell'IA sia da parte degli attaccanti che dei difensori. Anche se entrambi hanno accesso agli stessi strumenti, l'incidente ha dimostrato che l'IA può essere utilizzata per scoprire vulnerabilità in modi che non erano evidenti per gli sviluppatori umani.

L'incidente di Coldcard è un promemoria della complessità e della criticità della sicurezza nelle criptovalute. Anche i dispositivi più sicuri possono avere vulnerabilità nascoste che possono essere sfruttate da attaccanti determinati. La comunità deve continuare a collaborare per migliorare le pratiche di sicurezza e proteggere i fondi degli utenti.

Nota Editoriale e Disclaimer

Le guide e i contenuti pubblicati su GoYou sono frutto di attività di ricerca e analisi indipendente, a scopo informativo, educativo e di approfondimento.

GoYou non costituisce una testata giornalistica né un prodotto editoriale ai sensi della Legge n. 62/2001 e non svolge attività di informazione in tempo reale.

Il progetto GoYou non fornisce consulenza professionale, tecnica, legale o finanziaria e declina ogni responsabilità per l’uso improprio delle informazioni pubblicate.

Nel settore Crypto, ogni investimento comporta rischi: si invita il lettore a informarsi sempre in modo autonomo prima di assumere qualsiasi decisione.