ما هو Azure Web Application Firewall؟
هنا، ستتعلم أساسيات Azure Web Application Firewall. ستساعدك هذه النظرة العامة على تقييم ما إذا كان Azure Web Application Firewall أداة مفيدة لإضافتها إلى استراتيجية أمان الشبكة الشاملة ل Contoso.
نظرة عامة على Azure Web Application Firewall
قد تعتقد أن المستخدمين الضارين لن يزعجوا تطبيقات الويب الخاصة بك. ومع ذلك، أشارت الاختبارات إلى أن الروبوتات أو الجهات الفاعلة الضارة تحقق من تطبيقات الويب الجديدة لنقاط الضعف في غضون دقائق من النشر. إذا وضعت تطبيقا على الويب، فافترض أن الجهات الفاعلة في التهديد ستختبر التطبيق بحثا عن الثغرات الأمنية على الفور تقريبا. يمكنك أيضا افتراض أن مثل هذه الفحوصات ستستمر طوال عمر التطبيق.
تتحقق معظم الاختبارات الضارة لتطبيقات الويب من وجود ثغرة أمنية واحدة أو أكثر. إذا تم العثور عليه، يمكن لممثل التهديد استخدام نقاط الضعف هذه لتشغيل هجمات مثل عمليات الاستغلال التالية:
- حقن SQL
- البرمجة النصية عبر المواقع
- تضمين الملفات المحلية والنائية
- فيضانات HTTP/HTTPS
- هجمات الروبوت الضارة
تتضمن المهمة الشائعة في دورة تطوير تطبيق الويب كتابة التعليمات البرمجية لإغلاق الثقوب الأمنية الأكثر شيوعا. تتطلب كتابة رمز الأمان الوقت والخبرة والاختبار.
Azure Web Application Firewall هي خدمة Azure توفر حماية مركزية لتطبيقات الويب المستضافة من Azure. يحمي Azure Web Application Firewall تطبيقات الويب من التهديدات الشائعة مثل حقن SQL والبرمجة النصية عبر المواقع.
يمكنك نشر Azure Web Application Firewall في دقائق. تحصل تطبيقات الويب الخاصة بك على الفور على حماية قوية من التهديدات المعروفة، كل ذلك دون كتابة سطر واحد من رمز الأمان.
الميزات الرئيسية لجدار حماية تطبيق ويب Azure
لمساعدتك في تقييم Azure Web Application Firewall، إليك بعض ميزاته المهمة:
القواعد المدارة: يقوم فريق الأمان في Microsoft بإنشاء القواعد التي يستخدمها Azure Web Application Firewall، وصيانتها، وتحديثها للكشف عن عمليات الاستغلال الشائعة ومنعها. إذا تغيرت قاعدة أو تم تعديل مجموعة قواعد (راجع الوصف التالي)، تقوم Microsoft بتحديث Azure Web Application Firewall تلقائيا وسلاسة.
ملاحظه
لا يمكنك تعديل القواعد المدارة التي يوفرها Azure Web Application Firewall أو حذفها. ومع ذلك، إذا كانت قاعدة معينة مشكلة للبيئة الخاصة بك (على سبيل المثال، تحظر حركة المرور المشروعة إلى تطبيق الويب الخاص بك) يمكنك إنشاء استثناءات أو تعطيل القاعدة أو مجموعة القواعد. يمكنك أيضا إنشاء قواعد مخصصة للكتابة فوق السلوك الافتراضي.
قواعد الروبوت: تحدد قواعد الروبوت الروبوتات الجيدة وتحميها من الروبوتات السيئة. يتم الكشف عن روبوتات غير صحيحة استنادا إلى تحليل ذكي للمخاطر من Microsoft.
القواعد المخصصة: إذا كانت القواعد المدارة التي يقدمها Azure Web Application Firewall لا تغطي تهديدا محددا لتطبيق الويب الخاص بك، يمكنك إنشاء قاعدة مخصصة.
الأوضاع: يمكن أن يعمل Azure Web Application Firewall في أحد الوضعين. يسجل وضع الكشف فقط الطلبات التي تنتهك قاعدة، بينما يقوم وضع الوقاية بتسجيل الطلبات التي تنتهك قاعدة وحظرها.
قوائم الاستبعاد: يمكنك تكوين Azure Web Application Firewall لتجاهل سمات معينة عند التحقق من الطلبات.
النهج: يمكنك دمج مجموعة من القواعد المدارة والقواعد المخصصة والاستثناءات وإعدادات Azure Web Application Firewall الأخرى في عنصر واحد يسمى نهج Azure Web Application Firewall. يمكنك بعد ذلك تطبيق هذا النهج على تطبيقات ويب متعددة لتسهيل الإدارة والصيانة.
حدود حجم الطلب: يمكنك تكوين Azure Web Application Firewall لوضع علامة على الطلبات الصغيرة جدا أو الكبيرة جدا.
التنبيهات: يتكامل Azure Web Application Firewall مع Azure Monitor. يمنحك هذا التكامل تنبيهات في الوقت الفعلي تقريبا عندما يكتشف جدار حماية تطبيق الويب (جدار حماية تطبيق الويب) تهديدا.
الهجمات الشائعة التي منعها Azure Web Application Firewall
يصف الجدول التالي الأنواع الأكثر شيوعا من التهديدات الضارة التي يساعد Azure Web Application Firewall في الحماية منها.
| تهديد | وصف |
|---|---|
| البرمجة النصية عبر المواقع | يستخدم ممثل التهديد تطبيق ويب لإرسال تعليمات برمجية ضارة إلى مستعرض ويب مستخدم آخر. يقوم المتصفح بتشغيل التعليمات البرمجية، والتي تمنح البرنامج النصي حق الوصول إلى بيانات جلسة المستخدم وملفات تعريف الارتباط والمعلومات الحساسة الأخرى. |
| تضمين الملف المحلي | يستغل المهاجم الثغرات الأمنية في معالجة الخادم لعبارات include، غالبا في البرامج النصية PHP. بتمرير نص مكون خصيصا إلى عبارة include للبرنامج النصي، يمكن للمهاجم تضمين ملفات موجودة محليا على الخادم. قد يتمكن المهاجم بعد ذلك من الوصول إلى المعلومات الحساسة وتشغيل أوامر الخادم. |
| حقن PHP | يقوم المهاجم بإدراج نص تم تكوينه خصيصا لخداع الخادم لتشغيل أوامر PHP. تسمح هذه الأوامر للمهاجم بتشغيل التعليمات البرمجية المحلية أو البعيدة ل PHP. قد يتمكن المهاجم بعد ذلك من الوصول إلى البيانات الحساسة وتشغيل الأوامر على الخادم. |
| هجمات البروتوكول | يقوم المهاجم بإدراج نص تم تكوينه بشكل خاص في عنوان طلب HTTP/HTTPS. اعتمادا على النص المحدد الذي تم إدخاله في العنوان، يمكن للمهاجم خداع الخادم لعرض البيانات الحساسة أو تشغيل التعليمات البرمجية. |
| تنفيذ الأمر عن بعد | يخدع المهاجم الخادم لتشغيل الأوامر المقترنة بنظام تشغيل الخادم. على نظام UNIX، على سبيل المثال، قد يكون لدى المهاجم تشغيل الخادم ls للحصول على قائمة دليل. |
| تضمين الملف عن بعد | نفس تضمين الملف المحلي، باستثناء المهاجم يرسل نص الخادم المكون خصيصا الذي يمرر ملفا بعيدا - أي ملف على خادم بعيد يتحكم فيه المهاجم - إلى عبارة include للبرنامج النصي. |
| تثبيت الجلسة | يستغل المهاجم ثغرة أمنية في تطبيق الويب تسمح للمهاجم بالحصول على معرف جلسة عمل صالح. يخدع المهاجم مستخدما لمصادقة جلسة عمل جديدة بهذا المعرف. ثم يختطف المهاجم جلسة العمل هذه التي تم التحقق من صحتها من قبل المستخدم. |
| حقن SQL | في حقل نموذج ويب، يقوم المهاجم بإدراج (أو "إدخال") نص تم تكوينه خصيصا لخداع الخادم لتشغيل أوامر SQL. تسمح هذه الأوامر للمهاجم بالوصول إلى البيانات الحساسة أو إدراج البيانات أو تحديثها أو حذفها أو تشغيل عمليات SQL. |
جميع عمليات الاستغلال المدرجة في الجدول السابق ممكنة فقط عندما يثق الخادم في الإدخال الذي يتلقاه. كتابة التعليمات البرمجية التي تتحقق من هذه الاستغلالات وتطهرها فقط ستكون صعبة وتستغرق وقتا طويلا. يتم تمثيل جزء صغير فقط من عمليات الاستغلال المحتملة التي يمكن أن يواجهها تطبيق الويب في الجدول السابق. تم تصميم Azure Web Application Firewall لمنع هذه الهجمات وغيرها الكثير.
إدخال التعقيم
التهديدات التي تواجهها تطبيقات الويب الحديثة متنوعة ومتطورة. ومع ذلك، في معظم الحالات يكون سبب الاستغلال ممكنا هو أن تطبيق الويب يثق ضمنيا في الإدخال الذي يتلقاه.
على سبيل المثال، ضع في اعتبارك نموذج ويب يسمح لمستخدم تطبيق ويب معتمد بتسجيل الدخول إلى حساب المستخدم. يتكون النموذج من ثلاثة عناصر فقط:
- مربع نص اسم مستخدم
- مربع نص كلمة مرور
- زر تسجيل الدخول
عندما يقوم مستخدم معتمد بتعبئة النموذج وتحديد تسجيل الدخول، يخزن البرنامج النصي لتطبيق الويب اسم المستخدم وكلمة المرور في المتغيرات. لنفترض أن هذه المتغيرات تسمى userNameuserPassword، على التوالي. سيقوم البرنامج النصي بعد ذلك بتنفيذ العبارة التالية:
sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"
على سبيل المثال، إذا كان اسم المستخدم support وكانت كلمة المرور 1234ABCD، فإن متغير sql له القيمة التالية:
SELECT * FROM users WHERE username='support' AND password='1234ABCD'
ينفذ تطبيق الويب عبارة SQL هذه. إذا تم إرجاع سجل من الاستعلام، يقوم تطبيق الويب بتسجيل دخول المستخدم.
لنفترض الآن أن المهاجم يدخل admin'-- في حقل اسم المستخدم ويترك حقل كلمة المرور فارغا. في هذه الحالة، إليك عبارة SQL الناتجة:
SELECT * FROM users WHERE username='admin'--' AND password=''
في العديد من أنظمة SQL، تضع الشرطتان المزدوجتان (--) علامة على بداية التعليق. يتم تجاهل كل شيء بعد --، بحيث تكون العبارة السابقة مكافئة للتعليمات البرمجية التالية:
SELECT * FROM users WHERE username='admin'
بافتراض وجود مستخدم يسمى admin، يقوم هذا الأمر بتسجيل الدخول إلى المهاجم كمستخدم المسؤول؛ خرق خطير!
المثال السابق هو مثيل استغلال يسمى حقن SQL. يمكن للمهاجمين الاستفادة من حقن SQL واستغلالات أخرى في تطبيقات الويب التي تثق في جميع الإدخالات.
ينشئ Azure Web Application Firewall حاجزا من عدم الثقة بين تطبيق ويب وإدخال المستخدم الخاص به. يفترض Azure Web Application Firewall أن جميع الإدخالات يحتمل أن تكون ضارة، لذلك يطهر هذا الإدخال.
تعقيم الإدخال يعني أشياء مختلفة اعتمادا على السياق. على سبيل المثال، يمكن أن يعني تصحيح الإدخال إزالة عناصر النص الخطرة بوضوح، مثل مؤشرات تعليق SQL. ومع ذلك يحدث التعقيم، فإن النتيجة هي الإدخال الذي لا يمكن أن يضر بتطبيق الويب أو بيانات الواجهة الخلفية الخاصة به.