
إطار اختبار اختراق آلي لـ REST APIs مع إنشاء اختبارات مدفوعة بـ OpenAPI، و32 اختبارًا أمنيًا قائمًا على OWASP، ومعالجة مدمجة للتحكم في الوصول لـ OAuth2 وHTTP Basic Auth وAPI keys.
REST-Attacker هو إطار عمل لاختبار الاختراق الآلي لواجهات برمجة التطبيقات (APIs) التي تتبع نمط بنية REST. يركز الأداة على تبسيط تحليل تطبيقات REST API العامة من خلال أتمتة عملية الاختبار بالكامل - بما في ذلك توليد الاختبارات، التعامل مع التحكم في الوصول، وتوليد التقارير - بأقل جهد في التكوين. بالإضافة إلى ذلك، صُمم REST-Attacker ليكون مرنًا وقابلاً للتوسع مع دعم لكل من الاختبارات واسعة النطاق والتحليل الدقيق.
REST-Attacker يتم صيانته بواسطة كرسي أمن الشبكات والبيانات في جامعة الرور في بوخوم.
يوفر REST-Attacker حاليًا هذه الميزات:
احصل على الأداة عن طريق تنزيل أو استنساخ المستودع:
git clone https://github.com/RUB-NDS/REST-Attacker.git
تحتاج إلى Python >3.10 لتشغيل الأداة.
تحتاج أيضًا إلى تثبيت الحزم التالية باستخدام pip:
python3 -m pip install -r requirements.txt
هنا يمكنك العثور على ملخص سريع للأوامر الأكثر شيوعًا وفائدة. يمكنك العثور على مزيد من المعلومات حول كل أمر وحول خيارات التكوين المتاحة في أدلة الاستخدام الخاصة بنا.
احصل على قائمة حالات الاختبار المدعومة:
python3 -m rest_attacker --list
تشغيل اختبار أساسي (مع توليد حالات الاختبار في وقت التحميل):
python3 -m rest_attacker <cfg-dir-or-openapi-file> --generate
تشغيل اختبار كامل (مع توليد حالات الاختبار في وقت التحميل ووقت التشغيل + معالجة حدود المعدل):
python3 -m rest_attacker <cfg-dir-or-openapi-file> --generate --propose --handle-limits
تشغيل اختبار مع حالات اختبار محددة فقط (يولد حالات اختبار فقط لحالات الاختبار scopes.TestTokenRequestScopeOmit و resources.FindSecurityParameters):
python3 -m rest_attacker <cfg-dir-or-openapi-file> --generate --test-cases scopes.TestTokenRequestScopeOmit resources.FindSecurityParameters
إعادة تشغيل اختبار من تقرير:
python3 -m rest_attacker <cfg-dir-or-openapi-file> --run /path/to/report.json
يمكن العثور على أدلة الاستخدام وتوثيق تنسيق التكوين في المجلدات الفرعية للوثائق.
للحصول على إصلاحات/تخفيفات للمشكلات المعروفة مع الأداة، راجع وثائق استكشاف الأخطاء وإصلاحها أو قسم المشكلات.
نرحب بجميع أنواع المساهمات! إذا وجدت خطأ أو تريد تقديم اقتراح أو طلب ميزة، فلا تتردد في إنشاء مشكلة جديدة في متتبع المشكلات. يمكنك أيضًا إرسال إصلاحات أو تعديلات على الكود عبر طلب سحب.
لسوء الحظ، قد نكون مشغولين جدًا في بعض الأحيان، لذلك قد يستغرق الأمر بعض الوقت قبل أن نرد على التعليقات في هذا المستودع.
هذا المشروع مرخص بموجب GNU LGPLv3 أو إصدار لاحق (LGPL3+). راجع COPYING لنص الترخيص الكامل و CONTRIBUTORS.md لقائمة المؤلفين.