1. مقدمة
مرحبًا، مرحبًا بك في برنامج codelab لقواعد WAF المُعدّة مسبقًا في Cloud Armor.
Google Cloud Armor هو حلّ أمان شبكة متطوّر للمؤسسات يوفّر حماية من الهجمات الموزّعة لحجب الخدمة، وفرض قواعد جدار حماية تطبيقات الويب، وإمكانية إدارة تكيفية على نطاق واسع.
وسّعت Cloud Armor مجموعات قواعد جدار حماية تطبيقات الويب (WAF) المُعدّة مسبقًا للحدّ من الثغرات الأمنية في تطبيقات الويب التي تمثّل أهم 10 مخاطر أمنية وفقًا لمشروع OWASP. تستند مجموعات القواعد إلى الإصدار 3.0.2 من مجموعة قواعد OWASP Modsecurity الأساسية للحماية من بعض مخاطر أمان تطبيقات الويب الأكثر شيوعًا، بما في ذلك إدراج الملفات المحلية (lfi) وإدراج الملفات عن بُعد (rfi) وتنفيذ الرموز البرمجية عن بُعد (rce) وغير ذلك الكثير.
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية تخفيف الأثر لبعض الثغرات الأمنية الشائعة باستخدام قواعد "جدار الحماية لتطبيقات الويب" في Google Cloud Armor.
ما ستتعلمه
- كيفية إعداد مجموعة أجهزة افتراضية وموازنة تحميل عالمية لدعم إحدى الخدمات
- كيفية ضبط سياسات أمان Cloud Armor باستخدام قواعد جدار حماية تطبيقات الويب (WAF) المُعدّة مسبقًا للحماية من هجمات تضمين الملفات المحلية (LFI) وتنفيذ التعليمات البرمجية عن بُعد (RCE) وعمليات الفحص وهجمات البروتوكول وتثبيت الجلسات
- كيفية التحقّق من أنّ Cloud Armor خفّف من حدّة هجوم من خلال مراقبة السجلات
المتطلبات
- معرفة أساسية بخدمة Google Compute Engine ( codelab)
- معرفة أساسية بالشبكات وبروتوكول TCP/IP
- معرفة أساسية بسطر الأوامر في نظامَي Unix وLinux
- من المفيد أن تكون قد أكملت جولة في الشبكات في Google Cloud Platform باستخدام الشبكات في Google Cloud.
- (اختياري) أكمل مختبر Cloudnet20 Cloud Armor للتعرّف على كيفية حماية أحمال العمل باستخدام قواعد تستند إلى عناوين IP والموقع الجغرافي وهجمات SQL injection.
طوبولوجيا الدرس التطبيقي حول الترميز وحالة الاستخدام

الشكل 1 - بنية تطبيق Cloud Armor WAF rules codelab
يُعدّ تطبيق OWASP Juice Shop مفيدًا في التدريب على الأمان والتوعية به، لأنّه يتضمّن أمثلة على كل الثغرات الأمنية المدرَجة في قائمة OWASP Top 10، وذلك حسب التصميم. يمكن للمهاجم استغلالها لأغراض الاختبار. في هذا الدرس التطبيقي حول الترميز، سنستخدمه لتوضيح بعض الهجمات على التطبيقات، ثم سنشرح كيفية حماية التطبيق باستخدام قواعد Cloud Armor WAF. سيتم عرض التطبيق من خلال جهاز موازنة حمل في Google Cloud، وسيتم تطبيق سياسة وقواعد الأمان في Cloud Armor عليه. سيتم عرضها على الإنترنت المتاح للجميع، وبالتالي يمكن الوصول إليها من أي مكان تقريبًا، وستتم حمايتها باستخدام Cloud Armor وقواعد جدار الحماية في شبكة VPC.
2. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



تذكَّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (الاسم أعلاه مستخدَم حاليًا ولن يكون متاحًا لك، نأسف لذلك). سيتم الإشارة إليه لاحقًا في هذا الدرس العملي باسم PROJECT_ID.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد Google Cloud.
لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "التنظيف" الذي ينصحك بكيفية إيقاف الموارد حتى لا تتحمّل رسومًا تتجاوز هذا البرنامج التعليمي. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا التمرين المعملي باستخدام متصفّح فقط.
قبل البدء
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
تفعيل واجهات برمجة التطبيقات
تفعيل جميع الخدمات اللازمة
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3- إنشاء شبكة VPC
إنشاء شبكة VPC
من Cloud Shell
gcloud compute networks create ca-lab-vpc --subnet-mode custom
الناتج
Created NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4 ca-lab-vpc CUSTOM REGIONAL
إنشاء شبكة فرعية
من Cloud Shell
gcloud compute networks subnets create ca-lab-subnet \
--network ca-lab-vpc --range 10.0.0.0/24 --region us-central1
الناتج
Created NAME REGION NETWORK RANGE ca-lab-subnet us-central1 ca-lab-vpc 10.0.0.0/24
إنشاء قواعد جدار الحماية في شبكة VPC
بعد إنشاء شبكة VPC والشبكة الفرعية، عليك الآن إعداد بعض قواعد جدار الحماية. سيتم استخدام قاعدة جدار الحماية الأولى للسماح لجميع عناوين IP بالوصول إلى عنوان IP الخارجي لموقع الويب الخاص بالتطبيق التجريبي على المنفذ 3000. سيتم استخدام قاعدة جدار الحماية الثانية للسماح بالتحقّق من الصحة من عنوان IP المصدر لموازنات التحميل.
من Cloud Shell
gcloud compute firewall-rules create allow-js-site --allow tcp:3000 --network ca-lab-vpc
الناتج
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-js-site ca-lab-vpc INGRESS 1000 tcp:3000 False
أنشئ قواعد جدار الحماية للسماح بعمليات التحقّق من الصحة من نطاقات عمليات التحقّق من الصحة التي تجريها Google.
من Cloud Shell
gcloud compute firewall-rules create allow-health-check \
--network=ca-lab-vpc \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-healthcheck \
--rules=tcp
الناتج
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-health-check ca-lab-vpc INGRESS 1000 tcp False
4. إعداد التطبيق التجريبي
الخطوة التالية هي إنشاء تطبيق الاختبار، وفي هذه الحالة خادم الويب OWASP Juice Shop.
عند إنشاء آلة افتراضية للحوسبة، نستخدم صورة حاوية لضمان توفّر الخدمات المناسبة على الخادم. سيتم نشر هذا الخادم في us-central1-c وسيتضمّن علامة شبكة تتيح إجراء عمليات التحقّق من الصحة.
إنشاء تطبيق OWASP Juice Shop
استخدِم تطبيق OWASP Juice Shop المعروف والمفتوح المصدر ليكون التطبيق المعرَّض للثغرات الأمنية. يمكنك أيضًا استخدام هذا التطبيق لإجراء تحديات أمان OWASP من خلال موقعهم الإلكتروني.
من Cloud Shell
gcloud compute instances create-with-container owasp-juice-shop-app --container-image bkimminich/juice-shop \
--network ca-lab-vpc \
--subnet ca-lab-subnet \
--private-network-ip=10.0.0.3 \
--machine-type n1-standard-2 \
--zone us-central1-c \
--tags allow-healthcheck
الناتج
NAME ZONE MACHINE_TYPE PREEMPTIBLE owasp-juice-shop-app us-central1-c n1-standard-2 INTERNAL_IP EXTERNAL_IP STATUS 10.0.0.3 <public IP> RUNNING
إعداد مكوّن موازنة التحميل على السحابة الإلكترونية: مجموعة المثيلات
أنشئ مجموعة الأجهزة الافتراضية غير المُدارة.
من Cloud Shell
gcloud compute instance-groups unmanaged create juice-shop-group \
--zone=us-central1-c
الناتج
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES juice-shop-group us-central1-c zone 0
أضِف مثيل Juice Shop GCE إلى مجموعة الأجهزة الافتراضية غير المُدارة.
من Cloud Shell
gcloud compute instance-groups unmanaged add-instances juice-shop-group \
--zone=us-central1-c \
--instances=owasp-juice-shop-app
الناتج
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
اضبط المنفذ المسمّى على منفذ تطبيق Juice Shop.
من Cloud Shell
gcloud compute instance-groups unmanaged set-named-ports \ juice-shop-group \ --named-ports=http:3000 \ --zone=us-central1-c
الناتج
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
بعد إنشاء مجموعة الأجهزة الافتراضية غير المُدارة، تتمثّل الخطوة التالية في إنشاء التحقق من الصحة وخدمة الخلفية وخريطة عناوين URL ووكيل مستهدف وقاعدة إعادة توجيه.
إعداد مكوّن موازنة الحمل على السحابة الإلكترونية: التحقّق من الصحة
أنشئ عملية التحقّق من الصحة لمنفذ خدمة Juice Shop.
من Cloud Shell
gcloud compute health-checks create tcp tcp-port-3000 \
--port 3000
الناتج
Created NAME PROTOCOL tcp-port-3000 TCP
إعداد مكوّن موازنة الحمل على السحابة الإلكترونية: خدمة الخلفية
أنشئ مَعلمات خدمة الخلفية.
من Cloud Shell
gcloud compute backend-services create juice-shop-backend \
--protocol HTTP \
--port-name http \
--health-checks tcp-port-3000 \
--enable-logging \
--global
الناتج
NAME BACKENDS PROTOCOL juice-shop-backend HTTP
أضِف مجموعة أجهزة Juice Shop الافتراضية إلى خدمة الخلفية.
من Cloud Shell
gcloud compute backend-services add-backend juice-shop-backend \
--instance-group=juice-shop-group \
--instance-group-zone=us-central1-c \
--global
الناتج
Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].
إعداد مكوّن موازنة الحمل في السحابة: ربط عناوين URL
أنشئ خريطة عناوين URL لإرسالها إلى الخلفية.
من Cloud Shell
gcloud compute url-maps create juice-shop-loadbalancer \
--default-service juice-shop-backend
الناتج
NAME DEFAULT_SERVICE juice-shop-loadbalancer backendServices/juice-shop-backend
إعداد مكوّن موازنة التحميل في Cloud: خادم وكيل مستهدف
أنشئ خادمًا وكيلاً مستهدفًا لعرض خريطة عناوين URL.
من Cloud Shell
gcloud compute target-http-proxies create juice-shop-proxy \
--url-map juice-shop-loadbalancer
الناتج
NAME URL_MAP juice-shop-proxy juice-shop-loadbalancer
إعداد مكوّن موازنة الحمل في السحابة الإلكترونية: قاعدة إعادة التوجيه
أنشئ قاعدة إعادة التوجيه لجهاز موازنة الحمل.
من Cloud Shell
gcloud compute forwarding-rules create juice-shop-rule \
--global \
--target-http-proxy=juice-shop-proxy \
--ports=80
الناتج
Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].
التأكّد من أنّ خدمة Juice Shop متاحة على الإنترنت
من Cloud Shell
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")"
من Cloud Shell
echo $PUBLIC_SVC_IP
الناتج
<public VIP of service>
انتظِر بضع دقائق قبل المتابعة، وإلا قد تتلقّى استجابة HTTP/1.1 404 Not Found.
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP
الناتج
HTTP/1.1 200 OK <...>
يمكنك أيضًا الانتقال إلى المتصفّح لعرض Juice Shop.

نحن الآن على استعداد لاستكشاف الثغرات الأمنية في Juice Shop وكيفية الحماية منها باستخدام مجموعات قواعد جدار حماية تطبيقات الويب (WAF) في Cloud Armor.
5- عرض الثغرات الأمنية المعروفة
بهدف توفير الوقت، سنوضّح الحالات قبل وبعد نشر قواعد Cloud Armor WAF في خطوات مختصرة.
مراقبة ثغرة أمنية في LFI: ثغرة path traversal
يشير مصطلح Local File Inclusion إلى عملية مراقبة الملفات المتوفرة على الخادم من خلال استغلال عدم التحقّق من صحة الإدخال في الطلب بهدف الكشف عن البيانات الحسّاسة. يوضّح المثال التالي ببساطة أنّه يمكن تنفيذ ثغرة path traversal. في المتصفّح أو باستخدام curl، راقِب مسارًا حاليًا يعرضه التطبيق.
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp
الناتج
HTTP/1.1 200 OK <...>
لاحظ أيضًا أنّ اجتياز المسار يعمل أيضًا:
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp/../
الناتج
HTTP/1.1 200 OK <...>
مراقبة ثغرة أمنية لتنفيذ التعليمات البرمجية عن بُعد
يتضمّن تنفيذ الرمز البرمجي عن بُعد سيناريوهات مختلفة لإدخال أوامر UNIX وWindows، ما يسمح للمهاجمين بتنفيذ أوامر نظام التشغيل التي عادةً ما تكون محظورة على المستخدمين الذين لديهم امتيازات. يعرض ما يلي تنفيذًا بسيطًا لأمر ls تم تمريره.
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
الناتج
HTTP/1.1 200 OK <...>
يمكنك إزالة علامات curl للاطّلاع على الناتج الكامل.
مراقبة وصول برنامج فحص معروف
تتوفّر تطبيقات مسح ضوئي تجارية ومفتوحة المصدر لأغراض مختلفة، بما في ذلك البحث عن الثغرات الأمنية. تستخدم هذه الأدوات User-Agent معروفًا وعناوين أخرى. لاحظ أنّ curl يعمل مع عنوان وكيل مستخدم معروف:
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
الناتج
HTTP/1.1 200 OK <...>
مراقبة هجوم على البروتوكول: تقسيم HTTP
تستخدم بعض تطبيقات الويب الإدخالات من المستخدم لإنشاء العناوين في الردود. إذا لم يفلتر التطبيق الإدخال بشكل صحيح، يمكن للمهاجم أن يفسد مَعلمة الإدخال باستخدام التسلسل %0d%0a (تسلسل CRLF المستخدَم لفصل الأسطر المختلفة). ويمكن بعد ذلك تفسير الاستجابة على أنّها استجابتان من خلال أي شيء يحلّلها، مثل خادم وكيل وسيط، ما قد يؤدي إلى عرض محتوى غير صحيح في الطلبات اللاحقة. أدخِل التسلسل %0d%0a في مَعلمة الإدخال، ما قد يؤدي إلى عرض صفحة مضلِّلة.
من Cloud Shell
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
الناتج
HTTP/1.1 200 OK <...>
مراقبة تثبيت الجلسة
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H session_id=X
الناتج
HTTP/1.1 200 OK <...>
6. تحديد قواعد WAF في Cloud Armor
أدرِج قواعد WAF المُعدّة مسبقًا:
من Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets
الناتج
EXPRESSION_SET
Sqli-canary
RULE_ID
owasp-crs-v030001-id942110-sqli
owasp-crs-v030001-id942120-sqli
<...>
إنشاء سياسة أمان Cloud Armor
من Cloud Shell:
gcloud compute security-policies create block-with-modsec-crs \
--description "Block with OWASP ModSecurity CRS"
تعديل القاعدة التلقائية لسياسة الأمان
يُرجى العِلم أنّ أولوية القاعدة التلقائية لها قيمة عددية تبلغ 2147483647
من Cloud Shell:
gcloud compute security-policies rules update 2147483647 \
--security-policy block-with-modsec-crs \
--action "deny-403"
بما أنّ القاعدة التلقائية تم ضبطها على الإجراء "رفض"، يجب أن نسمح بالوصول من عنوان IP الخاص بك. يُرجى العثور على عنوان IP العام (curl أو ipmonkey أو whatismyip أو غير ذلك).
من Cloud Shell:
MY_IP=$(curl ifconfig.me)
أضِف القاعدة الأولى للسماح بالوصول من عنوان IP الخاص بك (أدرِج عنوان IP أدناه)
من Cloud Shell:
gcloud compute security-policies rules create 10000 \
--security-policy block-with-modsec-crs \
--description "allow traffic from my IP" \
--src-ip-ranges "$MY_IP/32" \
--action "allow"
تعديل سياسة الأمان لحظر هجمات تضمين الملفات المحلية
تطبيق مجموعة قواعد OWASP ModSecurity الأساسية التي تمنع ثغرة path traversal لتضمين الملفات المحلية
من Cloud Shell:
gcloud compute security-policies rules create 9000 \
--security-policy block-with-modsec-crs \
--description "block local file inclusion" \
--expression "evaluatePreconfiguredExpr('lfi-stable')" \
--action deny-403
تعديل سياسة الأمان لحظر تنفيذ الرموز البرمجية عن بُعد (rce)
وفقًا لمجموعة قواعد ModSecurity الأساسية من OWASP، طبِّق القواعد التي تبحث عن تنفيذ التعليمات البرمجية عن بُعد، بما في ذلك إدخال التعليمات البرمجية. يتم رصد أوامر نظام التشغيل النموذجية وحظرها.
من Cloud Shell:
gcloud compute security-policies rules create 9001 \
--security-policy block-with-modsec-crs \
--description "block rce attacks" \
--expression "evaluatePreconfiguredExpr('rce-stable')" \
--action deny-403
تعديل سياسة الأمان لحظر أدوات فحص الأمان
طبِّق مجموعة قواعد OWASP ModSecurity الأساسية لحظر برامج فحص الأمان المعروفة وعملاء HTTP الذين يستخدمون البرامج النصية وبرامج الزحف على الويب.
من Cloud Shell:
gcloud compute security-policies rules create 9002 \
--security-policy block-with-modsec-crs \
--description "block scanners" \
--expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \
--action deny-403
تعديل سياسة الأمان لحظر هجمات البروتوكول
وفقًا لمجموعة قواعد OWASP ModSecurity الأساسية، طبِّق القواعد التي تبحث عن أحرف إرجاع السطر (CR) %0d وتغذية السطر (LF) %0a وأنواع أخرى من هجمات البروتوكولات، مثل HTTP Request Smuggling.
من Cloud Shell:
gcloud compute security-policies rules create 9003 \
--security-policy block-with-modsec-crs \
--description "block protocol attacks" \
--expression "evaluatePreconfiguredExpr('protocolattack-stable')" \
--action deny-403
تعديل سياسة الأمان لحظر تثبيت الجلسة
وفقًا لمجموعة القواعد الأساسية في OWASP ModSecurity، طبِّق القواعد التي...
من Cloud Shell:
gcloud compute security-policies rules create 9004 \
--security-policy block-with-modsec-crs \
--description "block session fixation attacks" \
--expression "evaluatePreconfiguredExpr('sessionfixation-stable')" \
--action deny-403
ربط سياسة الأمان بالخدمة الخلفية
من Cloud Shell:
gcloud compute backend-services update juice-shop-backend \
--security-policy block-with-modsec-crs \
--global
قد يستغرق نشر القواعد بعض الوقت (ولكن ليس أكثر من 10 دقائق). بعد التأكّد من مرور وقت كافٍ، اختبِر الثغرات الأمنية التي تم إثباتها سابقًا لتأكيد فرض قاعدة Cloud Armor WAF في الخطوة التالية.
7. مراقبة حماية Cloud Armor باستخدام مجموعة قواعد OWASP ModSecurity الأساسية
التأكّد من الحدّ من ثغرة LFI
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?a=../
الناتج
HTTP/1.1 403 Forbidden <...>
تأكيد الحدّ من هجوم تنفيذ التعليمات البرمجية عن بُعد
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
الناتج
HTTP/1.1 403 Forbidden <..>
تأكيد رصد الماسحات الضوئية المعروفة
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
الناتج
HTTP/1.1 403 Forbidden <..>
تأكيد الحدّ من هجوم البروتوكول
وفقًا لمجموعة قواعد OWASP ModSecurity الأساسية الإصدار 3.0.2، يتم الحدّ من هجوم البروتوكول من خلال
من Cloud Shell
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
الناتج
HTTP/1.1 403 Forbidden <..>
التأكّد من حظر محاولات تثبيت الجلسة
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?session_id=a
الناتج
HTTP/1.1 403 Forbidden <..>
8. مراجعة قواعد الأمان في Cloud Armor
بعد أن أنشأنا سياسة الأمان، لنلقِ نظرة على القواعد التي تم ضبطها.

يتم تقييم القواعد حسب الأولوية: يتم تقييم الأرقام الأصغر أولاً، وبمجرد تفعيلها، لا تستمر المعالجة للقواعد ذات قيم الأولوية الأعلى.
- الأولوية 9000 - حظر LFI (تضمين ملف محلي)
- الأولوية 9001 - حظر تنفيذ الرمز عن بُعد (RCE) / إدخال الأوامر
- الأولوية 9002 - تم رصد أدوات فحص الحظر
- الأولوية 9003 - حظر هجمات البروتوكولات، مثل تقسيم HTTP وتهريب HTTP
- الأولوية 9004 - حظر هجمات تثبيت الجلسة
- الأولوية 10000 - السماح لعنوان IP الخاص بك بالوصول إلى الموقع الإلكتروني
- الإعداد التلقائي للأولوية - الرفض
*لاحظ أنّ قاعدة "السماح لعنوان IP الخاص بك" تم ضبطها على رقم الأولوية الأعلى للسماح بالوصول إلى الموقع الإلكتروني، ولكنها تحظر أي هجوم.
9- مراقبة سجلّات سياسة الأمان في Cloud Armor
من صفحة Cloud Armor Console، يمكنك الاطّلاع على تفاصيل سياسة الأمان والنقر على علامة التبويب Logs ثم على الرابط View policy logs للانتقال إلى صفحة Cloud Logging. سيتم الفلترة تلقائيًا استنادًا إلى سياسة الأمان المعنيّة، مثل resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs). راقِب رموز الاستجابة 403 الخاصة بالخطأ، ووسِّع تفاصيل السجلّ لمراقبة اسم سياسة الأمان المفروضة وقيمة الحقل المطابِق، ثم انتقِل إلى أسفل معرّفات التعبيرات المُعدّة مسبقًا (أو معرّف التوقيع). تعرض لقطات الشاشة التالية أمثلة على السجلات الخاصة بسياسات الأمان المفروضة التي تم ضبطها في هذا الدرس العملي.
سجلّ LFI

سجلّ RCE

سجلّ رصد الماسح الضوئي

سجلّ هجمات البروتوكول

سجلّ تثبيت الجلسة

10. تنظيف المختبر
نظِّف الموارد الآن بعد الانتهاء من الدرس التطبيقي.
نفِّذ هذه الأوامر لحذف سياسة الأمان في Cloud Armor وموازن التحميل والأجهزة الافتراضية وقواعد جدار الحماية وشبكة VPC.
إزالة سياسة الأمان في Cloud Armor من خدمة الخلفية
gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global
حذف سياسة أمان Cloud Armor
سيؤدي حذف سياسة الأمان إلى حذف القواعد المرتبطة بها تلقائيًا.
gcloud -q compute security-policies delete block-with-modsec-crs
حذف موارد موازنة التحميل
تشمل موارد موازن التحميل التي سيتم حذفها قاعدة إعادة التوجيه، ووكلاء HTTP المستهدفين، وخرائط عناوين URL، والخلفية، وعمليات التحقّق من الصحة، ومجموعة المثيلات.
gcloud -q compute forwarding-rules delete juice-shop-rule --global
gcloud -q compute target-http-proxies delete juice-shop-proxy
gcloud -q compute url-maps delete juice-shop-loadbalancer
gcloud -q compute backend-services delete juice-shop-backend \
--global
gcloud -q compute health-checks delete tcp-port-3000
gcloud -q compute instance-groups unmanaged delete juice-shop-group --zone=us-central1-c
حذف الجهاز الافتراضي
gcloud -q compute instances delete owasp-juice-shop-app --zone us-central1-c
حذف قواعد جدار الحماية والشبكة الفرعية وشبكة VPC
gcloud -q compute firewall-rules delete allow-health-check gcloud -q compute firewall-rules delete allow-js-site gcloud -q compute networks subnets delete ca-lab-subnet --region us-central1 gcloud -q compute networks delete ca-lab-vpc
11. تهانينا!
تهانينا على إكمال برنامج codelab الخاص بقواعد WAF المُعدّة مسبقًا في Cloud Armor.
المواضيع التي تناولناها
- كيفية إعداد مجموعة مثيلات وموازنة تحميل عالمية في Cloud
- كيفية ضبط سياسات أمان Cloud Armor باستخدام قواعد جدار حماية تطبيقات الويب (WAF) المُعدّة مسبقًا للحماية من هجمات تضمين الملفات المحلية (LFI) وتنفيذ التعليمات البرمجية عن بُعد (RCE) وعمليات الفحص وهجمات البروتوكول وتثبيت الجلسات
- كيفية التأكّد من أنّ Cloud Armor خفّف من بعض الهجمات العشر الأكثر شيوعًا من OWASP من خلال السجلّات
الخطوات التالية
- حماية تطبيقك من الثغرات الأمنية المدرَجة في قائمة OWASP Top 10 باستخدام قواعد جدار الحماية من تطبيقات الويب (WAF) المُعدّة مسبقًا في Cloud Armor
- ضبط القواعد بدقة استنادًا إلى مستويات الحساسية
- استخدِم مرجع لغة القواعد المخصّصة لتطبيق إجراءات أمان أكثر تحديدًا.