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

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

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

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

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

تتفاقم شروط المطابقة المختلفة داخل نفس القاعدة دائمًا باستخدام و. على سبيل المثال، منع نسبة استخدام الشبكة من عنوان IP معين، وفقط إذا كانوا يستخدمون مستعرض معين.

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

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

إشعار

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

تنبيه

ستتجاوز أي قواعد إعادة توجيه يتم تطبيقها على مستوى بوابة التطبيق قواعد WAF المخصصة. راجع نظرة عامة على إعادة توجيه بوابة التطبيق لمزيد من المعلومات حول قواعد إعادة التوجيه.

السماح مقابل المنع

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

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

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

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

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

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

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

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

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

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

تمكين القاعدة [اختياري]

تشغيل/إيقاف تشغيل هذه القاعدة. يتم تمكين القواعد المخصصة بشكل افتراضي.

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

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

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

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

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

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

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

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

يصف حقل المجموعة matchVariable. على سبيل المثال، إذا كان matchVariable هو RequestHeaders، فقد يكون المحدد على عنوان عامل المستخدم.

عامل التشغيل [مطلوب]

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

  • IPMatch - يستخدم فقط عندما يكون Match Variable هو RemoteAddr، ويدعم IPv4 فقط
  • يساوي – الإدخال هو نفس MatchValue
  • أي – لا ينبغي أن يحتوي على MatchValue. يوصى بمطابقة المتغير مع محدد صالح.
  • يحتوي على
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Regex
  • تطابق جغرافي

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

يلغي الشرط الحالي.

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

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

  • أحرف صغيرة
  • أحرف كبيرة
  • ‏‏اقتطاع
  • UrlDecode
  • UrlEncode
  • RemoveNulls
  • HtmlEntityDecode

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

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

تتضمن قيم أسلوب طلب HTTP المدعومة ما يلي:

  • GET
  • HEAD
  • POST
  • الخيارات
  • PUT
  • حذف
  • PATCH

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

في وضع الكشف عن نهج WAF، إذا تم تشغيل قاعدة مخصصة، يتم تسجيل الإجراء دائما بغض النظر عن قيمة الإجراء التي تم تعيينها على القاعدة المخصصة.

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

نسخ القواعد المخصصة وتكرارها

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

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

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

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