收集 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

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed
  • 内容中心 > 内容包

通过“SIEM 设置”>“Feed”设置 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. 点击完成

设置来自内容中心的 Feed

为以下字段指定值:

  • 拆分分隔符:用于分隔日志行的分隔符,例如 \n

高级选项

  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。
  • 资源命名空间:与 Feed 关联的命名空间。
  • 提取标签:应用于相应 Feed 中所有事件的标签。

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

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

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

指定端点网址

  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 专业人士那里获得解答。