הגדרת Cloud IDS

במאמר הזה מוסבר איך להגדיר את Cloud IDS לאפליקציה. צריכים מידע כללי יותר על Cloud IDS? קראו את הסקירה הזאת.

לפני שמתחילים

לפני שאתם מגדירים את Cloud IDS, בצעו את הפעולות הבאות.

הגדרת ההרשאות ל-Cloud IDS ב-IAM

ל-Cloud IDS יש כמה תפקידים ב-IAM (המערכת לניהול הזהויות והרשאות הגישה). אתם יכולים להיעזר בפקודות לדוגמה שכאן כדי לתת לישות מורשית את ההרשאות הנדרשות ב-IAM.

  • התפקיד Cloud IDS Admin‏ (roles/ids.admin). משתמשים עם התפקיד הזה ברמת הפרויקט יכולים ליצור נקודות קצה של IDS. אם אתם בעלי הפרויקט, כבר יש לכם את ההרשאה הזו. אתם לא צריכים את התפקיד הספציפי ids.admin כדי ליצור נקודות קצה של IDS.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/ids.admin \
        --member=user:USER_NAME ;
    

    התפקיד הזה מאפשר:

    • ליצור נקודות קצה
    • למחוק נקודות קצה
    • לקבל נקודות קצה
    • לראות רשימה של נקודות הקצה
  • התפקיד Cloud IDS Viewer (roles/ids.viewer). למשתמשים עם הרשאת צפייה ועם התפקיד הזה בפרויקט יש הרשאת קריאה בלבד בנקודות קצה של IDS. אם אתם בעלי הפרויקט, או אם יש לכם הרשאת צפייה או עריכה בו, כבר יש לכם את ההרשאה הזו.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/ids.viewer \
        --member=user:USER_NAME ;
    
  • התפקיד Compute packet mirroring user ‏ (roles/compute.packetMirroringUser). צריך את התפקיד הזה כדי לצרף מדיניות רפליקציה של חבילות נתונים לנקודת הקצה של IDS. אם יש לכם את התפקיד compute.securityAdmin או container.serviceAgent, כבר יש לכם את ההרשאה הזו. קראו הסבר על התפקיד הזה מתוך המאמר תפקידים בסיסיים ומוגדרים מראש ב-IAM

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/compute.packetMirroringUser \
        --member=user:USER_NAME ;
    
  • התפקיד Logs Viewer (roles/logging.viewer). תפקיד נוסף שצריך כדי לראות את האיומים האחרונים, תכונה קריטית של Cloud IDS. קראו הסבר על התפקיד הזה במדריך בקרת הגישה.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/logging.viewer \
        --member=user:USER_NAME ;
    

אתם צריכים גם את ההרשאות הבאות:

  • compute.regions.list
  • compute.zones.list

הגדרת הגישה לשירותים פרטיים

כדי ליצור נקודות קצה של IDS, אתם צריכים להפעיל את Service Networking API ולהגדיר קישור בין רשתות שכנות לרשת של הענן הווירטואלי הפרטי (VPC). את ההגדרה אתם יכולים לעשות באמצעות מסוףGoogle Cloud או Google Cloud CLI, וצריכים לעשות רק פעם אחת לכל פרויקט. כשאתם מקצים טווח כתובות IP, הוא צריך להיות של כתובות פרטיות שתואם ל-RFC 1918 ‏(10.0.0.0/8,‏ 172.16.0.0/12 או 192.168.0.0/16), אחרת לא תוכלו ליצור את נקודת הקצה.

איך מגדירים את הגישה לשירותים פרטיים

  1. מפעילים את Service Networking API באמצעות הפקודה הבאה (מחליפים את PROJECT_ID במזהה הפרויקט).

     gcloud services enable servicenetworking.googleapis.com \
         --project=PROJECT_ID
    
  2. מקצים טווח של כתובות IP לשירותי Google ברשת ה-VPC. אם כבר הגדרתם גישה לשירותים פרטיים בשביל שירות אחר, אתם צריכים להקצות טווח כתובות IP נפרד וייחודי בשביל Cloud IDS.

    בפקודה הבאה, אפשר להשמיט את השדה addresses וייבחר ב-Google Cloud טווח כתובות שלא נמצא בשימוש ברשת ה-VPC:

     gcloud compute addresses create RESERVED_RANGE_NAME \
         --global \
         --purpose=VPC_PEERING \
         --addresses=192.168.0.0 \
         --prefix-length=16 \
         --description="DESCRIPTION" \
         --network=VPC_NETWORK
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RESERVED_RANGE_NAME: שם לטווח שהוקצה, למשל my-allocated-range

    • DESCRIPTION: תיאור הטווח, למשל allocated for my-service

    • VPC_NETWORK: השם של רשת ה-VPC, למשל my-vpc-network

  3. יוצרים חיבור פרטי לבעלים של השירות המנוהל. החיבור הפרטי יוצר קישור בין רשת ה-VPC לרשת של ספק השירות.

    אם כבר יש חיבור פרטי, אפשר להשתמש בפקודה gcloud services vpc-peerings update כדי לעדכן אותו בטווח הנוסף שהקציתם ל-Cloud IDS:

      gcloud services vpc-peerings update \
          --service=servicenetworking.googleapis.com \
          --ranges=RESERVED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
    

    אם עדיין אין חיבור פרטי, משתמשים בפקודה gcloud services vpc-peerings connect. היא תפעיל פעולה ממושכת שתחזיר שם פעולה.

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=RESERVED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RESERVED_RANGE_NAME: השמות של הטווחים שהוקצו (לפחות אחד)

    • VPC_NETWORK: השם של רשת ה-VPC

    • PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC

    כדי לבדוק אם הפעולה הצליחה, משתמשים בפקודה gcloud services vpc-peerings operations describe:

      gcloud services vpc-peerings operations describe \
          --name=OPERATION_NAME
    

    מחליפים את OPERATION_NAME בשם הפעולה שהתקבל בשלב הקודם.

חוזרים על שלבים 2 ו-3 לכל רשת VPC שרוצים לעקוב אחריה.

הפעלת VPC Service Controls (לא חובה)

אחרי שתפעילו גישה לשירותים פרטיים, אתם יכולים להפעיל גם את השירות VPC Service Controls ב-Cloud IDS. כשהוא פועל, אתם יכולים להריץ את הפקודה services vpc-peerings enable-vpc-service-controls כדי להפעיל את VPC Service Controls לכל הקישורים לרשתות השכנות.

gcloud services vpc-peerings enable-vpc-service-controls \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK \
    --project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • VPC_NETWORK: השם של רשת ה-VPC

  • PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC

הסבר על השיטות המומלצות

לפני שאתם מגדירים את Cloud IDS, כדאי שתקראו ותבינו מה השיטות המומלצות.

הגדרת נקודות הקצה של Cloud IDS

בחלקים הבאים מוסבר איך ליצור, לראות ולמחוק נקודות קצה של Cloud IDS, לצרף אותן למדיניות רפליקציה של חבילות נתונים ולהגדיר חריגות לאיומים.

איך יוצרים נקודות קצה של Cloud IDS

אנחנו ממליצים לכם ליצור נקודת קצה של IDS לכל אזור שבו פרסתם עומסי עבודה. אתם יכולים גם ליצור כמה נקודות קצה של IDS לכל אזור. היעזרו בהוראות שכאן כדי ליצור נקודת קצה של IDS ולהקצות לה פרופיל שירות.

המסוף

נכנסים לדף IDS Endpoints במסוף Google Cloud .

לדף IDS Endpoints

מגדירים את נקודת הקצה:

  1. לוחצים על Create endpoint.
  2. נותנים לה שם בשדה Endpoint name.
  3. אם רוצים, מוסיפים תיאור בשדה Description.
  4. לוחצים על הרשימה Network ובוחרים את הרשת שרוצים ש-Cloud IDS יבדוק.
    1. בוחרים את האזור והתחום של הרשת או רשת המשנה מהרשימות Region ו-Zone.
    2. לוחצים על Continue.

בוחרים את פרופיל השירות של Cloud IDS:

  1. לוחצים על Select IDS service profile.
  2. בהגדרה Minimum threat severity level, בוחרים את רמת החומרה המינימלית שתפעיל התראה.
  3. לוחצים על Create. תהליך יצירת הפרופיל יימשך 10-15 דקות.

gcloud

דגלים אופציונליים

יכול להיות שכשתריצו את הפקודות שמופיעות בחלק הזה תראו את הדגלים הבאים:

--no-async
המתנה שהפעולה תסתיים, במקום חזרה מיידית.
--filter=EXPRESSION
הוספת ביטוי סינון בוליאני לכל משאב שיופיע ברשימה. אם הערך של הביטוי הוא True, המשאב יופיע. כדי לראות עוד פרטים ודוגמאות לביטויי סינון, הריצו את הפקודה gcloud topic filters. הדגל הזה משתלב עם דגלים אחרים, בסדר הזה: --flatten, ‏--sort-by, ‏--filter ו---limit.
--limit=LIMIT
המספר המקסימלי של המשאבים שיופיעו ברשימה. ברירת המחדל היא בלי הגבלה. הדגל הזה משתלב עם דגלים אחרים, בסדר הזה: --flatten, ‏--sort-by, ‏--filter ו---limit.
--page-size=PAGE_SIZE
חלוקת הרשימה של קבוצות המשאבים של Cloud IDS לדפים. הדגל הזה קובע את המספר המקסימלי של משאבים לדף. אם השירות תומך בחלוקה לדפים, הוא קובע את ברירת המחדל. אחרת, אין הגבלה או חלוקה לדפים. אתם יכולים להוסיף את החלוקה לדפים לפני או אחרי הדגלים --filter ו---limit, בהתאם לשירות.
--sort-by=[FIELD,…]
רשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם רשימת המשאבים תמוין. ברירת המחדל היא בסדר עולה. כדי שהמיון יהיה בסדר יורד, צריך להוסיף טילדה (~) בתחילת השדה. הדגל הזה משתלב עם דגלים אחרים, בסדר הזה: --flatten, ‏--sort-by, ‏--filter ו---limit.
--uri
הדפסת רשימה של מזהי URI של משאבים במקום פלט ברירת המחדל.
--threat-exceptions
רשימה מופרדת בפסיקים של חריגות: מזהי איומים שלא יפעילו התראה בנקודת הקצה. הרשימה יכולה להכיל 99 חריגות לכל נקודת קצה.

הוראות

כדי ליצור נקודת קצה חדשה של IDS, משתמשים בפקודה gcloud ids endpoints create.

 gcloud ids endpoints create ENDPOINT_NAME \
     --network=VPC_NETWORK \
     --zone=ZONE \
     --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_NAME: השם או המזהה של נקודת הקצה
  • VPC_NETWORK: השם של רשת ה-VPC
  • ZONE: התחום של נקודת הקצה
  • SEVERITY: רמת החומרה המינימלית של האיומים שיפעילו התראה

    חובה להשתמש באחד מהערכים הבאים בדגל החוּמרה:

    • INFORMATIONAL
    • LOW
    • MEDIUM
    • HIGH
    • CRITICAL

API

למשאבים של נקודות הקצה של Cloud IDS יש את השדות הבאים:

שדה סוג תיאור
createTime מחרוזת [רק פלט] חותמת הזמן של שעת היצירה, בפורמט טקסט RFC 3339.
updateTime מחרוזת [רק פלט] חותמת הזמן של שעת העדכון האחרון, בפורמט טקסט RFC 3339.
name מחרוזת [רק פלט] השם של נקודת הקצה, בפורמט projects/{project_id}/locations/{locationId}/endpoints/{endpointId}.
network מחרוזת השם של רשת ה-VPC שמחוברת לנקודת הקצה של IDS. חובה למלא את השדה הזה כשיוצרים את נקודת הקצה, והוא יכול להכיל או את השם של רשת ה-VPC (למשל "src-net") או את כתובת ה-URL המלאה שלה (למשל "projects/{project_id}/global/networks/src-net").
severity מחרוזת

רמת החוּמרה המינימלית שתפעיל התראה בנקודת הקצה. הערכים האפשריים הם:

  • INFORMATIONAL
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL

חובה למלא את השדה הזה כשיוצרים את נקודת הקצה.

description מחרוזת התיאור של נקודת הקצה. לא חובה למלא אותו.
endpoint_forwarding_rule מחרוזת [רק פלט] כתובת ה-URL של נקודת הקצה ברשת, שאליה תישלח התעבורה ברפליקציה של חבילות נתונים.
endpoint מחרוזת [רק פלט] כתובת ה-IP הפנימית של נקודת הכניסה לרשת של נקודת הקצה.

כדי ליצור נקודת קצה של Cloud IDS, צריך להשתמש בבקשת HTTP POST כמו זו שכאן, ולהחליף את המשתנים לפי הצורך. המשתנה ENDPOINT_NAME צריך לכלול בין 1 ל-63 תווים – רק אותיות קטנות באנגלית, ספרות ומקפים, להתחיל באות קטנה ולא להסתיים במקף.

POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
  "network": "NETWORK_NAME",
  "severity": "SEVERITY_LEVEL",
}

איך מצרפים מדיניות רפליקציה של חבילות נתונים לנקודת קצה של Cloud IDS

אתם יכולים להיעזר בהוראות שכאן כדי לצרף לנקודת קצה של IDS מדיניות רפליקציה של חבילות נתונים.

המסוף

מצרפים את המדיניות אחרי שיוצרים את נקודת הקצה:

  1. נכנסים לדף IDS Endpoints במסוף Google Cloud .

    לדף IDS Endpoints

  2. ליד נקודת הקצה של IDS, לוחצים על Attach.

  3. בשדה Policy name, כותבים את השם של מדיניות הרפליקציה של חבילות נתונים.

  4. לוחצים על Next.

  5. בוחרים את רשת המשנה או את המכונות לרפליקציה. אפשר לבחור כמה רשתות משנה ומכונות.

  6. לוחצים על Next.

  7. מחליטים אם רוצים להפעיל רפליקציה לכל תעבורת הנתונים או לסנן אותה:

    1. אם רוצים להפעיל רפליקציה לכל התעבורה, מוודאים שהאפשרות Mirror All Traffic מסומנת.
    2. אם רוצים לסנן אותה לפי פרוטוקול, טווח כתובות IP או כיוון (נכנסת או יוצאת), בוחרים באפשרות Mirror filtered traffic:
      1. בוחרים אפשרות: Allow all protocols או Allow specific protocols.
      2. בוחרים אפשרות: Allow all IP ranges או Allow specific IP ranges.
  8. לוחצים על Submit. נקודת הקצה תיווצר.

gcloud

  1. מצרפים את המדיניות אחרי שיוצרים את נקודת הקצה של IDS. קודם כל, מקבלים את כתובת ה-URL מהשדה endpoint_forwarding_rule באמצעות הפקודה הזו:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  2. יוצרים את מדיניות הרפליקציה של חבילות נתונים באמצעות הפקודה הזו:

     gcloud compute packet-mirrorings create POLICY_NAME \
         --region=REGION \
         --collector-ilb=ENDPOINT_FORWARDING_RULE \
         --network=VPC_NETWORK \
         --mirrored-subnets=SUBNET
    
  3. ברפליקציה של חבילות נתונים אפשר להשתמש בכמה דגלים, כולל בשביל לסנן את תעבורת הנתונים לפי פרוטוקול, טווח כתובות IP או כיוון (נכנסת או יוצאת). למידע נוסף על דגלים ברפליקציה של חבילות נתונים

התיאור של נקודות הקצה של Cloud IDS

אתם יכולים להיעזר בהוראות שכאן כדי לתאר את נקודות הקצה של IDS.

המסוף

  1. נכנסים לדף IDS Endpoints במסוף Google Cloud .

    לדף IDS Endpoints

  2. בדף IDS Endpoints, לוחצים על השם של נקודת הקצה. הדף Endpoint details ייפתח.

gcloud

כדי להוסיף לנקודת הקצה תיאור, משתמשים בפקודה gcloud ids endpoints describe.

gcloud ids endpoints describe ENDPOINT_NAME \
    [--project=PROJECT_ID] \
    [--zone=ZONE] \
    [GCLOUD_WIDE_FLAG...]

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_NAME: השם או המזהה של נקודת הקצה
  • PROJECT_ID: מזהה הפרויקט
  • ZONE: התחום של נקודת הקצה

API

כדי לקבל את נקודת הקצה של Cloud IDS, משתמשים בבקשת HTTP GET כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

איך רואים את רשימת נקודות הקצה של Cloud IDS

אתם יכולים להיעזר בהוראות שכאן כדי לראות רשימה עם כל נקודות הקצה של IDS.

המסוף

  1. נכנסים לדף IDS Endpoints במסוף Google Cloud .

    לדף IDS Endpoints

gcloud

כדי לראות את רשימת נקודות הקצה של IDS, משתמשים בפקודה gcloud ids endpoints list:

gcloud ids endpoints list \
    [--filter=EXPRESSION] \
    [--limit=LIMIT] \
    [--page-size=PAGE_SIZE] \
    [--sort-by=[FIELD,...]] \
    [--uri] \
    [GCLOUD_WIDE_FLAG...]

מחליפים את מה שכתוב בשדות הבאים:

  • EXPRESSION: הוספת מסנן בוליאני לכל משאב שיופיע ברשימה. אם הערך של הביטוי הוא True, המשאב יופיע.
  • LIMIT: המספר המקסימלי של המשאבים שיופיעו ברשימה
  • PAGE_SIZE: המספר המקסימלי של המשאבים שיופיעו בכל דף
  • FIELD: רשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם רשימת המשאבים תמוין

API

כדי לראות רשימה של כל נקודות הקצה של Cloud IDS בתחום מסוים, משתמשים בבקשת HTTP GET כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints

אם רוצים לראות רשימה של כל נקודות הקצה של Cloud IDS בכל התחומים, אפשר להחליף את ZONE במקף, כמו כאן:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints

איך מוחקים נקודות קצה של Cloud IDS

אתם יכולים להיעזר בהוראות שכאן כדי למחוק נקודות קצה של IDS.

המסוף

  1. נכנסים לדף IDS Endpoints במסוף Google Cloud .

    לדף IDS Endpoints

  2. בדף IDS Endpoints, לוחצים על השם של נקודת הקצה. הדף Endpoint details ייפתח.

  3. לוחצים על Delete Endpoint.

gcloud

כדי למחוק את נקודת הקצה, משתמשים בפקודה gcloud ids endpoints delete.

gcloud ids endpoints delete ENDPOINT_NAME \
    [--project=PROJECT_ID] \
    [--zone=ZONE] \
    [--no-async] \
    [GCLOUD_WIDE_FLAG...]

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_NAME: השם או המזהה של נקודת הקצה
  • PROJECT_ID: מזהה הפרויקט
  • ZONE: התחום של נקודת הקצה

API

כדי למחוק את נקודת הקצה של Cloud IDS, משתמשים בבקשת HTTP DELETE כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:

DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

הגדרת חריגות לאיומים (לא חובה)

אם יש איומים שהם רעשי רקע או שלא צריך לדווח עליהם, אתם יכולים להשתמש בדגל --threat-exceptions עם המזהים שלהם כשאתם יוצרים או מעדכנים את נקודת הקצה של Cloud IDS, והם יוחרגו. בדוגמה שכאן, אנחנו מעדכנים את נקודת הקצה של Cloud IDS‏ ENDPOINT_NAME כדי להחריג את מזהי האיומים THREAT_ID1 ו-THREAT_ID2:

gcloud ids endpoints update ENDPOINT_NAME \
    --threat-exceptions=THREAT_ID1,THREAT_ID2

איך רואים את יומני האיומים

אתם יכולים להיעזר בהוראות שכאן כדי לבדוק אם נוצרו יומני איומים.

  1. במסוף Google Cloud , פותחים את הדף IDS Threats.

    לדף IDS Threats

  2. לוחצים על שם האיום כדי לפתוח את דף הפרטים שלו (Threat details).

  3. חוזרים לכרטיסייה Threats.

  4. לוחצים על התפריט מימין לנקודת הקצה של IDS ואז על View threat logs.

המאמרים הבאים