
Scout هي أداة قابلة للتمديد مفتوحة المصدر تهدف إلى مساعدة مطوري ومراجعو العقود الذكية Soroban Stellar يكتشفون مشكلات الأمن والانحرافات المشتركة عن أفضل الممارسات.
تساعد هذه الأداة المطورين على كتابة عقود ذكية آمنة وأكثر قوة.
يأتي اهتمامنا بهذا المشروع من تجربتنا في الكشف اليدوي للتدقيق والضعف في blockchains الأخرى (انظر Scout for Ink!).
تثبيت مراجعة Scout:
تأكد من تثبيت البضائع على جهاز الكمبيوتر الخاص بك. ثم ، قم بتثبيت الكشافة مع الأمر التالي:
cargo install cargo-scout-auditRun Scout Audit:
لتشغيل الكشافة في مشروعك ، قم بتنفيذ الأمر التالي:
cargo scout-auditSCOUT يدعم مساحات عمل البضائع. عند التشغيل على مساحة عمل ، سيتم تنفيذ Scout على جميع الحزم المحددة كأعضاء في مساحة العمل.
لمزيد من المعلومات حول التثبيت والاستخدام ، يرجى الرجوع إلى قسم البدء في قسم الوثائق أدناه.
يشمل الكشافة حاليًا الكشف التالي.
| معرف الكاشف | ما يكتشف | حالات الاختبار | خطورة |
|---|---|---|---|
| قسمة قبل أن يكون | إجراء عملية تقسيم قبل الضرب ، مما يؤدي إلى فقدان الدقة. | 1 ، 2 ، 3 | واسطة |
| غير آمن unwrap | الاستخدام غير المناسب لطريقة إلغاء الراب ، مما تسبب في تعطل البرنامج غير المتوقع. | 1 | واسطة |
| غير آمن | استخدام غير لائق للطريقة المتوقعة ، مما يؤدي إلى حوادث البرنامج غير المتوقعة. | 1 | واسطة |
| تفوق الفائض | تفيض عملية الحساب أو تدهور الذاكرة المتاحة المخصصة للمتغير. | 1 | شديد الأهمية |
| قيم العشارية غير الكافية | تجنب استخدام سمات الكتلة لتوليد العدد العشوائي لمنع التلاعب. | 1 | شديد الأهمية |
| محاكاة غير محددة--Current-contract-wasm | إذا تم السماح للمستخدمين بالاتصال بالتحديث update_current_contract_wasm() ، فيمكنهم تعديل سلوك العقد عمداً. | 1 | شديد الأهمية |
| تجنب النواة | يمكن أن يؤدي استخدام core::mem::forget() إلى تسرب الذاكرة والأخطاء المنطقية. | 1 | تعزيز |
| تخزين العقد | عدم كفاية التحكم في الوصول على طريقة env.storage() . | 1 ، 2 ، 3 | شديد الأهمية |
| تجنب الخاطئ | كود الذعر على خطأ بدلاً من استخدام التعداد الوصفي. | 1 | تعزيز |
| تجنب الكتل غير الآمن | باستخدام كتل غير آمنة في مخاطر كود سلامة وموثوقية. | 1 | شديد الأهمية |
| دوس غير المترو | DOS بسبب العملية غير المحدودة. | 1 ، 2 ، 3 | واسطة |
| Soroban-version | يمكن أن يكون استخدام إصدار قديم من Soroban خطيرًا ، حيث قد يكون له الأخطاء أو المشكلات الأمنية. استخدم أحدث إصدار متاح. | 1 | تعزيز |
| غير مستخدمة | لا يتم استخدام تعداد الإرجاع من وظيفة بالكامل. | 1 ، 2 | صغير |
| التكرار-الفهرسة | التكرار مع الفهارس المتشددين هو أبطأ من استخدام التكرار. أيضا ، إذا كان الفهرس خارج الحدود ، فإنه سوف الذعر. | 1 | تعزيز |
| تأكيد | تجنب استخدام التأكيد الماكرو! ، يمكن أن يكون الذعر. | 1 | تعزيز |
| غير محمي التعيين | يمكن أن يكون تعديل التعيينات باستخدام مفتاح تعسفي يقدمه المستخدمون ضعفًا كبيرًا. | 1 ، 2 | شديد الأهمية |
| dos-unexected-Revert-with-Sector | DOS بسبب التخزين غير لائق. | 1 ، 2 | واسطة |
| غير المقيد النقل من | تجنب تمرير معلمة محددة من قبل المستخدم from النقل من النقل. | 1 | شديد الأهمية |
| خريطة غير آمنة | استخدام غير مناسب لطريقة get على Map في سوروبان | 1 | واسطة |
| صفر أو اختبار | تجنب صفر أو مهمة عنوان الاختبار لمنع فقدان التحكم في العقد. | 1 | واسطة |
| غير صحيح | يحذر من الاستخدام غير الصحيح لـ ´^´. | 1 | شديد الأهمية |
يمكنك اختيار تنسيق الإخراج الذي يناسب احتياجاتك. تقدم Scout HTML و Markdown و JSON و PDF و SARIF. لتحديد الإخراج المطلوب تشغيل الأمر التالي:
cargo scout-audit --output-format [html|md|pdf|json|sarif]
تقرير HTML

أضف SCOUT إلى مساحة عمل التطوير الخاصة بك مع امتداد CODE الخاص بـ SCOUT لتشغيل SCOUT تلقائيًا عند حفظ ملفك.

نصيحة: لرؤية الأخطاء المميزة في الكود الخاص بك ، نوصي بتثبيت ملحق عدسة الخطأ.
قم بتنزيل Scout vs Code من Visual Studio Marketplace.
دمج الكشافة في خط أنابيب CI/CD الخاص بك! قم بتشغيل الأداة تلقائيًا مقابل العقود الذكية المستهدفة. تتيح حلقة التغذية المرتدة هذه للمطورين معالجة أي مشكلات بسرعة قبل دمج الكود في الفرع الرئيسي ، مما يقلل من خطر إدخال الأخطاء أو نقاط الضعف.
الإخراج الكشفي كتعليق في طلب سحب

البحث عن عمل GitHub Scout في GitHub Marketplace.
انضم إلينا للحصول على سلسلة مثيرة من البرامج التعليمية للفيديو حيث ستتعلم كيفية تثبيت وتشغيل Scout. اكتشف كيفية تحديد وحل المشكلات المحددة التي اكتشفتها الأداة ، وتعزيز مهاراتك من خلال إرشادات الخبراء لدينا.
؟ المزيد من مقاطع الفيديو القادمة قريبًا!
للتحقق من صحة أدائنا ، نقدم مجموعة من أمثلة التعليمات البرمجية الموجودة في مجلد حدود الاختبار.
من أجل إجراء اختبارات التكامل ، انتقل إلى apps/cargo-scout-audit و Run:
cargo test --all --all-features من أجل إجراء اختبارات لحالة اختبار معينة ، قم بتشغيل نفس الأمر على مجلد حالة الاختبار المعين (على سبيل المثال: test-cases/divide-before-multiply/divide-before-multiply-1 ))
اتبع روابط الوثائق الخاصة بنا أدناه ومعرفة المزيد عن الثغرات التي اكتشفتها Scout ، وكيف تعمل الأداة وكيفية المساهمة في المشروع!
Scout for Soroban هو محلل الضعف مفتوح المصدر تم تطويره بواسطة فريق البحث والتطوير في Coinfabrik.
تلقينا الدعم من خلال منحة من صندوق المجتمع النجمي (SCF).
نحن - Coinfabrik - هي شركة بحث وتطوير متخصصة في Web3 ، مع خلفية قوية في الأمن السيبراني. تأسست في عام 2014 ، وقد عملنا على أكثر من 180 مشاريع ذات صلة بلوكشين ، ومقرها EVM وكذلك لـ Solana و Galgorand و Stellar و Polkadot. إلى جانب التطوير ، نقدم عمليات تدقيق أمنية من خلال فريق مخصص في الشركة من كبار المتخصصين في الأمن السيبراني ، يعملون حاليًا على الكود في الركيزة ، والصلابة ، والوضوح ، والصدأ ، و Soroban النجمي.
يتمتع فريقنا بخلفية أكاديمية في علوم الكمبيوتر والرياضيات ، مع خبرة العمل التي تركز على الأمن السيبراني وتطوير البرمجيات ، بما في ذلك المنشورات الأكاديمية ، وبراءات الاختراع تحولت إلى منتجات ، وعروض المؤتمرات. علاوة على ذلك ، لدينا تعاون مستمر حول نقل المعرفة ومشاريع المصدر المفتوح مع جامعة بوينس آيرس.
الكشفية مرخصة وتوزيعها بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. اتصل بنا إذا كنت تبحث عن استثناء للشروط.