Overview

Trust Wallet, un popolare portafoglio di criptovalute, che generalmente gode di buone recensioni ed è considerato sicuro, recentemente ha rivelato una significativa violazione della sicurezza in una dichiarazione del 22 aprile. La vulnerabilità, identificata nell'implementazione del wallet di WebAssembly (Wasm), ha provocato perdite per un valore di circa $ 170.000 di varie criptovalute per i suoi utenti.

La genesi del problema

È interessante notare che la vulnerabilità non è stata inizialmente identificata dal team interno di Trust Wallet, ma è stata portata alla loro attenzione attraverso il loro programma di bug bounty. In questo programma, dei ricercatori di sicurezza indipendenti mettono alla prova la robustezza del software alla ricerca di vulnerabilità incentivati dalle ricompense riconosciute per eventuali problemi significativi scoperti.

Un ricercatore di sicurezza ha identificato la vulnerabilità WebAssembly nella libreria open source di Trust Wallet, Wallet Core, nel novembre 2022. Nello specifico, i nuovi indirizzi di portafoglio generati tra il 14 e il 23 novembre 2022 ne erano affetti, Trust Wallet ha chiarito che tutti gli indirizzi creati prima e dopo queste date erano sicuri.

La violazione è culminata in due exploit separati, che hanno portato a una perdita totale di quasi $ 170.000. Secondo un rapporto post mortem, sono rimasti circa 500 indirizzi vulnerabili, con un saldo di circa $ 88.000.

Casualità insufficiente nel generatore di numeri pseudo-casuali MT19937

La versione interessata di WASM utilizzava MT19937, un generatore di numeri pseudo-casuali Mersenne Twister (PRNG) con una dimensione dello stato di 19937 bit, per generare i seed mnemonici. Per avviare il processo di generazione, questo PRNG richiedeva un singolo valore di inizializzazione a 32 bit. Tuttavia, a causa delle dimensioni limitate del seed, la versione WASM era in grado di produrre solo circa 4 miliardi di possibili mnemonici. Inoltre, il PRNG MT19937, che opera sulla base di un metodo di ricorsione lineare, non fornisce una sicurezza sufficiente per scopi crittografici. È suscettibile alla previsione degli output successivi utilizzando una lunga sottosequenza di numeri di output, il che rappresenta un rischio per la sicurezza.

Anche se questo problema non è stato ancora registrato come una Common Vulnerabilities and Exposures (CVE), tuttavia, un altro team ha scoperto un problema simile nella libreria Intel Paillier Cryptosystem, che può essere trovata qui:

https://github.com/intel/pailliercryptolib/issues/2


Rischi per la sicurezza e prevedibilità di MT19937

Come anticipato, il problema in questione deriva dall'insufficiente livello di casualità fornito dal generatore di numeri pseudo-casuali MT19937. Quando questo generatore è stato utilizzato per generare chiavi private, un individuo con esperienza (potenzialmente un attore malintenzionato) potrebbe monitorare un numero sufficiente di iterazioni per prevedere iterazioni future. Nel caso in cui questa persona sappia che un particolare indirizzo di portafoglio è stato creato utilizzando MT19937, potrebbe ottenere l'accesso alla chiave privata associata a un determinato indirizzo pubblico, richiedendo una potenza di calcolo da moderata a elevata. In alternativa, un attore malintenzionato potrebbe creare un ampio database contenente tutti i possibili output 2^32 generati da MT19937. Utilizzando tecniche di reverse engineering, potrebbero abbinare le chiavi private a un ampio set di indirizzi vulnerabili che si estendono su varie catene.

Indirizzi portafogli identificati con il problema su MT19937

Durante la procedura di analisi dell’incidente di sicurezza, gli indirizzi di wallet (meno di 100) sono stati identificati come creati con MT19937. Vale la pena notare che alcuni di questi wallet sono stati istituiti diversi anni fa e la maggior parte di essi è risultata inattiva.

Risposta e mitigazione di Trust Wallet

Il codice responsabile della vulnerabilità è stato prontamente corretto entro un giorno dalla verifica del bug bounty. Ciò ha garantito che qualsiasi indirizzo di portafoglio creato dopo la correzione non fosse interessato dalla vulnerabilità. Tuttavia, la vulnerabilità persisteva negli indirizzi creati tra la versione 0.0.172 e la versione 0.0.182 stesse. Il team di sviluppo di Trust Wallet non è stato in grado di eliminare la vulnerabilità per i wallet creati utilizzando queste versioni interessate senza il coinvolgimento dei proprietari degli indirizzi interessati. Per non correre rischi, gli utenti dovrebbero trasferire le proprie somme dagli indirizzi dei wallet interessati a nuovi indirizzi generati con la versione aggiornata del wallet.

È importante notare che questa azione dovrebbe essere intrapresa dagli stessi proprietari degli indirizzi del wallet dato che Trustwallet non può “operare” in loro vece vista la natura non custodial del wallet. Sono state prese a riguardo tutte le misure possibili per informare gli utenti e fornire assistenza per mitigare il rischio di potenziali attacchi.

Per raggiungere il maggior numero possibile di utenti interessati, sono stati utilizzati vari canali di comunicazione per avvisarli e incoraggiare il trasferimento di risorse dagli indirizzi dei portafogli interessati. È stata implementata una strategia di notifica multicanale, inclusi avvisi in-app e notifiche push su dispositivi mobili, visualizzati ogni minuto.

Collaborazione con Binance per notificare gli utenti interessati

Inoltre, dopo aver scoperto che molte delle somme sugli indirizzi dei wallet colpiti proveniva da Binance, Trust Wallet ha contattato l’exchange per informare gli utenti pur nel rispetto della loro privacy, garantendo che nessuna informazione di identificazione personale è stata condivisa tra Binance e Trust Wallet.

Tempistica sulla divulgazione della notizia di vulnerabilità

È stata presa in considerazione la divulgazione della vulnerabilità una volta implementate tutte le soluzioni possibili. Tuttavia, dopo un'attenta valutazione, è stato stabilito che una divulgazione pubblica anticipata avrebbe potuto esporre la maggior parte dei fondi degli utenti interessati a un rischio di pirateria informatica immediato e altamente probabile. L'obiettivo principale era aiutare gli utenti a salvaguardare i propri beni e prevenire potenziali perdite. Pertanto, la comunicazione riservata uno a uno con gli utenti è stata ritenuta essenziale per consentire loro di intraprendere le azioni necessarie pur mantenendo la proprietà esclusiva dei propri beni.

Supporto e rimborso per gli utenti vittime del malfunzionamento

La risposta di Trust Wallet alla violazione non si è fermata a livello tecnico. Riconoscendo le perdite finanziarie subite dai suoi utenti, Trust Wallet ha annunciato un piano di compensazione. Il portafoglio si è impegnato a rimborsare gli utenti che avevano perso i propri beni durante la violazione. Oltre a rimborsare gli importi perduti, Trust Wallet si è anche offerto di coprire le spese del gas associate ai trasferimenti di fondi, dimostrando un approccio globale per correggere la situazione.

Trust Wallet ha anche fornito assistenza ai clienti interessati dalla vulnerabilità offrendo assistenza ai clienti e rimborsando loro le spese del gas. Ad oggi, sono stati rimborsati circa 23,6 BNB di gas a più utenti che hanno trasferito i propri fondi in un luogo sicuro.

Aumento dei costi operativi e correzione della vulnerabilità

Sebbene in questo momento esista ancora un certo livello di rischio nella divulgazione di queste informazioni, la maggior parte dei fondi è stata trasferita e messa al sicuro dagli utenti negli ultimi mesi. Di conseguenza, il costo operativo per un attore malintenzionato per sfruttare la vulnerabilità è aumentato rispetto ai potenziali guadagni dai restanti portafogli interessati. Attualmente, questi portafogli detengono circa $ 88.300 USD su circa 500 portafogli interessati con un saldo superiore a $ 10 USD di token. Inoltre, la vulnerabilità è stata esplicitamente identificata e corretta.

Conclusione

All'indomani della violazione, Trust Wallet ha compiuto sforzi significativi per migliorare le proprie misure di sicurezza complessive. Hanno avviato audit di sicurezza più rigorosi della loro base di codice, con un'attenzione particolare alle sezioni che trattano dati sensibili. Inoltre, hanno utilizzato strumenti di analisi statica e dinamica per identificare in modo proattivo potenziali vulnerabilità.

Mentre l'evento WasmGate è stato un duro promemoria dell'importanza della sicurezza informatica nello spazio delle risorse digitali, la risposta di Trust Wallet ha rassicurato gli utenti sul loro impegno a mantenere un ambiente sicuro per le loro risorse. Da allora la piattaforma si è ripresa e continua a essere una scelta privilegiata tra gli utenti di criptovalute.

L'incidente funge da promemoria tempestivo per tutte le piattaforme digitali dell'importanza di solide misure di sicurezza informatica. Man mano che lo spazio delle risorse digitali continua a crescere, anche le minacce cresceranno, rendendo la necessità di pratiche di sicurezza efficaci più critica che mai. Il viaggio di Trust Wallet attraverso l'incidente di WasmGate fornisce un utile caso di studio per altre piattaforme su come rispondere efficacemente a tali sfide.