
Entmystifizierung ausnutzbarer Schwachstellen in Smart Contracts

Dieses Projekt soll eine wertvolle Ressource für Web3-Entwickler und Sicherheitsanalysten darstellen, indem es ihr Verständnis ausnutzbarer Bugs in Smart Contracts fördert. Wir führen eine gründliche Analyse der von code4rena extrahierten ausnutzbaren Bugs durch und klassifizieren jeden Bug entsprechend seiner Natur.
Unsere ersten Untersuchungen deuten darauf hin, dass ein beträchtlicher Anteil der ausnutzbaren Bugs in Smart Contracts funktionale Bugs sind, die nicht mit einfachen und allgemeinen Orakeln wie Reentrancy erkannt werden können. Wir möchten das Bewusstsein für die Bedeutung solcher Bugs schärfen und Praktiker dazu anregen, ausgefeiltere und nuanciertere automatische semantische Orakel zu entwickeln, um sie zu erkennen.
𝙴𝚒𝚗𝚎 𝚋𝚎𝚝𝚛ä𝚌𝚑𝚝𝚕𝚒𝚌𝚑𝚎 𝙰𝚗𝚣𝚊𝚑𝚕 𝚊𝚞𝚜𝚗𝚞𝚝𝚣𝚋𝚊𝚛𝚎𝚛 𝙱𝚞𝚐𝚜 𝚒𝚗 𝚂𝚖𝚊𝚛𝚝 𝙲𝚘𝚗𝚝𝚛𝚊𝚌𝚝𝚜 𝚏ä𝚕𝚕𝚝 𝚒𝚗 𝚍𝚒𝚎 𝙺𝚊𝚝𝚎𝚐𝚘𝚛𝚒𝚎 𝚏𝚞𝚗𝚔𝚝𝚒𝚘𝚗𝚊𝚕𝚎𝚛 𝙱𝚞𝚐𝚜, 𝚍𝚒𝚎 𝚗𝚒𝚌𝚑𝚝 𝚖𝚒𝚝 𝚎𝚒𝚗𝚏𝚊𝚌𝚑𝚎𝚗 𝚞𝚗𝚍 𝚊𝚕𝚕𝚐𝚎𝚖𝚎𝚒𝚗𝚎𝚗 𝙾𝚛𝚊𝚔𝚎𝚕𝚗 𝚎𝚛𝚔𝚊𝚗𝚗𝚝 𝚠𝚎𝚛𝚍𝚎𝚗 𝚔ö𝚗𝚗𝚎𝚗.
Bitte beachten Sie, dass dieses Repository derzeit aktiv weiterentwickelt wird und sich die Daten aufgrund laufender code4rena-Wettbewerbe im Laufe der Zeit ändern können.
Der Datensatz ist in vier Ordner gegliedert:
Wir klassifizieren die untersuchten Bugs anhand ihrer Natur in drei Hauptkategorien:
Da die Klassifizierung funktionaler Bugs mehrdeutig sein kann, freuen wir uns über Vorschläge zur Verbesserung unserer Klassifizierungsstandards. Detailliertere Informationen zu den Labels finden Sie in unserer Dokumentation, und wir empfehlen Ihnen, unsere aktuellen Klassifizierungs-Richtlinien zu konsultieren.
Unser Ziel ist es, eine umfassende Liste von Schwachstellenerkennungstechniken zu erstellen, die eine wertvolle Ressource für Web3-Entwickler und Sicherheitsanalysten darstellt. Wir konzentrieren uns auf zwei Hauptkategorien:
Wir freuen uns sehr über weitere Vorschläge oder Beiträge aus der Community, um die Liste zu erweitern und zu verbessern.
Wir glauben, dass künftige Web3-Sicherheitsbemühungen die Identifizierung funktionaler Bugs und die Entwicklung entsprechender Orakel priorisieren werden. Zu diesem Zweck beabsichtigen wir, eine Liste von Techniken zusammenzustellen, die Orientierung für die Erstellung automatischer semantischer Orakel bieten. Diese Techniken stammen aus verschiedenen Quellen, wie begutachteten Forschungspapieren, Preprints, Branchentools und Online-Ressourcen.
Dieser Abschnitt enthält Open-Source-Techniken, die öffentlich verfügbar und derzeit in aktiver Entwicklung sind. Diese Techniken können entweder direkt von Web3-Entwicklern und Sicherheitsanalysten verwendet werden oder als Bausteine für andere Tools dienen. Wir priorisieren Techniken auf Quellcode-Ebene, die besser für Web3-Entwicklung und Audits geeignet sind.
| Technique | Language | Description | Security-related Keywords |
|---|---|---|---|
| Move Prover | Move | Formale Spezifikation und Verifikation | Formale Verifikation |
Wir freuen uns über alle Arten von Beiträgen zu unserem Projekt, einschließlich, aber nicht beschränkt auf:
results/contests.csvWeitere Einzelheiten finden Sie in unseren Beitragsrichtlinien.
Wenn Sie unseren Datensatz für eine akademische Veröffentlichung verwenden, würden wir uns über eine Zitierung der folgenden Arbeit sehr freuen:``` @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} }
## Klarstellung
Bitte beachten Sie unsere [Dokumentation](https://github.com/zhangzhuosjtu/web3bugs/blob/HEAD/docs/classification.md) zur Klassifizierung.
## Danksagungen
Wir möchten [code4rena](https://code4rena.com/) unseren aufrichtigen Dank dafür aussprechen, dass sie diese wertvollen Informationen öffentlich zugänglich gemacht haben.
<details>
<summary>Unser Dank gilt auch den folgenden Mitwirkenden für ihre wertvollen Beiträge.</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>
| Technique | Bug Category |
|---|
| Technique | Developer(s) | Description | Security-related Keywords |
|---|
| Slither | Trail of Bits | Statisches Analyse-Framework | Schwachstellenerkennung, SlithIR |
| Aderyn | Cyfrin | Statisches Analyse-Framework | Statischer Analysator, Benutzerdefinierte Detektoren, Markdown-Berichte |
| Foundry | Paradigm | Entwicklungs-Toolchain | Fuzzing, Stateful Fuzzing (Invariantentests), Differentielles Testen |
| Echidna | Trail of Bits | Fuzzer | Fuzzing , Stateful Fuzzing (Invariantentests), CI/CD |
| Optik | Trail of Bits | Hybrider Fuzzer (Symbolische Ausführung + Fuzzing) | Fuzzing, Stateful Fuzzing, Symbolische Ausführung |
| Woke | Ackee Blockchain | Entwicklungs-Toolchain | Cross-Chain-Tests, Invariantentests, Schwachstellenerkennung, IR |
| 4naly3er | Picodes | Statischer Scanner | Code4rena-Pre-Content-Tests |
| Manticore | Trail of Bits | Tool für symbolische Ausführung | Symbolische Ausführung, Eigenschaftstests |
| Halmos | a16z | Symbolischer Bounded Model Checker | Symbolische Ausführung, Schrankenprüfer |
| Solidity SMTChecker | Ethereum Foundation | Formale Verifikation durch symbolische Ausführung | Solidity, Formale Verifikation, Symbolische Ausführung |
| Mythril | Consensys | Tool für symbolische Ausführung | Symbolische Ausführung, On-Chain-Analyse, Schwachstellenerkennung, Taint-Analyse |
| Pyrometer [WIP] | Nascent | Tool für symbolische Ausführung | Symbolische Ausführung, Abstrakte Interpretation |
| greed | UCSB Seclab | Statisches/Symbolisches Analyse-Framework | Symbolische Ausführung, Schrankenprüfer, Statische Analysen, Eigenschaftstests |
| ethpwn | ethpwn | Dynamische Analyse/Debugging | EVM-Simulationen, EVM-Debugging |
| Ressource | Schlüsselwörter |
|---|
| Academic Smart Contract Papers | Liste akademischer Papiere |
| DeFi Hacks Reproduce - Foundry | Angriffsreplikation |
| Smart Contract Security Verification Standard | Sicherheits-Checkliste |
| Awesome MythX Smart Contract Security Tools | Sicherheitsanalyse-Dienst |
| Common Security Properties of Smart Contracts | Sicherheitskonformitäts-Suite |
| Immunefi PoC Templates | PoC-Vorlagen |
| Awesome MEV Resources | MEV-Ressourcen |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | Front-Running-Datensatz |
| Ultimate DeFi & Blockchain Research Base | Blockchain-Sicherheit All-in-One |
| Common Fork Bugs | Exploit-Datensatz |