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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    כניסה לדף IAM

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

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

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

    • צפייה בנתונים ב-BigQuery ‏(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 ליד Test ומחפשים את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

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

אישור זהות המכונה ב- Google Cloud

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

    לדף Service accounts

  2. בוחרים את חשבון השירות הרצוי ועוברים אל Permissions > Grant Access.

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

הגדרת מפתח JSON

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

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

    לדף Service accounts

  2. עוברים לכרטיסייה Keys ולוחצים על Add key > Create new key.

  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 root של המכונה של 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

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

פעולות

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

פינג

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

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

קלט של הפעולה

אין.

ערכי פלט של פעולות

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

סוג הפלט של הפעולה זמינות
חיבור לקיר של המארז לא זמין
קישור ללוח הפניות לא זמין
שולחן קונסולה צמוד לקיר לא זמין
טבלת העשרה לא זמין
תוצאת 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

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

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

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

בטבלה הבאה מפורטים הערכים של פלט הסקריפט כשמשתמשים בפעולה פינג:

שם תוצאת הסקריפט ערך
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

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

הפעולה הזו לא פועלת על ישויות של 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.