NotizieCryptoElectrum 4.8.3 corregge l'attacco di server malevoli che sfruttava i fee bump di Bitcoin

Electrum 4.8.3 corregge l'attacco di server malevoli che sfruttava i fee bump di Bitcoin

Autore: Coindoo·

Punti chiave

  • •La versione 4.8.3 di Electrum, taggata il 23 ottobre e accompagnata da un avviso pubblico il 24 ottobre, corregge una vulnerabilità che consentiva ai server malevoli di visualizzare transazioni in uscita contraffatte con firme non valide nella cronologia del portafoglio dell'utente.
  • •L'attacco sfruttava il replace-by-fee: quando un utente aumentava la commissione su una transazione contraffatta a commissione zero, la nuova firma autorizzava il pagamento alterato verso un indirizzo controllato dall'attaccante.
  • •Due utenti hanno segnalato incidenti, e uno, che ha aumentato la commissione su una transazione contraffatta il 18 ottobre, ha perso un importo non divulgato di fondi.
  • •La correzione verifica le firme sulle transazioni non confermate che spendono monete dagli indirizzi dello stesso portafoglio, mentre le transazioni non confermate in entrata restano non validate poiché Electrum non dispone di un motore di consenso completo.
  • •Gli utenti di versioni precedenti alla 4.8.3 dovrebbero aggiornare o confermare manualmente gli indirizzi e gli importi di output sulla schermata di firma prima di approvare qualsiasi transazione, compresi i fee bump.
Electrum 4.8.3 corregge l'attacco di server malevoli che sfruttava i fee bump di Bitcoin

Una vulnerabilità ad alta gravità nel portafoglio Bitcoin Electrum è stata corretta nella versione 4.8.3, dopo che gli attaccanti avevano trovato un modo per trasformare il meccanismo replace-by-fee di Bitcoin in una via per rubare transazioni firmate. Lo sviluppatore di Electrum SomberNight ha divulgato il problema in un avviso di sicurezza del 24 ottobre, dichiarando che alcuni server stavano eseguendo l'attacco nella pratica. Due utenti hanno segnalato incidenti; uno ha perso fondi.

L'attacco richiede la firma del proprietario

Un server malevolo non può spendere i Bitcoin di nessuno da solo. La transazione contraffatta che vi inserisce contiene firme non valide, quindi la rete la respingerebbe. Ciò di cui l'attaccante ha bisogno è una firma valida del proprietario del portafoglio, e la trappola è costruita per ottenerla attraverso un aumento della commissione.

Il replace-by-fee (RBF) accelera un pagamento Bitcoin in sospeso sostituendolo con una nuova versione che paga una commissione più alta. Per l'utente sembra una semplice impostazione da regolare. Per la rete si tratta di una transazione completamente nuova, e firmarla autorizza ogni destinazione e importo in essa contenuto. Se la transazione che si sta "accelerando" è già stata alterata, la nuova firma approva la versione alterata.

L'esca è un pagamento che appare bloccato. Nel caso in cui un utente ha perso denaro, il server ha costruito il falso con una commissione pari a zero, che secondo gli sviluppatori era pensata per indurre un aumento della commissione. Una transazione senza commissione resta non confermata, e l'aumento della commissione è la risposta standard.

Come un server malevolo ha teso la trappola

Electrum è un light wallet: non scarica e non verifica l'intera blockchain da solo. Secondo la sua documentazione, il portafoglio si collega tipicamente a circa dieci server ma fa affidamento su un server principale per la cronologia delle transazioni e la diffusione. Gli altri forniscono soprattutto intestazioni di blocco e stime delle commissioni. L'avviso osserva che affidare al server principale le transazioni non confermate fa parte del design documentato di Electrum. Ciò che è nuovo è un metodo pratico per trasformare quella fiducia in furto. Questo compromesso è il contesto dell'attacco: delegare la verifica è ciò che rende leggero un light wallet, ma significa anche che la cronologia che l'utente vede è affidabile solo quanto il server principale che la fornisce — e prima della4.8.3, una voce in uscita con firme non valide poteva apparire in quella cronologia come se fosse reale.

Fino al passaggio della firma, nulla è andato perso. Una firma digitale valida può autorizzare un pagamento sbagliato se la transazione presentata per la firma è stata modificata, e questo è esattamente ciò che fornisce l'aumento della commissione.

Cosa hanno visto le due vittime

La prima segnalazione è arrivata dall'utente dannydeezy l'11 ottobre. Il pagamento era stato inviato da un portafoglio multisignature 2-su-3 protetto da due dispositivi hardware Trezor, combinando 31 input in un unico output. L'utente ha verificato la destinazione su entrambi i Trezor, poi ha trasmesso. La cronologia di Electrum ha quindi mostrato l'intero importo diretto, non confermato, verso un indirizzo sconosciuto, prima che la voce cambiasse in "Local". Nulla è mai raggiunto il mempool.

Il falso era costruito con cura. Utilizzava gli stessi input e copiava i dati di firma della transazione reale byte per byte, così tutte le 62 firme corrispondevano al pagamento genuino e nessuna corrispondeva al falso. Inviava quasi tutto a un indirizzo che termina con "GyQ3" — gli stessi quattro caratteri della destinazione reale — e restituiva una piccola quantità a uno degli indirizzi dello stesso portafoglio, mimando un normale output di resto. La commissione era prossima a zero. Poiché l'utente non ha firmato di nuovo, la transazione reale è rimasta valida e non trasmessa, e nessun denaro è andato perso.

Gli sviluppatori non hanno identificato la via del fee bump finché un secondo utente, Raju-K12, non ha segnalato il 18 ottobre di aver perso denaro dopo aver aumentato la commissione su una transazione contraffatta. L'importo non è stato divulgato.

  • 11 ott: Prima segnalazione privata, senza l'aspetto del fee bump
  • 18 ott: Seconda segnalazione, dopo una perdita dovuta a un fee bump
  • 23 ott: Versione 4.8.3 taggata con la correzione
  • 24 ott: Binari rilasciati e avviso pubblicato

Cosa corregge la 4.8.3, e cosa no

La correzione fa sì che Electrum verifichi le firme su qualsiasi transazione non confermata che spende monete dagli indirizzi dello stesso portafoglio, prima di aggiungerla alla cronologia. Un pagamento in uscita contraffatto con firme non valide viene ora respinto invece che visualizzato, chiudendo questa via d'attacco.

Il controllo è volutamente ristretto. Le transazioni non confermate in entrata non vengono ancora validate, e l'avviso spiega perché: Electrum non dispone di un motore di consenso completo, e controllare gli input di altre persone significherebbe risalire le loro transazioni genitrici non confermate fino a raggiungerne di già estratte. Le transazioni confermate erano già verificate tramite la simplified payment verification, che le confronta con le intestazioni di blocco.

Gli utenti che si collegano solo a server di cui si fidano, come i propri, non sono stati interessati. Quell'esenzione non si estende al server pubblico che il portafoglio capita di scegliere come connessione principale.

Prima di firmare di nuovo qualsiasi cosa

  1. Aggiornare alla 4.8.3. Scaricarla dal sito ufficiale di Electrum e verificare la firma del file seguendo le istruzioni riportate lì.
  2. Controllare l'indirizzo completo. Confrontarlo con la fattura o la richiesta di pagamento originale, non con la cronologia del portafoglio, che ciò che l'attaccante controlla.
  3. Confermare sullo schermo del dispositivo. Controllare importi e commissioni per ogni nuova firma. La guida RBF e la guida all'invio di Trezor indirizzano entrambe gli utenti a verificare i dettagli aggiornati sul dispositivo.
  4. Bloccato o modificato? Fermarsi. Cercare l'ID della transazione originale su un block explorer indipendente prima di accelerare qualsiasi cosa. Nella prima segnalazione, il pagamento reale non aveva mai raggiunto la rete.

Chi non può ancora aggiornarsi trova una soluzione alternativa nell'avviso: ogni volta che si firma qualsiasi transazione, fee bump o meno, verificare che gli indirizzi e gli importi di output siano esattamente come previsto. Le versioni precedenti alla 4.8.3 non eseguono il nuovo controllo delle firme, quindi per chi resta su una release precedente quella verifica manuale è l'unica salvaguardia contro questa via d'attacco. La patch chiude questo specifico percorso, ma Electrum continua a fare affidamento sul proprio server principale per i dati non confermati, quindi lo schermo in cui un pagamento viene approvato resta il controllo finale.

Questo articolo è fornito solo a scopo informativo e non costituisce consulenza finanziaria o di investimento.

Fonte: Coindoo