收集 Cloud Next Generation Firewall Enterprise 日志
本文档介绍了如何使用 Google Cloud将 Cloud NGFW Enterprise 日志导出并提取到 Google 安全运营中心。解析器会从防火墙日志中提取字段,并将其转换并映射到 UDM。 Google Cloud 它会处理各种日志字段,包括连接详细信息、威胁信息、规则详细信息和网络信息,并根据 action
和 direction
字段执行数据类型转换、重命名和条件逻辑,以正确填充 UDM 模型。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保 Cloud NGFW Enterprise 已在您的 Google Cloud 环境中激活并配置完毕。
- 确保您拥有对 Cloud NGFW 企业版日志的 Google Cloud 特权访问权限以及适当的访问权限。
创建 Cloud Storage 存储桶
- 登录 Google Cloud 控制台。
前往 Cloud Storage 存储分区页面。
点击创建。
在创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:
在开始使用部分中,执行以下操作:
- 输入符合存储分区名称要求的唯一名称;例如 gcp-ngfw-logs。
如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间。
如需添加存储分区标签,请点击展开箭头以展开标签部分。
点击添加标签,然后为标签指定键和值。
在选择数据存储位置部分中,执行以下操作:
- 选择位置类型。
使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。
如需设置跨存储分区复制,请展开设置跨存储分区复制部分。
在为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。
在选择如何控制对对象的访问权限部分中,选择否以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型。
在选择如何保护对象数据部分中,执行以下操作:
- 在数据保护下,选择您要为存储分区设置的任何选项。
- 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法。
点击创建。
配置 Cloud NGFW 日志导出
- 登录 Google Cloud 控制台。
- 依次前往日志记录 > 日志路由器。
- 点击创建接收器。
提供以下配置参数:
- 接收器名称:输入一个有意义的名称,例如
NGFW-Export-Sink
。 - 接收器目标位置:选择 Google Cloud Storage,然后输入存储分区的 URI;例如
gs://gcp-ngfw-logs
。 日志过滤器:
logName="projects/<your-project-id>/logs/gcp-firewall"
- 接收器名称:输入一个有意义的名称,例如
点击创建。
配置 Cloud Storage 权限
- 依次前往 IAM 和管理 > IAM。
- 找到 Cloud Logging 服务账号。
- 向存储分区授予 roles/storage.admin。
在 Google SecOps 中配置 Feed 以提取 Cloud NGFW Enterprise 日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在 Feed name 字段中,输入 Feed 的名称;例如 GCP NGFW Enterprise Logs。
- 选择 Google Cloud Storage 作为来源类型。
- 选择 GCP NGFW Enterprise 作为日志类型。
- 点击 Chronicle 服务账号字段旁边的获取服务账号。
- 点击下一步。
为以下输入参数指定值:
- 存储分区 URI: Google Cloud 存储分区网址;例如
gs://gcp-ngfw-logs
。 - URI 类型:选择包含子目录的目录。
来源删除选项:根据您的偏好选择删除选项。
资源命名空间:资源命名空间。
提取标签:应用于此 Feed 中的事件的标签。
- 存储分区 URI: Google Cloud 存储分区网址;例如
点击下一步。
在最终确定界面中查看新的 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 |
从 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 字段设置为 CRITICAL 。HIGH 、MEDIUM 、LOW 和 INFO 也遵循类似的逻辑。 |
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_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 字段映射。 |
变化
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.priority
、jsonPayload.rule_details.apply_security_profile_fallback_action
、jsonPayload.rule_details.source_range
和jsonPayload.rule_details.target_secure_tag
的映射。
2024-03-26
- 新创建的解析器。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。