L’insetto „ad alta gravità“ nel software Bitcoin ha rivelato 2 anni dopo la correzione
Una vulnerabilità precedentemente non rivelata nel software Bitcoin Core avrebbe potuto permettere agli aggressori di rubare fondi, ritardare gli insediamenti o dividere la più grande rete a catena di blocco in versioni contrastanti se non fosse stata tranquillamente rattoppata due anni fa.
Questo secondo un articolo pubblicato mercoledì da Braydon Fuller, un ingegnere di protocollo presso il sito di crypto shopping Purse, che ha colto la vulnerabilità nel giugno 2018, e Javed Khan, uno sviluppatore del core del protocollo Handshake.
Alla vulnerabilità è stato assegnato un livello di gravità di 7,8 su una scala da 1 a 10, che è considerato „alto“ (9 o superiore è considerato „critico“). È stata causata dal fatto che i „nodi remoti“ non sono riusciti a cancellare le transazioni non valide dalla loro memoria, ha detto Khan a CoinDesk.
Iscrivetevi a Money Reimagined, la nostra newsletter sul dissesto finanziario.
Il tuo indirizzo e-mail
ISCRIVITI
Iscrivendoti, riceverai delle e-mail sui prodotti CoinDesk e accetti i nostri termini e condizioni e la nostra politica sulla privacy.
L’impossibilità di cancellare queste transazioni potrebbe portare un aggressore ad inondare un nodo della vittima con dati stantii in quello che viene definito „consumo incontrollato di risorse“, causando alla fine lo spegnimento del nodo, afferma il giornale.
Per saperne di più: L’ultimo rilascio del codice Core Code Bitcoin protegge dagli attacchi degli stati nazionali
„Non c’era alcun meccanismo per assicurarsi che i dettagli in sospeso di una transazione fossero validi o meno. In alcuni casi si poteva riempire la memoria remota con transazioni non valide“, ha detto Khan.
Nessun tentativo di sfruttare il buco è stato trovato in natura, hanno scritto Khan e Fuller. La vulnerabilità non ha potuto essere rivelata pubblicamente per oltre due anni, poiché gli operatori dei nodi hanno impiegato più tempo del previsto per l’aggiornamento, ha detto Fuller.
Mentre la vulnerabilità è stata risolta, la sua divulgazione mette in evidenza le difficoltà di costruire uno standard monetario globale sui linguaggi di programmazione creati dagli esseri umani, per non parlare delle elevate barriere tecniche per impegnarsi nello sviluppo della massima crittovaluta.
La vulnerabilità è stata introdotta in Bitcoin Core nel novembre 2017. Secondo il documento, circa il 50% dei nodi Bitcoin di allora erano esposti al vettore di attacco. Le versioni precedenti di Bitcoin Core non sono state interessate.
Bitcoin Core e altro ancora
Khan ha inoltre affermato che la vulnerabilità avrebbe potuto consentire a un aggressore di rubare fondi dai nodi che avevano canali aperti sul Lightning Network, un sistema di pagamento sperimentale costruito sopra la blockchain Bitcoin.
Le versioni 0.16.0 e 0.16.1 del Bitcoin Core sono state colpite e rattoppate dallo sviluppatore Matt Corallo in seguito alla rivelazione di Fuller al team del core nel luglio 2018. Corallo non ha risposto alle domande in cerca di commenti da parte della stampa.
La scoperta di Fuller (che ha anche lavorato come sviluppatore capo al protocollo di cloud storage decentralizzato Storj) è stata seguita da un altro bug Bitcoin affrontato due mesi dopo in Bitcoin Core 0.16.3. Anche un vettore per un attacco di denial-of-service, un aspetto di quel bug ha permesso ai minatori di „gonfiare la fornitura di Bitcoin“ in quanto potevano spendere due volte certi valori, scrisse all’epoca il team di Bitcoin Core.
La patch di emergenza rilasciata in quella versione di Bitcoin Core affrontava anche il bug di Fuller, scrissero Khan e Fuller.
Uno spot è stato riservato per la vulnerabilità del consumo di risorse sul registro CVE (Common Vulnerabilities and Exposures) del National Institute of Standards and Technology, come CVE-2018-17145 nel 2018, ma deve ancora essere compilato. Il registro funge da glossario pubblico per i bug del software.
Bitcoin Core è l’implementazione di riferimento, o versione standard del software di rete da cui ne derivano altri. Secondo il documento, l’exploit è stato possibile anche su diverse altre implementazioni di Bitcoin e dei suoi derivati:
Bitcoin Knots v0.16.0
Tutte le versioni beta di Bcoin fino alla v1.0.0-pre
Tutte le versioni di Btcd fino a v0.20.1-beta
Litecoin Core v0.16.0
Namecoin Core v0.16.1
Tutte le versioni di Dcrd fino a v1.5.1.
Tutte queste implementazioni sono state rattoppate.