I protocolli DeFi hanno perso miliardi di dollari a causa di exploit degli smart contract. Non a causa di cali di mercato o azioni normative, ma a causa di codice che non si è comportato nel modo in cui i suoi sviluppatori si aspettavano quando qualcuno lo ha deliberatamente spinto in una direzione diversa. Comprendere come funzionano questi attacchi non è solo un esercizio accademico. Se utilizzi DeFi, il tuo denaro si trova all'interno di questi contratti.

L'ecosistema Ethereum ETH$2,200ETH$2,20024h+0.46%7d+6.96%30d+8.02%1y+31.82%MCap: N/AVol: N/Avia Statility da solo ha visto drenare oltre 5 miliardi di dollari attraverso exploit da quando DeFi ha iniziato a scalare nel 2020. Alcuni di questi erano sofisticati attacchi zero-day. Molti erano pattern di vulnerabilità ben noti che i revisori hanno trascurato oppure che sono stati introdotti dopo il completamento dell'audit. Ecco i vettori di attacco che continuano a presentarsi.

ETH Price (365 days)$2,200 Analyze

Live data via Statility

I Soliti Sospetti

Reentrancy

La reentrancy è la più antica vulnerabilità degli smart contract e continua a funzionare. L'attacco sfrutta un semplice difetto logico: un contratto invia fondi a un indirizzo esterno prima di aggiornare il proprio saldo interno. Il contratto dell'attaccante riceve i fondi, poi immediatamente richiama il contratto originale per prelevare di nuovo. Poiché il saldo non è stato ancora aggiornato, il contratto pensa che l'attaccante abbia ancora fondi e invia di più.

L'attacco reentrancy più famoso è stato l'hack di The DAO nel 2016, che ha drenato approssimativamente 60 milioni di dollari in ETH e alla fine ha portato al hard fork di Ethereum che ha creato Ethereum Classic. Potresti pensare che l'industria abbia imparato la lezione. Non l'ha fatto.

Nel luglio 2023, una vulnerabilità di reentrancy nel compilatore Vyper (non nel codice di alcun protocollo individuale, ma nel linguaggio di programmazione stesso) ha portato a exploit su più pool di Curve Finance, drenando oltre 60 milioni di dollari. Il bug era presente nelle versioni di Vyper da 0.2.15 a 0.3.0 per anni. Questo è importante perché mostra che la reentrancy può nascondersi in strati dello stack che gli sviluppatori di protocolli e i revisori non stanno nemmeno osservando.

Manipolazione dell'Oracle

I protocolli DeFi hanno bisogno di dati sui prezzi per funzionare. Le piattaforme di prestito devono conoscere i valori delle garanzie. I DEX hanno bisogno di prezzi di riferimento per la protezione dallo slippage. Questi dati sui prezzi provengono da oracle, e manipolare l'oracle significa manipolare il protocollo.

L'exploit di Mango Markets nell'ottobre 2022 è un caso da manuale. Avraham Eisenberg ha utilizzato 5 milioni di dollari per pompare artificialmente il prezzo dei token MNGO su un exchange di Mango, il che ha gonfiato il valore della sua posizione collaterale. Ha quindi preso in prestito 114 milioni di dollari rispetto a quella garanzia gonfiata e li ha ritirati. Tecnicamente, il protocollo ha funzionato esattamente come progettato. L'oracle ha segnalato il prezzo che ha visto. La logica di prestito ha seguito le sue regole. Ma il sistema presupponeva che il prezzo dell'oracle riflettesse il valore reale del mercato, e questo presupposto era sbagliato.

I protocolli che utilizzano una singola fonte on-chain per i dati sui prezzi, in particolare il proprio pool di trading di un token a bassa liquidità, sono intrinsecamente vulnerabili a questo. Chainlink★★★★4.2Chainlinkbrand★★★★4.2/55 AI reviewsChainlink is the leading oracle platform powering DeFi and onchain capital markets, securing over $25 trillion in tra...via Rexiew Chainlink e altre reti di oracle decentralizzate esistono per mitigare questo aggregando dati da più fonti, ma non tutti i protocolli le utilizzano, e anche i feed aggregati possono essere manipolati in condizioni estreme.

Attacchi con Flash Loan

I flash loan sono prestiti non garantiti che devono essere presi in prestito e rimborsati all'interno di una singola transazione. Se il rimborso non avviene, l'intera transazione ritorna come se non fosse mai accaduta. Questa è una primitiva finanziaria genuinamente innovativa che non ha equivalenti nella finanza tradizionale.

È anche lo strumento che rende molti exploit economicamente realizzabili. Prima dei flash loan, un attaccante che voleva manipolare un pool di 50 milioni di dollari aveva bisogno di 50 milioni di dollari. Con i flash loan, ha bisogno solo di ETH sufficiente a coprire le commissioni di gas e il premio del flash loan, spesso solo poche centinaia di dollari.

Il modello si ripete su dozzine di exploit: prendere in prestito una somma massiccia tramite flash loan, usarla per manipolare un'oracle dei prezzi o drenare un pool vulnerabile, rimborsare il prestito, tenere il profitto. Gli attacchi bZx nel 2020 sono stati tra i primi a dimostrare questo modello. Pancake Bunny nel 2021 ha perso 45 milioni di dollari a causa di una manipolazione dei prezzi alimentata da flash loan. L'elenco continua a crescere.

I flash loan non creano la vulnerabilità. La amplificano. Qualsiasi protocollo vulnerabile a grandi movimenti di capitale era già difettoso. I flash loan semplicemente hanno reso possibile a chiunque di essere il grande capitale, gratuitamente.

Cosa Fanno Effettivamente gli Audit (e Cosa Non Fanno)

Un audit di smart contract è una revisione del codice riga per riga, solitamente eseguita da una società di sicurezza specializzata, che cerca pattern di vulnerabilità noti, errori logici e deviazioni dalla specifica. I buoni revisori testano anche casi limite, simulano scenari di attacco e riesaminano la struttura degli incentivi economici.

Ecco cosa gli audit non sono: una garanzia. I protocolli sottoposti a audit vengono hackerati regolarmente. Ci sono diversi motivi per questo.

Primo, il codice che è stato sottoposto a audit potrebbe non essere il codice che viene distribuito. I protocolli spesso apportano modifiche dopo un audit, a volte significative, e si distribuiscono senza ri-esaminare. Secondo, gli audit esaminano un contratto in isolamento o all'interno di un ambito limitato. I protocolli DeFi sono componibili, il che significa che interagiscono con altri protocolli in modi che creano comportamenti emergenti che nessun singolo audit può prevedere. Un protocollo di prestito potrebbe essere sicuro da solo ma diventare vulnerabile quando qualcuno crea un nuovo pool che interagisce con esso in un modo inaspettato.

Terzo, molti exploit sono di natura economica piuttosto che tecnica. Il codice fa quello per cui è stato scritto, ma la struttura degli incentivi economici ha un difetto che un attaccante può sfruttare. I revisori con un background puramente ingegneristico potrebbero non cogliere questi. Per questo motivo, alcune società di sicurezza ora includono economisti e mechanism designer nei loro team di audit.

Cosa Catturano gli Audit vs. Cosa Mancano

Gli audit generalmente catturanoGli audit spesso mancano
Pattern di reentrancyModifiche al codice post-audit
Integer overflow/underflowRischi di componibilità tra protocolli
Errori di controllo degli accessiDifetti nel design economico o degli incentivi
Pattern di vulnerabilità notiVettori di attacco innovativi
Problemi di ottimizzazione del gasSuperfici di attacco della governance
Conformità standard (ERC-20, ecc.)Bug a livello di infrastruttura (compilatore, EVM)

Pattern nelle Post-Mortem

Dopo sufficienti post-mortem di exploit, emergono pattern. La maggior parte degli exploit non sono innovativi. Sono variazioni su temi noti applicati a protocolli che avevano punti ciechi.

I presupposti non verificati sono la causa radice più comune. Lo sviluppatore presupponeva che il prezzo dell'oracle sarebbe stato accurato. Presupponevano che solo i contratti previsti avrebbero chiamato una particolare funzione. Presupponevano che nessuno avrebbe abbastanza capitale per spostare un mercato del 40% in un singolo blocco. Ogni presupposto è una potenziale superficie di attacco.

I contratti aggiornabili e le chiavi amministratore sono un altro tema ricorrente. Molti protocolli utilizzano pattern proxy che consentono al team di aggiornare la logica dei contratti dopo la distribuzione. Questo è inteso come meccanismo di sicurezza, permettendo agli sviluppatori di correggere i bug rapidamente. Ma significa anche che una chiave amministratore compromessa può essere utilizzata per sostituire un contratto funzionante con uno dannoso. L'hack del Ronin Bridge nel 2022, che ha perso 625 milioni di dollari, è stato in definitiva un compromesso della chiave amministratore piuttosto che un difetto nella logica degli smart contract.

Exploit DeFi Notevoli

ProtocolloAnnoImporto persoTipo di attacco
The DAO2016$60MReentrancy
Ronin Bridge2022$625MCompromesso della chiave del validatore
Wormhole2022$320MBypass della verifica della firma
Mango Markets2022$114MOracle / manipolazione dei prezzi
Curve (Vyper)2023$60MReentrancy a livello di compilatore
Euler Finance2023$197MDifetto nella logica di liquidazione

Proteggere Te Stesso

Non puoi sottoporre a audit degli smart contract da solo a meno che tu non sia uno sviluppatore Solidity, e anche allora probabilmente perderesti cose. Ma puoi valutare il rischio più chiaramente ponendo le giuste domande.

Verifica se un protocollo è stato sottoposto a audit, da chi e quanto recentemente. Un audit di due anni fa su una base di codice che è stata aggiornata cinquanta volte non fornisce molta garanzia. Più audit da società indipendenti sono meglio di uno. I programmi di bug bounty sono un buon segno perché creano un incentivo continuo per i ricercatori white-hat di trovare problemi prima che gli attaccanti lo facciano.

Comprendi chi detiene le chiavi amministratore. Se un multisig con tre firmatari controlla la capacità di aggiornare i contratti, è un rischio di centralizzazione significativo. Se quelle chiavi sono dietro un timelock che dà agli utenti 48 ore per uscire prima che i cambiamenti abbiano effetto, è un design migliore.

Sii cauto con i fork. Quando un team copia il codice di un altro protocollo e lancia una nuova versione, spesso modifica pezzi senza comprendere pienamente le implicazioni sulla sicurezza. Alcuni dei peggiori exploit hanno colpito fork scarsamente eseguiti di protocolli altrimenti sicuri.

Diversifica tra protocolli. La stessa logica che si applica a non tenere tutto il tuo denaro fiat in una banca si applica qui. Se un protocollo che stai utilizzando viene sfruttato, l'esposizione limitata a una frazione del tuo portafoglio è una perdita sostenibile. La concentrazione non lo è.

La sicurezza di DeFi sta migliorando. Strumenti di verifica formale, pratiche di audit più sofisticate e basi di codice testate in battaglia come Uniswap★★★★★4.6Uniswapbrand★★★★★4.6/54 AI reviewsUniswap App (app.uniswap.org) is the web interface to Uniswap"the leading decentralized exchange (DEX) on Ethereum an...via Rexiew Uniswap e Aave★★★★★4.6Aavebrand★★★★★4.6/55 AI reviewsAave serves as a decentralized, non-custodial liquidity protocol in DeFi, allowing users to supply assets for interes...via Rexiew Aave hanno provato che i contratti ben costruiti possono proteggere miliardi di dollari nel corso degli anni senza incidenti. Ma la frontiera è sempre disordinata, e il codice nuovo porta nuovo rischio. I protocolli che offrono i rendimenti più alti sono spesso quelli meno testati dal tempo e da condizioni avversariali. Non è una coincidenza.

Stai cercando piattaforme crypto, exchange e app DeFi? Sfoglia la nostra directory curata: