שילוב של BigQuery עם Google SecOps
במאמר הזה מוסבר איך לשלב את BigQuery עם Google Security Operations.
תרחישים לדוגמה
השילוב של BigQuery משתמש ביכולות של Google SecOps כדי לתמוך בתרחישים הבאים:
העשרת מודיעין איומי סייבר: העשרה אוטומטית של התראות אבטחה באמצעות נתוני מודיעין איומי סייבר שמאוחסנים ב-BigQuery, כדי להעריך את החומרה והאמינות של איומים פוטנציאליים.
ניתוח התנהגות משתמשים: זיהוי פעילות משתמש חריגה על ידי ניתוח יומנים היסטוריים שמאוחסנים ב-BigQuery, כדי לזהות איומים פנימיים וחשבונות שנפרצו.
ניתוח של מאגר נתוני אבטחה: שימוש ביכולות השאילתות של BigQuery כדי לנתח כמויות גדולות של נתוני אבטחה שנאספו ממקורות שונים, במטרה לשפר את איתור האיומים.
ניתוח מתקדם של למידת מכונה ו-AI: פיתוח מודלים בהתאמה אישית להגנה חזויה ולחישוב אוטומטי של ציון סיכונים באמצעות נתוני אבטחה היסטוריים ו-BigQuery ML.
שמירת נתונים לטווח ארוך: העברת נתונים של אירועים שטופלו לארכיון ב-BigQuery, כדי לאחסן אותם לטווח ארוך בצורה חסכונית ולתמוך בתאימות ובביקורות משפטיות.
לפני שמתחילים
לפני שמגדירים את השילוב של BigQuery ב-Google SecOps, צריך לבצע את השלבים הבאים:
מקצים לחשבון השירות את התפקידים הנדרשים בניהול זהויות והרשאות גישה (IAM).
בוחרים אחת משיטות האימות הבאות ומגדירים אותה:
אפשרות 1: Workload Identity (מומלץ): השיטה הזו משתמשת בטוקני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות.
אפשרות 2: מפתח JSON של חשבון שירות: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך.
מתן תפקידים ב-IAM
כשנותנים לחשבון השירות את ההרשאות הנדרשות, אפשר להריץ משימות בשילוב ולגשת לנתונים. התפקידים הרגילים הבאים מנוהלים על ידי Google Cloud ומתעדכנים באופן אוטומטי אם הדרישות של ה-API משתנות. כדי להקצות את התפקידים האלה לחשבון השירות:
במסוף Google Cloud , נכנסים לדף IAM.
מאתרים את חשבון השירות ברשימת חשבונות המשתמשים ולוחצים על Edit principal (edit).
לוחצים על Add another role ובוחרים את התפקידים הבאים:
BigQuery User (
roles/bigquery.user): מאפשר לשילוב להריץ משימות, כולל שאילתות, בתוך הפרויקט.צפייה בנתונים ב-BigQuery (
roles/bigquery.dataViewer): מאפשרת לשילוב לקרוא נתונים ומטא-נתונים מקבוצות נתונים ומטבלאות.Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer): חובה אם מגדירים אתQuota Project IDבהגדרות השילוב.
לוחצים על Save.
יצירה של חשבון שירות
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.
לוחצים על addCreate service account.
מזינים שם ותיאור ולוחצים על יצירה והמשך.
בשלב Grant this service account access to project, מוסיפים את התפקידים שזיהיתם בשלב הקודם.
לוחצים על סיום. רושמים את כתובת האימייל של חשבון השירות.
הגדרת פרטי הכניסה של Workload Identity
הגישה המומלצת היא Workload Identity, כי היא משתמשת באסימוני גישה לטווח קצר באמצעות התחזות לחשבון שירות.
זיהוי המופע הייחודי של הזהות
כדי ליצור חיבור, צריך לתת למכונה של Google SecOps הרשאה להתחזות לחשבון השירות.
ב-Google SecOps, עוברים אל Content Hub > Response Integrations.
בוחרים את השילוב של BigQuery ומזינים את כתובת האימייל של חשבון השירות בשדה
Workload Identity Email.לוחצים על שמירה > בדיקה. הבדיקה צפויה להיכשל.
לוחצים על הלחצן close_small ליד Test ומחפשים את כתובת האימייל של הזהות שמתחילה ב-
gke-init-python@...או ב-soar-python@....מעתיקים את כתובת האימייל הייחודית הזו.
אישור זהות המכונה ב- Google Cloud
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.
בוחרים את חשבון השירות הרצוי ועוברים אל Permissions > Grant Access.
מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (
roles/iam.serviceAccountTokenCreator).
הגדרת מפתח JSON
קבצים סטטיים של מפתחות סודיים לטווח ארוך דורשים רוטציה ידנית. השתמשו בשיטה הזו רק אם אימות של Workload Identity לא זמין.
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts ובוחרים את חשבון השירות.
עוברים לכרטיסייה Keys ולוחצים על Add key > Create new key.
בוחרים באפשרות 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 (לדוגמה, |
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 |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Private Key ID |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Private Key |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Client Email |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Client ID |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Auth URI |
זה שינוי אופציונלי. הערך שמופיע בשדה ערך ברירת המחדל הוא
|
Token URI |
זה שינוי אופציונלי. הערך שמופיע בשדה ערך ברירת המחדל הוא |
Auth Provider X509 URL |
זה שינוי אופציונלי. הערך שמופיע בשדה |
Client X509 URL |
זה שינוי אופציונלי. הערך שמופיע בשדה |
איך מגדירים שילובים ב-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 |
זה שינוי אופציונלי. מספר התוצאות שיוחזרו בכל תשובה. ערך ברירת המחדל הוא |
ערכי פלט של פעולות
הפעולה 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 |
זה שינוי אופציונלי. מספר התוצאות שיוחזרו בכל תשובה. ערך ברירת המחדל הוא |
ערכי פלט של פעולות
הפעולה 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.