
ماسح ثغرات شفرة المصدر القائم على الويب

Raptor هو ماسح ثغرات برمجي متمركز حول GitHub يعمل عبر الويب (خدمة ويب + واجهة مستخدم)، أي يقوم بمسح مستودع باستخدام رابط GitHub الخاص به فقط. يمكنك إعداد webhooks لضمان إجراء مسح تلقائي في كل مرة ترتكب فيها تغييرات أو تدمج طلب سحب. يتم المسح بشكل غير متزامن وتكون النتائج متاحة فقط للمستخدم الذي بدأ المسح.
بعض ميزات Raptor:
هذه الأداة هي محاولة لمساعدة المجتمع والشركات الناشئة على التركيز على البرمجة الآمنة. قد لا تتطابق هذه الأداة مع ميزات/جودة البدائل التجارية، ولا يوجد ضمان، وقد تم تحذيرك. تستهدف هذه الأداة استخدامها من قبل مراجعي أمان الكود و/أو المطورين ذوي الخبرة في البرمجة الآمنة للعثور على نقاط دخول الثغرات أثناء مراجعات الكود أو مراجعات الأقران. من فضلك لا تثق بمخرجات الأداة بشكل أعمى. من الأفضل استخدامها إذا قمت بربط Raptor بخط أنابيب CI/CD الخاص بك.
0.1 beta
الإضافات المدمجة:
ملاحظة: تم تعديل معظم الأدوات/الوحدات/المكتبات التالية بشكل كبير لضمان التكامل الجيد في الإطار.
حزم القواعد المتاحة:
فيديو التثبيت: YouTube Install
$ wget https://github.com/dpnishant/raptor/archive/master.zip -O raptor.zip
$ unzip raptor.zip
$ cd raptor-master
$ sudo sh install.sh
فيديو التثبيت: YouTube Usage
cd raptor-master
sudo sh start.sh # يبدأ خدمة الويب الخلفية
الآن وجه متصفحك إلى Raptor Home (http://localhost/raptor/)
قم بتسجيل الدخول باستخدام اسم المستخدم المسجل على خادم GitHub المقابل الذي تتصل به وأي كلمة مرور (لكن تذكر اسم المستخدم لعرض سجل المسح).
على سبيل المثال:
إذا كنت مسجلاً باسم foobar على https://github.com، فاستخدم نفس اسم المستخدم عند مسح المستودعات على https://github.com. ومع ذلك، إذا كنت مسجلاً باسم foobar_corp على GitHub الشخصي/الخاص بمؤسستك (على سبيل المثال https://github.corp.company.com) فاستخدم نفس اسم المستخدم إذا كنت تنوي مسح المستودعات على https://github.corp.company.com
ومع ذلك، في الوقت الحالي يمكن أن تكون كلمة المرور أي شيء، لأننا لم نقم بتنفيذ قاعدة بيانات في إصدار التطوير.
يمكنك استخدام محرر القواعد المدمج خفيف الوزن من جانب العميل لإضافة أي قاعدة/قواعد جديدة أو مخصصة لمتطلباتك الخاصة أو أي محرر نصوص عادي لأن ملفات حزمة القواعد هي مجرد هياكل JSON بسيطة. استخدم متصفحك لفتح القواعد الموجودة في 'backend/rules'. عند الانتهاء، احفظ ملف القواعد الجديد/المعدل في نفس الدليل أي 'backend/rules'. كل ما عليك فعله الآن هو تعديل بسيط هنا: Init Script. أضف اسم ملف حزمة القواعد الجديد إلى هذه المصفوفة دون امتداد '.rulepack' وأعد تشغيل الخادم الخلفي. لقد أصبح كل شيء جاهزًا! 👍
يمكنك الوصول إليه هنا: Rules Editor (http://localhost/raptor/editrules.php)
أضف نمط اسم ملف أو دليل لاستبعاده من المسح. هذا مفيد لتجاهل أي ملفات معروفة مثل jquery.min.js إلخ أو على سبيل المثال دليل /test/ بأكمله. على سبيل المثال في المحتوى النموذجي أدناه، jquery يعني jquery وهو حساس لحالة الأحرف، لذا كن حذرًا. في قسم plugins، name الخاص بالإضافة هو اسم ملف حزمة القواعد بدون امتداد ".rulepack" كما هو متاح تحت دليل rules/. حقل issue هو معرف المشكلة المذكور في كل قاعدة من ملفات حزمة القواعد: مثال #1، مثال #2. قيمة حقل match_type يمكن أن تكون إما regex أو start أو end. حقل value هو السلسلة الدقيقة المطلوب مطابقتها في حالة كانت match_type هي start أو end. في حالة كان حقل match_type هو regex، يجب أن يحتوي value على نمط RegEx الخام الذي يحتاج إلى ترميز Base64 لتجنب أي مشكلات تتعلق بالتهرب من بناء جملة JSON. regex هي مطابقة تعتمد على التعبير العادي، start ستطابق بداية المقطع وend ستطابق نهاية المقطع.
الطريقة التي يعمل بها هي أنه عندما ينتهي الماسح الضوئي من مسح المشكلات، سيتكرر عبر جميع المشكلات التي تم العثور عليها ويزيل تلك التي تطابق الأنماط (بناءً على نوع المطابقة) لكل إضافة مذكورة في ملف ignore_list.rulepack.