جدران الحماية وأمن الشبكات

أساسيات ModSecurity وOWASP CRS: درجات الشذوذ ومستويات الحساسية وضبط جدار حماية تطبيقات الويب

كيف تحتسب مجموعة القواعد OWASP CRS درجات الطلبات، وكيف تختار مستوى الحساسية وتعالج الإنذارات الكاذبة، ووضع إصدارات ModSecurity وCRS على Debian في 2026.

تاريخ النشر
مدة القراءة
6 دقائق
الكاتب
SKYLINE Engineering

يفحص جدار حماية تطبيقات الويب (WAF) طلبات HTTP واستجاباتها ويحجب ما يبدو هجوماً مثل حقن SQL أو حقن السكربتات عبر المواقع أو اجتياز المسارات. وعلى خوادم Linux التي تديرها بنفسك، فإن التركيبة مفتوحة المصدر الأكثر شيوعاً هي محرك ModSecurity مع مجموعة القواعد الأساسية من OWASP المعروفة بـCRS. وهي طبقة إضافية مفيدة بشرط ضبطها، فالجدار غير المضبوط إما يحجب العملاء الحقيقيين أو يُعطَّل في النهاية.

يشرح هذا الدليل كيف تقرر CRS ما تحجبه، وكيف تطبقها بأمان، وما الإصدارات الحالية حتى أكتوبر 2026.

المكونات وإصداراتها

  • ModSecurity هو المحرك، وتتولى صيانته الآن OWASP على GitHub. الإصدار 2 وحدة لـApache، والإصدار 3 (libmodsecurity) مكتبة مستقلة تُستخدم مع موصلات مثل ModSecurity-nginx. وقد صدر للخطين إصداران في 29 سبتمبر 2026 (2.9.15 و3.0.17).
  • CRS هي مجموعة القواعد. يذكر مشروع CRS أن أحدث إصدار هو 4.30.0 وأن إصدار الدعم طويل الأمد (LTS) هو 4.25.2، وكلاهما صدر في 2 أكتوبر 2026، ويؤكد أن خط CRS 3.3.x وصل إلى نهاية عمره وأن على من ما زال يستخدمه الانتقال. كما تعمل CRS على محرك Coraza.

حزم التوزيعات متأخرة عن ذلك. فـDebian 12 وDebian 13 يوفران ModSecurity 2.9.x لـApache (libapache2-mod-security2)، وlibmodsecurity 3.0.x مع وحدة لـNginx، وCRS من خط 3.3 (modsecurity-crs). هذا مناسب للتعلم ولأول نشر، لكن خطط للانتقال إلى CRS 4، إذ تذكر سلسلة الترحيل من مشروع CRS أن خط 3.3 لا يتلقى إصلاحات للإنذارات الكاذبة ولا اكتشافات جديدة. وإذا جمعت إصداراً من CRS الأصلية مع محركات التوزيعة فاقرأ ملاحظات الإصدار أولاً: فـملاحظات إصدار يوليو 2026 تطلب ModSecurity 2.9.14 أو libmodsecurity 3.0.16، وهي أحدث من الإصدارين 2.9.11 و3.0.14 في Debian 13.

كيف تقرر CRS: درجات الشذوذ

لا تحجب CRS الطلب عند أول قاعدة مطابقة. فبحسب وثائق درجات الشذوذ، تضيف كل قاعدة مطابقة إلى درجة الطلب، وبعد تشغيل كل قواعد الطلب يُحجب إذا بلغت درجته عتبة الطلبات الواردة، وتُقيَّم الاستجابات بالطريقة نفسها مقابل عتبة الاستجابات الصادرة.

  • معظم الهجمات المكتشفة تحمل درجة 5 (حرجة).
  • العتبتان الافتراضيتان 5 للطلبات و4 للاستجابات، أي أن مطابقة حرجة واحدة تحجب الطلب.
  • يحذّر فريق CRS من أن رفع العتبات فوق القيم الافتراضية يسمح بمرور عدد كبير من الهجمات.

مستويات الحساسية (Paranoia Levels)

يحدد مستوى الحساسية عدد القواعد المفعّلة:

المستوىالاستخدام المقصود
PL 1 (الافتراضي)حماية أساسية لأي موقع مع إنذارات كاذبة نادرة
PL 2مواقع تعالج بيانات مستخدمين حقيقية مثل متجر إلكتروني؛ توقع إنذارات كاذبة تحتاج إلى ضبط
PL 3مستوى الخدمات المصرفية الإلكترونية؛ إنذارات كاذبة كثيرة
PL 4خدمات شديدة الحساسية؛ عدد كبير من الإنذارات الكاذبة وأسابيع من الضبط

تقترح الوثائق ربط المستوى بالمخاطر: لا بيانات شخصية، PL 1؛ بيانات شخصية مثل الأسماء والعناوين، PL 2؛ بيانات مالية حساسة، PL 3. ابدأ بـPL 1 في كل الأحوال وارتفع بعد أن يعمل دون مشكلات.

تطبيق متدرج على Debian مع Apache

sudo apt update
sudo apt install libapache2-mod-security2 modsecurity-crs
sudo a2enmod security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo apachectl configtest && sudo systemctl restart apache2

يُضمِّن إعداد الوحدة في Debian كل ملفات *.conf في /etc/modsecurity ويحمّل CRS من /usr/share/modsecurity-crs، أما ملف إعدادات CRS فهو /etc/modsecurity/crs/crs-setup.conf. ويبدأ إعداد المحرك الموصى به بالقيمة SecRuleEngine DetectionOnly: تعمل القواعد وتُسجَّل نتائجها دون حجب أي شيء.

شغّل الوضع DetectionOnly مدة كافية لرؤية الحركة الطبيعية، بما فيها تسجيل الدخول وإتمام الشراء ورفع الملفات وصفحات الإدارة وعملاء الواجهات البرمجية. راجع ما كان سيُحجب؛ ويحدد التوجيه SecAuditLog في modsecurity.conf مكان سجل التدقيق. ثم انتقل إلى SecRuleEngine On. وتصف وثائق CRS بديلاً آخر: البدء بوضع الحجب مع عتبات مرتفعة جداً (حتى 10000) ثم خفضها تدريجياً إلى القيم الافتراضية.

يُضبط مستوى الحساسية والعتبات في crs-setup.conf عبر القاعدتين 900000 و900110. وفي CRS 4 اسم متغير الحساسية tx.blocking_paranoia_level، بينما استخدم خط 3.3 الاسم tx.paranoia_level.

معالجة الإنذارات الكاذبة

الإنذار الكاذب طلب مشروع يحصل على درجة مرتفعة، مثل محرر نظام إدارة محتوى يحفظ شيفرة HTML، أو حقل كلمة مرور يحتوي رموزاً تشبه SQL. عالجه باستثناء ضيق قدر الإمكان، كما يشرح دليل الضبط:

  • SecRuleRemoveById يعطل القاعدة في كل مكان (استثناء واسع؛ استخدمه بحذر).
  • SecRuleUpdateTargetById يوقف فحص القاعدة لمعامل أو ملف تعريف ارتباط محدد في كل مكان.
  • ctl:ruleRemoveById وctl:ruleRemoveTargetById داخل قاعدة خاصة بك يفعلان ذلك لمسار أو شرط محدد فقط (وهو المفضل).

مثلاً، لإيقاف فحص القاعدة 941320 للمعامل wp_post:

SecRuleUpdateTargetById 941320 "!ARGS:wp_post"

مكان الاستثناءات هو الملفات التي توفرها CRS لهذا الغرض (REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf وRESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf، المنشأة من نسختيهما بامتداد .example)، لا تعديل ملفات القواعد التي تستبدلها التحديثات. وقد استبدلت CRS 4 حزم استثناءات التطبيقات القديمة بإضافات (plugins)، فإن كنت تستخدم إحدى تلك الحزم في CRS 3 فثبّت الإضافة المقابلة لها.

أخطاء شائعة

  • رفع عتبة الشذوذ لإسكات الإنذارات الكاذبة بدلاً من كتابة الاستثناءات.
  • القفز مباشرة إلى PL 3 أو 4 في وضع الحجب.
  • ترك DetectionOnly مفعلاً لأشهر دون قراءة السجلات.
  • اعتبار الجدار بديلاً عن تحديث التطبيق؛ فهو يقلل المخاطر ولا يصلح الشيفرة المعرضة للثغرات.

ما الذي ينبغي فعله

  • ابدأ بـPL 1 والعتبات الافتراضية، في وضع DetectionOnly أو مع عتبات مرتفعة جداً.
  • راجع السجلات مقابل الحركة الحقيقية واكتب استثناءات ضيقة في ملفات الاستثناءات.
  • انتقل إلى الحجب، ثم فكّر في PL 2 إن كنت تعالج بيانات شخصية.
  • خطط للانتقال من CRS 3.3 إلى إصدار من CRS 4 مع التحقق من متطلبات إصدار المحرك في ملاحظات الإصدار.
  • حافظ على تحديث التطبيق والمحرك ومجموعة القواعد.

المصادر

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

صفحة الكاتب
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Firewalls & Network Security for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.