1. מבוא
שלום! ברוכים הבאים ל-Codelab של כללי WAF המוגדר מראש ב-Cloud Armor!
Google Cloud Armor הוא פתרון של Google לאבטחת רשתות קצה לארגונים. הוא מספק הגנה על DDOS, אכיפת כללי WAF וניהול דינמי בקנה מידה נרחב.
Cloud Armor הרחיב את קבוצות הכללים המוגדרות מראש של WAF כדי לצמצם את נקודות החולשה באבטחת אפליקציות האינטרנט של OWASP Top 10. קבוצות הכללים מבוססות על קבוצת כללי הליבה של OWASP Modsecurity בגרסה 3.0.2 כדי להגן מפני כמה בסיכוני האבטחה הנפוצים ביותר של אפליקציות אינטרנט, כולל הכללה של קבצים מקומיים (lfi), הכללת קבצים מרחוק (rfi), ביצוע קוד מרחוק (rce) ועוד רבים אחרים.
בשיעור ה-Codelab הזה תלמדו איך לצמצם חלק מנקודות החולשה הנפוצות באמצעות כללי Google Cloud Armor WAF.
מה תלמדו
- איך מגדירים קבוצת מכונות ומאזן עומסים גלובלי כדי לתמוך בשירות
- איך להגדיר כללי מדיניות אבטחה של Cloud Armor עם כללי WAF מוגדרים מראש להגנה מפני lfi, rce, סורקים, מתקפות פרוטוקולים וקיבוע פעילות
- איך לאמת ש-Cloud Armor צמצם את ההתקפה על ידי צפייה ביומנים.
מה צריך להכין
- ידע בסיסי ב-Google Compute Engine ( codelab)
- ידע בסיסי בנושא רישות ו-TCP/IP
- ידע בסיסי בשורת הפקודה Unix/Linux
- כדאי להשלים סיור של רשתות ב-GCP עם רשתות ב-Google Cloud
- (אופציונלי) משלימים את שיעור ה-Lab ב-Cloudnet20 Cloud Armor כדי ללמוד איך להגן על עומסי עבודה באמצעות החדרת SQL, כללים מבוססי-IP וכללים מבוססי-מיקום גיאוגרפי.
טופולוגיה של Codelab ו תרחיש לדוגמה
איור 1 – הטופולוגיה של Codelab ב-Cloud Armor WAF
האפליקציה OWASP Juice Shop שימושית להדרכות בנושא אבטחה ולהגברת המודעות, כי היא מכילה מופעים של כל אחת מ-10 פרצות האבטחה המובילות של OWASP – משלב התכנון. תוקף יכול לנצל אותם למטרות בדיקה. ב-Codelab הזה, נשתמש בו כדי להדגים כמה מתקפות של אפליקציות, ולאחר מכן להגן על האפליקציה באמצעות כללי Cloud Armor WAF. לפני האפליקציה יפעל מאזן עומסים של Google Cloud, שעליו יחולו מדיניות האבטחה וכללי האבטחה של Cloud Armor. הוא יוצג באינטרנט הציבורי, כך שאפשר יהיה להגיע אליו כמעט מכל מקום והוא יהיה מוגן באמצעות כללי חומת אש של Cloud Armor ו-VPC.
2. הגדרה ודרישות
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
חשוב לזכור את מזהה הפרויקט, שם ייחודי לכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא מתאים לכם, סליחה). בהמשך ב-Codelab הזה, היא תיקרא PROJECT_ID
.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.
מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. חשוב לבצע את כל ההוראות בקטע 'ניקוי' שמסביר איך להשבית משאבים כדי שלא תצברו חיובים מעבר למדריך הזה. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.
הפעלת Cloud Shell
אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.
ממסוף GCP, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:
נדרשים רק כמה דקות כדי להקצות את הסביבה ולהתחבר אליה. בסיום התהליך, אתם אמורים לראות משהו כזה:
למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה בשיעור ה-Lab הזה יכולה להתבצע באמצעות דפדפן בלבד.
לפני שמתחילים
ב-Inside 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: קבוצת מכונות
יוצרים את קבוצת המופעים הלא מנוהלים.
מ-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, שרת proxy ליעד וכלל העברה.
הגדרה של רכיב מאזן העומסים ב-Cloud: בדיקת תקינות
יוצרים את בדיקת התקינות ליציאת השירות של חנות מיצים.
מ-Cloud Shell
gcloud compute health-checks create tcp tcp-port-3000 \ --port 3000
פלט
Created NAME PROTOCOL tcp-port-3000 TCP
הגדרת רכיב מאזן העומסים ב-Cloud: שירות לקצה העורפי
יוצרים את הפרמטרים של שירות לקצה העורפי.
מ-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].
הגדרה של רכיב מאזן העומסים של Cloud: מפת 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: שרת proxy ליעד
צור את שרת ה-proxy היעד כדי להציג את לפני המפה של כתובות ה-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: כלל העברה
יצירת כלל ההעברה למאזן העומסים.
מ-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 ואיך להגן מפניהן באמצעות קבוצות הכללים של Cloud Armor WAF.
5. הדגמה של נקודות חולשה ידועות
כדי לחסוך זמן, נדגים את המצבים לפני ואחרי ההפצה של כללי Cloud Armor WAF בשלבים מרוכזים.
תצפית על נקודת חולשה של LFI: 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 <...>
זיהוי של נקודת חולשה ב-RCE
ביצוע קוד מרחוק כולל תרחישים שונים של החדרת פקודות ב-UNIX וב-Windows, שמאפשרים לתוקפים להריץ פקודות של מערכת ההפעלה שבדרך כלל מוגבלות למשתמשים עם הרשאות. בדוגמה הבאה מוצג ביצוע פשוט של פקודת ls שהועברה.
מ-Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
פלט
HTTP/1.1 200 OK <...>
אפשר להסיר את סימוני ה-curl כדי לצפות בפלט המלא.
בדיקת הגישה של סורק ידוע
גם מסחר וגם קוד פתוח סורקים אפליקציות למטרות שונות, כולל סריקה לאיתור נקודות חולשה. הכלים האלה משתמשים בסוכן משתמש ובכותרות אחרות ידועות. תצפית curl פועלת עם כותרת User-Agent ידועה:
מ-Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
פלט
HTTP/1.1 200 OK <...>
צפייה בהתקפת פרוטוקול: פיצול HTTP
אפליקציות אינטרנט מסוימות משתמשות בקלט מהמשתמש כדי ליצור את הכותרות בתגובות. אם האפליקציה לא מסננת את הקלט בצורה נכונה, תוקף עלול להרעיל את פרמטר הקלט באמצעות הרצף %0d%0a (רצף CRLF שמשמש להפרדת שורות שונות). לאחר מכן, התגובה עשויה להתפרש כשתי תגובות על ידי כל דבר שמתרחש בניתוח שלה, כמו שרת proxy מתווך, שעשוי להציג תוכן שקרי בבקשות הבאות. מוסיפים את הרצף %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 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, אפשר להחיל כללים שמחפשים תווי %0d של חזרה לתחילת השורה (CR) ו-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 דקות). כשתהיו בטוחים שעבר מספיק זמן, תוכלו לבדוק את נקודות החולשה שהוכחה בעבר כדי לאשר את אכיפת הכללים של Cloud Armor WAF בשלב הבא.
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 <..>
איך מוודאים שהתקיפה של הפרוטוקול מצמצמת
בהתאם ל-OWASP ModSecurity Core כלל 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 – חסימת 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 ומרחיבים את פרטי היומן כדי לצפות בשם של מדיניות האבטחה שנאכפת, בערך השדה התואם ובמזהים של הביטויים שהוגדרו מראש (או במזהה החתימה). בצילומי המסך הבאים אפשר לראות דוגמאות ליומנים של כללי מדיניות האבטחה שנאכפים, שהוגדרו ב-Codelab הזה.
יומן LFI
יומן RCE
יומן זיהוי הסורק
יומן התקפות של פרוטוקול
יומן תיקון סשנים
10. ניקוי מעבדה
בסיום שיעור ה-Lab, צריך למחוק את המשאבים.
מריצים את הפקודות האלה כדי למחוק את מדיניות האבטחה של 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. מעולה!
מזל טוב, השלמת את שלבי ה-Codelab של כללי WAF המוגדרים מראש ב-Cloud Armor.
אילו נושאים דיברנו?
- איך מגדירים קבוצת מכונות ומאזן עומסים גלובלי של Cloud Load Balancer
- איך להגדיר כללי מדיניות אבטחה של Cloud Armor עם כללי WAF מוגדרים מראש להגנה מפני lfi, rce, סורקים, מתקפות פרוטוקולים וקיבוע פעילות
- איך לוודא ש-Cloud Armor הפחית חלק מ-10 ההתקפות המובילות של OWASP באמצעות יומנים
השלבים הבאים
- הגנה על האפליקציה שלך מפני נקודות החולשה המובילות של OWASP באמצעות כללי WAF מוגדרים מראש של Cloud Armor
- שיפור כללי הכוונון על סמך רמות הרגישות
- תוכלו להיעזר בחומר העזר בנושא שפה של כללים מותאמים אישית כדי לבצע אכיפת אבטחה ספציפית יותר.