收集 Azion 防火墙日志
支持的语言:
Google SecOps
SIEM
概览
此解析器从 Azion 防火墙 JSON 日志中提取字段,执行数据类型转换和丰富(例如,用户代理解析),并将提取的字段映射到 UDM。它会根据正文和目标机器的存在情况生成 NETWORK_HTTP、SCAN_UNCATEGORIZED 或 GENERIC_EVENT 事件。它还会处理与 WAF 相关的字段和操作,并将它们映射到 UDM 安全结果字段。
准备工作
确保您满足以下前提条件:
- Google SecOps 实例。
- 对 AWS IAM 和 S3 的特权访问权限。
- 对有效 Azion 账号的特权访问权限。
配置 Amazon S3 存储桶
- 按照以下用户指南创建 Amazon S3 存储桶:创建存储桶。
- 保存存储桶名称和区域以供日后参考。
- 按照以下用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 在访问密钥部分中,点击创建访问密钥。
- 选择第三方服务作为使用情形。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击下载 .csv 文件。(保存访问密钥和私有访问密钥以供日后参考)。
- 点击完成。
- 选择权限标签页。
- 在权限政策部分中,点击添加权限。
- 选择添加权限。
- 选择直接附加政策。
- 搜索 AmazonS3FullAccess 政策。
- 选择相应政策。
- 点击下一步。
- 点击添加权限。
配置 Azion 以将日志持续交付到 Amazon S3
- 在 Azion 控制台中,前往 DataStream 部分。
- 点击 + 直播。
- 为以下参数指定值:
- 名称:提供一个可唯一标识数据流的描述性名称。
- 来源:选择要从中收集数据的来源。
- 模板:针对特定来源的预设变量,或用于选择变量的开放式模板。您可以选择过滤网域。
- 在目标平台部分,依次点击连接器 > Simple Storage Service (S3)。
- 网址:相应存储桶的 URI。
s3:/BUCKET_NAME
。 替换以下内容:BUCKET_NAME
:相应存储桶的名称。
- 存储桶名称:对象将发送到的存储桶的名称。
- 区域:存储桶所在的区域。
- 访问密钥:具有 S3 存储桶访问权限的用户访问密钥。
- 密钥:具有 S3 存储桶访问权限的用户密钥。
- 内容类型:选择纯文本。
- 网址:相应存储桶的 URI。
- 点击保存。
如需了解详情,请参阅如何使用 Amazon S3 接收来自数据流的数据
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed
- 内容中心 > 内容包
通过“SIEM 设置”>“Feed”设置 Feed
如需配置 Feed,请按以下步骤操作:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如 Azion 日志)。
- 选择 Amazon S3 作为来源类型。
- 选择 Azion 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 区域:Amazon S3 存储桶所在的区域。
- S3 URI:存储桶 URI。
s3:/BUCKET_NAME
。 替换以下内容:BUCKET_NAME
:相应存储桶的名称。
- URI 是:根据日志流配置选择 URI 类型(单个文件 | 目录 | 包含子目录的目录)。
- 来源删除选项:根据您的偏好设置选择删除选项。
- 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥。
- 私有访问密钥:有权访问 S3 存储桶的用户私有密钥。
- 资源命名空间:资源命名空间。
- 注入标签:要应用于此 Feed 中事件的标签。
- 点击下一步。
- 在最终确定界面中查看新的 Feed 配置,然后点击提交。
设置来自内容中心的 Feed
为以下字段指定值:
- 区域:Amazon S3 存储桶所在的区域。
- S3 URI:存储桶 URI。
s3:/BUCKET_NAME
。 替换以下内容:BUCKET_NAME
:相应存储桶的名称。
- URI 是:根据日志流配置选择 URI 类型(单个文件 | 目录 | 包含子目录的目录)。
- 来源删除选项:根据您的偏好设置选择删除选项。
- 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥。
- 私有访问密钥:有权访问 S3 存储桶的用户私有密钥。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 来源类型:用于将日志收集到 Google SecOps 中的方法。
- 资源命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
asn |
read_only_udm.network.asn |
直接从 asn 字段映射。 |
bytes_sent |
read_only_udm.network.sent_bytes |
直接从 bytes_sent 字段映射,并转换为无符号整数。 |
country |
read_only_udm.principal.location.country_or_region |
直接从 country 字段映射。 |
host |
read_only_udm.principal.hostname |
直接从 host 字段映射。 |
http_referer |
read_only_udm.network.http.referral_url |
直接从 http_referer 字段映射。 |
http_user_agent |
read_only_udm.network.http.user_agent |
直接从 http_user_agent 字段映射。 |
http_user_agent |
read_only_udm.network.http.parsed_user_agent |
使用 parseduseragent 过滤条件从 http_user_agent 字段解析。 |
read_only_udm.event_type |
由解析器根据是否存在 principal 和 target 信息来确定。可以是 NETWORK_HTTP、SCAN_UNCATEGORIZED 或 GENERIC_EVENT。 |
|
read_only_udm.metadata.product_name |
硬编码为 "AZION"。 | |
read_only_udm.metadata.vendor_name |
硬编码为 "AZION"。 | |
read_only_udm.metadata.product_version |
硬编码为 "AZION"。 | |
remote_addr |
read_only_udm.principal.ip |
直接从 remote_addr 字段映射。 |
remote_port |
read_only_udm.principal.port |
直接从 remote_port 字段映射,并转换为整数。 |
requestPath |
read_only_udm.target.url |
如果不存在 request_uri ,则直接从 requestPath 字段映射。 |
request_method |
read_only_udm.network.http.method |
直接从 request_method 字段映射,并转换为大写。 |
request_time |
read_only_udm.additional.fields |
以键值对的形式添加到 additional.fields 数组中,键为 "request_time",值为 request_time 字段中的值。 |
request_uri |
read_only_udm.target.url |
如果存在,则直接从 request_uri 字段映射。 |
server_addr |
read_only_udm.target.ip |
直接从 server_addr 字段映射。 |
server_port |
read_only_udm.target.port |
直接从 server_port 字段映射,并转换为整数。 |
ssl_cipher |
read_only_udm.network.tls.cipher |
直接从 ssl_cipher 字段映射。 |
ssl_protocol |
read_only_udm.network.tls.version_protocol |
直接从 ssl_protocol 字段映射。 |
ssl_server_name |
read_only_udm.network.tls.client.server_name |
直接从 ssl_server_name 字段映射。 |
state |
read_only_udm.principal.location.state |
直接从 state 字段映射。 |
status |
read_only_udm.network.http.response_code |
直接从 status 字段映射,并转换为整数。 |
time |
read_only_udm.metadata.event_timestamp |
使用日期过滤条件和多种日期格式从 time 字段解析。 |
upstream_addr |
read_only_udm.intermediary.ip 、read_only_udm.intermediary.port |
使用 grok 从 upstream_addr 字段中提取,并拆分为 IP 和端口。 |
upstream_status |
read_only_udm.additional.fields |
以键值对的形式添加到 additional.fields 数组中,键为 "upstream_status",值为 upstream_status 字段中的值。 |
waf_args |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_attack_action |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_attack_family |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_headers |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_learning |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_match |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_score |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_server |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_total_blocked |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_total_processed |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
waf_uri |
read_only_udm.security_result.detection_fields |
以键值对的形式添加到 security_result.detection_fields 数组中。 |
read_only_udm.security_result.action |
由解析器根据 waf_block 或 blocked 字段确定。设置为 ALLOW 或 BLOCK。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。