جدار حماية تطبيق الويب مع قوائم استبعاد Azure Front Door

في بعض الأحيان قد يمنع Azure Web Application Firewall في Azure Front Door طلبا شرعيا. كجزء من ضبط جدار حماية تطبيق الويب (WAF)، يمكنك تكوين WAF للسماح بطلب التطبيق الخاص بك. تسمح لك قوائم استبعاد WAF بحذف سمات طلب محددة من تقييم WAF. يتم تقييم باقي الطلب كالمعتاد.

على سبيل المثال، يوفر معرف Microsoft Entra الرموز المميزة المستخدمة للمصادقة. عند استخدام هذه الرموز المميزة في عنوان طلب، يمكن أن تحتوي على أحرف خاصة قد تؤدي إلى اكتشاف إيجابي خاطئ بواسطة قاعدة WAF واحدة أو أكثر. يمكنك إضافة الرأس إلى قائمة استبعاد، والتي تخبر WAF بتجاهل العنوان. لا يزال WAF يفحص بقية الطلب بحثا عن محتوى مريب.

نطاقات الاستبعاد

يمكنك إنشاء استثناءات في النطاقات التالية:

  • مجموعة القواعد: تنطبق هذه الاستثناءات على جميع القواعد ضمن مجموعة قواعد.
  • مجموعة القواعد: تنطبق هذه الاستثناءات على جميع قواعد فئة معينة ضمن مجموعة قواعد. على سبيل المثال، يمكنك تكوين استثناء ينطبق على جميع قواعد حقن SQL.
  • القاعدة: تنطبق هذه الاستثناءات على قاعدة واحدة.

محددات الاستبعاد

تحدد محددات الاستبعاد أجزاء الطلبات التي ينطبق عليها الاستبعاد. يتجاهل WAF أي اكتشافات يعثر عليها في الأجزاء المحددة من الطلب. يمكنك تحديد محددات استثناء متعددة في استثناء واحد.

حدد كل محدد استثناء متغير مطابقة وعامل تشغيل ومحدد.

مطابقة المتغيرات

يمكنك إضافة سمات الطلب التالية إلى استثناء:

  • طلب اسم رأس
  • اطلب اسم ملف تعريف الارتباط
  • سلسلة الاستعلام اسم Args
  • اسم POST args للنص الأساسي للطلب
  • طلب اسم JSON args الأساسي (مدعوم على DRS 2.0 أو أحدث)

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

عوامل التشغيل

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

  • يساوي: مطابقة كافة حقول الطلب التي تتطابق تماما مع قيمة المحدد المحدد. على سبيل المثال، لتحديد عنوان يسمى bearerToken، استخدم Equals عامل التشغيل مع تعيين المحدد إلى bearerToken.
  • يبدأ ب: مطابقة كافة حقول الطلب التي تبدأ بقيمة المحدد.
  • ينتهي ب: مطابقة كافة حقول الطلب التي تنتهي بقيمة المحدد.
  • يحتوي على: مطابقة كافة حقول الطلب التي تحتوي على قيمة المحدد.
  • يساوي أي: مطابقة كافة حقول الطلب. عند استخدام Equals any عامل التشغيل، يتم تعيين قيمة المحدد تلقائيا إلى *. على سبيل المثال، يمكنك استخدام Equals any عامل التشغيل لتكوين استثناء ينطبق على جميع رؤوس الطلبات.

‏‫مميِّز لحالة الأحرف‬

أسماء الرأس وملفات تعريف الارتباط غير حساسة لحالة الأحرف. سلاسل الاستعلام ووسيطات POST ووسيطات JSON حساسة لحالة الأحرف.

فحص محتويات الجسم

تقيم بعض القواعد المدارة الحمولة الأولية لنص الطلب قبل تحليلها في وسيطات POST أو وسيطات JSON. لذلك في بعض الحالات، قد ترى إدخالات السجل بقيمة matchVariableNameInitialBodyContents أو DecodedInitialBodyContents.

على سبيل المثال، افترض أنك قمت بإنشاء استثناء مع متغير مطابقة من Request body POST args ومحدد لتحديد وتجاهل وسيطات POST المسماة FOO. لم تعد ترى أي إدخالات سجل بقيمة matchVariableNamePostParamValue:FOO. ومع ذلك، إذا كانت وسيطة POST المسماة FOO تحتوي على نص يؤدي إلى تشغيل قاعدة، فقد يعرض السجل الكشف في محتويات النص الأساسي الأولية. لا يمكنك حاليا إنشاء استثناءات لمحتويات النص الأساسي الأولية.

تعريف قواعد الاستبعاد استنادا إلى سجلات Azure Web Application Firewall

يمكنك استخدام السجلات لعرض تفاصيل طلب محظور، بما في ذلك أجزاء الطلب التي أدت إلى تشغيل القاعدة. لمزيد من المعلومات، راجع مراقبة Azure Web Application Firewall وتسجيله.

في بعض الأحيان تنتج قاعدة WAF معينة اكتشافات إيجابية خاطئة من القيم المضمنة في عنوان الطلب أو ملف تعريف الارتباط أو وسيطة POST أو وسيطة سلسلة الاستعلام أو حقل JSON في نص الطلب. إذا حدثت هذه الاكتشافات الإيجابية الخاطئة، يمكنك تكوين القاعدة لاستبعاد الجزء ذي الصلة من الطلب من تقييمه.

يعرض الجدول التالي أمثلة على القيم من سجلات WAF ومحددات الاستبعاد المقابلة التي يمكنك إنشاؤها.

matchVariableName من سجلات WAF استبعاد القاعدة في المدخل
CookieValue:SOME_NAME طلب اسم ملف تعريف الارتباط يساوي SOME_NAME
HeaderValue:SOME_NAME اسم رأس الطلب يساوي SOME_NAME
PostParamValue:SOME_NAME طلب اسم POST args الأساسي يساوي SOME_NAME
QueryParamValue:SOME_NAME اسم سلسلة طلب البحث يساوي SOME_NAME
JsonValue:SOME_NAME طلب اسم JSON args الأساسي يساوي SOME_NAME

استثناءات هيئات طلب JSON

من الإصدار 2.0 من DRS، يتم فحص هيئات طلب JSON بواسطة WAF. على سبيل المثال، ضع في اعتبارك نص طلب JSON هذا:

{
  "posts": [
    {
      "id": 1,
      "comment": ""
    },
    {
      "id": 2,
      "comment": "\"1=1\""
    }
  ]
}

يتضمن الطلب تسلسل أحرف تعليق SQL، والذي يكتشفه WAF كهجوم حقن SQL محتمل.

إذا حددت أن الطلب شرعي، يمكنك إنشاء استثناء مع متغير مطابقة من Request body JSON args name، وعامل تشغيل Equals، ومحدد ل posts.comment.

استبعاد سمات الطلب الأخرى

إذا كان إدخال سجل WAF يظهر matchVariableName قيمة غير موجودة في الجدول السابق، فلا يمكنك إنشاء استثناء. على سبيل المثال، لا يمكنك حاليا إنشاء استثناءات لأسماء ملفات تعريف الارتباط أو أسماء العناوين أو أسماء معلمات POST أو أسماء معلمات الاستعلام.

بدلا من ذلك، ضع في اعتبارك اتخاذ أحد الإجراءات التالية:

  • تعطيل القواعد التي تعطي إيجابيات خاطئة.
  • إنشاء قاعدة مخصصة تسمح صراحة بهذه الطلبات. تتجاوز الطلبات جميع عمليات فحص WAF.

على وجه الخصوص، عندما matchVariableName تكون القيمة أو HeaderNameCookieNamePostParamNameأو أو QueryParamName، فهذا يعني أن اسم الحقل، بدلا من قيمته، قد قام بتشغيل القاعدة. لا يوجد دعم لاستبعاد القاعدة لهذه matchVariableName القيم في هذا الوقت.

الخطوات التالية