收集 Sysdig 日志

支持的语言:

此解析器可从 Sysdig JSON 日志中提取安全事件数据,并将原始日志字段转换和映射为 Google Security Operations UDM 格式。它可处理各种字段,包括元数据、正文或目标信息、安全结果详细信息和 Kubernetes 相关上下文,从而丰富数据以供在 Google SecOps 中进行分析。解析器还会根据字段值执行数据类型转换、错误处理和条件逻辑,以确保 UDM 表示的准确性和全面性。

准备工作

确保您满足以下前提条件:

  • Google SecOps 实例。
  • 对 Sysdig Secure 的特权访问权限。

为 webhook Feed 创建 API 密钥

  1. 前往 Google Cloud 控制台 > 凭据

    转到“凭据”页面

  2. 点击创建凭据,然后选择 API 密钥

  3. 将 API 密钥访问权限限制为 Google Security Operations API

选项 1

设置 Feed

如需配置 Feed,请按以下步骤操作:

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称,例如 Sysdig 日志
  5. 选择 Webhook 作为来源类型
  6. 选择 Sysdig 作为日志类型
  7. 点击下一步
  8. 可选:为以下输入参数指定值:

    • 拆分分隔符:用于分隔日志行的分隔符,例如 \n
  9. 点击下一步

  10. 最终确定界面中检查 Feed 配置,然后点击提交

  11. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。

  12. 复制并存储密钥。您将无法再次查看此密钥。如有需要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥失效。

  13. 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。

  14. 点击完成

指定端点网址

  1. 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点网址。
  2. 通过在自定义标头中指定 API 密钥和密钥来启用身份验证,格式如下:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建议:将 API 密钥指定为标头,而不是在网址中指定。

  3. 如果您的 Webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    替换以下内容:

    • ENDPOINT_URL:Feed 端点网址。
    • API_KEY:用于向 Google SecOps 进行身份验证的 API 密钥。
    • SECRET:您生成的用于对 Feed 进行身份验证的密钥。

在 Sysdig 中配置 Webhook

  1. 使用管理员权限登录 Sysdig Secure。
  2. 依次前往个人资料 > 设置 > 事件转发
  3. 点击 + 添加集成,然后从下拉菜单中选择 Webhook
  4. 为以下输入参数指定值:

    • 集成名称:为 Webhook 提供一个描述性名称(例如 Google SecOps Webhook)。
    • 端点:输入 Webhook <ENDPOINT_URL>,然后输入 <API_KEY<SECRET>
    • 要发送的数据:从下拉菜单中选择应转发的 Sysdig 数据类型。

    • 测试集成,然后切换已启用以将其激活。

    • 点击保存

选项 2

将数据直接转发到 Google SecOps

  1. 使用管理员凭据登录 Sysdig Secure。
  2. 依次前往设置 > 事件转发
  3. 点击 +Add Integration(+ 添加集成),然后从下拉菜单中选择 Google Chronicle
  4. 为以下输入参数指定值:
    • 集成名称:为集成提供一个描述性名称(例如 Google SecOps 集成)。
    • 客户 ID:与您的 Google Cloud 账号相关联的 Google 客户 ID。(在 Google SecOps 中,您可以在设置 > 个人资料中找到此信息)。
    • 命名空间:可选:用作标记,用于标识适合进行索引和丰富的数据网域。
    • JSON 凭据:上传您的 Google SecOps JSON 凭据。
    • 区域:选择您的区域,例如美国、欧洲或亚洲。
    • 要发送的数据:从下拉菜单中选择应转发的 Sysdig 数据类型。
    • 测试集成,然后切换已启用以将其激活。
    • 点击保存

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,其中键为 tag 原始日志中的 content.fields.container.image.tag 值直接映射到此 UDM 字段。
content.fields.evt.res read_only_udm.metadata.ingestion_labels.value,其中键为 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,其中键为 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,其中键为 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,其中键为 content_policyOrigin 原始日志中的 content.policyOrigin 值直接映射到此 UDM 字段。
content.policyVersion read_only_udm.additional.fields.value.string_value,其中键为 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,其中键为 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,其中键为 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,其中键为 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.ipread_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,其中键为 kubernetes_cluster_name 原始日志中的 labels.kubernetes.cluster.name 值直接映射到此 UDM 字段。
labels.kubernetes.deployment.name read_only_udm.additional.fields.value.string_value,其中键为 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,其中键为 kubernetes_node_name 原始日志中的 labels.kubernetes.node.name 值直接映射到此 UDM 字段。
labels.kubernetes.pod.name read_only_udm.additional.fields.value.string_value,其中键为 pod_name 原始日志中的 labels.kubernetes.pod.name 值直接映射到此 UDM 字段。
labels.kubernetes.service.name read_only_udm.additional.fields.value.string_value,其中键为 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 且 <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 字段。
(解析器逻辑) read_only_udm.metadata.product_name 硬编码为“SYSDIG”。
(解析器逻辑) read_only_udm.metadata.vendor_name 硬编码为“SYSDIG”。
(解析器逻辑) read_only_udm.metadata.event_type 默认设置为“PROCESS_UNCATEGORIZED”,如果 labels.host.hostName 为空,则设置为“GENERIC_EVENT”。
(解析器逻辑) read_only_udm.metadata.log_type 硬编码为“SYSDIG”。
(解析器逻辑) read_only_udm.target.resource.resource_type 如果 labels.aws.instanceId 存在,则设置为“CLOUD_PROJECT”。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。