שילוב של BigQuery עם Google SecOps
במאמר הזה מוסבר איך לשלב את BigQuery עם Google Security Operations.
תרחישים לדוגמה
השילוב עם BigQuery משתמש ביכולות של Google SecOps כדי לתמוך בתרחישי השימוש הבאים:
העשרה של נתוני מודיעין איומים: העשרה אוטומטית של התראות אבטחה בנתוני מודיעין איומים שמאוחסנים ב-BigQuery, כדי להעריך את חומרת האיומים הפוטנציאליים ואת מהימנותם.
ניתוח התנהגות משתמשים: זיהוי פעילות חריגה של משתמשים באמצעות ניתוח של יומנים היסטוריים שמאוחסנים ב-BigQuery, כדי לזהות איומים פנימיים וחשבונות שנפרצו.
ניתוח של מאגר נתונים מרכזי לאבטחה: אפשר להשתמש ביכולות השאילתות של BigQuery כדי לנתח נפחים גדולים של נתוני אבטחה שנאספים ממקורות שונים, ולשפר את איתור האיומים.
ניתוח מתקדם של למידת מכונה (ML) ו-AI: אפשר ליצור מודלים מותאמים אישית להגנה חזויה וחישוב של ציון סיכונים אוטומטי באמצעות נתוני אבטחה היסטוריים ו-BigQuery ML.
שמירת נתונים לטווח ארוך: אפשר לארכב נתונים של אירועים שנפתרו ב-BigQuery כדי לאחסן אותם לטווח ארוך בצורה חסכונית, ולתמוך בתאימות ובביקורות משפטיות.
לפני שמתחילים
לפני שמגדירים את השילוב של BigQuery ב-Google SecOps, צריך לבצע את השלבים המקדימים הבאים:
מקצים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה לחשבון השירות.
בוחרים ומגדירים אחת משיטות האימות הבאות:
אפשרות 1: Workload Identity (מומלץ): בשיטה הזו נעשה שימוש באסימוני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות.
אפשרות 2: מפתח JSON של חשבון שירות: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך.
מתן תפקידים ב-IAM
מתן ההרשאות הנדרשות לחשבון השירות מאפשר לשילוב להריץ משימות ולגשת לנתונים שלכם. התפקידים הרגילים הבאים מנוהלים על ידי Google Cloud ומתעדכנים באופן אוטומטי אם יש שינויים בדרישות של ה-API. כדי להקצות את התפקידים האלה לחשבון השירות:
במסוף Google Cloud , נכנסים אל IAM.
מאתרים את חשבון השירות ברשימת חשבונות המשתמשים ולוחצים על עריכת חשבון משתמש (עריכה).
לוחצים על Add another role ובוחרים באפשרויות הבאות:
BigQuery User (
roles/bigquery.user): מאפשר לתהליך השילוב להריץ משימות, כולל שאילתות, בתוך הפרויקט.BigQuery Data Viewer (
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 לצד בדיקה ומאתרים את כתובת האימייל של הזהות שמתחילה ב-
gke-init-python@...או ב-soar-python@....מעתיקים את כתובת האימייל הייחודית הזו.
נותנים הרשאה לזהות המופע ב- Google Cloud
במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.
בוחרים את חשבון השירות של היעד ועוברים אל הרשאות > הענקת גישה.
מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (
roles/iam.serviceAccountTokenCreator).
הגדרת מפתח JSON
קבצים סטטיים של מפתחות סודיים לטווח ארוך מחייבים רוטציה ידנית. משתמשים בשיטה הזו רק אם אימות באמצעות Workload Identity לא זמין.
במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts ובוחרים את חשבון השירות.
עוברים לכרטיסייה מפתחות ולוחצים על הוספת מפתח > יצירת מפתח חדש.
בוחרים באפשרות 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 (לדוגמה,
|
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 מופיעות במאמר הגדרת שילובים.
במקרה הצורך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של שילוב, אפשר להשתמש בו ב-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 |
זה שינוי אופציונלי. מספר התוצאות שיוחזרו בכל תגובה. ערך ברירת המחדל הוא |
פלט של פעולות
הפעולה 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 |
זה שינוי אופציונלי. מספר התוצאות שיוחזרו בכל תגובה. ערך ברירת המחדל הוא |
פלט של פעולות
הפעולה 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.