
إزالة الغموض عن الثغرات القابلة للاستغلال في العقود الذكية

يهدف هذا المشروع إلى توفير مورد قيّم لمطوّري Web3 ومحلّلي الأمن من خلال تسهيل فهمهم للأخطاء القابلة للاستغلال في العقود الذكية. نقوم بإجراء تحليل شامل للأخطاء القابلة للاستغلال المستخرجة من code4rena ونصنّف كل خطأ وفقًا لطبيعته.
تشير أبحاثنا الأولية إلى أن نسبة ملحوظة من الأخطاء القابلة للاستغلال في العقود الذكية هي أخطاء وظيفية، لا يمكن اكتشافها باستخدام أدوات فحص بسيطة وعامة مثل إعادة الدخول (reentrancy). نهدف إلى رفع الوعي حول أهمية هذه الأخطاء وتشجيع الممارسين على تطوير أدوات فحص دلالية آلية أكثر تطورًا ودقة لاكتشافها.
عدد كبير من الأخطاء القابلة للاستغلال في العقود الذكية يقع ضمن فئة الأخطاء الوظيفية، التي لا يمكن اكتشافها باستخدام أدوات فحص بسيطة وعامة.
يرجى الانتباه إلى أن هذا المستودع قيد التطوير النشط حاليًا، وقد تتغير البيانات بمرور الوقت بسبب مسابقات code4rena المستمرة.
تم تنظيم مجموعة البيانات في أربعة مجلدات:
نصنّف الأخطاء التي تمت دراستها إلى ثلاث فئات رئيسية بناءً على طبيعتها:
نظرًا لأن تصنيف الأخطاء الوظيفية قد يكون غامضًا، فإننا نرحّب بالاقتراحات لتحسين معايير التصنيف لدينا. يمكنك العثور على معلومات أكثر تفصيلًا حول التصنيفات في وثائقنا، ونشجعك على الرجوع إلى إرشادات التصنيف الحالية لدينا لمزيد من المعلومات.
هدفنا هو إنشاء قائمة شاملة لتقنيات اكتشاف الثغرات الأمنية تكون موردًا قيّمًا لمطوّري Web3 ومحلّلي الأمن. سنركّز على فئتين رئيسيتين:
نرحّب بحرارة بأي اقتراحات أو مساهمات إضافية من المجتمع للمساعدة في توسيع القائمة وتحسينها.
نعتقد أن جهود أمان web3 المستقبلية ستعطي الأولوية لتحديد الأخطاء الوظيفية وتطوير أدوات الفحص المقابلة لها. لتحقيق هذه الغاية، نعتزم تجميع قائمة من التقنيات التي تقدّم إرشادات في إنشاء أدوات الفحص الدلالية الآلية. سيتم جمع هذه التقنيات من مواد متنوعة، مثل الأوراق البحثية المحكّمة، والطبعات الأولية (pre-prints)، والأدوات الصناعية، والموارد عبر الإنترنت.
| التقنية | اللغة | الوصف | الكلمات المفتاحية المتعلقة بالأمان |
|---|---|---|---|
| Move Prover | Move | المواصفات والتحقق الرسمي | التحقق الرسمي |
نرحّب بجميع أنواع المساهمات في مشروعنا، بما في ذلك على سبيل المثال لا الحصر:
results/contests.csvيمكن العثور على مزيد من التفاصيل في إرشادات المساهمة لدينا.
إذا كنت تستخدم مجموعة البيانات الخاصة بنا في منشور أكاديمي، فنحن نقدّر حقًا اقتباس العمل التالي:``` @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} }
## توضيح
يُرجى الرجوع إلى [توثيق](https://github.com/zhangzhuosjtu/web3bugs/blob/HEAD/docs/classification.md) التصنيف الخاص بنا.
## شكر وتقدير
نود أن نتقدم بجزيل الشكر إلى [code4rena](https://code4rena.com/) لإتاحة هذه المعلومات القيّمة للجمهور.
<details>
<summary>كما نوجه تقديرنا إلى المساهمين التاليين لإسهاماتهم القيّمة.</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>
| التقنية | فئة الخطأ |
|---|
| التقنية | المطوّرون | الوصف | الكلمات المفتاحية المتعلقة بالأمان |
|---|
| Slither | Trail of Bits | إطار عمل للتحليل الثابت | كاشفات الثغرات، SlithIR |
| Aderyn | Cyfrin | إطار عمل للتحليل الثابت | محلل ثابت، كاشفات مخصصة، تقارير Markdown |
| Foundry | Paradigm | سلسلة أدوات تطوير | الاختبار بالتغذية العشوائية، الاختبار بالتغذية العشوائية مع الحالة (اختبار الثوابت)، الاختبار التفاضلي |
| Echidna | Trail of Bits | أداة اختبار بالتغذية العشوائية | الاختبار بالتغذية العشوائية ، الاختبار بالتغذية العشوائية مع الحالة (اختبار الثوابت)، CI/CD |
| Optik | Trail of Bits | أداة اختبار هجينة (تنفيذ رمزي + تغذية عشوائية) | تغذية عشوائية، تغذية عشوائية مع الحالة، تنفيذ رمزي |
| Woke | Ackee Blockchain | سلسلة أدوات تطوير | الاختبار عبر السلاسل، اختبار الثوابت، كاشفات الثغرات، IR |
| 4naly3er | Picodes | ماسح ثابت | اختبار ما قبل محتوى Code4rena |
| Manticore | Trail of Bits | أداة تنفيذ رمزي | تنفيذ رمزي، اختبار الخصائص |
| Halmos | a16z | مُتحقق نماذج رمزي محدود | تنفيذ رمزي، مُتحقق حدود |
| Solidity SMTChecker | Ethereum Foundation | تحقق رسمي عبر التنفيذ الرمزي | Solidity، تحقق رسمي، تنفيذ رمزي |
| Mythril | Consensys | أداة تنفيذ رمزي | تنفيذ رمزي، تحليل على السلسلة، كاشفات الثغرات، تحليل تدفق البيانات |
| Pyrometer [WIP] | Nascent | أداة تنفيذ رمزي | تنفيذ رمزي، تفسير تجريدي |
| greed | UCSB Seclab | إطار عمل للتحليل الثابت/الرمزي | تنفيذ رمزي، مُتحقق حدود، تحليلات ثابتة، اختبار الخصائص |
| ethpwn | ethpwn | تحليل ديناميكي/تنقيح | محاكاة EVM، تنقيح EVM |
| المورد | الكلمات المفتاحية |
|---|
| Academic Smart Contract Papers | قائمة الأوراق الأكاديمية |
| DeFi Hacks Reproduce - Foundry | إعادة تنفيذ الهجمات |
| Smart Contract Security Verification Standard | قائمة تدقيق أمني |
| Awesome MythX Smart Contract Security Tools | خدمة تحليل أمني |
| Common Security Properties of Smart Contracts | حزمة امتثال أمني |
| Immunefi PoC Templates | قوالب إثبات المفهوم (PoC) |
| Awesome MEV Resources | موارد MEV |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | مجموعة بيانات الهجمات الأمامية |
| Ultimate DeFi & Blockchain Research Base | أمان البلوكشين الشامل |
| Common Fork Bugs | مجموعة بيانات الاستغلال |