收集 Cloud IoT 日志

支持的平台:

本指南介绍了如何使用 Cloud Storage 将 Cloud IoT 日志导出到 Google Security Operations。解析器会从 JSON 格式的日志中提取字段,然后将这些字段映射到 Google SecOps UDM 架构中的相应字段,最终将原始日志数据转换为适合进行安全分析的结构化格式。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保 Cloud IoT 已在您的 Google Cloud 环境中设置并处于启用状态。
  • 确保您拥有对 Google Cloud的特权访问权限。

创建 Google Cloud Storage 存储分区

  1. 登录 Google Cloud 控制台
  2. 前往 Cloud Storage 存储分区页面。

    进入“存储桶”

  3. 点击创建

  4. 创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:

    1. 开始使用部分中,执行以下操作:

      1. 输入符合存储分区名称要求的唯一名称;例如,cloudiot-logs
      2. 如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间

      3. 如需添加存储分区标签,请点击展开箭头以展开标签部分。

      4. 点击添加标签,然后为标签指定键和值。

    2. 选择数据存储位置部分中,执行以下操作:

      1. 选择位置类型
      2. 使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。

      3. 如需设置跨存储分区复制,请展开设置跨存储分区复制部分。

    3. 为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。

    4. 选择如何控制对对象的访问权限部分中,选择以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型

    5. 选择如何保护对象数据部分中,执行以下操作:

      1. 数据保护下,选择您要为存储分区设置的任何选项。
      2. 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法
  5. 点击创建

在 Cloud IoT 中配置日志导出

  1. 使用特权账号登录 Google Cloud 账号。
  2. 在搜索栏中搜索并选择 Logging
  3. 日志浏览器中,选择 Cloud IoT Core 过滤日志,然后点击应用
  4. 点击更多操作
  5. 点击创建接收器
  6. 提供以下配置:
    1. 接收器详情:输入名称和说明。
    2. 点击下一步
    3. 接收器目标位置:选择 Cloud Storage 存储分区
    4. Cloud Storage 存储分区:选择之前创建的存储分区或创建新存储分区。
    5. 点击下一步
    6. 选择要包含在接收器中的日志:当您在 Cloud Storage 存储分区中选择一个选项时,系统会填充一个默认日志。
    7. 点击下一步
    8. 可选:选择要从接收器中过滤掉的日志:选择您不想写入接收器的日志。
  7. 点击创建接收器

  8. GCP 控制台中,依次选择 Logging > Log Router

  9. 点击创建接收器

在 Google SecOps 中配置 Feed 以提取 Cloud IoT 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称;例如 GCP Cloud IoT 日志
  4. 选择 Google Cloud Storage 作为来源类型
  5. 选择 GCP Cloud IoT 作为日志类型
  6. 点击获取服务账号,作为 Chronicle 服务账号
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储分区 URI: Google Cloud 采用 gs://my-bucket/<value> 格式的存储分区网址。
    • URI 类型:选择包含子目录的目录
    • 来源删除选项:根据您的偏好选择删除选项。

    • 资源命名空间资源命名空间

    • 提取标签:应用于此 Feed 中事件的标签。

  9. 点击下一步

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

UDM 映射表

日志字段 UDM 映射 逻辑
insertId metadata.product_log_id 直接从 insertId 字段映射。
jsonPayload.eventType metadata.product_event_type 直接从 jsonPayload.eventType 字段映射。
jsonPayload.protocol network.application_protocol 直接从 jsonPayload.protocol 字段映射。
jsonPayload.serviceName target.application 直接从 jsonPayload.serviceName 字段映射。
jsonPayload.status.description metadata.description 直接从 jsonPayload.status.description 字段映射。
jsonPayload.status.message security_result.description 直接从 jsonPayload.status.message 字段映射。
labels.device_id principal.asset_id 值设置为 Device ID:labels.device_id 字段的值串联。
receiveTimestamp metadata.event_timestamp receiveTimestamp 字段解析出来,用于填充 events.timestampmetadata.event_timestamp
resource.labels.device_num_id target.resource.product_object_id 直接从 resource.labels.device_num_id 字段映射。
resource.labels.location target.location.name 直接从 resource.labels.location 字段映射。
resource.labels.project_id target.resource.name 直接从 resource.labels.project_id 字段映射。
resource.type target.resource.resource_subtype 直接从 resource.type 字段映射。
和程度上减少 security_result.severity 根据以下逻辑从 severity 字段映射而来:
- 如果 severityDEFAULTDEBUGINFONOTICE,则 security_result.severity 设为 INFORMATIONAL
- 如果 severityWARNINGERROR,则 security_result.severity 会设置为 MEDIUM
- 如果 severityCRITICALALERTEMERGENCY,则 security_result.severity 会设为 HIGH
不适用 metadata.log_type 已硬编码为 GCP_CLOUDIOT
不适用 metadata.vendor_name 已硬编码为 Google Cloud Platform
不适用 metadata.event_type 已硬编码为 GENERIC_EVENT
不适用 metadata.product_name 已硬编码为 GCP_CLOUDIOT

变化

2022-06-06

  • 新创建的解析器。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。