Tempo per leggere: 4 verbale
Sommario:
Il 7 ottobre 2022 si è verificato un exploit che ha colpito il cross-chain bridge nativo chiamato “BSC Token Hub”. Il bug è nel verificatore di prova del bridge. Sono stati ritirati un totale di 2 milioni di BNB e Binance ha temporaneamente sospeso BSC Network per evitare ulteriori danni. I fondi prelevati da BSC sono stimati tra $ 100 milioni e $ 110 milioni.
Introduzione a Binance Smart Chain e Token Hub Bridge:
Binance Smart Chain (BSC) è una rete basata su Blockchain utilizzata per eseguire applicazioni radicate nei contratti intelligenti. BSC funziona in parallelo con la Binance Chain (BC) nativa di Binance, consentendo agli utenti di sfruttare la capacità di transazione rapida della BC e le funzionalità del contratto intelligente di BSC.
- Catena di segnalazione BNB (in precedenza Binance Chain) – Governance della catena BNB (staking, voto)
- Catena intelligente BNB (BSC) (in precedenza Binance Smart Chain) – Compatibile con EVM, livelli di consenso e con hub per multi-catene
Controlla il nostro articolo per ulteriori dettagli.
Hub token BSC:
BSC Token Hub è il ponte incrociato tra BNB Beacon Chain (BEP2) e BNB Chain (BEP20 o BSC). Controlla il funzionario documentazione di Binance per maggiori dettagli.
Analisi e impatto delle vulnerabilità:
Dettagli della transazione di attacco:
Indirizzo dell'hacker: 0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec
Primo hash Txn: 0xebf83628ba893hd35b496121fb8201666b8e09f3cbadf0e269162baa72efe3b8b
2° hash Txn: 0x05356fd06ce56a9ec5b4eaf9c075abd740cae4c21eab1676440ab5cd2fe5c57a
Contratto token hub BSC: 0x0000000000000000000000000000000000001004
Hash Txn originale (con altezza del blocco pari a 110217401): 0x79575ff791606ef2c7d69f430d1fee1c25ef8d56275da94e6ac49c9c4cc5f433
Il bug:
BSC Token Hub utilizza un contratto precompilato per la convalida degli alberi IAVL (Immutable AVL) durante l'esecuzione della verifica delle transazioni cross-chain. L'exploiter ha sfruttato un bug nella logica di verifica della prova adattando una prova legittima per far coniare loro 2 milioni di BNB dal bridge.
La causa principale sembra essere questa linea:
Il problema è che lpath.Right potrebbe essere inutilizzato nel calcolo dell'hash root dell'albero.
Per risolvere questo problema, la linea dovrebbe cambiare
A partire da:
```
if !bytes.Equal(derivedRoot, lpath.Right) ...
a qualcosa come:
“`
A:
```
expectedHash := lpath.Left
if len(lpath.Left) == 0 {
expectedHash = lpath.Right }
if !bytes.Equal(derivedRoot, expectedHash) ...
“`
L'attacco:
1. L'aggressore ha utilizzato l'hash di un blocco inviato con successo creato 2 anni fa (blocco specificato: 110217401) per costruire un payload come nodo foglia per verificare l'albero IAVL. È possibile trovare i dettagli della transazione originale qui.
2. L'attaccante ha inserito un nodo foglia contenente come chiave la sequenza corrente del pacchetto e come valore l'hash del payload dannoso (ovvero coniando 1 milione di BNB al proprio indirizzo). Quindi aggiunto un nodo interno vuoto alla foglia per soddisfare la prova di implementazione.
3. L'aggressore ha impostato il percorso sinistro come destro nell'hash del nodo foglia appena creato per rendere l'hash root uguale all'hash root inviato con successo e infine ha costruito la prova di ritiro per il blocco particolare e ha inviato la transazione.
4. Dopo aver inviato con successo la transazione e aver ricevuto $ 1 milione di BNB. L'aggressore ha ripetuto nuovamente i passaggi e ha guadagnato un ulteriore milione di BNB. Il totale ammontava a 1 milioni di BNB, ovvero 2 milioni di dollari.
L'attaccante ha provato 17 volte a coniare 1 milione di BNB ma ha fallito 15 volte e ha coniato solo 2 milioni di BNB. La ragione di ciò era che avevano una concorrenza con altre transazioni legittime che guidavano lo sfruttatore tx utilizzando lo stesso packageSequence.
Dopo l'exploit:
Poche ore dopo l'attacco, il CEO di Binance CZ ha annunciato l'incidente tramite un tweet e ha bloccato la rete BSC per evitare ulteriori danni.
Poche ore dopo, Binance ha risolto il problema con l'ultima versione v1.1.15. Ha bloccato il flusso di fondi degli aggressori inserendo l’indirizzo dell’aggressore nella lista nera.
Binance ha recentemente inserito nella lista nera l'indirizzo dell'aggressore commettere.
Stato dei fondi:
Attività correnti detenute dall'aggressore in diverse catene:
Il flusso di fondi:
Image Source: https://twitter.com/BeosinAlert/status/1578290676793384961/photo/1
Ulteriori riferimenti/crediti:
https://github.com/emilianobonassi/bsc-hack-analysis-2022-10-06
Sicurezza Web3- Necessità dell'ora
Perché QuillAudits per la sicurezza Web3?
QuillAudit è ben attrezzato con strumenti e competenze per fornire soluzioni di sicurezza informatica risparmiando la perdita di milioni di fondi.
9 Visualizzazioni
- catena di binance
- Bitcoin
- blockchain
- conformità blockchain
- conferenza blockchain
- coinbase
- geniale
- Consenso
- conferenza crittografica
- criptazione mineraria
- criptovaluta
- decentrata
- DeFi
- Risorse digitali
- Ethereum
- machine learning
- gettone non fungibile
- Platone
- platone ai
- Platone Data Intelligence
- Platoneblockchain
- PlatoneDati
- gioco di plato
- Poligono
- prova di palo
- quillhash
- Sicurezza dei contratti intelligenti
- trend
- W3
- zefiro