שילוב של BigQuery עם Google SecOps

במאמר הזה מוסבר איך לשלב את BigQuery עם Google Security Operations.

תרחישים לדוגמה

השילוב עם BigQuery משתמש ביכולות של Google SecOps כדי לתמוך בתרחישי השימוש הבאים:

  • העשרה של נתוני מודיעין איומים: העשרה אוטומטית של התראות אבטחה בנתוני מודיעין איומים שמאוחסנים ב-BigQuery, כדי להעריך את חומרת האיומים הפוטנציאליים ואת מהימנותם.

  • ניתוח התנהגות משתמשים: זיהוי פעילות חריגה של משתמשים באמצעות ניתוח של יומנים היסטוריים שמאוחסנים ב-BigQuery, כדי לזהות איומים פנימיים וחשבונות שנפרצו.

  • ניתוח של מאגר נתונים מרכזי לאבטחה: אפשר להשתמש ביכולות השאילתות של BigQuery כדי לנתח נפחים גדולים של נתוני אבטחה שנאספים ממקורות שונים, ולשפר את איתור האיומים.

  • ניתוח מתקדם של למידת מכונה (ML) ו-AI: אפשר ליצור מודלים מותאמים אישית להגנה חזויה וחישוב של ציון סיכונים אוטומטי באמצעות נתוני אבטחה היסטוריים ו-BigQuery ML.

  • שמירת נתונים לטווח ארוך: אפשר לארכב נתונים של אירועים שנפתרו ב-BigQuery כדי לאחסן אותם לטווח ארוך בצורה חסכונית, ולתמוך בתאימות ובביקורות משפטיות.

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

לפני שמגדירים את השילוב של BigQuery ב-Google SecOps, צריך לבצע את השלבים המקדימים הבאים:

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

  2. יוצרים חשבון שירות.

  3. בוחרים ומגדירים אחת משיטות האימות הבאות:

    • אפשרות 1: Workload Identity (מומלץ): בשיטה הזו נעשה שימוש באסימוני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות.

    • אפשרות 2: מפתח JSON של חשבון שירות: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך.

מתן תפקידים ב-IAM

מתן ההרשאות הנדרשות לחשבון השירות מאפשר לשילוב להריץ משימות ולגשת לנתונים שלכם. התפקידים הרגילים הבאים מנוהלים על ידי Google Cloud ומתעדכנים באופן אוטומטי אם יש שינויים בדרישות של ה-API. כדי להקצות את התפקידים האלה לחשבון השירות:

  1. במסוף Google Cloud , נכנסים אל IAM.

    כניסה לדף IAM

  2. מאתרים את חשבון השירות ברשימת חשבונות המשתמשים ולוחצים על עריכת חשבון משתמש (עריכה).

  3. לוחצים על Add another role ובוחרים באפשרויות הבאות:

    • BigQuery User (roles/bigquery.user): מאפשר לתהליך השילוב להריץ משימות, כולל שאילתות, בתוך הפרויקט.

    • ‫BigQuery Data Viewer (roles/bigquery.dataViewer): מאפשר לשילוב לקרוא נתונים ומטא-נתונים ממערכי נתונים ומטבלאות.

    • Service Usage Consumer (roles/serviceusage.serviceUsageConsumer): חובה להגדיר את ההרשאה הזו אם מגדירים את Quota Project ID בהגדרות השילוב.

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

יצירה של חשבון שירות

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.

    לדף Service accounts

  2. לוחצים על addCreate service account (הוספהיצירת חשבון שירות).

  3. מזינים שם ותיאור ולוחצים על יצירה והמשך.

  4. בשלב Grant this service account access to project, מוסיפים את התפקידים שזוהו בשלב הקודם.

  5. לוחצים על סיום. רושמים את כתובת האימייל של חשבון השירות.

הגדרת פרטי כניסה של Workload Identity

מומלץ להשתמש ב-Workload Identity כי הוא משתמש באסימוני גישה לטווח קצר באמצעות התחזות לחשבון שירות.

זיהוי הזהות הייחודית של המופע

כדי ליצור חיבור, צריך לתת למופע של Google SecOps הרשאה להתחזות לחשבון השירות שלכם.

  1. ב-Google SecOps, עוברים אל Content Hub > Response Integrations.

  2. בוחרים בשילוב BigQuery ומזינים את כתובת האימייל בחשבון השירות בשדה Workload Identity Email.

  3. לוחצים על שמירה > בדיקה. הבדיקה צפויה להיכשל.

  4. לוחצים על הכפתור close_small לצד בדיקה ומאתרים את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

  5. מעתיקים את כתובת האימייל הייחודית הזו.

נותנים הרשאה לזהות המופע ב- Google Cloud

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.

    לדף Service accounts

  2. בוחרים את חשבון השירות של היעד ועוברים אל הרשאות > הענקת גישה.

  3. מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (roles/iam.serviceAccountTokenCreator).

הגדרת מפתח JSON

קבצים סטטיים של מפתחות סודיים לטווח ארוך מחייבים רוטציה ידנית. משתמשים בשיטה הזו רק אם אימות באמצעות Workload Identity לא זמין.

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts ובוחרים את חשבון השירות.

    לדף Service accounts

  2. עוברים לכרטיסייה מפתחות ולוחצים על הוספת מפתח > יצירת מפתח חדש.

  3. בוחרים באפשרות JSON ולוחצים על Create (יצירה). הקובץ יורד אוטומטית למחשב.

הגדרת פרמטרים ידנית

אם בוחרים להזין את פרטי הכניסה באופן ידני, צריך להשאיר את קובץ מפתח ה-JSON שהורד פתוח בכלי לעריכת טקסט כדי להעתיק את הערכים הנדרשים בהגדרות השילוב.

פרמטרים של שילוב

כדי ליצור קישור בין Google SecOps לבין BigQuery, צריך להגדיר את הפרמטרים הבאים. השילוב תומך בשלושה נתיבי אימות שונים. בוחרים אחת מהשיטות הבאות כדי לספק את פרטי הכניסה.

  • ‫Workload Identity: נעשה שימוש ב-Workload Identity Email וב-Quota Project ID.

  • קובץ JSON של חשבון שירות: משתמש ב-Service Account Json File Content כדי לספק את המפתח כולו בבת אחת.

  • פרמטרים ידניים נפרדים: שימוש בשדות נפרדים שהועתקו באופן ידני ממפתח JSON.

פרמטר תיאור
API Root

זה שינוי אופציונלי.

נתיב הבסיס של ה-API של מופע BigQuery (לדוגמה, https://bigquery.googleapis.com).

Workload Identity Email

זה שינוי אופציונלי.

כתובת האימייל של הלקוח בחשבון השירות. משתמשים בזה לאימות Workload Identity.

Service Account Json File Content

זה שינוי אופציונלי.

התוכן המלא של קובץ ה-JSON של מפתח חשבון השירות.

אם מגדירים את הפרמטר הזה, השילוב מתעלם מפרמטרים של פרטי כניסה ספציפיים.

Quota Project ID

זה שינוי אופציונלי.

מזהה הפרויקט שמשמש לחיוב ולשימוש ב-API. הפרמטר הזה נדרש כשמשתמשים באימות של Workload Identity.

Project ID

זה שינוי אופציונלי.

מזהה הפרויקט לטירגוט ב-BigQuery.

Verify SSL

חובה.

מאמת את אישור ה-SSL של החיבור. ההגדרה הזו מופעלת כברירת מחדל.

פרמטרים של פרטי כניסה אישיים

משתמשים בפרמטרים הבאים רק אם מזינים פרטי כניסה באופן ידני, ולא אם משתמשים בתוכן המלא של קובץ JSON או ב-Workload Identity.

פרמטר תיאור
Account Type

זה שינוי אופציונלי.

הערך שמופיע בשדה type של מפתח ה-JSON (בדרך כלל service_account).

Private Key ID

זה שינוי אופציונלי.

הערך שמופיע בשדה private_key_id של מפתח ה-JSON.

Private Key

זה שינוי אופציונלי.

הערך שמופיע בשדה private_key במפתח ה-JSON.

Client Email

זה שינוי אופציונלי.

הערך שמופיע בשדה client_email של מפתח ה-JSON.

Client ID

זה שינוי אופציונלי.

הערך שמופיע בשדה client_id במפתח ה-JSON.

Auth URI

זה שינוי אופציונלי.

הערך שמופיע בשדה auth_uri של מפתח ה-JSON.

ערך ברירת המחדל הוא https://accounts.google.com/o/oauth2/auth.

Token URI

זה שינוי אופציונלי.

הערך שמופיע בשדה token_uri במפתח ה-JSON.

ערך ברירת המחדל הוא https://oauth2.googleapis.com/token.

Auth Provider X509 URL

זה שינוי אופציונלי.

הערך שמופיע בשדה auth_provider_x509_cert_url של מפתח ה-JSON.

Client X509 URL

זה שינוי אופציונלי.

הערך שמופיע בשדה client_x509_cert_url של מפתח ה-JSON.

הוראות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.

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

פעולות

מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות שממתינות לאישור ב-Your Workdesk ואיך מבצעים פעולה ידנית.

פינג

משתמשים בפעולה Ping כדי לבדוק את הקישוריות ל-BigQuery.

הפעולה הזו לא מופעלת בישויות של Google SecOps.

הוספת נתונים לפעולה

אין.

פלט של פעולות

הפעולה Ping מספקת את הפלטים הבאים:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON לא זמין
הודעות פלט יש גישה
תוצאת הסקריפט יש גישה
הודעות פלט

הפעולה Ping יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully connected to the Google BigQuery server with the provided connection parameters! הפעולה הסתיימה בהצלחה.
Failed to connect to the Google BigQuery server! Error is ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

תוצאת הסקריפט

בטבלה הבאה מפורט הערך של פלט תוצאת הסקריפט כשמשתמשים בפעולה Ping:

שם התוצאה של הסקריפט ערך
is_success True או False

הרצת שאילתה בהתאמה אישית

משתמשים בפעולה Run Custom Query (הפעלת שאילתה מותאמת אישית) כדי להריץ שאילתות מותאמות אישית ב-BigQuery.

הפעולה הזו לא מופעלת בישויות של Google SecOps.

הוספת נתונים לפעולה

הפעולה Run Custom Query (הפעלת שאילתה מותאמת אישית) דורשת את הפרמטרים הבאים:

פרמטרים תיאור
Query

חובה.

שאילתת ה-SQL להרצה.

Max Results To Return

זה שינוי אופציונלי.

מספר התוצאות שיוחזרו בכל תגובה.

ערך ברירת המחדל הוא 50.

פלט של פעולות

הפעולה Run Custom Query מספקת את הפלטים הבאים:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת הסקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מוצג פלט של תוצאת JSON שהתקבל כשמשתמשים בפעולה Run Custom Query:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
הודעות פלט

הפעולה Run Custom Query יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully executed query in Google BigQuery! הפעולה הסתיימה בהצלחה.
Error executing action "Run Custom Query". Reason: ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

תוצאת הסקריפט

בטבלה הבאה מפורט הערך של פלט תוצאות הסקריפט כשמשתמשים בפעולה Run Custom Query:

שם התוצאה של הסקריפט ערך
is_success True או False

הרצת שאילתת SQL

משתמשים בפעולה Run SQL Query (הרצת שאילתת SQL) כדי להריץ שאילתות ב-BigQuery.

הפעולה הזו לא מופעלת בישויות של Google SecOps.

הוספת נתונים לפעולה

הפעולה Run SQL Query דורשת את הפרמטרים הבאים:

פרמטרים תיאור
Dataset Name

חובה.

שם מערך הנתונים שבו רוצים להשתמש כשמריצים שאילתות.

Query

חובה.

שאילתת ה-SQL להרצה.

Max Results To Return

זה שינוי אופציונלי.

מספר התוצאות שיוחזרו בכל תגובה.

ערך ברירת המחדל הוא 50.

פלט של פעולות

הפעולה Run SQL Query מספקת את הפלט הבא:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON לא זמין
הודעות פלט יש גישה
תוצאת הסקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מתואר פלט תוצאת ה-JSON שמתקבל כשמשתמשים בפעולה Run SQL Query:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
הודעות פלט

הפעולה Run SQL Query יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully executed query in the BigQuery dataset DATASET_NAME. הפעולה הסתיימה בהצלחה.
Error executing action "Run SQL Query". Reason: ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

תוצאת הסקריפט

בטבלה הבאה מפורט הערך של פלט תוצאת הסקריפט כשמשתמשים בפעולה Run SQL Query:

שם התוצאה של הסקריפט ערך
is_success True או False

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.