收集 Akamai DNS 日志
支持的平台:
Google SecOps
SIEM
此解析器会处理 Akamai DNS 日志。它会提取时间戳、来源 IP 和端口、查询、DNS 记录类型和响应详情等字段。然后,它会将这些字段映射到 UDM,处理各种 DNS 记录类型和潜在的 SPF 记录。解析器会根据是否存在主要信息将事件分类为 NETWORK_DNS
或 GENERIC_EVENT
。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您拥有对 AWS IAM 和 S3 的超级用户访问权限。
- 确保您的 Akamai 账号有权访问日志传送服务。
配置 Amazon S3 存储分区
- 按照以下用户指南创建 Amazon S3 存储分区:创建存储分区
- 保存存储分区的名称和区域,以备日后参考。
- 按照以下用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 点击访问密钥部分中的创建访问密钥。
- 选择第三方服务作为用例。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击下载 .csv 文件,然后保存访问密钥和密钥,以备日后参考。
- 点击完成。
- 选择权限标签页。
- 在权限政策部分中,点击添加权限。
- 选择添加权限。
- 选择直接附加政策。
- 搜索并选择 AmazonS3FullAccess 政策。
- 点击下一步。
- 点击添加权限。
在 Akamai 中配置日志传送服务
- 登录 Akamai 控制中心。
- 前往数据服务下的日志传送服务。
- 点击添加新配置。
- 在配置名称字段中,为您的配置提供一个名称(例如“将边缘 DNS 日志导出到 S3”)。
- 选择 Edge DNS 作为日志源。
- 选择 AWS S3 作为传送目标。
- 提供以下详细信息:
- 存储分区名称:您的 S3 存储分区的名称。
- 区域:存储分区托管的 AWS 区域。
- 访问密钥 ID:IAM 用户访问密钥 ID。
- 私有访问密钥:IAM 用户的私有访问密钥。
- 可选:指定目录结构。(例如:
logs/akamai-dns/YYYY/MM/DD/HH/
)。 - 可选:设置文件命名惯例。(例如:
edge-dns-logs-{timestamp}.log
)。
- 选择要添加的日志格式:
- DNS 查询
- DNS 响应
- 选择投放频率:
- 选项包括每小时、每天或达到特定文件大小(例如 100MB)时。
- 可选:点击添加过滤条件,根据特定条件(例如主机名或记录类型)包含或排除特定日志。
- 查看配置详情,然后点击保存并启用。
在 Google SecOps 中配置 Feed 以提取 Akamai DNS 日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在 Feed 名称字段中,输入 Feed 的名称(例如 Akamai DNS 日志)。
- 选择 Amazon S3 作为来源类型。
- 选择 Akamai DNS 作为日志类型。
- 点击下一步。
为以下输入参数指定值:
- 区域:Amazon S3 存储分区所在的区域。
S3 URI:存储分区 URI。
s3://BUCKET_NAME
替换以下内容:
- BUCKET_NAME:存储分区的名称。
URI 是:根据日志流配置(单个文件 | 目录 | 包含子目录的目录)选择
URI_TYPE
。来源删除选项:根据您的偏好选择删除选项。
访问密钥 ID:有权访问 S3 存储分区的用户访问密钥。
私有访问密钥:有权访问 S3 存储分区的用户私钥。
资源命名空间:资源命名空间。
提取标签:要应用于此 Feed 中的事件的标签。
点击下一步。
在“最终确定”界面中查看新的 Feed 配置,然后点击提交。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
类 | read_only_udm.network.dns.questions.class |
如果类别为“IN”,请将其设置为 1。否则,尝试转换为无符号整数。 |
column11 | read_only_udm.target.hostname |
如果包含主机名且不包含“ip4”“="”“.net”或“10 mx0”等特定模式,则会被映射。还用于根据各种模式提取 IP 地址、电子邮件地址和 DNS 权威数据。 |
column11 | read_only_udm.target.ip |
如果 column11 与 SPF 记录中的 IP 地址模式匹配,则从中提取。 |
column11 | read_only_udm.target.user.email_addresses |
如果 column11 与 DMARC 记录中的电子邮件地址模式匹配,则从中提取。 |
column11 | read_only_udm.network.dns.authority.data |
如果 column11 与各种记录类型中的域名模式匹配,则从中提取。 |
column11 | read_only_udm.network.dns.response_code |
如果 column11 包含“NXDOMAIN”,则设置为 3。 |
column2 | read_only_udm.principal.ip |
如果是有效的 IP 地址,则会进行映射。 |
column3 | read_only_udm.principal.port |
如果是有效整数,则会进行映射。 |
column4 | read_only_udm.network.dns.questions.name |
直接映射。 |
column6 | read_only_udm.network.dns.questions.type |
根据 type 的值进行映射,使用条件逻辑来分配相应的数值。 |
column8 | read_only_udm.network.sent_bytes |
转换为无符号整数并进行映射。 |
read_only_udm.metadata.event_timestamp |
由从 column1 中提取的日期和时间字段构建而成。 | |
read_only_udm.event_type |
如果存在 principal.ip ,则设置为 NETWORK_DNS;否则,设置为 GENERIC_EVENT。 |
|
read_only_udm.product_name |
已硬编码为 AKAMAI_DNS。 | |
read_only_udm.vendor_name |
已硬编码为 AKAMAI_DNS。 | |
read_only_udm.dataset |
已硬编码为 AKAMAI_DNS。 | |
read_only_udm.event_subtype |
已硬编码为 DNS。 |
更改
2024-05-28
- bug 修复:添加了
gsub
函数,用于从日志消息中移除双引号。 - 添加了 Grok 模式,以便在映射之前验证 IP 地址和端口值。