
Demistificare i bug sfruttabili negli Smart Contract

Questo progetto mira a fornire una risorsa preziosa per sviluppatori Web3 e analisti di sicurezza, facilitando la loro comprensione dei bug sfruttabili negli smart contract. Conduciamo un'analisi approfondita dei bug sfruttabili estratti da code4rena e classifichiamo ciascun bug in base alla sua natura.
La nostra ricerca iniziale suggerisce che una parte notevole dei bug sfruttabili negli smart contract è costituita da bug funzionali, che non possono essere rilevati utilizzando oracoli semplici e generali come la reentrancy. Miriamo a sensibilizzare sull'importanza di tali bug e a incoraggiare i professionisti a sviluppare oracoli semantici automatici più sofisticati e sfumati per rilevarli.
Un numero significativo di bug sfruttabili negli smart contract rientra nella categoria dei bug funzionali, che non possono essere rilevati utilizzando oracoli semplici e generali.
Tieni presente che questo repository è attualmente in fase di sviluppo attivo e i dati potrebbero cambiare nel tempo a causa dei concorsi code4rena in corso.
Il dataset è organizzato in quattro cartelle:
Classifichiamo i bug esaminati in tre categorie principali in base alla loro natura:
Poiché classificare i bug funzionali può essere ambiguo, accogliamo con piacere suggerimenti per migliorare i nostri standard di classificazione. Puoi trovare informazioni più dettagliate sulle etichette nella nostra documentazione e ti invitiamo a fare riferimento alle nostre attuali linee guida di classificazione per maggiori informazioni.
Il nostro obiettivo è creare un elenco completo di tecniche di rilevamento delle vulnerabilità che possa rappresentare una risorsa preziosa per sviluppatori Web3 e analisti di sicurezza. Ci concentreremo su due categorie principali:
Accogliamo con calore qualsiasi suggerimento o contributo aggiuntivo dalla comunità per aiutare ad ampliare e migliorare l'elenco.
Riteniamo che i futuri sforzi sulla sicurezza web3 daranno priorità all'identificazione dei bug funzionali e allo sviluppo dei relativi oracoli. A tal fine, intendiamo compilare un elenco di tecniche che forniscano una guida nella creazione di oracoli semantici automatici. Queste tecniche proverranno da vari materiali, come articoli di ricerca peer-reviewed, preprint, strumenti industriali e risorse online.
Questa sezione includerà tecniche open-source disponibili pubblicamente e attualmente in fase di sviluppo attivo. Queste tecniche possono essere utilizzate direttamente da sviluppatori Web3 e analisti di sicurezza o come elementi costitutivi per altri strumenti. Diamo priorità alle tecniche a livello di codice sorgente, che sono più adatte ai contesti di sviluppo e audit Web3.
| Tecnica | Linguaggio | Descrizione | Parole chiave di sicurezza |
|---|---|---|---|
| Move Prover | Move | Specifica e verifica formale | Verifica formale |
Accogliamo tutti i tipi di contributi al nostro progetto, inclusi ma non limitati a:
results/contests.csvUlteriori dettagli sono disponibili nelle nostre linee guida per i contributi.
Se stai utilizzando il nostro dataset per una pubblicazione accademica, apprezzeremmo molto una citazione al seguente lavoro:``` @inproceedings{DBLP:conf/icse/ZhangZXL23, author = {Zhuo Zhang and Brian Zhang and Wen Xu and Zhiqiang Lin}, title = {Demystifying Exploitable Bugs in Smart Contracts}, booktitle = {{ICSE}}, pages = {615--627}, publisher = {{IEEE}}, year = {2023} }
## Chiarimento
Si prega di fare riferimento alla nostra [documentazione](https://github.com/zhangzhuosjtu/web3bugs/blob/HEAD/docs/classification.md) sulla classificazione.
## Riconoscimenti
Desideriamo esprimere il nostro sincero ringraziamento a [code4rena](https://code4rena.com/) per aver reso disponibili pubblicamente queste preziose informazioni.
<details>
<summary>Il nostro apprezzamento va anche ai seguenti collaboratori per il loro prezioso contributo.</summary></br>
+ [__ItsNio__](https://github.com/niothefirst)
+ [__Wen Xu__](https://github.com/tarafans)
+ [__Patrick Collins__](https://github.com/PatrickAlphaC)
+ [__Meng Xu__](https://twitter.com/meng_xu_cs)
+ [__y3s0n__](https://github.com/CharesFang)
+ [__William Aaron Cheung__](https://github.com/Troublor)
+ [__soaphorn__](https://github.com/soaphorn)
+ [__Fabio Gritti__](https://github.com/degrigis)
+ [__Yannick__](https://twitter.com/MillusPontius)
</details>
| Tecnica | Categoria di bug |
|---|
| Tecnica | Sviluppatore(i) | Descrizione | Parole chiave di sicurezza |
|---|
| Slither | Trail of Bits | Framework di analisi statica | Rilevatori di vulnerabilità, SlithIR |
| Aderyn | Cyfrin | Framework di analisi statica | Analizzatore statico, Rilevatori personalizzati, Report Markdown |
| Foundry | Paradigm | Toolchain di sviluppo | Fuzzing, Fuzzing stateful (test di invarianti), Test differenziali |
| Echidna | Trail of Bits | Fuzzer | Fuzzing , Fuzzing stateful (test di invarianti), CI/CD |
| Optik | Trail of Bits | Fuzzer ibrido (Esecuzione simbolica + Fuzzing) | Fuzzing, Fuzzing stateful, Esecuzione simbolica |
| Woke | Ackee Blockchain | Toolchain di sviluppo | Test cross-chain, Test di invarianti, Rilevatori di vulnerabilità, IR |
| 4naly3er | Picodes | Scanner statico | Test pre-contenuto Code4rena |
| Manticore | Trail of Bits | Strumento di esecuzione simbolica | Esecuzione simbolica, Test di proprietà |
| Halmos | a16z | Model checker simbolico limitato | Esecuzione simbolica, Controllo limiti |
| Solidity SMTChecker | Ethereum Foundation | Verifica formale tramite esecuzione simbolica | Solidity, Verifica formale, Esecuzione simbolica |
| Mythril | Consensys | Strumento di esecuzione simbolica | Esecuzione simbolica, Analisi on-chain, Rilevatori di vulnerabilità, Analisi del taint |
| Pyrometer [WIP] | Nascent | Strumento di esecuzione simbolica | Esecuzione simbolica, Interpretazione astratta |
| greed | UCSB Seclab | Framework di analisi statica/simbolica | Esecuzione simbolica, Controllo limiti, Analisi statiche, Test di proprietà |
| ethpwn | ethpwn | Analisi dinamica/Debugging | Simulazioni EVM, Debugging EVM |
| Risorsa | Parole chiave |
|---|
| Academic Smart Contract Papers | Elenco di paper accademici |
| DeFi Hacks Reproduce - Foundry | Replica di attacchi |
| Smart Contract Security Verification Standard | Checklist di sicurezza |
| Awesome MythX Smart Contract Security Tools | Servizio di analisi della sicurezza |
| Common Security Properties of Smart Contracts | Suite di conformità alla sicurezza |
| Immunefi PoC Templates | Modelli PoC |
| Awesome MEV Resources | Risorse MEV |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | Dataset Front-Running |
| Ultimate DeFi & Blockchain Research Base | Sicurezza blockchain tutto-in-uno |
| Common Fork Bugs | Dataset di exploit |