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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ModSecurity — ModSecurity هو محرك جدار حماية لتطبيقات الويب (WAF) مفتوح المصدر ومتعدد المنصات، مخصص لخوادم Apache وIIS وNginx. يمتلك لغة برمجة قوية قائمة على الأحداث توفر الحماية من مجموعة من الهجمات ضد تطبيقات الويب، وتتيح مراقبة حركة مرور HTTP وتسجيلها وتحليلها في الوقت الفعلي. | Kitploit
أدوات/GitHubGitHub/owasp-modsecurity/modsecurity
أدوات دفاعيةتحليل الثغرات الأمنيةبروكسيات الويب والاعتراضتجاوز WAFأمن الويبأمن الشبكاتكشف التسللأمن واجهات برمجة التطبيقاتمكافحة الروبوتات

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
تحليل السجلات
الأفضل في مكافحة الروبوتات #2
الأفضل في أدوات دفاعية #16
الأفضل في أمن الشبكات #18
الأفضل في تجاوز WAF #20
الأفضل في بروكسيات الويب والاعتراض #20
GitHubowasp-modsecurity/modsecurity

ModSecurity

ModSecurity هو محرك جدار حماية لتطبيقات الويب (WAF) مفتوح المصدر ومتعدد المنصات، مخصص لخوادم Apache وIIS وNginx. يمتلك لغة برمجة قوية قائمة على الأحداث توفر الحماية من مجموعة من الهجمات ضد تطبيقات الويب، وتتيح مراقبة حركة مرور HTTP وتسجيلها وتحليلها في الوقت الفعلي.

عرض المستودعالموقع الإلكتروني
9.7k1.7k89منذ 10 أيامتمت المراجعة من قبل Kitploit
مشاركة

Quality Assurance Build Status

Libmodsecurity هو أحد مكونات مشروع ModSecurity v3. تعمل قاعدة شيفرة المكتبة كواجهة لموصلات ModSecurity، حيث تستقبل حركة مرور الويب وتطبّق عليها معالجة ModSecurity التقليدية. وبشكل عام، فهي توفّر القدرة على تحميل/تفسير القواعد المكتوبة بصيغة ModSecurity SecRules وتطبيقها على محتوى HTTP الذي يوفّره تطبيقك عبر الموصلات.

إذا كنت تبحث عن ModSecurity لـ Apache (المعروف أيضًا باسم ModSecurity v2.x)، فهو لا يزال قيد الصيانة ومتاحًا: هنا.

ما الفرق بين هذا المشروع وModSecurity القديم (v2.x.x)؟

  • تمت إزالة جميع تبعيات Apache
  • أداء أعلى
  • ميزات جديدة
  • بنية جديدة

Libmodsecurity هو إعادة كتابة كاملة لمنصة ModSecurity. عندما تم تصوّره لأول مرة، بدأ مشروع ModSecurity كمجرد وحدة Apache. وعلى مرّ الوقت، تم توسيع المشروع، استجابةً للطلب الشعبي، لدعم منصات أخرى تشمل (على سبيل المثال لا الحصر) Nginx وIIS. ومن أجل تلبية الطلب المتزايد على دعم منصات إضافية، أصبح من الضروري إزالة تبعيات Apache التي يقوم عليها هذا المشروع، مما يجعله أكثر استقلالية عن المنصات.

ونتيجةً لهذا الهدف، أعدنا هندسة Libmodsecurity بحيث لم تعد تعتمد على خادم الويب Apache (سواء عند الترجمة أو أثناء التشغيل). ومن الآثار الجانبية لذلك أن المستخدمين يمكنهم توقّع أداء متزايد عبر جميع المنصات. بالإضافة إلى ذلك، اغتنمنا هذه الفرصة لإرساء الأساس لبعض الميزات الجديدة التي طالما سعى إليها المستخدمون. فعلى سبيل المثال، نهدف إلى دعم سجلات التدقيق (auditlogs) بصيغة JSON أصليًا، إلى جانب مجموعة من الوظائف الأخرى في الإصدارات المستقبلية.

لم يعد مجرد وحدة.

لم يعد فرع 'ModSecurity' يحتوي على منطق الوحدة التقليدي (لـ Nginx وApache وIIS) الذي كان يُحزَّم تقليديًا معًا. بدلاً من ذلك، يحتوي هذا الفرع فقط على جزء المكتبة (libmodsecurity) الخاص بهذا المشروع. تُستهلك هذه المكتبة بواسطة ما نسمّيه 'الموصلات' (Connectors)، وهذه الموصلات ستتفاعل مع خادم الويب الخاص بك وتزوّد المكتبة بصيغة مشتركة تفهمها. تتم صيانة كل من هذه الموصلات كمشروع GitHub منفصل. فعلى سبيل المثال، يُوفَّر موصل Nginx بواسطة مشروع ModSecurity-nginx (https://github.com/owasp-modsecurity/ModSecurity-nginx).

إن إبقاء هذه الموصلات منفصلة يتيح لكل مشروع دورات إصدار ومشكلات وشجرات تطوير مختلفة. بالإضافة إلى ذلك، يعني ذلك أنه عند تثبيت ModSecurity v3 فإنك تحصل فقط على ما تحتاجه بالضبط، دون إضافات لن تستخدمها.

الترجمة (Compilation)

قبل بدء عملية التجميع، تأكد من تثبيت جميع التبعيات المطلوبة.
راجع قسم التبعيات والوحدات الفرعية لـ Git للحصول على مزيد من المعلومات.

بعد التجميع، تأكد من عدم وجود مشكلات في بنائك/منصتك.
نوصي بشدة بتشغيل اختبارات الوحدة واختبارات الانحدار. توجد أدوات الاختبار هذه في المجلد الفرعي tests/.

بصفتها مكتبة ديناميكية، يجب تثبيت libmodsecurity في موقع يمكن لنظام التشغيل الخاص بك العثور فيه على المكتبات الديناميكية.

Unix (Linux، macOS، FreeBSD، …)

في الأنظمة الشبيهة بـ Unix، يستخدم المشروع autotools لعملية التجميع.

إذا كنت تعمل باستخدام نسخة git، فتأكد من استنساخ المستودع بشكل متكرر أو تهيئة جميع الوحدات الفرعية قبل البناء.
راجع أيضًا قسم الوحدات الفرعية لـ Git.

git clone https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity

يستخدم هذا المستودع وحدات فرعية من git. بعد الاستنساخ، تأكد من تهيئة جميع الوحدات الفرعية وجلبها:

git submodule update --init --recursive

يمكنك التحقق من أن جميع الوحدات الفرعية تمت تهيئتها بشكل صحيح باستخدام:

git submodule status

تظهر الوحدات الفرعية التي تمت تهيئتها بشكل صحيح تجزئة commit. تشير علامة - البادئة إلى أن الوحدة الفرعية لم تتم تهيئتها.

يمكنك بعد ذلك بدء عملية البناء:

./build.sh
./configure
make
sudo make install

يمكن العثور على تفاصيل حول عمليات البناء الخاصة بكل توزيعة في الويكي الخاص بنا: وصفات الترجمة

Windows

يمكن العثور على معلومات بناء Windows هنا.

التبعيات

  • هذه المكتبة مكتوبة بلغة C++ باستخدام معيار C++17.
  • تستخدم Flex وBison (Yacc) لإنتاج محلل "Sec Rules Language".
  • تشمل التبعيات الإلزامية YAJL، حيث يستخدم ModSecurity JSON للتسجيل وإطار الاختبار الخاص به.
  • يُستخدم libXML2 (اختياري) لتحليل طلبات XML.

محرك التعبيرات النمطية (PCRE2 / PCRE)

  • تتم معالجة التعبيرات النمطية في SecRules عبر أداة Regex (src/utils/regex.*).

  • بشكل افتراضي، يستخدم ModSecurity PCRE2 لمعالجة التعبيرات النمطية.

  • يُستخدم هذا بواسطة المعاملات مثل @rx و@rxGlobal و@verifyCC.

  • سلوك وقت البناء:

    • الافتراضي: يتم اكتشاف PCRE2 واستخدامه.
    • الاحتياطي: يمكن استخدام PCRE القديم إذا تم تمرير --with-pcre صراحةً (WITH_PCRE).
  • بعبارة أخرى، تتوقع عمليات البناء الحالية PCRE2 ما لم يتم تكوينها صراحةً على خلاف ذلك.

  • يقوم @rx و@rxGlobal بترجمة الأنماط باستخدام DOTALL | MULTILINE افتراضيًا: يسمح DOTALL لـ . بمطابقة أسطر جديدة، ويسمح MULTILINE لـ ^/$ بالارتكاز عند كل فاصل سطر داخلي بدلاً من الارتكاز فقط عند بداية/نهاية الموضوع بأكمله. مرّر --enable-regex-dollar-endonly=yes لترجمتها باستخدام DOTALL | DOLLAR_ENDONLY بدلاً من ذلك: بدون MULTILINE، يرتكز ^/$ فقط عند بداية/نهاية الموضوع بأكمله، ويقيّد DOLLAR_ENDONLY إضافيًا $ ليطابق فقط هناك بدلاً من المطابقة أيضًا قبل سطر جديد لاحق مباشرةً. يبقى DOTALL دون تغيير في كلتا الحالتين، لذا يمكن للأنماط أن تطابق عبر فواصل الأسطر الداخلية عبر .. يتوافق هذا مع سلوك @rx في ModSecurity v2. العلم معطّل افتراضيًا؛ راجع المشكلة #3295.

جميع التبعيات الأخرى مرتبطة بالمعاملات المحددة داخل SecRules أو توجيهات التكوين وقد لا تكون مطلوبة للترجمة.

التبعيات المتعلقة بالمعاملات

  • يُعد libinjection مطلوبًا للمعاملين @detectXSS و@detectSQL.
  • يُعد curl مطلوبًا للتوجيه SecRemoteRules.

إذا كانت تلك المكتبات مفقودة، فسيتم ترجمة ModSecurity دون دعم للمعاملات أو التوجيهات المعنية.

وحدات Git الفرعية

يتضمن المستودع الوحدات الفرعية التالية:

  • others/libinjection – يُستخدم بواسطة المعاملين @detectSQLi و@detectXSS.

  • others/mbedtls (مجموعة فرعية من TF-PSA-Crypto) – يُستخدم للدوال والمساعدات التشفيرية (مثل التجزئة، base64).

    ملاحظة: تخطيط mbedTLS v4 الأحدث غير متوافق مع بنية v3 الأقدم. تغيّرت البنية الداخلية بشكل كبير، وتم نقل العديد من المكونات إلى وحدات فرعية (مثل TF-PSA-Crypto).

    بعد دمج PR #3532، يُشترط تشغيل:

    git submodule update --init --recursive
    

    يضمن هذا جلب جميع الوحدات الفرعية المطلوبة. بدون هذه الخطوة، لن يُبنى المشروع بنجاح.

يمكنك التحقق من تهيئة جميع الوحدات الفرعية بشكل صحيح باستخدام:

git submodule status

مثال على المخرجات:

تنزيل الأداة