Nightshade يجلب التحليل الأمني إلى عقود Compact الخاصة بـ Midnight
المطوّر Dickson Wu اختبر الأداة مفتوحة المصدر على عِلل مزروعة عمدا وعلى 300 عقد متاح للعامة.
By SongMarketCap
Nightshade هي أداة تحليل ساكن صُمّمت لمساعدة المطوّرين على مراجعة العقود الذكية المكتوبة بلغة Compact، وهي لغة البرمجة المستخدمة لبناء التطبيقات على Midnight.
قدّمها Wu على Midnight Forum في 29 أكتوبر، وتتحقّق الأداة من الشفرة المصدرية وفق 96 قاعدة وتُشير إلى أنماط قد تتطلّب فحصا أدق. وتتضمّن نتائجها تحديد السطر ذي الصلة من الشفرة ومعلومات تهدف إلى مساعدة المطوّرين على التحقيق في المشكلة.
Nightshade يفحص شيفرة Compact بحثا عن أنماط أمنية
يفحص التحليل الساكن الشفرة المصدرية من دون الحاجة إلى تشغيل العقد. يستخدم Nightshade هذا النهج للبحث عن أنماط تتعلّق بالخصوصية والتخويل وأجزاء أخرى من منطق العقد.
أحد الأمثلة التي حدّدها Wu يتعلّق بنشر سر خاص إلى دفتر الأستاذ بعد استخدامه في فحص التخويل. قد يقصد المطوّر استخدام السر لتأكيد صلاحية المستخدم مع إبقاء القيمة الأساسية خاصّة. نشره بعد ذلك قد يعرّض معلومات كان من المفترض أن تبقى محمية.
تبحث فحوص أخرى عن نتائج التحقق من التواقيع التي جرى تجاهلها وحالات تُعامَل فيها قيم الشهود بوصفها دليلا على الهوية. كما تُشير الأداة إلى أنماط تتضمّن وقتا يورّده المُستدعي من دون قيد يستند إلى وقت السلسلة، إضافة إلى براهين Merkle التي لا يُتحقق فيها من العضوية.
لكل نتيجة، يوفّر Nightshade السطر المعني من الشفرة، والمسار الذي تسلكه البيانات، وإصلاحا مقترحا، وفقا لـ Wu. يوفّر ذلك نقطة انطلاق للمطوّر لفحص كيفية انتقال قيمة عبر العقد وأين يحدث السلوك المُشار إليه.
لا تُثبت التحذيرات بحد ذاتها أن عقدا قد تعرّض للاستغلال أو أن معلومات قد كُشفت. وبالمثل، فإن إتمام التحليل لا يُعد ضمانا لأمان العقد.
Dickson Wu يشارك نتائج اختبار Nightshade
قيّم Wu عمل Nightshade على حالات اختبار تحتوي على عِلل مزروعة عمدا. وذكر أن الأداة اكتشفت 263 من أصل 266 حالة إيجابية شملها التقييم.
واختبر المطوّر أيضا نسخا مصحّحة من تلك الحالات. لم يُنتج Nightshade أي تحذير في 240 من أصل 242 نسخة مُصلَحة، فيما أصدر نتائج في الحالتين الأخريين. تصف هذه النتائج حالات الاختبار المستخدمة في ذلك التقييم ولا تُحدّد معدّل كشف لكل مشكلة أمنية ممكنة.
ثم شغّل Wu الأداة على 300 عقد Compact عام من 144 مستودعا. وأفاد بعدم حدوث أي أعطال أثناء هذه التجربة وحدّد 258 عقدا تلقّت تحليلا كاملا.
هذا التفريق مهم لأن إتمام الفحص وعدم العثور على مشكلات نتيجتان منفصلتان. وبحسب Wu، فإن العقود التي لم تتلق تحليلا كاملا أُبلِغ عنها على أنها غير مكتملة بدلا من التعامل معها على أنها خالية من المشكلات.
نشر المطوّر منهجية التقييم وأعداد الاختبارات إلى جانب الأداة، مما يتيح للآخرين فحص كيفية الحصول على النتائج المُعلَنة.
[NEWSBREAK]
تحليل دون اتصال وتكامل مع المطوّرين
يعمل Nightshade محليا ولا يحتاج إلى اتصال بالإنترنت أو إلى مُصرّف Compact لفحص الشفرة المصدرية، وفقا لـ Wu. تدعم الأداة إصدارات مُصرّف Compact من 0.28 حتى 0.35.
يمكن للمطوّرين عرض النتائج كنص أو تصديرها بصيغ JSON و SARIF. يتوفر أيضا GitHub Action لعرض النتائج أثناء مراجعة مقترحات تغييرات الشفرة، ما يضع النتائج ضمن سير عمل قد يستخدمه المطوّرون بالفعل لفحص التحديثات.
تُطرح الأداة بموجب ترخيص Apache 2.0 مفتوح المصدر. قدّم Wu الإصدار 0.1.1 ودعا المطوّرين إلى مشاركة الملاحظات والإبلاغ عن الإيجابيات الكاذبة واقتراح قواعد إضافية.