Un bug segnalato in Solana ha rivelato il modo in cui un hacker avrebbe potuto rubare diversi milioni di dollari dalle diverse DApp distribuite sulla rete.
Il bug o l'errore in questione è stato segnalato dalla società di sicurezza informatica Neodyme e interessa il Libreria dei programmi Solana (SPL), una libreria utilizzata per la generazione di DApp in Solana.
I ricercatori di Neodyme hanno spiegato l'intero processo per sfruttare questa vulnerabilità nei loro file blog ufficiale. Sotto il titolo di «Come diventare milionario, 0,000001 BTC alla volta» (in inglese, Come diventare milionario, 0.000001 BTC alla volta), Gli esperti di Neodyme indicano che la falla consentirebbe a un utente malintenzionato di ottenere fino a 27 milioni di dollari all'ora e che le principali vittime della vulnerabilità sarebbero protocolli come Tulip Protocol, Solend e Larix.
In totale, gli hacker avrebbero accesso a circa 2.600.000.000 di dollari. Ciò tiene conto del Total Value Locked (TVL) dei diversi protocolli che utilizzano SPL in Solana. Per le sue caratteristiche e dimensioni, questo potrebbe essere tranquillamente considerato uno dei difetti più gravi dell'ecosistema Solana, anche se per fortuna il bug non è stato sfruttato ed è già stato corretto.
Si può essere interessati: Il consumo energetico della rete Solana è molto inferiore a quello di Google, iPhone e altre criptovalute
Il bug sarebbe potuto costare miliardi a Solana
Il bug, che è già stato debitamente corretto, come si può vedere in SPL GitHub, ha avuto origine nel dicembre 2020, quando il problema 991, che proponeva di migliorare le operazioni matematiche della libreria ed evitare i vettori di attacco.
Tuttavia, nonostante il lavoro svolto dagli sviluppatori per correggerlo in quel momento, nel giugno di quest'anno il bug era ancora presente. In esso problema 1869, un utente ha mostrato una prova di concetto su come sfruttare questo bug.

Tutto ciò indica che l'errore era in libreria da almeno 11 mesi e non è stato sfruttato in alcun modo, con le terribili conseguenze che avrebbe avuto. Nelle parole del team Neodyme "un errore di arrotondamento può sembrare innocuo e tuttavia può portare a vulnerabilità critiche", e il miglior esempio di quelle parole è esposto in questo intero caso, anche se per fortuna completamente inosservato dagli hacker.
Rubare milioni, pezzo dopo pezzo
Il bug in SPL ha funzionato in modo abbastanza semplice e, per usare un eufemismo, elegante. Il problema è originato dalla libreria che non gestisce in modo coerente l'arrotondamento. Pertanto, in ogni operazione, a determinate condizioni, era possibile rubare i decimali fino a convertirli in importi milionari.
Il team Neodyme ha iniziato le indagini il 1 dicembre dello scorso anno. Lì hanno scoperto che il bug poteva essere sfruttato in modo efficace. In effetti, l'operazione ha permesso, pezzo dopo pezzo, a un hacker ben documentato di rubare una fortuna da diversi protocolli Solana che utilizzano la libreria SLP.
Si sono quindi accorti che c'era un errore grave nelle operazioni di arrotondamento. Ogni volta che veniva effettuata un'operazione, l'importo veniva arrotondato al numero intero più vicino nel punto di prelievo. La condizione perché ciò accada è che all’utente sia dovuta una frazione della più piccola unità di riferimento di Solana (Lamport, l’equivalente di satoshi in BTC). La conseguenza diretta di ciò è che un utente potrebbe ritrovarsi con più o meno token a seconda dell’importo scambiato e, in media, all’interno del protocollo tutto rimarrebbe uguale.
Tuttavia, questa situazione incoerente consentirebbe agli hacker di utilizzare il sistema a proprio vantaggio. Per fare questo, dovrebbero solo preparare a smart contract Lasciate che sfruttino il bug e prendano così i token che vogliono. E questo è esattamente ciò che i ricercatori di Neodyme hanno ottenuto, avvertendo tutti dell’errore e aiutando a risolverlo.
Infatti, le prove presentate per dimostrare l’errore hanno permesso loro di impossessarsi di 0,000001 BTC (0,047$). E, se volevano ottenere di più, dovevano semplicemente rieseguire le operazioni. In questo modo, potrebbero aggiungere più soldi al loro portafoglio fino a quando non se ne andranno con un buon bottino. I ricercatori hanno stimato che l’exploit potrebbe consentire a un hacker di guadagnare circa 7.500 dollari al secondo, ovvero circa 27 milioni di dollari all’ora.

Stato attuale
Attualmente il bug è risolto, non solo in SLP ma anche nei principali protocolli open source che utilizzano questa libreria Solana. La magia del software libero è che miglioramenti e correzioni possono essere rapidamente condivisi tra diversi progetti in modo da essere tutti più sicuri. Tuttavia, Solana ha un mix di progetti piuttosto interessante e molti di essi sono closed source.
Vediamo un buon esempio di questa situazione in Raydium. Questo DEX è uno dei più utilizzati su Solana con un TVL attualmente di 1,7 miliardi di dollari. È un'ottima applicazione, ma ha un grosso problema: è closed source. Pertanto, è impossibile verificare il codice che fa funzionare il protocollo, per facilitare il rilevamento di errori e altro.

Naturalmente, questo non rende Raydium una cattiva app; anche se nell'ecosistema blockchain Siamo abituati a standard e codici aperti. In quella situazione, Raydium è chiaramente un caso strano.
Ma tutta questa situazione potrebbe cambiare in un futuro non troppo lontano. Fatti come questo bug indurrebbero gli sviluppatori a pensarci due volte quando implementano e rilasciano il codice dei loro protocolli. Tutto questo, ovviamente, per motivi di sicurezza e per l’evoluzione di Solana come progetto ed ecosistema blockchain. In ogni caso, una cosa è molto chiara, Solana continuerà a crescere e consolidarsi come una delle blockchain più importanti ed efficienti nell’ecosistema crittografico.
Continua a leggere: Solana si interrompe dopo aver raggiunto il TPS massimo a causa dell'elevata domanda e dell'utilizzo della rete


