במאמר הזה מוסבר איך לפרוס באופן אוטומטי כללים מוצעים שנוצרו על ידי התכונה 'הגנה דינמית' ב-Google Cloud Armor. כדי להפעיל פריסה אוטומטית, יוצרים כלל placeholder עם הערכים הבאים:
- ביטוי להתאמה:
evaluateAdaptiveProtectionAutoDeploy() - פעולה: כל פעולה
- עדיפות: כל ערך. מומלץ להוסיף את כלל ה-placeholder
evaluateAdaptiveProtectionAutoDeploy()בעדיפות נמוכה יותר מכל כללי ההיתר או הדחייה הסטטיים, כדי לוודא שההגבלות על התנועה המוכרת תמיד מוערכות.
אם אתם משתמשים בשרת proxy במעלה הזרם לפני מאזן העומסים של אפליקציות (ALB) החיצוני שלכם, כמו CDN של צד שלישי, אתם יכולים להגדיר את כלל הפלייסהולדר כך שיתאים לבקשות על סמך כתובת ה-IP המקורית של הלקוח מכותרת או מכותרות שצוינו. כדי להשתמש בתכונת התצוגה המקדימה הזו, צריך להגדיר את האפשרות userIpRequestHeaders[] בשדה advancedOptionsConfig. מידע נוסף זמין במאמר בנושא ComputeSecurityPolicy.
דוגמאות לכללי placeholder
הפקודות הבאות הן דוגמאות לכללי placeholder למדיניות אבטחה בשם POLICY_NAME, שלכל אחת מהן יש פעולת כלל שונה.
אפשר להוסיף את הכללים האלה למדיניות אבטחה קיימת או ליצור מדיניות חדשה. מידע נוסף על יצירת כללי מדיניות אבטחה זמין במאמר יצירה והצגה של כללי מדיניות אבטחה ב-Cloud Armor.
חסימה של תנועה זדונית
הכלל הזה מחזיר את הערך true לבקשות שזוהו על ידי Adaptive Protection כתנועה של התקפה. Cloud Armor מחיל את פעולת החסימה על הבקשה התוקפת:
gcloud compute security-policies rules create 1000 \
--security-policy POLICY_NAME \
--expression "evaluateAdaptiveProtectionAutoDeploy()" \
--action deny-403
הפניה של תנועה זדונית למבחן reCAPTCHA
בדוגמה הזו, הכלל מפנה תעבורה שמזוהה על ידי Adaptive Protection כזדונית למבחן reCAPTCHA:
gcloud compute security-policies rules create 1000 \
--security-policy POLICY_NAME \
--expression "evaluateAdaptiveProtectionAutoDeploy()" \
--action redirect \
--redirect-type google-recaptcha
הגבלת קצב של תנועה זדונית
בדוגמה הזו, הגבלת קצב של יצירת בקשות ב-Cloud Armor מוחלת על תנועה שזוהתה על ידי Adaptive Protection כתנועה זדונית:
gcloud compute security-policies rules create 1000 \
--security-policy POLICY_NAME \
--expression "evaluateAdaptiveProtectionAutoDeploy()" \
--action throttle \
--rate-limit-threshold-count 500 \
--rate-limit-threshold-interval-sec 120 \
--conform-action allow \
--exceed-action deny-404 \
--enforce-on-key ip
הגדרת פרמטרים לפריסה אוטומטית של הגנה דינמית
אפשר להגדיר את ערכי הסף לפריסה אוטומטית של כללים על ידי שינוי הפרמטרים הבאים. אם לא מציינים ערך לפרמטר, Cloud Armor משתמש בערך ברירת המחדל.
סף עומס: במהלך מתקפה שהתקבלה לגביה התראה, ההגנה הדינמית מזהה תוקפים חדשים רק כשהעומס על שירות לקצה העורפי שנמצא תחת מתקפה חורג מהסף הזה. בנוסף, הכללים נפרסים אוטומטית רק לגבי התראות כשהעומס על שירות לקצה העורפי שנמצא תחת מתקפה חורג מהסף הזה.
ערך ברירת המחדל:
0.8
ערך סף של רמת סמך: כללים נפרסים אוטומטית רק להתראות על מתקפות פוטנציאליות עם ציוני רמת סמך שגבוהים מערך הסף הזה.
- ערך ברירת המחדל:
0.5
- ערך ברירת המחדל:
ערך הסף של נתוני הבסיס שהושפעו: כללים מופעלים אוטומטית רק אם ההשפעה המשוערת על תנועת הבסיס מההמלצה לצמצום הסיכון נמוכה מערך הסף הזה. הערכים של
impactedBaselineProportionושלimpactedBaselinePolicyProportionצריכים להיות נמוכים מסף הבסיס שמושפע.- ערך ברירת המחדל:
0.01(1%)
- ערך ברירת המחדל:
תוקף מוגדר: אחרי משך הזמן הזה, Cloud Armor מפסיק להחיל את הפעולה בכלל שנפרס באופן אוטומטי על תוקף מזוהה. הכלל ממשיך לפעול על בקשות חדשות.
- ערך ברירת המחדל:
7200שניות
- ערך ברירת המחדל:
הפקודה הבאה מוסיפה הגדרות של סף להגנה מפני מתקפות DDoS בשכבה 7 למדיניות האבטחה.
gcloud compute security-policies add-layer7-ddos-defense-threshold-config NAME [FLAG = VALUE]
מחליפים את מה שכתוב בשדות הבאים:
-
NAME: השם של מדיניות האבטחה. -
FLAG: פרמטר ערך הסף להגנה. -
VALUE: הערך של פרמטר הסף של ההגנה.
מידע נוסף מופיע במאמר הגדרת יחידות תנועה מפורטות.
הפקודה הבאה מעדכנת את מדיניות האבטחה כך שתשתמש בספים שאינם ברירת מחדל, שנפרסו באופן אוטומטי. אפשר להגדיר לכל היותר אחד מהפרמטרים auto_deploy_config ו-threshold_config. הגדרת יותר מדגל אחד גורמת לשגיאה.
gcloud beta compute security-policies update NAME [
--layer7-ddos-defense-auto-deploy-PARAMETER VALUE
]
מחליפים את מה שכתוב בשדות הבאים:
-
NAME: השם של מדיניות האבטחה. -
PARAMETER: הפרמטר auto-deploy. הוא אחד מהבאים:load-thresholdconfidence-thresholdimpacted-baseline-thresholdexpiration-sec
-
VALUE: הערך של הפרמטר auto-deploy.
רישום ביומן
בלוגים שנוצרים על ידי כללים שנפרסים באופן אוטומטי באמצעות ההגנה הדינמית יש את השדות הנוספים הבאים:
-
autoDeployed: אחרי שמגדירים פריסה אוטומטית של כללים, כל יומן התראות שנוצר על ידי Adaptive Protection כולל את השדה הבוליאניautoDeployed, שמציין אם הופעלה הגנה אוטומטית. אם הערך שלautoDeployedהואtrue, המשמעות היא שכלל placeholderevaluateAdaptiveProtectionAutoDeploy()כבר העריך שרמות הסמך של המתקפה וההשפעה על נקודת הבסיס חרגו מהפרמטרים המוגדרים של הפריסה האוטומטית. לאחר מכן המערכת מתחילה לעקוב אחרי העומס הדינמי. ברגע שהעומס חורג מסף העומס שהוגדר, הכלל נפרס באופן אוטומטי כדי לצמצם את ההשפעה של המתקפה. -
adaptiveProtection.autoDeployAlertId: בכל פעם שהגנה דינמית מבצעת פעולה בבקשה כחלק מהגנה אוטומטית, ביומן הבקשות מופיע השדה הנוסףadaptiveProtection.autoDeployAlertId, שבו מתועד מזהה ההתראה. השדה הזה מופיע בקטעenforcedSecurityPolicyאוpreviewSecurityPolicy, בהתאם למצב התצוגה המקדימה של מדיניות האבטחה.
כדי לראות את יומני הבקשות, אפשר לעיין במאמר בנושא שימוש ביומן הבקשות. בצילום המסך הבא אפשר לראות דוגמה לרשומה ביומן של Adaptive Protection, עם השדות autoDeployed ו-adaptiveProtection.autoDeployAlertId.
מגבלות
- הגנה אדפטיבית זמינה רק למדיניות אבטחה של קצה עורפי שמצורפת לשירותי קצה עורפי שנחשפים דרך מאזן עומסים חיצוני של אפליקציות (ALB). ההגנה האדפטיבית לא זמינה למאזני עומסי רשת חיצוניים לשרת proxy.