إزالة الغموض عن الأخطاء القابلة للاستغلال في العقود الذكية
يهدف هذا المشروع إلى توفير مورد قيّم لمطوّري Web3 ومحلّلي الأمن من خلال تسهيل فهمهم للأخطاء القابلة للاستغلال في العقود الذكية. نقوم بإجراء تحليل شامل للأخطاء القابلة للاستغلال المستخرجة من code4rena ونصنّف كل خطأ وفقًا لطبيعته.
تشير أبحاثنا الأولية إلى أن نسبة ملحوظة من الأخطاء القابلة للاستغلال في العقود الذكية هي أخطاء وظيفية، لا يمكن اكتشافها باستخدام أدوات فحص بسيطة وعامة مثل إعادة الدخول (reentrancy). نهدف إلى رفع الوعي حول أهمية هذه الأخطاء وتشجيع الممارسين على تطوير أدوات فحص دلالية آلية أكثر تطورًا ودقة لاكتشافها.
عدد كبير من الأخطاء القابلة للاستغلال في العقود الذكية يقع ضمن فئة الأخطاء الوظيفية، التي لا يمكن اكتشافها باستخدام أدوات فحص بسيطة وعامة.
يرجى الانتباه إلى أن هذا المستودع قيد التطوير النشط حاليًا، وقد تتغير البيانات بمرور الوقت بسبب مسابقات code4rena المستمرة.
وصف مجموعة البيانات
بنية المجلدات
تم تنظيم مجموعة البيانات في أربعة مجلدات:
papers/: يحتوي على ورقتنا البحثية ICSE23 التي تلخص نتائجنا الأولية، بالإضافة إلى المواد التكميلية للورقة.
contracts/: يحتوي على جميع العقود الذكية التي فحصناها، باستخدام النسخة المتاحة في وقت المسابقة.
reports/: يحتوي على جميع التقارير المقدمة من code4rena.
تصنيفات الأخطاء
نصنّف الأخطاء التي تمت دراستها إلى ثلاث فئات رئيسية بناءً على طبيعتها:
الأخطاء خارج النطاق (يُشار إليها بـ O)
الأخطاء التي يمكن اكتشافها بأدوات فحص بسيطة وعامة (يُشار إليها بـ L)
الأخطاء التي تتطلب أدوات فحص دلالية عالية المستوى (يُشار إليها بـ S)
نظرًا لأن تصنيف الأخطاء الوظيفية قد يكون غامضًا، فإننا نرحّب بالاقتراحات لتحسين معايير التصنيف لدينا. يمكنك العثور على معلومات أكثر تفصيلًا حول التصنيفات في وثائقنا، ونشجعك على الرجوع إلى إرشادات التصنيف الحالية لدينا لمزيد من المعلومات.
أدوات تحليل الأمان الموصى بها
هدفنا هو إنشاء قائمة شاملة لتقنيات اكتشاف الثغرات الأمنية تكون موردًا قيّمًا لمطوّري Web3 ومحلّلي الأمن. سنركّز على فئتين رئيسيتين:
تقنيات اكتشاف الثغرات التي تركّز على تطوير أدوات الفحص الدلالية للعقود الذكية.
أدوات تحليل الأمان المتاحة للعموم والتي يمكن استخدامها للتدقيق.
نرحّب بحرارة بأي اقتراحات أو مساهمات إضافية من المجتمع للمساعدة في توسيع القائمة وتحسينها.
اكتشاف الثغرات باستخدام أدوات الفحص الدلالية الآلية
نعتقد أن جهود أمان web3 المستقبلية ستعطي الأولوية لتحديد الأخطاء الوظيفية وتطوير أدوات الفحص المقابلة لها. لتحقيق هذه الغاية، نعتزم تجميع قائمة من التقنيات التي تقدّم إرشادات في إنشاء أدوات الفحص الدلالية الآلية. سيتم جمع هذه التقنيات من مواد متنوعة، مثل الأوراق البحثية المحكّمة، والطبعات الأولية (pre-prints)، والأدوات الصناعية، والموارد عبر الإنترنت.
إذا كنت تستخدم مجموعة البيانات الخاصة بنا في منشور أكاديمي، فنحن نقدّر حقًا اقتباس العمل التالي:```
@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}
}
root@kitploit:~
## توضيح
يُرجى الرجوع إلى [توثيق](https://github.com/zhangzhuosjtu/web3bugs/blob/main/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>