איסוף יומנים של Sysdig
הכלי הזה מנתח נתוני אירועי אבטחה מיומני Sysdig בפורמט JSON, וממפה את השדות של היומן הגולמי לפורמט UDM של Google Security Operations. הוא מטפל בשדות שונים, כולל מטא-נתונים, פרטי הגורם המבצע או היעד, פרטים על תוצאות האבטחה והקשר שקשור ל-Kubernetes, ומשפר את הנתונים לצורך ניתוח ב-Google SecOps. הכלי לניתוח נתונים מבצע גם המרות של סוגי נתונים, טיפול בשגיאות ולוגיקה מותנית על סמך ערכי השדות, כדי להבטיח ייצוג מדויק ומקיף של UDM.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps.
- גישה עם הרשאות ל-Sysdig Secure.
יצירת מפתח API ל-Webhook Feed
עוברים אל Google Cloud מסוף > Credentials (אמצעי אימות).
לוחצים על Create credentials ואז על API key.
מגבילים את הגישה של מפתח ה-API אל Google Security Operations API.
אפשרות 1
הגדרת פידים
כדי להגדיר פיד:
- עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה Feed name, מזינים שם לפיד, למשל Sysdig Logs.
- בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Sysdig בתור סוג היומן.
- לוחצים על הבא.
אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
- Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו
\n.
- Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו
לוחצים על הבא.
בודקים את הגדרות הפיד במסך סיום ולוחצים על שליחה.
לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
מעתיקים את המפתח הסודי ושומרים אותו. לא ניתן להציג שוב את המפתח הסודי הזה. במקרה הצורך, אפשר ליצור מחדש מפתח סודי חדש, אבל הפעולה הזו מייתרת את המפתח הסודי הקודם.
בכרטיסייה Details (פרטים), מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה). צריך לציין את כתובת ה-URL של נקודת הקצה הזו באפליקציית הלקוח.
לוחצים על סיום.
ציון כתובת ה-URL של נקודת הקצה
- באפליקציית הלקוח, מציינים את כתובת ה-URL של נקודת הקצה של HTTPS שמופיעה בפיד ה-webhook.
כדי להפעיל אימות, מציינים את מפתח ה-API ואת המפתח הסודי כחלק מהכותרת המותאמת אישית בפורמט הבא:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRETהמלצה: כדאי לציין את מפתח ה-API ככותרת במקום לציין אותו בכתובת ה-URL.
אם לקוח ה-webhook שלכם לא תומך בכותרות בהתאמה אישית, אתם יכולים לציין את מפתח ה-API ואת המפתח הסודי באמצעות פרמטרים של שאילתות בפורמט הבא:
ENDPOINT_URL?key=API_KEY&secret=SECRETמחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של הפיד. -
API_KEY: מפתח ה-API לאימות ב-Google SecOps. -
SECRET: המפתח הסודי שיצרתם כדי לאמת את הפיד.
-
הגדרת Webhook ב-Sysdig
- נכנסים ל-Sysdig Secure עם הרשאות אדמין.
- עוברים אל פרופיל > הגדרות > העברת אירועים.
- לוחצים על +Add Integration (הוספת שילוב) ובוחרים באפשרות Webhook (ווּבְהוּק) בתפריט הנפתח.
מציינים ערכים לפרמטרים הבאים של הקלט:
- שם השילוב: מציינים שם תיאורי לתגובה לפעולה מאתר אחר (לדוגמה, Google SecOps Webhook).
- נקודת קצה: מזינים את ה-Webhook
<ENDPOINT_URL>, ואז<API_KEYו-<SECRET>. נתונים לשליחה: בתפריט הנפתח, בוחרים את סוגי הנתונים של Sysdig שרוצים להעביר.
בודקים את השילוב ומעבירים את המתג Enabled (מופעל) כדי להפעיל אותו.
לוחצים על Save.
אפשרות 2
העברת נתונים ישירות ל-Google SecOps
- נכנסים ל-Sysdig Secure באמצעות פרטי הכניסה של האדמין.
- עוברים אל הגדרות > העברת אירועים.
- לוחצים על +הוספת שילוב ובוחרים באפשרות Google Chronicle מהתפריט הנפתח.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- שם השילוב: מציינים שם תיאורי לשילוב (לדוגמה, Google SecOps Integration).
- מספר לקוח: מספר הלקוח ב-Google שמשויך לחשבון Google Cloud שלכם. (ב-Google SecOps, אפשר למצוא את זה בהגדרות > פרופיל).
- Namespace: אופציונלי: אפשר להשתמש בתג הזה כדי לזהות את תחום הנתונים המתאים לאינדוקס ולהעשרה.
- פרטי כניסה ל-JSON: מעלים את פרטי הכניסה ל-JSON של Google SecOps.
- אזור: בוחרים את האזור, למשל ארה"ב, אירופה או אסיה.
- נתונים לשליחה: בתפריט הנפתח, בוחרים את סוגי הנתונים של Sysdig שרוצים להעביר.
- בודקים את השילוב ומעבירים את המתג Enabled (מופעל) כדי להפעיל אותו.
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
agentId |
read_only_udm.metadata.product_deployment_id |
הערך של agentId מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
category |
read_only_udm.security_result.category_details |
הערך של category מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.container.id |
read_only_udm.target.asset.asset_id |
הערך של content.fields.container.id מיומן הגולמי מתווסף עם התחילית container_id: וממופה לשדה הזה ב-UDM. הערך הזה משמש אם containerId ריק. |
content.fields.container.image.repository |
read_only_udm.target.file.full_path |
הערך של content.fields.container.image.repository מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.container.image.tag |
read_only_udm.metadata.ingestion_labels.value where key is tag |
הערך של content.fields.container.image.tag מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.evt.res |
read_only_udm.metadata.ingestion_labels.value where key is evt_res |
הערך של content.fields.evt.res מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.evt.type |
read_only_udm.metadata.event_type |
הערך של content.fields.evt.type מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.falco.rule |
read_only_udm.security_result.rule_name |
הערך של content.fields.falco.rule מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. הערך הזה משמש אם content.ruleName ריק. |
content.fields.group.gid |
read_only_udm.target.group.product_object_id |
הערך של content.fields.group.gid מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.group.name |
read_only_udm.target.group.group_display_name |
הערך של content.fields.group.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.proc.cmdline |
read_only_udm.target.process.command_line |
הערך של content.fields.proc.cmdline מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.proc.pcmdline |
read_only_udm.target.process.parent_process.command_line |
הערך של content.fields.proc.pcmdline מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.proc.pid |
read_only_udm.target.process.pid |
הערך של content.fields.proc.pid מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.proc.ppid |
read_only_udm.target.process.parent_process.pid |
הערך של content.fields.proc.ppid מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.proc.sid |
read_only_udm.metadata.ingestion_labels.value where key is sid |
הערך של content.fields.proc.sid מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.user.loginname |
read_only_udm.principal.user.user_display_name |
הערך של content.fields.user.loginname מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.fields.user.uid |
read_only_udm.principal.user.userid |
הערך של content.fields.user.uid מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.output |
read_only_udm.additional.fields.value.string_value where key is content_output |
הערך של content.output מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.policyId |
read_only_udm.security_result.rule_id |
הערך של content.policyId מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.policyOrigin |
read_only_udm.additional.fields.value.string_value where key is content_policyOrigin |
הערך של content.policyOrigin מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.policyVersion |
read_only_udm.additional.fields.value.string_value where key is content_policyVersion |
הערך של content.policyVersion מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.ruleName |
read_only_udm.security_result.rule_name |
הערך של content.ruleName מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
content.ruleTags |
read_only_udm.security_result.rule_labels |
הערכים במערך content.ruleTags מיומני הגולמיים ממופים לשדה UDM הזה, והמפתחות נוצרים באופן דינמי בתור ruletag_index. |
content.ruleType |
read_only_udm.additional.fields.value.string_value where key is content_ruleType |
הערך של content.ruleType מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
containerId |
read_only_udm.target.asset.asset_id |
הערך של containerId מיומן הגולמי מתווסף עם התחילית container_id: וממופה לשדה הזה ב-UDM. |
description |
read_only_udm.metadata.description |
הערך של description מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
id |
read_only_udm.metadata.product_log_id |
הערך של id מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.container.label.io.kubernetes.container.name |
read_only_udm.additional.fields.value.string_value where key is container_name |
הערך של labels.container.label.io.kubernetes.container.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.container.label.io.kubernetes.pod.name |
read_only_udm.additional.fields.value.string_value where key is pod_name |
הערך של labels.container.label.io.kubernetes.pod.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. הערך הזה משמש אם labels.kubernetes.pod.name ריק. |
labels.container.label.io.kubernetes.pod.namespace |
read_only_udm.principal.namespace |
הערך של labels.container.label.io.kubernetes.pod.namespace מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. הערך הזה משמש אם labels.kubernetes.namespace.name ריק. |
labels.aws.instanceId |
read_only_udm.target.resource.product_object_id |
הערך של labels.aws.instanceId מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.aws.region |
read_only_udm.target.resource.attribute.cloud.availability_zone |
הערך של labels.aws.region מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.host.hostName |
read_only_udm.principal.ip או read_only_udm.principal.hostname |
אם הערך מכיל ip, הוא מנותח ככתובת IP וממופה ל-principal.ip. אחרת, הוא ממופה ל-principal.hostname. |
labels.host.mac |
read_only_udm.principal.mac |
הערך של labels.host.mac מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. הערך הזה משמש אם machineId ריק. |
labels.kubernetes.cluster.name |
read_only_udm.additional.fields.value.string_value where key is kubernetes_cluster_name |
הערך של labels.kubernetes.cluster.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.kubernetes.deployment.name |
read_only_udm.additional.fields.value.string_value where key is kubernetes_deployment_name |
הערך של labels.kubernetes.deployment.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.kubernetes.namespace.name |
read_only_udm.principal.namespace |
הערך של labels.kubernetes.namespace.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.kubernetes.node.name |
read_only_udm.additional.fields.value.string_value where key is kubernetes_node_name |
הערך של labels.kubernetes.node.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.kubernetes.pod.name |
read_only_udm.additional.fields.value.string_value where key is pod_name |
הערך של labels.kubernetes.pod.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
labels.kubernetes.service.name |
read_only_udm.additional.fields.value.string_value where key is kubernetes_service_name |
הערך של labels.kubernetes.service.name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
machineId |
read_only_udm.principal.mac |
הערך של machineId מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
name |
read_only_udm.security_result.summary |
הערך של name מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
severity |
read_only_udm.security_result.severity |
הערך של severity מיומן הרישום הגולמי ממופה לערך מחרוזת על סמך הטווחים הבאים: <4 = HIGH, >3 and <6 = MEDIUM, 6 = LOW, 7 = INFORMATIONAL. |
source |
read_only_udm.security_result.description |
הערך של source מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
timestampRFC3339Nano |
read_only_udm.metadata.event_timestamp |
הערך של timestampRFC3339Nano מיומן הגולמי מנותח כחותמת זמן וממופה לשדה הזה ב-UDM. |
type |
read_only_udm.metadata.product_event_type |
הערך של type מיומן הגולמי ממופה ישירות לשדה הזה ב-UDM. |
| (Parser Logic) | read_only_udm.metadata.product_name |
הערך מוצפן כ-hardcode ל-SYSDIG. |
| (Parser Logic) | read_only_udm.metadata.vendor_name |
הערך מוצפן כ-hardcode ל-SYSDIG. |
| (Parser Logic) | read_only_udm.metadata.event_type |
ברירת המחדל היא PROCESS_UNCATEGORIZED, או GENERIC_EVENT אם labels.host.hostName ריק. |
| (Parser Logic) | read_only_udm.metadata.log_type |
הערך מוצפן כ-hardcode ל-SYSDIG. |
| (Parser Logic) | read_only_udm.target.resource.resource_type |
הערך הוא CLOUD_PROJECT אם labels.aws.instanceId קיים. |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.