收集 Cloud IoT 日志
本指南介绍了如何使用 Cloud Storage 将 Cloud IoT 日志导出到 Google Security Operations。解析器会从 JSON 格式的日志中提取字段,然后将这些字段映射到 Google SecOps UDM 架构中的相应字段,最终将原始日志数据转换为适合进行安全分析的结构化格式。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保 Cloud IoT 已在您的 Google Cloud 环境中设置并处于启用状态。
- 确保您拥有对 Google Cloud的特权访问权限。
创建 Google Cloud Storage 存储分区
- 登录 Google Cloud 控制台。
前往 Cloud Storage 存储分区页面。
点击创建。
在创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:
在开始使用部分中,执行以下操作:
- 输入符合存储分区名称要求的唯一名称;例如,cloudiot-logs。
如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间。
如需添加存储分区标签,请点击展开箭头以展开标签部分。
点击添加标签,然后为标签指定键和值。
在选择数据存储位置部分中,执行以下操作:
- 选择位置类型。
使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。
如需设置跨存储分区复制,请展开设置跨存储分区复制部分。
在为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。
在选择如何控制对对象的访问权限部分中,选择否以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型。
在选择如何保护对象数据部分中,执行以下操作:
- 在数据保护下,选择您要为存储分区设置的任何选项。
- 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法。
点击创建。
在 Cloud IoT 中配置日志导出
- 使用特权账号登录 Google Cloud 账号。
- 在搜索栏中搜索并选择 Logging。
- 在日志浏览器中,选择 Cloud IoT Core 过滤日志,然后点击应用。
- 点击更多操作。
- 点击创建接收器。
- 提供以下配置:
- 接收器详情:输入名称和说明。
- 点击下一步。
- 接收器目标位置:选择 Cloud Storage 存储分区。
- Cloud Storage 存储分区:选择之前创建的存储分区或创建新存储分区。
- 点击下一步。
- 选择要包含在接收器中的日志:当您在 Cloud Storage 存储分区中选择一个选项时,系统会填充一个默认日志。
- 点击下一步。
- 可选:选择要从接收器中过滤掉的日志:选择您不想写入接收器的日志。
点击创建接收器。
在 GCP 控制台中,依次选择 Logging > Log Router。
点击创建接收器。
在 Google SecOps 中配置 Feed 以提取 Cloud IoT 日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在 Feed 名称字段中,输入 Feed 的名称;例如 GCP Cloud IoT 日志。
- 选择 Google Cloud Storage 作为来源类型。
- 选择 GCP Cloud IoT 作为日志类型。
- 点击获取服务账号,作为 Chronicle 服务账号。
- 点击下一步。
为以下输入参数指定值:
- 存储分区 URI: Google Cloud 采用
gs://my-bucket/<value>
格式的存储分区网址。 - URI 类型:选择包含子目录的目录。
来源删除选项:根据您的偏好选择删除选项。
资源命名空间:资源命名空间。
提取标签:应用于此 Feed 中事件的标签。
- 存储分区 URI: Google Cloud 采用
点击下一步。
在最终确定界面中查看新的 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.timestamp 和 metadata.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 字段映射而来:- 如果 severity 为 DEFAULT 、DEBUG 、INFO 或 NOTICE ,则 security_result.severity 设为 INFORMATIONAL 。- 如果 severity 为 WARNING 或 ERROR ,则 security_result.severity 会设置为 MEDIUM 。- 如果 severity 为 CRITICAL 、ALERT 或 EMERGENCY ,则 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 专业人士寻求解答。