收集 Cloud Next Generation Firewall 日志

解析器版本:2.0

支持:

本文档介绍了如何使用 Google Cloud将 Cloud NGFW 日志导出并注入到 Google Security Operations 中。解析器从 Google Cloud 防火墙日志中提取字段,并将其转换和映射到 UDM。它会处理各种日志字段,包括连接详细信息、威胁信息、规则详细信息和网络信息,并根据 action 和 direction 字段执行数据类型转换、重命名和条件逻辑,以正确填充 UDM 模型。

准备工作

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

  • Google SecOps 实例。
  • Cloud NGFW 在您的 Google Cloud 环境中处于活跃状态并已配置。
  • 对 Google Cloud 的特权访问权限,以及访问 Cloud NGFW 日志的相应权限。

创建 Cloud Storage 存储桶

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

    进入“存储桶”

  3. 点击创建。

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

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

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

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

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

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

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

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

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

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

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

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

配置 Cloud NGFW 日志导出

  1. 登录 Google Cloud 控制台。
  2. 前往日志记录 > 日志路由器。
  3. 点击创建接收器。
  4. 提供以下配置参数:

    • 接收器名称:输入一个有意义的名称,例如 NGFW-Export-Sink。
    • 接收器目标位置:选择 Google Cloud Storage,然后输入存储桶的 URI,例如 gs://gcp-ngfw-logs/。
    • 日志过滤条件:

      logName="projects/<your-project-id>/logs/gcp-firewall"
      
  5. 点击创建。

配置 Cloud Storage 权限

  1. 前往 IAM 和管理 > IAM。
  2. 找到 Cloud Logging 服务账号。
  3. 在存储桶上授予 roles/storage.admin。

设置 Feed

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

  • SIEM 设置 > Feed > 添加新 Feed
  • 内容中心 > 内容包 > 开始

如何设置 Google Cloud NGFW Enterprise Feed

  1. 点击 Google Cloud Compute 平台包。
  2. 找到 GCP NGFW Enterprise 日志类型。
  3. 点击下一步。
  4. 为以下字段指定值:

    • 来源类型:Google Cloud Storage V2
    • 存储桶 URI: Google Cloud 存储桶网址;例如,gs://gcp-ngfw-logs/。此网址必须以尾随正斜杠 (/) 结尾。
    • 源删除选项:根据您的偏好选择删除选项。

    • 文件存在时间上限:包含过去指定天数内修改过的文件。默认值为 180 天。

  5. 点击 Chronicle 服务账号字段旁边的获取服务账号。

    高级选项

    • Feed 名称:用于标识 Feed 的预填充值。
    • 资源命名空间:与 Feed 关联的命名空间。
    • 提取标签:应用于相应 Feed 中所有事件的标签。
  6. 点击创建 Feed。

如需详细了解如何为该产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。

UDM 映射表

日志字段 UDM 映射 逻辑
insertId metadata.product_log_id 直接从 insertId 字段映射。
jsonPayload.action security_result.action_details 直接从 jsonPayload.action 字段映射。
jsonPayload.connection.clientIp principal.asset.ip 直接从 jsonPayload.connection.clientIp 字段映射。
jsonPayload.connection.clientIp principal.ip 直接从 jsonPayload.connection.clientIp 字段映射。
jsonPayload.connection.clientPort principal.port 直接从 jsonPayload.connection.clientPort 字段映射并转换为整数。
jsonPayload.connection.protocol network.ip_protocol 从 jsonPayload.connection.protocol 映射。如果值为 tcp,则 UDM 字段设置为 TCP。类似的逻辑也适用于 udp、icmp 和 igmp。
jsonPayload.connection.serverIp target.asset.ip 直接从 jsonPayload.connection.serverIp 字段映射。
jsonPayload.connection.serverIp target.ip 直接从 jsonPayload.connection.serverIp 字段映射。
jsonPayload.connection.serverPort target.port 直接从 jsonPayload.connection.serverPort 字段映射并转换为整数。
jsonPayload.interceptVpc.projectId security_result.rule_labels 使用键 rule_details_projectId 从 jsonPayload.interceptVpc.projectId 映射。
jsonPayload.interceptVpc.vpc security_result.rule_labels 从 jsonPayload.interceptVpc.vpc 映射,键为 rule_details_vpc_network。
jsonPayload.securityProfileGroupDetails.securityProfileGroupId security_result.rule_labels 使用键 rule_details_security_profile_group 从 jsonPayload.securityProfileGroupDetails.securityProfileGroupId 映射。
jsonPayload.securityProfileGroupDetails.securityProfileGroupId security_result.rule_labels 从 jsonPayload.securityProfileGroupDetails.securityProfileGroupId 映射,键为 rule_details_securityProfileGroupDetails_id。
jsonPayload.threatDetails.category security_result.rule_labels 从 jsonPayload.threatDetails.category 映射,键为 rule_details_category。
jsonPayload.threatDetails.direction security_result.rule_labels 从 jsonPayload.threatDetails.direction 映射,键为 rule_details_direction。
jsonPayload.threatDetails.id security_result.threat_id 直接从 jsonPayload.threatDetails.id 字段映射。
jsonPayload.threatDetails.severity security_result.severity 从 jsonPayload.threatDetails.severity 映射。如果值为 CRITICAL,则 UDM 字段设置为 CRITICAL。类似的逻辑也适用于 HIGH、MEDIUM、LOW 和 INFO。
jsonPayload.threatDetails.threat security_result.threat_name 直接从 jsonPayload.threatDetails.threat 字段映射。
jsonPayload.threatDetails.type security_result.rule_labels 使用键 rule_details_threat_type 从 jsonPayload.threatDetails.type 映射。
jsonPayload.threatDetails.uriOrFilename security_result.rule_labels 从 jsonPayload.threatDetails.uriOrFilename 映射,键为 rule_details_uriOrFilename。
logName metadata.product_event_type 直接从 logName 字段映射。
metadata.collected_timestamp metadata.collected_timestamp 直接从 receiveTimestamp 字段映射,并使用指定的日期格式进行解析。
metadata.event_type metadata.event_type 如果同时存在 principal_ip 和 target_ip,则设置为 NETWORK_CONNECTION。如果仅存在 principal_ip,则设置为 STATUS_UNCATEGORIZED。否则,请将其设置为 GENERIC_EVENT。
metadata.product_name metadata.product_name 硬编码为 GCP Firewall。
metadata.vendor_name metadata.vendor_name 硬编码为 Google Cloud Platform。
receiveTimestamp metadata.collected_timestamp 直接从 receiveTimestamp 字段映射。
security_result.action security_result.action 派生自 jsonPayload.action 字段。根据 jsonPayload.action 的值映射到 ALLOW、BLOCK 或 UNKNOWN_ACTION。
timestamp metadata.event_timestamp 直接从 timestamp 字段映射。
timestamp timestamp 直接从 timestamp 字段映射。

更新日志

查看此解析器的更新日志

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