收集 Cloud Next Generation Firewall Enterprise 日志

支持的平台:

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

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保 Cloud NGFW Enterprise 已在您的 Google Cloud 环境中激活并配置完毕。
  • 确保您拥有对 Cloud NGFW 企业版日志的 Google Cloud 特权访问权限以及适当的访问权限。

创建 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

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

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

    • 存储分区 URI: Google Cloud 存储分区网址;例如 gs://gcp-ngfw-logs
    • URI 类型:选择包含子目录的目录
    • 来源删除选项:根据您的偏好选择删除选项。

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

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

  9. 点击下一步

  10. 最终确定界面中查看新的 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。类似的逻辑也适用于 udpicmpigmp
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 jsonPayload.interceptVpc.projectId 映射而来,键为 rule_details_projectId
jsonPayload.interceptVpc.vpc security_result.rule_labels jsonPayload.interceptVpc.vpc 映射而来,键为 rule_details_vpc_network
jsonPayload.securityProfileGroupDetails.securityProfileGroupId security_result.rule_labels jsonPayload.securityProfileGroupDetails.securityProfileGroupId 映射而来,键为 rule_details_security_profile_group
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 字段设置为 CRITICALHIGHMEDIUMLOWINFO 也遵循类似的逻辑。
jsonPayload.threatDetails.threat security_result.threat_name 直接从 jsonPayload.threatDetails.threat 字段映射。
jsonPayload.threatDetails.type security_result.rule_labels jsonPayload.threatDetails.type 映射而来,键为 rule_details_threat_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_iptarget_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 的值映射到 ALLOWBLOCKUNKNOWN_ACTION
timestamp metadata.event_timestamp 直接从 timestamp 字段映射。
timestamp timestamp 直接从 timestamp 字段映射。

变化

2024-04-16

  • alert_severity 的映射从 jsonPayload.alert_severity 更改为 jsonPayload.threatDetails.severity
  • threat_id 的映射从 jsonPayload.threat_id 更改为 jsonPayload.threatDetails.id
  • rdspg 的映射从 jsonPayload.security_profile_group 更改为 jsonPayload.securityProfileGroupDetails.securityProfileGroupId
  • rduri 的映射从 jsonPayload.uri_or_filename 更改为 jsonPayload.threatDetails.uriOrFilename
  • 移除了 jsonPayload.rule_details.priorityjsonPayload.rule_details.apply_security_profile_fallback_actionjsonPayload.rule_details.source_rangejsonPayload.rule_details.target_secure_tag 的映射。

2024-03-26

  • 新创建的解析器。

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