1. مقدمة
مرحبًا مرحبًا بك في الدرس التطبيقي حول ترميز قواعد WAF تم إعداده مسبقًا في Cloud Armor.
Google Cloud Armor هو حلّ أمني لشبكات المؤسسات من Google يوفّر حماية ضد هجمات تعطيل الخدمة، وتنفيذ قاعدة WAF، وإمكانية الإدارة بشكل تكيُّفي على نطاق واسع.
وسّعت Cloud Armor مجموعات قواعد WAF التي تم ضبطها مسبقًا للحدّ من الثغرات الأمنية في تطبيقات الويب OWASP Top 10. تستند مجموعات القواعد إلى الإصدار 3.0.2 من مجموعة قواعد OWASP Modsecurity الأساسية للحماية من بعض مخاطر الأمان الأكثر شيوعًا لتطبيقات الويب، بما في ذلك تضمين الملفات على الجهاز (lfi) وتضمين الملفات عن بُعد (rfi) وتنفيذ الرموز البرمجية عن بُعد (rce) وغيرها الكثير.
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية الحدّ من بعض الثغرات الأمنية الشائعة باستخدام قواعد WAF في Google Cloud Armor.
المعلومات التي ستطّلع عليها
- كيفية إعداد مجموعة مثيلات وموازن حمولة عالمي لدعم إحدى الخدمات
- كيفية ضبط سياسات أمان Cloud Armor باستخدام قواعد WAF التي تم ضبطها مسبقًا للحماية من بروتوكول lfi وrce والماسحات الضوئية وهجمات البروتوكولات وإصلاح الجلسة
- كيفية التحقّق من أنّ Cloud Armor خفّف من حدة الهجوم من خلال ملاحظة السجلّات
المتطلبات
- معرفة أساسية بمحرّك Google Compute Engine ( درس تطبيقي حول الترميز)
- الشبكات الأساسية والمعرفة ببروتوكول TCP/IP
- معرفة سطر أوامر Unix/Linux الأساسي
- من المفيد استكمال جولة حول الشبكات في Google Cloud Platform باستخدام ميزة الاتصال بالشبكات في Google Cloud
- (اختياري) يمكنك إكمال ميزة اختبارية في Cloudnet20 Cloud Armor للتعرّف على كيفية حماية أعباء العمل باستخدام قواعد حقن SQL والقواعد المستنِدة إلى عنوان IP والقائمة على الموقع الجغرافي.
طوبولوجيا مختبر الترميز حالة الاستخدام
الشكل 1: هيكلة درس تطبيقي حول الترميز في Cloud Armor WAF
يُعد تطبيق OWASP Juice Shop مفيدًا للتدريب الأمني، لأنه يحتوي على أمثلة لكل ثغرات أمنية من أهم 10 ثغرات أمنية في OWASP. ويمكن للمهاجم استغلالها لأغراض الاختبار. في هذا الدرس التطبيقي حول الترميز، سنستخدمه لتوضيح بعض هجمات التطبيقات التي تتبعها حماية التطبيق باستخدام قواعد WAF في Cloud Armor. سيتم تشغيل التطبيق بواسطة جهاز موازنة الحمل من 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
إنشاء قواعد FW للسماح بإجراء فحوصات صحية من نطاقات التحقق من الصحة من 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
إعداد مكوِّن جهاز موازنة الحمل في السحابة الإلكترونية: الخادم الوكيل المستهدف
أنشِئ الخادم الوكيل المستهدَف أمام خريطة عنوان 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 لم يتم العثور على الصفحة.
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP
الناتج
HTTP/1.1 200 OK <...>
ويمكنك أيضًا الانتقال إلى المتصفح لعرض متجر العصائر.
نحن جاهزون الآن لاستكشاف الثغرات الأمنية في Juice Shop وكيفية الحماية منها باستخدام مجموعات قواعد WAF في Cloud Armor.
5- إظهار الثغرات المعروفة
بهدف توفير الوقت، سنعرض الولايات قبل نشر قواعد WAF في Cloud Armor وبعدها في خطوات موجزة.
تتبُّع الثغرة الأمنية LFI: اجتياز المسار
إنّ تضمين الملفات المحلية هو عملية رصد الملفات المتوفّرة على الخادم من خلال استغلال عدم التحقّق من صحة الإدخال في الطلب للكشف عن البيانات الحسّاسة. يوضح ما يلي ببساطة إمكانية اجتياز مسار. في المتصفِّح أو باستخدام أمر 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 <...>
ملاحظة ثغرة أمنية في RCE
يشتمل "تنفيذ الرموز البرمجية عن بُعد" على العديد من سيناريوهات إدخال أوامر نظام التشغيل UNIX وWindows، ما يسمح للمهاجمين بتنفيذ أوامر نظام التشغيل التي تقتصر عادةً على المستخدمين الحاصلين على الامتيازات. يوضح ما يلي تنفيذ أمر ls بسيط تم تمريره.
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
الناتج
HTTP/1.1 200 OK <...>
يمكنك إزالة علامات curl لمراقبة النتائج الكاملة.
تتبُّع وصول ماسح ضوئي معروف
تفحص التطبيقات التجارية والمفتوحة المصدر لأغراض مختلفة، بما في ذلك البحث عن الثغرات. تستخدم هذه الأدوات وكيل مستخدم معروفًا وعناوين أخرى. تعمل ميزة "ملاحظة تأثير 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"
تعديل سياسة الأمان لحظر هجمات LFI
يمكنك تطبيق مجموعة القواعد الأساسية OWASP ModSecurity التي تمنع اجتياز المسار لعمليات تضمين الملفات المحلية.
من 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)
وفقًا لمجموعة القواعد الأساسية في OWASP ModSecurity، يمكنك تطبيق القواعد التي تبحث عن أمر rce، بما في ذلك إدخال الأمر. يتم رصد أوامر نظام التشغيل النموذجية وحظرها.
من 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، يمكنك تطبيق القواعد التي تبحث عن حرفَي Carriage Return (CR) %0d وLinefeed (LF) %0a وأنواعًا أخرى من هجمات البروتوكولات، مثل تهريب طلبات HTTP.
من 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 دقائق). بعد التأكّد من مرور الوقت الكافي، اختبِر الثغرات الأمنية التي تم توضيحها سابقًا لتأكيد تنفيذ قاعدة WAF في Cloud Armor في الخطوة التالية.
7. مراقبة حماية Cloud Armor باستخدام مجموعة القواعد الأساسية OWASP ModSecurity
التأكُّد من تخفيف ثغرة الأنشطة التجارية المحلية (LFI)
من Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?a=../
الناتج
HTTP/1.1 403 Forbidden <...>
التأكد من التخفيف من حدة هجوم RCE
من 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 <..>
التأكُّد من تخفيف حدة هجوم البروتوكول
وفقًا للإصدار 3.0.2 من مجموعة القواعد الأساسية OWASP ModSecurity الأساسية، يتم الحدّ من هجوم البروتوكول من خلال
من 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
ليتم توجيهك إلى صفحة "تسجيل الدخول إلى السحابة الإلكترونية". وستتم تصفيتها تلقائيًا استنادًا إلى سياسة الأمان التي تهمك، على سبيل المثال. 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
حذف موارد جهاز موازنة الحمل
تتضمن موارد أداة موازنة الحمل المطلوب حذفها قاعدة إعادة التوجيه و target-http-proxies وخرائط عناوين 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. تهانينا!
تهانينا على إكمال الدرس التطبيقي حول الترميز الخاص بقواعد WAF في Cloud Armor بشكل مسبق.
النقاط التي تناولناها
- كيفية إعداد مجموعة مثيلات وجهاز موازنة الحمل في السحابة الإلكترونية العام
- كيفية ضبط سياسات أمان Cloud Armor باستخدام قواعد WAF التي تم ضبطها مسبقًا للحماية من بروتوكول lfi وrce والماسحات الضوئية وهجمات البروتوكولات وإصلاح الجلسة
- كيفية التحقّق من أنّ Cloud Armor خفّفت من بعض هجمات OWASP الأكثر 10 هجمات من خلال السجلّات
الخطوات التالية
- يمكنك حماية تطبيقك من أهم 10 ثغرات أمنية في OWASP باستخدام قواعد WAF في Cloud Armor مسبقة الإعداد.
- تحسين القواعد استنادًا إلى مستويات الحساسية
- استخدِم مرجع لغة القواعد المخصّصة لإجراء إجراءات أمان أكثر تحديدًا.