قواعد مخصصة لجدار حماية تطبيق ويب v2 على بوابة تطبيق Azure

يأتي جدار حماية تطبيقات ويب بوابة تطبيقات Azure (WAF) v2 مزودا بمجموعة قواعد مهيأة مسبقا ومدارة من قبل توفر الحماية من العديد من أنواع الهجمات المختلفة. تتضمن هذه الهجمات البرمجة النصية عبر المواقع وحقن SQL وغيرها. إذا كنت مسؤولا في WAF ، فقد ترغب في كتابة قواعدك الخاصة لزيادة قواعد مجموعة القواعد الأساسية (CRS). يمكن لقواعدك إما حظر الزيارات المطلوبة أو السماح بها استنادا إلى معايير المطابقة.

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

على سبيل المثال، يمكنك حظر جميع الطلبات من عنوان IP في النطاق 192.168.5.4/24. في هذه القاعدة ، يكون عامل التشغيل هو IPMatch ، و matchValues هو نطاق عنوان IP (192.168.5.4/24) ، والإجراء هو حظر حركة المرور. يمكنك أيضا تعيين اسم القاعدة وأولويتها.

تدعم القواعد المخصصة استخدام المنطق المركب لإنشاء قواعد أكثر تقدما تلبي احتياجاتك الأمنية. على سبيل المثال، ((الشرط 1 والشرط 2) أو الشرط 3). وهذا يعني أنه إذا تم استيفاء الشرط 1 والشرطأو إذا تم استيفاء الشرط 3، فيجب على WAF اتخاذ الإجراء المحدد في القاعدة المخصصة.

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

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

ملاحظة

الحد الأقصى لعدد القواعد المخصصة ل WAF هو 100. لمزيد من المعلومات حول حدود بوابة التطبيق، راجع حدود اشتراك Azure وخدماته وحصصه النسبية وقيوده.

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

السماح مقابل الحظر

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

للسماح بشيء ما، تأكد من تعيين المعلمة -Action إلى السماح. لحظر شيء ما، تأكد من تعيين المعلمة -Action إلى حظر.

$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example1 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Allow

$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example2 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Block

Resource Manager الخرائط السابقة $BlockRule للقاعدة المخصصة التالية في Azure:

"customRules": [
      {
        "name": "blockEvilBot",
        "priority": 2,
        "ruleType": "MatchRule",
        "action": "Block",
        "matchConditions": [
          {
            "matchVariables": [
              {
                "variableName": "RequestHeaders",
                "selector": "User-Agent"
              }
            ],
            "operator": "Contains",
            "negationCondition": false,
            "matchValues": [
              "evilbot"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ], 

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

حقول للقواعد المخصصة

الاسم [اختياري]

اسم القاعدة. يظهر في السجلات.

الأولوية [مطلوب]

  • يحدد أمر تقييم القاعدة. كلما انخفضت القيمة ، كلما كان تقييم القاعدة مبكرا. النطاق المسموح به هو من 1-100.
  • يجب أن تكون فريدة من نوعها عبر جميع القواعد المخصصة. يتم تقييم القاعدة ذات الأولوية 40 قبل القاعدة ذات الأولوية 80.

نوع القاعدة [مطلوب]

حاليا ، يجب أن يكون MatchRule.

مطابقة المتغير [مطلوب]

يجب أن يكون أحد المتغيرات:

  • RemoteAddr – عنوان IP / نطاق اتصال الكمبيوتر البعيد
  • RequestMethod - طريقة طلب HTTP (الحصول على ، نشر ، وضع ، حذف ، وما إلى ذلك.)
  • QueryString – متغير في عنوان URI
  • PostArgs - الحجج المرسلة في نص POST. يتم تطبيق القواعد المخصصة باستخدام متغير المطابقة هذا فقط إذا تم تعيين رأس "نوع المحتوى" على "application/x-www-form-urlencoded" و "multipart/form-data". يتم دعم نوع المحتوى الإضافي مع الإصدار 3.2 من application/json CRS أو الأحدث، ومجموعة قواعد حماية الروبوت، والقواعد المخصصة للمطابقة الجغرافية.
  • RequestUri – URI للطلب
  • رؤوس الطلبات – رؤوس الطلبات
  • RequestBody - يحتوي هذا على نص الطلب بالكامل ككل. يتم تطبيق القواعد المخصصة باستخدام متغير المطابقة هذا فقط إذا تم تعيين رأس "نوع المحتوى" على application/x-www-form-urlencoded نوع الوسائط. يتم دعم أنواع application/soap+xml, application/xml, text/xml المحتوى الإضافية مع CRS الإصدار 3.2 أو الأحدث، ومجموعة قواعد حماية الروبوت، والقواعد المخصصة للمطابقة الجغرافية.
  • RequestCookies – ملفات تعريف الارتباط الخاصة بالطلب

محدد [اختياري]

يصف حقل مجموعة matchVariable . على سبيل المثال، إذا كان matchVariable هو RequestHeaders، فقد يكون المحدد على رأس User-Agent .

المشغل [مطلوب]

يجب أن يكون أحد المشغلين التاليين:

  • IPMatch - يستخدم فقط عندما يكون متغير المطابقة هو RemoteAddr
  • متساو - الإدخال هو نفسه MatchValue
  • يحتوي على
  • أقل من ذلك
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • يبدأمع
  • EndsWith
  • Regex
  • جيوماتش

شرط النفي [اختياري]

ينفي الحالة الحالية.

التحويل [اختياري]

قائمة بالسلاسل مع أسماء التحويلات التي يجب القيام بها قبل محاولة المطابقة. يمكن أن تكون هذه التحولات التالية:

  • أحرف صغيرة
  • Trim
  • UrlDecode
  • UrlEncode
  • RemoveNulls
  • HtmlEntityفك التشفير

مطابقة القيم [مطلوب]

قائمة القيم التي يجب مطابقتها ، والتي يمكن اعتبارها OR'ed. على سبيل المثال ، يمكن أن تكون عناوين IP أو سلاسل أخرى. يعتمد تنسيق القيمة على عامل التشغيل السابق.

الإجراء [مطلوب]

  • السماح - يخول المعاملة ، ويتخطى جميع القواعد الأخرى. تتم إضافة الطلب المحدد إلى قائمة السماح وبمجرد مطابقته ، يتوقف الطلب عن إجراء مزيد من التقييم ويتم إرساله إلى تجمع الواجهة الخلفية. لا يتم تقييم القواعد الموجودة في قائمة السماح لأي قواعد مخصصة أخرى أو قواعد مدارة.
  • الحظر - يحظر المعاملة استنادا إلى SecDefaultAction (وضع الكشف / المنع). تماما مثل إجراء السماح، بمجرد تقييم الطلب وإضافته إلى قائمة الحظر، يتم إيقاف التقييم وحظر الطلب. لن يتم تقييم أي طلب بعد ذلك يستوفي نفس الشروط وسيتم حظره فقط.
  • السجل - يتيح للقاعدة الكتابة إلى السجل، ولكنه يسمح بتشغيل بقية القواعد للتقييم. يتم تقييم القواعد المخصصة الأخرى حسب الأولوية، متبوعة بالقواعد المدارة.

القواعد المخصصة Geomatch

تتيح لك القواعد المخصصة إنشاء قواعد مخصصة لتناسب الاحتياجات الدقيقة للتطبيقات وسياسات الأمان. يمكنك تقييد الوصول إلى تطبيقات الويب الخاصة بك حسب البلد/المنطقة. لمزيد من المعلومات، راجع القواعد المخصصة للمطابقة الجغرافية.

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

بعد التعرف على القواعد المخصصة، أنشئ القواعد المخصصة الخاصة بك.