1. مقدمه
سلام! به آزمایشگاه کدهای WAF از پیش پیکربندی شده Cloud Armor خوش آمدید!
Google Cloud Armor راه حل امنیتی شبکه لبه سازمانی Google است که محافظت DDOS، اجرای قوانین WAF و مدیریت تطبیقی را در مقیاس ارائه می دهد.
Cloud Armor مجموعه قوانین WAF از پیش پیکربندی شده را برای کاهش آسیبپذیریهای امنیتی برنامه وب 10 برتر OWASP گسترش داده است. مجموعه قوانین مبتنی بر مجموعه قوانین هسته OWASP Modsecurity نسخه 3.0.2 برای محافظت در برابر برخی از رایج ترین خطرات امنیتی برنامه های وب از جمله گنجاندن فایل محلی (lfi)، گنجاندن فایل از راه دور (rfi)، اجرای کد از راه دور (rce) است. و بسیاری دیگر
در این نرمافزار، یاد میگیرید که چگونه برخی از آسیبپذیریهای رایج را با استفاده از قوانین Google Cloud Armor WAF کاهش دهید.
چیزی که یاد خواهید گرفت
- چگونه یک Instance Group و یک Global Load Balancer برای پشتیبانی از یک سرویس راه اندازی کنیم
- نحوه پیکربندی سیاست های امنیتی Cloud Armor با قوانین WAF از پیش تنظیم شده برای محافظت در برابر lfi، rce، اسکنرها، حملات پروتکل و تثبیت جلسه
- چگونه می توان تأیید کرد که Cloud Armor با مشاهده گزارش ها حمله را کاهش داده است.
آنچه شما نیاز دارید
- دانش اولیه موتور محاسباتی گوگل ( کدآلب )
- دانش پایه شبکه و TCP/IP
- دانش اولیه خط فرمان یونیکس/لینوکس
- انجام یک تور شبکه در GCP با شبکه در Google Cloud مفید است
- (اختیاری) آزمایشگاه Cloudnet20 Cloud Armor را برای یادگیری محافظت از بارهای کاری با تزریق SQL، قوانین مبتنی بر IP و جغرافیایی تکمیل کنید.
توپولوژی Codelab و مورد استفاده
شکل 1 - توپولوژی کد آزمایشگاهی قوانین Cloud Armor WAF
برنامه OWASP Juice Shop برای آموزش امنیتی و آگاهی مفید است، زیرا حاوی نمونه هایی از هر یک از 10 آسیب پذیری امنیتی برتر OWASP-بر اساس طراحی است. یک مهاجم می تواند از آن برای اهداف آزمایشی سوء استفاده کند. در این لبه کد، از آن برای نشان دادن برخی حملات برنامه و به دنبال آن محافظت از برنامه با قوانین Cloud Armor WAF استفاده خواهیم کرد. برنامه توسط یک Google Cloud Load Balancer ارائه می شود که روی آن خط مشی و قوانین امنیتی Cloud Armor اعمال می شود. این سرویس در اینترنت عمومی ارائه می شود بنابراین تقریباً از هر جایی قابل دسترسی است و با استفاده از قوانین Cloud Armor و فایروال VPC محافظت می شود.
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID
نامیده خواهد شد.
- در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در Cloud Console فعال کنید .
اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. حتماً دستورالعملهای موجود در بخش «تمیز کردن» را دنبال کنید که به شما توصیه میکند چگونه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از کنسول GCP روی نماد 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
API ها را فعال کنید
تمام خدمات لازم را فعال کنید
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 load balancer: instance group را راه اندازی کنید
گروه نمونه مدیریت نشده را ایجاد کنید.
از 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، پروکسی هدف و قانون ارسال است.
مؤلفه Cloud load balancer را تنظیم کنید: بررسی سلامت
بررسی سلامت پورت خدمات فروشگاه آب میوه را ایجاد کنید.
از Cloud Shell
gcloud compute health-checks create tcp tcp-port-3000 \ --port 3000
خروجی
Created NAME PROTOCOL tcp-port-3000 TCP
مؤلفه Cloud load balancer را راه اندازی کنید: سرویس backend
پارامترهای سرویس Backend را ایجاد کنید.
از 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 را به سرویس Backend اضافه کنید.
از 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].
مولفه Cl oud load balancer را تنظیم کنید: نقشه 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
مولفه Cl oud load balancer را راه اندازی کنید: پراکسی هدف
برای جلوی نقشه URL، Target Proxy را ایجاد کنید.
از 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 load balancer: قانون حمل و نقل را تنظیم کنید
قانون حمل و نقل را برای Load Balancer ایجاد کنید.
از 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].
اطمینان حاصل کنید که سرویس فروشگاه آب میوه آنلاین است
از 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 و نحوه محافظت در برابر آنها با مجموعه قوانین Cloud Armor WAF هستیم.
5. آسیب پذیری های شناخته شده را نشان دهید
به منظور صرفه جویی در زمان، وضعیت های قبل و بعد از انتشار قوانین Cloud Armor WAF را در مراحل فشرده نشان خواهیم داد.
یک آسیب پذیری 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 را مشاهده کنید
اجرای کد از راه دور شامل سناریوهای مختلف تزریق فرمان یونیکس و ویندوز است که به مهاجمان اجازه می دهد تا دستورات سیستم عامل را که معمولاً محدود به کاربران ممتاز است، اجرا کنند. در زیر اجرای دستور ls ساده ای را نشان می دهد که به آن منتقل شده است.
از Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
خروجی
HTTP/1.1 200 OK <...>
برای مشاهده خروجی کامل، میتوانید پرچمهای حلقه را بردارید.
دسترسی یک اسکنر معروف را مشاهده کنید
هم برنامه های تجاری و هم منبع باز را برای اهداف مختلف اسکن می کنند، از جمله اسکن آسیب پذیری ها. این ابزارها از User-Agent معروف و سایر هدرها استفاده می کنند. Observe curl با یک User-Agent Header معروف کار می کند:
از 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. قوانین Cloud Armor WAF را تعریف کنید
قوانین 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 Core Rule Set برای مسدود کردن اسکنرهای امنیتی شناخته شده، کلاینت های 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 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 Core مشاهده کنید
تأیید کنید که آسیبپذیری 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 <..>
تأیید کنید که یک حمله پروتکل کاهش یافته است
بر اساس OWASP ModSecurity Core Rule Set نسخه 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 - Block LFI (شامل فایل محلی)
- اولویت 9001 - Block RCE (اجرای کد از راه دور/تزریق فرمان)
- اولویت 9002 - اسکنرهای بلوکی شناسایی شدند
- اولویت 9003 - مسدود کردن حملات پروتکل مانند تقسیم HTTP و قاچاق HTTP
- Priority 9004 - Block Session Fixation Attacks
- اولویت 10000 - به IP خود اجازه دسترسی به وب سایت را بدهید
- پیش فرض اولویت - رد کردن.
*توجه داشته باشید که قانون "Allow your 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، Load Balancer، نمونه ها، قوانین فایروال و شبکه VPC اجرا کنید.
سیاست امنیتی Cloud Armor را از سرویس backend حذف کنید
gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global
سیاست امنیتی Cloud Armor را حذف کنید
حذف خط مشی امنیتی به طور خودکار قوانین مرتبط را حذف می کند.
gcloud -q compute security-policies delete block-with-modsec-crs
منابع بار متعادل کننده را حذف کنید
این منابع Load Balancer که باید حذف شوند شامل قانون ارسال، پراکسی های target-http، url-maps، backend، Health-check ها و گروه نمونه است.
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 برخی از 10 حمله برتر OWASP را از طریق گزارش ها کاهش داده است
مراحل بعدی
- با قوانین WAF از پیش پیکربندی شده Cloud Armor از برنامه خود در برابر 10 آسیب پذیری برتر OWASP محافظت کنید.
- قوانین تنظیم دقیق بر اساس سطوح حساسیت
- از مرجع زبان قوانین سفارشی برای اجرای امنیتی خاص تر استفاده کنید.