Loading...

الأمان · قراءة 10 دقائق

OWASP Top 10، كما يطبّقها WAF فعليًا

كل مورّد يدّعي أنه يغطي OWASP Top 10. الادّعاء يكاد يكون بلا معنى كما يُصاغ، لأن Top 10 قائمة فئات مخاطر وجدار الحماية يطابق أنماطًا في الطلبات. هذه هي المطابقة الصادقة: أي الفئات يحجبها WAF فعليًا، وأيّها يضيّقها فقط، وأيّها لا يمكنه لمسه إطلاقًا.

آخر تحديث

OWASP Top 10، كما يطبّقها WAF فعليًا

ما هي Top 10 فعليًا

OWASP — مشروع أمان تطبيقات الويب المفتوح عالميًا — ينشر قائمة مرتّبة لفئات مخاطر تطبيقات الويب، تُنقَّح كل بضع سنوات من بيانات حوادث وفحوصات حقيقية. القائمة الحالية تتصدرها التحكم في الوصول المكسور، وإخفاقات التشفير، والحقن.

أمران ينتجان عن طريقة بنائها، ويضيع كلاهما في نصوص التسويق الخاصة بالموردين.

إنها فئات، لا ثغرات. "الحقن" يغطي حقن SQL، وحقن الأوامر، وحقن LDAP، وحقن القوالب. المنتج لا يمكنه "دعم" فئة؛ يمكنه فقط اكتشاف تقنيات معينة ضمنها.

إنها أداة ترتيب أولويات لمن يبنون التطبيق. تخبرك أين تُنفق وقت المراجعة. لم تكن يومًا قائمة امتثال، وجدار حماية أمام تطبيق لا يجعل القائمة تختفي.

ما هو WAF، في فقرة واحدة

جدار حماية تطبيقات الويب يقف أمام تطبيقك ويفحص كل طلب — المسار، وسلسلة الاستعلام، والترويسات، وملفات تعريف الارتباط، والجسم — مقابل مجموعة من القواعد. حين تتطابق قاعدة، يُحجب الطلب، أو يُسجَّل، أو كلاهما، قبل أن يعمل تطبيقك إطلاقًا.

مجموعة القواعد المفتوحة التي يُبنى عليها معظم WAF هي مجموعة قواعد OWASP الأساسية (CRS)، مجموعة قواعد كشف عامة تصونها المؤسسة نفسها. هي مجموعة القواعد التي نشغّلها، على ModSecurity، عند الحافة. تجمّع CRS قواعدها في عائلات بنطاقات رقمية — 941 للبرمجة العابرة للمواقع، و942 لحقن SQL، و930 لتضمين الملفات المحلي، و931 لتضمين الملفات البعيد، و932 لتنفيذ الأوامر عن بُعد، و933 لحقن PHP — ولهذا يمكن تتبّع طلب محجوب إلى رقم قاعدة دقيق بدل "سياسة أمان" غامضة.

فئة تلو أخرى: ما يفعله جدار الحماية فعليًا

الحقن — WAF قوي هنا فعليًا. حقن SQL، وحقن الأوامر، وحقن القوالب كلها تترك أشكالًا يمكن التعرف عليها في بيانات الطلب. هذا ما تُجيده مطابقة الأنماط، والقواعد تلتقط معظم المحاولات الانتهازية مباشرةً. هذا لا يجعل الاستعلامات المُعامَلة اختيارية؛ بل يمنحك وقتًا ويوقف الغالبية الآلية.

البرمجة العابرة للمواقع — قوي، مع تحفظات. حمولات السكربت في المعاملات قابلة للاكتشاف. أما XSS المخزَّن الذي يصل عبر مسار لا يفحصه جدار الحماية، أو مشكلة قائمة على DOM لا تلمس خادمك إطلاقًا، فخارج المتناول.

سوء إعداد الأمان — جزئيًا. يستطيع WAF إخفاء لافتة خادم، وحجب الوصول إلى .git وملفات النسخ الاحتياطي، ورفض الطرق الخطرة. لا يستطيع إصلاح سياسة CORS متساهلة أو لوحة إدارة بكلمة مرور افتراضية.

المكونات الضعيفة والقديمة — جزئيًا، ومؤقتًا. حين تُعلَن ثغرة CVE، غالبًا ما تلتقط القواعد العامة شكل الاستغلال المنشور، وهذه هي القيمة الكاملة لـ"الترقيع الافتراضي": يمنحك الأيام بين الإفصاح ونافذة الترقية لديك. ليس بديلًا عن الترقية.

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

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

التصميم غير الآمن وإخفاقات سلامة البرمجيات — لا. هذه معمارية. لا نمط طلب يعبّر عنها.

مشكلة الإيجابية الكاذبة، ولماذا تحدد كل شيء

أي مجموعة قواعد عدوانية بما يكفي لالتقاط الحقن ستحجب إنسانًا أحيانًا. الحالة الكلاسيكية محرر محتوى يحفظ مقالًا يحتوي نموذج شيفرة، أو نموذج دعم يلصق فيه أحدهم رسالة خطأ تحتوي SQL. الطلب مشروع؛ لكنه يشبه هجومًا ببساطة.

هنا يُكسب أو يُخسر WAF تشغيليًا. إن كانت الإيجابية الكاذبة تعني "الموقع معطّل لذلك الشخص ولا أحد يستطيع تفسير السبب"، يُطفَأ WAF خلال شهر — وهذه أسوأ نتيجة، لأن الحماية تختفي بهدوء بينما يظن الجميع أنها ما زالت مفعّلة.

ما يجعل الأمر قابلًا للاستمرار هو إمكانية التتبع. على حافتنا، الطلب المحجوب يُعيد صفحة 403 بهوية العلامة التجارية مع معرّف مرجعي، وذلك المعرّف يُطابق إدخال سجل التدقيق مع القاعدة التي تطابقت والحقل الذي تطابقت عليه. تتحول محادثة الدعم إلى "القاعدة 942100 تطابقت مع حقل content على رابط المحرر" بدل "الموقع يحجبني أحيانًا". والإصلاح عندئذ استثناء ضيق: تلك القاعدة، ذلك الحقل، ذلك المسار. لا عائلة القواعد، ولا الموقع.

مستويات الحساسية: المقبض الذي لا يشرحه أحد

تأتي مجموعة القواعد الأساسية بمستويات حساسية (paranoia levels)، من 1 إلى 4. المستوى 1 يلتقط الواضح ونادرًا ما يحجب إنسانًا. كل مستوى أعلى يضيف قواعد أكثر صرامة وأكثر عرضة للإيجابيات الكاذبة، حتى إنه عند المستوى 4 سيرفض جدار الحماية أشياء يقوم بها تطبيق عادي كل يوم.

النصيحة الصادقة غير مثيرة. ابدأ بالإعداد الافتراضي، وراقب السجل لأسبوع، ولا ترفع المستوى إلا إن كنت تحمي شيئًا يبرر التكلفة التشغيلية — وعندها افعل ذلك في بيئة اختبار (staging) أولًا. معظم المواقع تُخدَم بشكل أفضل بمستوى 1 مضبوط جيدًا من مستوى 3 عطّله أحدهم بصمت بعد الشكوى الثالثة.

كيف تقيّم "تغطية OWASP Top 10" لدى مورّد

أربعة أسئلة تخترق معظم التسويق.

1. أي مجموعة قواعد، وأي إصدار؟ "قائم على OWASP" قد يعني مجموعة القواعد الأساسية أو قواعد المورّد الخاصة بأسماء بنكهة OWASP. الإصدار مهم أيضًا — مجموعات القواعد تُنقَّح، وتشغيل إصدار أقدم مقايضة حقيقية لا تفصيلًا. نحن نشغّل CRS ونرفعه عن قصد، باختباره مقابل أنماط الإيجابيات الكاذبة التي يصادفها عملاؤنا فعليًا، لا بتتبع المصدر تلقائيًا.

2. ماذا أرى حين يُحجب طلب؟ إن كانت الإجابة صفحة خطأ عامة وسجلًا لا يمكنك البحث فيه حسب القاعدة، فالضبط الدقيق سيكون تخمينًا.

3. كيف أستثني حقلًا واحدًا على مسار واحد؟ إن كان أصغر استثناء متاح هو "عطّل عائلة القواعد لهذا الموقع"، فالمنتج يدفعك نحو إيقاف الحماية.

4. ما الذي لا تغطيه؟ المورّد الذي يجيب "التحكم في الوصول ومنطق العمل هما شيفرتك، لا قواعدنا" يخبرك الحقيقة. أما من يدّعي تغطية كاملة لـTop 10 فيصف قائمة فئات، لا قدرة فعلية.

الأسئلة الشائعة حول OWASP وWAF

هل يجعل WAF تطبيقي متوافقًا مع OWASP؟

لا يوجد شيء اسمه "امتثال OWASP". Top 10 وثيقة توعية وترتيب أولويات، لا معيارًا تحصل على شهادة مقابله. الـ WAF يقلّل التعرض في بعض الفئات ولا يفعل شيئًا في أخرى؛ ما زال على التطبيق أن يُكتب بعناية.

هل مجموعة قواعد OWASP الأساسية هي نفسها OWASP Top 10؟

لا. Top 10 هي قائمة المخاطر. مجموعة القواعد الأساسية هي مجموعة قواعد كشف عامة تصونها المؤسسة نفسها وتستخدمها ModSecurity والمحركات المتوافقة معها. مجموعة القواعد تعالج عدة فئات من Top 10؛ لا تنفّذ القائمة.

هل يستطيع WAF إيقاف حقن SQL تمامًا؟

يوقف الغالبية العظمى من المحاولات الانتهازية ويرفع الجهد المطلوب للمحاولات المستهدفة. ليس بديلًا عن الاستعلامات المُعامَلة، لأن المهاجم المصمّم يفصّل الحمولة لتفادي مطابقة الأنماط. عامله كطبقة دفاع إضافية، لا كالإصلاح.

ما هو الترقيع الافتراضي (virtual patching)؟

حجب شكل استغلال ثغرة معروفة عند جدار الحماية بينما تنتظر نشر الإصلاح الحقيقي. مفيد فعليًا في الفترة بين إعلان ثغرة CVE ووصول نافذة الصيانة لديك، وخطير إن أصبح الإجابة الدائمة.

أي فئة من Top 10 ينبغي أن تقلقني أكثر؟

التحكم في الوصول المكسور، لأنها تتصدر القائمة الحالية، وشائعة، وهي التي لا يستطيع جدار حمايتك المساعدة فيها. تحقق من أن كل كائن تُعيده واجهة API لديك هو ما يحق للمستخدم الموثّق الوصول إليه — معظم هذه العيوب فحص ملكية مفقود في وحدة تحكم (controller).