Blog

Tradotto automaticamente · Leggi in inglese

SSO Modulo 2 - Vulnerabilità dei contratti intelligenti: un'analisi approfondita degli attacchi di rientranza

I contratti intelligenti offrono trasparenza ma comportano rischi. Questo articolo svela vulnerabilità come la rientranza, con la perdita di 150 milioni di dollari di DAO come caso. L'overflow di interi ha portato alla battuta d'arresto di 900 milioni di dollari di BeautyChain. DAOMaker ha perso 4 milioni di dollari a causa di difetti nel controllo degli accessi. Gli attacchi FlashLoan hanno visto Harves Finance perdere 38 milioni di dollari.

Di Markos Mebellis

SSO Modulo 2 - Vulnerabilità dei contratti intelligenti: un'analisi approfondita degli attacchi di rientranza
In questa pagina

I contratti intelligenti stanno rivoluzionando le industrie globali con la loro efficienza, trasparenza e caratteristiche immutabili. Tuttavia, il loro design aperto e automatizzato li espone anche a rischi. Per massimizzare il loro potenziale riducendo al minimo le minacce, è fondamentale comprenderne le vulnerabilità e le possibili vie d'attacco. Creare e mantenere questi contratti richiede attenzione scrupolosa e aderenza alle migliori pratiche. Questo articolo approfondisce le vulnerabilità comuni, illustrandole con casi reali per migliorare la comprensione. Vediamo il seguente articolo, per gentile concessione di Salus Security.

Vulnerabilità principali:

**Rientranza:** Qui gli attaccanti sfruttano una lacuna, rientrando nelle funzioni prima che le operazioni chiave siano completate o i valori aggiornati.

Rientranza a funzione singola: Ciò si verifica quando un contratto interagisce con un contratto malevolo, consentendo a quest'ultimo di rientrare in una funzione. Ad esempio, i contratti malevoli possono rientrare continuamente nella funzione 'withdrawBalance', prelevando più ether prima che i saldi vengano aggiornati.

Attacchi principali:

  • The DAO (2016): Dopo aver raccolto 150 milioni, è stato violato a causa di vulnerabilità nel codice. Ciò ha portato a una divisione nella rete Ethereum.
  • PolyDex (2021): Ha perso 500k a causa di un attacco di rientranza sul PLX Locker Smart Contract.
  • Bacon Protocol (2022): Ha subito una perdita di 1M a causa di un bug di rientranza nella funzione lend().
  • Lendf.Me (2020): Persi circa 24,7 milioni di dollari in diverse criptovalute.

**Cross-Function Reentrancy:** deriva da stati condivisi tra funzioni diverse e da una scarsa protezione contro la rientranza. L'esempio 'balances' sopra indica che, nonostante 'withdrawAll' abbia una protezione, gli attaccanti possono comunque sfruttare la funzione 'transfer'.

Incidenti famigerati:

  • DFX Finance (2022): Persi oltre 7 milioni di dollari a causa di un attacco che ha sfruttato una funzione senza protezione contro la rientranza.
  • Hundred Finance (2022): Persi circa 6,5 milioni di dollari dopo che un attacco di rientranza ha sfruttato la funzione borrowFresh.
  • Fei Protocol (2022): Ha perso circa 80 milioni di dollari a causa di un attacco che sfruttava una vulnerabilità di rientranza.

**Rientranza tra contratti:** deriva da stati condivisi tra contratti diversi e da sequenze errate di modifica delle variabili. Anche se le funzioni sono protette, altre funzioni, come 'burnAccount', possono comunque essere sfruttate.

Attacchi principali:

  • Rari Capital (2021): Ha perso circa 10 milioni di dollari (~2600 ETH) in meno di un'ora.
  • ValueDefi (2021): Ha perso 5345,314 WBNB a causa di calcoli errati delle quote, che si basavano su dati esterni.

Rientranza in sola lettura:

La reentrancy in sola lettura sfrutta una funzione che, pur non alterando lo stato del contratto, può comunque produrre output errati quando lo stato non è coerente.

Attacchi degni di nota:

  • QuickSwap (2022): Gli sfruttatori hanno abusato di un flash loan per alterare il prezzo spot dell'asset, sottraendo 138 ETH e 700 token MATIC. Ciò è stato possibile a causa di una falla nell'oracolo Curve LP.
  • dForce (2023): Un bug di reentrancy in sola lettura era nel codice che accedeva agli oracoli dei prezzi sulle chain Arbitrum e Optimism con Curve Finance.
  • Sentimente (2023): Un attacco, sfruttando una falla di reentrancy in sola lettura, ha portato a un furto di 1 milione di dollari. Fortunatamente, il 90% è stato restituito dall'autore.
  • Sturdy (2023): Ha perso circa 442 ETH a causa di un problema di rientranza in sola lettura di Balancer, in cui il prezzo di B-stETH-STABLE è stato manomesso.

Prevenzione delle vulnerabilità di rientranza:

  1. Attenersi sempre al pattern check-effect-interaction.
  2. Utilizzare la protezione da rientranza per tutte le operazioni sensibili.
  3. Gestire con cura ogni chiamata esterna.

Overflow di interi:

Quando i calcoli superano i limiti, si verifica un overflow che spesso porta a valori minuscoli o enormi.

Attacchi illustrativi:

  • BeautyChain (2018): Gli attaccanti hanno ottenuto 10^58 BEC tramite un integer overflow, scaricando la cifra sbalorditiva di 900 milioni di dollari.
  • Poolz (2023): Ha comportato una perdita di circa 665.000 $ su Ethereum, Binance e Polygon on-chain.

Contromisure all'integer overflow:

  1. Utilizza metodi di calcolo sicuri come la libreria safeMath.
  2. Dai priorità al controllo dei limiti per accertare che i risultati rimangano nell'intervallo.
  3. Adotta la versione del compilatore Solidity 0.8.0 o successiva per il rilevamento integrato dell'overflow.

Controllo degli accessi:
Le vulnerabilità di controllo degli accessi derivano dall'assenza di rigide restrizioni di accesso sulle funzioni che gestiscono operazioni cruciali.

  • Attacchi principali:
  • DAOMaker (2021): Ben ~$4M sono stati sottratti dopo che la init funzione è rimasta vulnerabile.
  • GymNetwork (2022): Gli sfruttatori hanno approfittato di una svista di autenticazione in depositFromOtherContract(), facilitando un aumento illecito del saldo senza alcun pagamento effettivo. La perdita? Circa 2.475,91 WBNB.
  • Tempdao (2023): Un approccio lassista al controllo degli accessi per la funzione migrateStake ha portato a una perdita superiore a 2,34 milioni di dollari.

Vulnerabilità nel controllo degli accessi

  • Descrizione: Vulnerabilità che emergono a causa di meccanismi di restrizione inadeguati che governano l'accesso e i privilegi a specifiche operazioni all'interno di un sistema.

Misure di prevenzione:

  1. Controllo rigoroso dei permessi: Applica sempre protocolli di autorizzazione rigorosi per le funzioni, soprattutto quelle che gestiscono operazioni sensibili.
  2. Meccanismo multi-firma: Per le attività che richiedono decisioni congiunte, usa protocolli multi-firma che richiedono più approvazioni prima di eseguire operazioni sensibili.

Vettori di attacco comuni

  • Descrizione: Vari metodi o canali attraverso cui gli attaccanti sfruttano vulnerabilità in un sistema, principalmente nei contratti intelligenti.

Esempi notevoli:

  • Attacchi FlashLoan: Sfrutta la funzione di prestito istantaneo dei sistemi di finanza decentralizzata per eseguire attività malevole.
  • Front-Running: Gli attaccanti vengono a conoscenza di una transazione in sospeso di un altro utente e agiscono offrendo una commissione gas più alta.

Attacco FlashLoan

  • Descrizione: Pur non essendo intrinsecamente un attacco, FlashLoan è una funzionalità DeFi che consente agli utenti di prendere in prestito ingenti somme istantaneamente senza garanzie. È stato sfruttato a causa di falle logiche nelle interazioni e nelle relazioni tra contratti.

Attacchi notevoli:

  1. Harves Finance (26.10.2020): Ha causato una perdita di 38 milioni di dollari.
  2. InverseFinance (16.6.2022): Ha portato a una perdita di 53,2445 WBTC e 99.976,29 USDT.
  3. NewFreeDAO (8.9.2022): Prosciugati 4.481 WBNB, equivalenti a circa 1,25 milioni di dollari.
  4. Lodestar (2022.12.11): Sfruttato tramite manipolazione del prezzo dell'oracolo.
  5. 0vix (2023.4.28): Ha causato una perdita di 2 milioni di dollari sulla chain Polygon.

Raccomandazioni di prevenzione:

  1. Riconoscere le caratteristiche dei Flashloan durante lo sviluppo del progetto.
  2. Per una determinazione accurata del prezzo, utilizzare la media ponderata nel tempo o più oracoli.

Front-running

  • Descrizione: Un attaccante viene a conoscenza della transazione di un altro utente dal memPool e ne approfitta offrendo una commissione gas più alta.

Attacchi degni di nota:

  1. Sushi Badger Digg (2021.1.25): Ha comportato una perdita di 81.68 ETH.
  2. Pool Sushiswap Ape-ETH (2022.5.17): L'attaccante ha guadagnato circa 0.3 ETH.
  3. Uniswap (2023.4.2): Ha causato una perdita di circa 25 milioni di dollari tramite un attacco sandwich.

Raccomandazioni di prevenzione:

  1. Usa la protezione dallo slippage durante il trading.
  2. Esegui le operazioni nelle ore non di punta, soprattutto nei mercati volatili.
  3. Utilizza FlashBot rpc di 1inch per inviare le operazioni direttamente ai miner, aggirando così il memPool.

Congratulazioni! Hai completato il Modulo 2 - Vulnerabilità degli Smart Contract: Un'analisi approfondita degli attacchi di rientranza e degli exploit comuni

Rivediamo ciò che hai imparato:

Vulnerabilità di rientranza - Gli attaccanti sfruttano le falle, rientrando nelle funzioni prima che siano completate.

  • Rientranza a funzione singola: Un contratto malevolo rientra in una funzione di un altro contratto.
  • Rientranza tra funzioni: Gli stati condivisi tra funzioni diverse vengono sfruttati a causa di una scarsa protezione dalla rientranza.
  • Rientranza tra contratti: Sfrutta stati condivisi tra contratti diversi.
  • Reentrancy in sola lettura: Sfrutta una funzione che produce output errati quando lo stato non è coerente.

Integer Overflow - Calcoli che superano i limiti impostati, causando valori estremi.

Vulnerabilità nel controllo degli accessi - Derivano dall'assenza di rigidi vincoli di accesso su funzioni essenziali.

Vettori di attacco comuni - Metodi con cui gli attaccanti sfruttano le vulnerabilità del sistema.

**FlashLoan Attack **- Una funzionalità DeFi che consente di ottenere prestiti ingenti istantanei senza garanzia, ma viene sfruttata a causa di falle logiche.

Attacco di front-running- Gli attaccanti vengono a conoscenza delle transazioni in sospeso e ne approfittano offrendo commissioni gas più elevate.

Questo articolo ti è stato offerto da:

Riepilogo — illustrazione