Un attacco subito dal protocollo Balancer v2 il 3 novembre ha portato a un’ingente perdita di circa 120 milioni di dollari. Questa somma è stata compromessa tra il protocollo stesso e le sue varie derivazioni. Un’analisi approfondita post-incidente ha identificato la causa principale: un errore di precisione nell’aritmetica a virgola fissa usata per calcolare i fattori di scala nelle Composable Stable Pools. Queste pool sono state progettate per gestire coppie di asset con valori simili, come USDC/USDT o WETH/stETH.
La Strategia dell’Attaccante
La strategia dell’attaccante si è articolata in diverse fasi. Prima di tutto, ha scambiato BPT per token di liquidità, riducendo così le riserve nel pool e preparando il terreno per eseguire swap di piccolo importo. Successivamente, ha proseguito con scambi tra token di liquidità, in particolare osETH e WETH, per sfruttare gli errori di precisione che si manifestavano durante i piccoli swap. A questo punto, l’attaccante ha effettuato swap osETH → WETH, accumulando intenzionalmente errori di precisione in modo da ottenere un vantaggio.
Successivamente, l’attaccante ha ripristinato parte della liquidità effettuando scambi tra WETH e osETH. Ripetendo i passaggi precedenti in un ciclo, ha amplificato costantemente l’errore accumulato, concludendo la sua operazione scambiando nuovamente i token di liquidità in BPT per ripristinare il bilanciamento del pool. Questo metodo, che ha sfruttato ripetutamente il difetto di precisione in swap di piccole dimensioni, ha permesso all’aggressore di ricevere un “amountOut” finale superiore all’effettivo “amountIn”, ottimizzando così i profitti.
Tracciamento dei Fondi Rubati
Le transazioni dell’attaccante sono state monitorate attraverso vari indirizzi e blockchain. I primi fondi sono stati deviati tramite Tornado Cash, seguiti da un passaggio attraverso nodi intermedi e l’impiego di gas.zip cross-chain, fino a confluire su indirizzi Ethereum che vantavano migliaia di ETH e WETH.
Dopo l’attacco, il team di Balancer ha reagito rapidamente, mettendo in pausa i pool CSPv6 sulla rete colpita e disabilitando la factory CSPv6. Inoltre, sono stati rimossi i gauge per i pool compromessi e i principali investitori hanno potuto ritirare i loro fondi in sicurezza, tra altre contromisure ritenute necessarie.
Collaborazione e Raccomandazioni per il Futuro
Il team di Balancer ha collaborato con esperti di cybersecurity e whitehat, oltre a diverse reti, per tentare di recuperare o congelare i fondi rubati. Tra i successi, figurano 5.041 StakeWise osETH, valutati intorno ai 19 milioni di dollari, e 13.495 osGNO, stimati a circa 2 milioni di dollari.
A tutti i progetti e ai revisori che si trovano ad affrontare situazioni simili, si consiglia di potenziare la copertura dei test per i casi estremi e le condizioni limite. Inoltre, è cruciale prestare particolare attenzione alle strategie di gestione della precisione in contesti di bassa liquidità, per prevenire futuri incidenti simili.
