איסוף יומנים של 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 > Feeds.
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה Feed name (שם הפיד), מזינים שם לפיד, למשל Sysdig Logs (יומני Sysdig).
- בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Sysdig בתור סוג היומן.
- לוחצים על הבא.
אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
- Split delimiter: התו המפריד שמשמש להפרדה בין שורות ביומן, כמו
\n.
- Split delimiter: התו המפריד שמשמש להפרדה בין שורות ביומן, כמו
לוחצים על הבא.
בודקים את הגדרות הפיד במסך סיום ולוחצים על שליחה.
לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
מעתיקים את המפתח הסודי ושומרים אותו. לא תהיה לך אפשרות לראות שוב את המפתח הסודי הזה. במקרה הצורך, אפשר ליצור מחדש מפתח סודי חדש, אבל הפעולה הזו מבטלת את התוקף של המפתח הסודי הקודם.
בכרטיסייה פרטים, מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה פרטי נקודת הקצה. צריך לציין את כתובת ה-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 עם הרשאות אדמין.
- עוברים אל פרופיל > הגדרות > העברת אירועים.
- לוחצים על +הוספת שילוב ובוחרים באפשרות Webhook מהתפריט הנפתח.
מציינים ערכים לפרמטרים הבאים של הקלט:
- שם השילוב: מציינים שם תיאורי ל-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 |
הערך מוטמע בקוד כ-SYSDIG. |
| (Parser Logic) | read_only_udm.metadata.vendor_name |
הערך מוטמע בקוד כ-SYSDIG. |
| (Parser Logic) | read_only_udm.metadata.event_type |
ברירת המחדל היא PROCESS_UNCATEGORIZED, או GENERIC_EVENT אם labels.host.hostName ריק. |
| (Parser Logic) | read_only_udm.metadata.log_type |
הערך מוטמע בקוד כ-SYSDIG. |
| (Parser Logic) | read_only_udm.target.resource.resource_type |
אם labels.aws.instanceId קיים, הערך הוא CLOUD_PROJECT. |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.