במאמר הזה מוסבר איך לפרוס באופן אוטומטי כללים מוצעים שנוצרו על ידי התכונה 'הגנה דינמית' ב-Google Cloud Armor. כדי להפעיל פריסה אוטומטית, יוצרים כלל 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 משתמש בערך ברירת המחדל.
סף עומס: במהלך מתקפה שמוצגת לגביה התראה, Adaptive Protection מזהה תוקפים חדשים רק כשהעומס על שירות לקצה העורפי שנמצא תחת מתקפה חורג מהסף הזה. בנוסף, הכללים נפרסים אוטומטית רק לגבי התראות כשהעומס על שירות לקצה העורפי שנמצא תחת מתקפה חורג מהסף הזה.
ערך ברירת המחדל:
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: אחרי שמגדירים פריסה אוטומטית של כללים, כל יומן התראות שנוצר על ידי ההגנה האדפטיבית כולל את השדה הבוליאניautoDeployed, שמציין אם הופעלה הגנה אוטומטית. אם הערך שלautoDeployedהואtrue, המשמעות היא שהכלל של placeholderevaluateAdaptiveProtectionAutoDeploy()כבר העריך שרמות הסמך של המתקפה והסף של בסיס ההשוואה שהושפעו חרגו מהפרמטרים שהוגדרו לפריסה אוטומטית. לאחר מכן המערכת מתחילה לעקוב אחרי העומס הדינמי. ברגע שהעומס חורג מסף העומס שהוגדר, הכלל נפרס באופן אוטומטי כדי לצמצם את ההשפעה של המתקפה. -
adaptiveProtection.autoDeployAlertId: בכל פעם שהגנה דינמית מבצעת פעולה בבקשה כחלק מהגנה אוטומטית, ביומן הבקשות מופיע השדה הנוסףadaptiveProtection.autoDeployAlertId, שבו מתועד מזהה ההתראה. השדה הזה מופיע בקטעenforcedSecurityPolicyאוpreviewSecurityPolicy, בהתאם למצב התצוגה המקדימה של מדיניות האבטחה.
כדי לראות את יומני הבקשות, אפשר לעיין במאמר בנושא שימוש ביומן הבקשות. בצילום המסך הבא מוצגת דוגמה לרשומה ביומן של Adaptive Protection, עם השדות autoDeployed ו-adaptiveProtection.autoDeployAlertId.
מגבלות
- הגנה אדפטיבית זמינה רק למדיניות אבטחה של קצה עורפי שמצורפת לשירותים של קצה עורפי שנחשפים דרך מאזן עומסים חיצוני של אפליקציות (ALB). ההגנה האדפטיבית לא זמינה למאזני עומסי רשת חיצוניים לשרת proxy.