שילוב של Logging עם Google SecOps
במאמר הזה מוסבר איך לשלב את Cloud Logging עם Google Security Operations.
תרחישים לדוגמה
השילוב של Logging משתמש ביכולות של Google SecOps כדי לתמוך בתרחישים הבאים:
אחזור יומנים לניתוח משפטי: הרצת שאילתות מתקדמות כדי למצוא אירועי אבטחה ספציפיים בסביבת Google Cloud במהלך חקירה.
איתור איומים אוטומטי: שימוש בפלייבוקים כדי לשלוח שאילתות ליומנים באופן תקופתי, במטרה לאתר סימנים מחשידים (IoC) ידועים או דפוסים חשודים.
לפני שמתחילים
לפני שמגדירים את השילוב של רישום ביומן ב-Google SecOps, צריך לבצע את השלבים הבאים:
יוצרים חשבון שירות ונותנים לו את התפקידים הנדרשים.
בוחרים אחת משיטות האימות הבאות ומגדירים אותה:
אפשרות 1: Workload Identity (מומלץ): בשיטה הזו משתמשים בטוקני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות, כך שלא צריך לאחסן סודות.
אפשרות 2: מפתח JSON של חשבון שירות: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך. השתמשו בשיטה הזו רק אם אימות של Workload Identity לא זמין בסביבה שלכם.
יצירה של חשבון שירות
כדי ליצור חשבון שירות לשילוב, מבצעים את השלבים הבאים:
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.
לוחצים על addCreate service account.
מזינים שם (לדוגמה, "SecOps Logging Integration") ותיאור, ולוחצים על Create and continue.
בשלב Grant this service account access to project, מוסיפים את התפקיד צפייה ביומנים (
roles/logging.viewer).לוחצים על סיום. כתובת האימייל של חשבון השירות הזה משמשת במהלך ההגדרה.
הגדרת פרטי הכניסה של Workload Identity
כדי לאמת את השילוב, אפשר לבחור בשיטה הזו או בשיטת מפתח ה-JSON. השימוש ב-Workload Identity הוא הגישה המומלצת כי הוא משתמש
טוקני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות.
זיהוי המופע הייחודי של הזהות
השלב האחרון כדי לאבטח את הגישה הוא לתת למכונה של Google SecOps הרשאה להתחזות לחשבון השירות.
ב-Google SecOps, עוברים אל Content Hub > Response Integrations.
מחפשים ובוחרים את השילוב של Cloud Logging ומזינים את כתובת האימייל של חשבון השירות בשדה Workload Identity Email.
מזינים מזהה פרויקט תקין בשדה Quota Project ID.
לוחצים על שמירה > בדיקה. הבדיקה צפויה להיכשל.
לוחצים על 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).
מתן גישה לפרויקט המכסות
כדי לבצע אימות באמצעות Workload Identity, צריך Quota Project ID כדי לעקוב אחרי השימוש ב-API והחיוב.
במסוף Google Cloud , נכנסים לדף IAM & Admin > IAM ובוחרים את הפרויקט שמשמש כמזהה הפרויקט לצורך חיוב מכסות.
מאתרים את חשבון השירות ולוחצים על Edit principal.
לוחצים על Add another role ובוחרים את התפקיד Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer).לוחצים על Save.
הגדרת מפתח JSON
קבצים סטטיים של מפתחות סודיים לטווח ארוך דורשים ניהול ידני. צריך להשתמש בשיטה הזו רק אם פרטי הכניסה של Workload Identity לא זמינים.
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts ובוחרים את חשבון השירות.
עוברים לכרטיסייה Keys ולוחצים על Add key > Create new key.
בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create.
מעתיקים את כל התוכן של הקובץ שהורדתם ומדביקים אותו ב-
User's Service Accountבמהלך ההגדרה.
פרמטרים של שילוב
כדי לשלב את Logging, צריך להגדיר את הפרמטרים הבאים:
| פרמטר | תיאור |
|---|---|
API Root |
זה שינוי אופציונלי. כתובת ה-URL הבסיסית של Cloud Logging API (לדוגמה, |
User's Service Account |
זה שינוי אופציונלי. התוכן המלא של קובץ ה-JSON של מַפְתח חשבון השירות. השתמשו בפרמטר הזה רק אם אתם מבצעים אימות באמצעות מפתח JSON. |
Workload Identity Email |
זה שינוי אופציונלי. כתובת האימייל של הלקוח בחשבון השירות. צריך להשתמש בפרמטר הזה רק אם מבצעים אימות באמצעות פרטי כניסה של Workload Identity. |
Project ID |
זה שינוי אופציונלי. מזהה הפרויקט שבו משתמשים בשילוב. אם לא מציינים ערך, השילוב מאחזר את המזהה מפרטי הכניסה של חשבון השירות. |
Quota Project ID |
זה שינוי אופציונלי. מזהה הפרויקט שמשמש לחיוב ולשימוש ב-API. הפרמטר הזה נדרש כשמבצעים אימות באמצעות פרטי הכניסה של Workload Identity. |
Organization ID |
זה שינוי אופציונלי. מזהה הארגון שמשמש להגדרת היקף השאילתות. |
Verify SSL |
זה שינוי אופציונלי. אם האפשרות הזו נבחרת, השילוב מאמת את אישור ה-SSL כשמתחברים לשרת הרישום ביומן. מופעלת כברירת מחדל. |
איך מגדירים שילובים ב-Google SecOps
אם צריך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של אינטגרציה, אפשר להשתמש בו בפלייבוקים. במאמר תמיכה במספר מופעים מוסבר איך להגדיר מספר מופעים ולתמוך בהם.
פעולות
מידע נוסף על פעולות זמין במאמרים מענה לפעולות בהמתנה משולחן העבודה והפעלה ידנית של פעולה בבקשת התמיכה.
הרצת השאילתה
משתמשים בפעולה Execute Query כדי להריץ שאילתות בהתאמה אישית ב-Logging.
הפעולה הזו לא פועלת על ישויות של Google SecOps.
קלט של הפעולה
הפעולה Execute Query דורשת את הפרמטרים הבאים:
| פרמטר | תיאור |
|---|---|
Project ID |
אופציונלי מזהה הפרויקט שבו משתמשים בשילוב. אם לא מגדירים ערך לפרמטר הזה, השילוב מאחזר את מזהה הפרויקט מחשבון השירות של Google Cloud . |
Organization ID |
אופציונלי מזהה הארגון שבו רוצים להשתמש בשילוב. אם לא מגדירים ערך לפרמטר הזה, השילוב מאחזר את מזהה הפרויקט מחשבון השירות של Google Cloud . |
Query |
חובה שאילתה למציאת היומנים. |
Time Frame |
אופציונלי תקופה לאחזור התוצאות. אם בוחרים באפשרות הערכים האפשריים הם:
Last Hour. |
Start Time |
אופציונלי שעת ההתחלה לאחזור התוצאות. חובה לכלול את הפרמטר הזה אם בחרתם באפשרות כדי להגדיר את הפרמטר הזה, צריך להשתמש בפורמט ISO 8601. |
End Time |
אופציונלי שעת הסיום לאחזור התוצאות. אם לא מגדירים ערך לפרמטר הזה ובוחרים באפשרות כדי להגדיר את הפרמטר הזה, צריך להשתמש בפורמט ISO 8601. |
Max Results To Return |
אופציונלי המספר המקסימלי של תוצאות שיוחזרו. ערך ברירת המחדל הוא 50. |
ערכי פלט של פעולות
הפעולה Execute Query מספקת את הפלטים הבאים:
| סוג הפלט של הפעולה | זמינות |
|---|---|
| חיבור לקיר של המארז | לא זמין |
| קישור ללוח הפניות | לא זמין |
| שולחן קונסולה צמוד לקיר | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאת JSON | יש גישה |
| הודעות פלט | יש גישה |
| תוצאת הסקריפט | יש גישה |
תוצאת JSON
בדוגמה הבאה מתואר פלט התוצאה בפורמט JSON שמתקבל כשמשתמשים בפעולה Execute Query:
[{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalEmail": "system:clouddns"
},
"authorizationInfo": [
{
"granted": true,
"permission": "io.k8s.coordination.v1.leases.update",
"resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
}
],
"methodName": "io.k8s.coordination.v1.leases.update",
"requestMetadata": {
"callerIp": "192.0.2.6",
"callerSuppliedUserAgent": "clouddns-leader-election"
},
"resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
"serviceName": "k8s.io",
"status": {
"code": 0
}
},
"insertId": "ID",
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "CLUSTER_NAME",
"project_id": "PROJECT_ID",
"location": "us-central1"
}
},
"timestamp": "2024-09-18T09:46:38.647428Z",
"labels": {
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
"authorization.k8s.io/decision": "allow"
},
"logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
"operation": {
"id": "ID",
"producer": "k8s.io",
"first": true,
"last": true
},
"receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
הודעות פלט
הפעולה Execute Query מספקת את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
|
הפעולה בוצעה בהצלחה. |
Error executing action "Execute Query". Reason:
ERROR_REASON |
הפעולה נכשלה. צריך לבדוק את החיבור לשרת, את הפרמטרים של הקלט או את פרטי הכניסה. |
תוצאת הסקריפט
בטבלה הבאה מתוארים הערכים של פלט תוצאת הסקריפט כשמשתמשים בפעולה Execute Query:
| שם תוצאת הסקריפט | ערך |
|---|---|
is_success |
True או False |
פינג
משתמשים בפעולה Ping כדי לבדוק את הקישוריות לרישום ביומן.
הפעולה הזו לא פועלת על ישויות של Google SecOps.
קלט של הפעולה
אין.
ערכי פלט של פעולות
הפעולה פינג מספקת את הפלטים הבאים:
| סוג הפלט של הפעולה | זמינות |
|---|---|
| חיבור לקיר של המארז | לא זמין |
| קישור ללוח הפניות | לא זמין |
| שולחן קונסולה צמוד לקיר | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאת JSON | לא זמין |
| הודעות פלט | יש גישה |
| תוצאת הסקריפט | יש גישה |
הודעות פלט
הפעולה פינג מספקת את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
Successfully connected to the Cloud Logging server with
the provided connection parameters! |
הפעולה בוצעה בהצלחה. |
Failed to connect to the Cloud Logging server! Error is
ERROR_REASON |
הפעולה נכשלה. צריך לבדוק את החיבור לשרת, את הפרמטרים של הקלט או את פרטי הכניסה. |
תוצאת הסקריפט
בטבלה הבאה מתוארים הערכים של פלט תוצאת הסקריפט כשמשתמשים בפעולה פינג:
| שם תוצאת הסקריפט | ערך |
|---|---|
is_success |
True או False |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.