שילוב של Logging עם Google SecOps
במאמר הזה מוסבר איך לשלב את Cloud Logging עם Google Security Operations.
תרחישים לדוגמה
השילוב Logging משתמש ביכולות של Google SecOps כדי לתמוך בתרחישי השימוש הבאים:
אחזור יומנים לצורך חקירה משפטית: הרצת שאילתות מתקדמות כדי למצוא אירועי אבטחה ספציפיים בסביבת Google Cloud במהלך חקירה.
איתור אוטומטי של איומים: שימוש ב-playbooks כדי לשלוח שאילתות ליומנים באופן תקופתי ולחפש אינדיקטורים ידועים לפריצה (IoC) או דפוסים חשודים.
לפני שמתחילים
לפני שמגדירים את השילוב של Logging ב-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 (מתן גישה של חשבון השירות הזה לפרויקט), מוסיפים את התפקיד Logs Viewer (צפייה ביומנים) (
roles/logging.viewer).לוחצים על סיום. כתובת האימייל של חשבון השירות הזה משמשת במהלך ההגדרה.
הגדרת פרטי כניסה של Workload Identity
כדי לאמת את השילוב, בוחרים בשיטה הזו או בשיטת מפתח ה-JSON. השיטה המומלצת היא שימוש ב-Workload Identity, כי היא משתמשת
אסימוני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות.
זיהוי הזהות הייחודית של המופע
השלב האחרון כדי לאבטח את הגישה הוא לתת למופע של Google SecOps הרשאה להתחזות לחשבון השירות שלכם.
ב-Google SecOps, עוברים אל Content Hub > Response Integrations.
מחפשים את השילוב Cloud Logging ובוחרים אותו. מזינים את כתובת האימייל של חשבון השירות בWorkload Identity Email.
מזינים מזהה פרויקט תקין במזהה פרויקט של מכסת השימוש.
לוחצים על שמירה > בדיקה. הבדיקה צפויה להיכשל.
לוחצים על close_small משמאל לבדיקה ומחפשים בהודעת השגיאה את כתובת האימייל של הזהות שמתחילה ב-
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 מופיעות במאמר הגדרת שילובים.
במקרה הצורך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של שילוב, אפשר להשתמש בו ב-playbooks. מידע נוסף על הגדרה ותמיכה במספר מופעים זמין במאמר תמיכה במספר מופעים.
פעולות
מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות בהמתנה ממרכז העבודה ואיך מבצעים פעולה ידנית.
ביצוע שאילתה
משתמשים בפעולה 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 מספקת את התוצאות הבאות:
| סוג פלט הפעולה | זמינות |
|---|---|
| קיר המארז | לא זמין |
| קישור ל-Case wall | לא זמין |
| טבלת קיר עם תושבת | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאה בפורמט 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 כדי לבדוק את הקישוריות ל-Logging.
הפעולה הזו לא מופעלת בישויות של Google SecOps.
הוספת נתונים לפעולה
אין.
פלטים של פעולות
הפעולה Ping מספקת את הפלטים הבאים:
| סוג פלט הפעולה | זמינות |
|---|---|
| קיר המארז | לא זמין |
| קישור ל-Case wall | לא זמין |
| טבלת קיר עם תושבת | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאה בפורמט JSON | לא זמין |
| הודעות פלט | יש גישה |
| תוצאת הסקריפט | יש גישה |
הודעות פלט
הפעולה Ping מספקת את הודעות הפלט הבאות:
| הודעת הפלט | תיאור ההודעה |
|---|---|
Successfully connected to the Cloud Logging server with
the provided connection parameters! |
הפעולה הסתיימה בהצלחה. |
Failed to connect to the Cloud Logging server! Error is
ERROR_REASON |
הפעולה נכשלה. צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה. |
תוצאת הסקריפט
בטבלה הבאה מפורטים הערכים של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Ping:
| שם התוצאה של הסקריפט | ערך |
|---|---|
is_success |
True או False |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.