Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ftw — إطار عمل لاختبار جدران حماية تطبيقات الويب (FTW!) | Kitploit
أدوات/GitHubGitHub/fastly/ftw
ماسحات الثغرات الأمنيةتجاوز WAFأمن الويباختبار الاختراقDevSecOpsArchived
GitHubfastly/ftw

ftw

إطار عمل لاختبار جدران حماية تطبيقات الويب (FTW!)

عرض المستودع
2635819منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

إطار اختبار جدران الحماية لتطبيقات الويب (FTW)

حالة البناء

الغرض

تم إنشاء هذا المشروع بواسطة باحثين من ModSecurity و Fastly للمساعدة في توفير اختبارات صارمة لقواعد جدار حماية تطبيقات الويب (WAF). يستخدم مجموعة القواعد الأساسية لـ OWASP الإصدار 3 كخط أساس لاختبار القواعد على جدار حماية التطبيقات. يتم تحميل كل قاعدة من مجموعة القواعد في ملف YAML يقوم بإصدار طلبات HTTP من شأنها تفعيل هذه القواعد.

الأهداف / حالات الاستخدام تشمل:

  • العثور على الانحدارات في نشر جدران الحماية باستخدام التكامل المستمر وإطلاق هجمات قابلة للتكرار على جدار الحماية
  • توفير إطار اختبار للقواعد الجديدة في ModSecurity، إذا تم تقديم قاعدة يجب أن يكون لها اختبارات موجبة وسالبة مقابلة
  • تقييم جدران الحماية مقابل مجموعة قواعد أساسية مشتركة ومقبولة (OWASP)
  • اختبار والتحقق من القواعد المخصصة لجدران الحماية التي ليست جزءًا من مجموعة القواعد الأساسية

التثبيت

  • git clone [email protected]:fastly/ftw.git
  • cd ftw
  • تأكد من تثبيت pip apt-get install python-pip
  • pip install -r requirements.txt

تشغيل الاختبارات باستخدام فحوصات محتوى HTML ورمز الحالة فقط

  • إنشاء ملفات YAML تشير إلى خادم الويب الخاص بك مع جدار حماية أمامه
  • py.test test/test_default.py --ruledir test/yaml

إعداد Apache+Modsecurity+OWASP CRS

إذا كنت بحاجة إلى بيئة لاختبار قواعد جدار الحماية، فقد تم إنشاء واحدة مع Apache و Modsecurity والإصدار 3.0.0 من مجموعة القواعد الأساسية لـ OWASP. يمكن نشر ذلك عن طريق:

  • استنساخ المستودع: git clone https://github.com/fastly/waf_testbed.git
  • كتابة vagrant up

تشغيل الاختبارات مع تجاوز عنوان الوجهة في ملفات yaml إلى نطاق مخصص

  • ابدأ خادم الويب الاختباري الخاص بك
  • py.test test/test_default.py --ruledir=test/yaml --destaddr=domain.com --port 443 --protocol https

تشغيل اختبار التكامل، خادم ويب محلي، قد تحتاج إلى استخدام sudo

  • py.test test/integration/test_logcontains.py -s --ruledir=test/integration/

كيفية دمج السجلات

  1. قم بإنشاء ملف *.py مع الاستيرادات اللازمة، يوجد مثال في test/integration/test_logcontains.py
  2. جميع الدوال التي تبدأ بـ test* سيتم تشغيلها بواسطة py.test، لذا قم بإنشاء دالة def test_somewaf
  3. قم بتنفيذ فئة ترث من LogChecker
    1. قم بتنفيذ دالة get_logs(). سيقوم FTW باستدعاء هذه الدالة بعد تشغيل الاختبار، وسيقوم بتعيين أوقات self.start و self.end
    2. استخدم المعلومات من متغيرات الوقت لاسترداد الملفات من جدار الحماية الخاص بك، سواء كان ملفًا أو استدعاء API
    3. احصل على السجلات، وقم بتخزينها في مصفوفة من السلاسل النصية وأعدها من get_logs()
  4. استخدم py.test fixtures. استخدم مصمم الدالة @pytest.fixture، وأعد كائن LogChecker الجديد الخاص بك. عندما تستخدم وسيط دالة في اختباراتك يطابق اسم ذلك @pytest.fixture، فسيتم إنشاء الكائن الخاص بك ويجعل تشغيل الاختبارات أسهل. مثال على ذلك موجود في ملف Python من الخطوة 1.
  5. اكتب تكوين اختبار بتنسيق *.yaml كما هو موضح في test/integration/LOGCONTAINSFIXTURE.yaml، يتطلب سطر log_contains سلسلة نصية هي تعبير منتظم. سيقوم FTW بتجميع سلسلة log_contains من كل مرحلة في ملف YAML إلى تعبير منتظم. سيتم استخدام هذا التعبير المنتظم بعد ذلك مع أسطر السجلات التي تم تمريرها من get_logs() للبحث عن تطابق. يجب أن تكون سلسلة log_contains إذن معرف قاعدة فريدًا نظرًا لأن FTW جشع وسيمرر على أول تطابق. يتم تقليل الإيجابيات الخاطئة بفضل وقت البدء/الانتهاء الذي تم تمريره إلى كائن LogChecker، ولكن من الأفضل أن تكون آمنًا واستخدام تعبيرات منتظمة فريدة.
  6. لكل مرحلة، يتم استدعاء دالة get_logs()، لذا تأكد من مراعاة استدعاءات API إذا كانت هذه هي الطريقة التي تسترجع بها سجلاتك.

إجراء طلبات HTTP برمجيًا

على الرغم من أنه يفضل إجراء الطلبات باستخدام تنسيق YAML، إلا أن الاختبارات الآلية غالبًا ما تتطلب إجراء العديد من الطلبات الديناميكية. في هذه الحالة، يوصى باستخدام إطار py.test من أجل إنتاج حالات اختبار يمكن تشغيلها كجزء من الكل. بشكل عام، إجراء طلب HTTP بسيط:

  1. إنشاء نسخة من الفئة HttpUA()
  2. إنشاء نسخة من الفئة Input() مع توفير أي معلمات لا تريد أن تكون افتراضية
  3. توفير نسخة الفئة Input إلى HttpUA.send_request()

للحصول على بعض الأمثلة، راجع اختبارات http التكاملية

تنزيل الأداة