收集 Akamai DNS 日志

解析器版本:4.0

支持的平台:

本文档介绍了如何使用 Google Cloud Storage V2 将 Akamai DNS 日志注入到 Google Security Operations。

Akamai Edge DNS 是一项权威 DNS 服务,可提供快速、高可用性且安全的 DNS 解析。它利用 Akamai Intelligent Edge Platform 从最近的入网点提供 DNS 响应,并提供内置的 DDoS 攻击防护和 DNSSEC 支持。您可以使用 Akamai DataStream 2 将 Edge DNS 查询日志流式传输到 Google Cloud Storage 存储桶,然后由 Google SecOps 提取。

准备工作

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

  • Google SecOps 实例
  • 启用了 Cloud Storage API 的 GCP 项目
  • 创建和管理 GCS 存储桶的权限
  • 管理 GCS 存储桶的 IAM 政策的权限
  • 具有 DataStream 访问权限的 Akamai 控制中心账号
  • 包含 Edge DNS 和 DataStream 2 的 Akamai 合同
  • 在您的 Akamai 账号中配置并处于有效状态的 Edge DNS 区域

创建 Google Cloud Storage 存储桶

  1. 前往 Google Cloud 控制台。
  2. 选择您的项目或创建一个新项目。
  3. 在导航菜单中,依次前往 Cloud Storage > 存储桶。
  4. 点击创建存储分区。
  5. 提供以下配置详细信息:

    设置 值
    为存储桶命名 输入一个全局唯一的名称(例如 akamai-dns-logs)
    位置类型 根据您的需求进行选择(区域级、双区域级、多区域级)
    位置 选择位置(例如 us-central1)
    存储类别 标准(建议用于频繁访问的日志)
    访问权限控制 均匀(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建。

为 DataStream 2 创建 GCS 服务账号

DataStream 2 需要具有写入权限的 GCS 服务账号才能将日志传送到您的存储桶。

创建服务账号

  1. 在 GCP 控制台中,依次前往 IAM 和管理 > 服务账号。
  2. 点击创建服务账号。
  3. 提供以下配置详细信息:
    • 服务账号名称:输入 akamai-datastream-sa
    • 服务账号说明:输入 Service account for Akamai DataStream 2 to write Edge DNS logs to GCS
  4. 点击创建并继续。
  5. 在向此服务账号授予对项目的访问权限部分中,添加以下角色:
    1. 点击选择角色。
    2. 搜索并选择 Storage Object Creator。
  6. 点击继续。
  7. 点击完成。

创建并下载服务账号密钥

  1. 在 GCP 控制台中,依次前往 IAM 和管理 > 服务账号。
  2. 点击相应服务账号 (akamai-datastream-sa)。
  3. 前往密钥标签页。
  4. 依次点击添加密钥> 创建新密钥。
  5. 选择 JSON 作为密钥类型。
  6. 点击创建。
  7. 妥善保存下载的 JSON 密钥文件。配置 DataStream 2 时,您将需要服务账号名称和私钥值。

授予对 GCS 存储桶的 IAM 权限

向服务账号授予对 GCS 存储桶的写入权限:

  1. 前往 Cloud Storage > 存储桶。
  2. 点击您的存储桶名称(例如 akamai-dns-logs)。
  3. 前往权限标签页。
  4. 点击授予访问权限。
  5. 提供以下配置详细信息:
    • 添加主账号:输入服务账号电子邮件地址(例如 akamai-datastream-sa@PROJECT_ID.iam.gserviceaccount.com)
    • 分配角色:选择 Storage Object Creator
  6. 点击保存。

为 Edge DNS 配置 DataStream 2

DataStream 2 取代了用于流式传输 Edge DNS 日志的旧版日志传送服务 (LDS)。使用 DataStream 2 创建一个数据流,用于收集 Edge DNS 查询日志并将其传送到您的 GCS 存储桶。

创建 Edge DNS 流

  1. 登录 Akamai 控制中心。
  2. 依次前往 ☰ > 常用服务 > DataStream。
  3. 点击创建信息流。
  4. 从下拉列表中选择 Edge DNS。
  5. 在配置标签页中,提供以下配置详细信息:
    • 显示名称:输入数据流的名称(例如 Edge DNS to GCS)
    • 群组:选择相关的账号控制组
    • 合同 ID:验证与群组关联的合同编号
  6. 在选择可用区中,选择您希望数据流收集哪些 Edge DNS 可用区的日志数据。
  7. 点击下一步。

选择数据参数

  1. 在数据集标签页上,选择要纳入数据流中的数据集字段。以下字段适用于 Edge DNS:

    数据元素 JSON 键 说明
    纪元时间戳 timeStamp 相应日志条目的 Unix 纪元时间戳
    日期 date 日志条目的世界协调时间 (UTC) 日期
    解析器 IP requestIP 发出请求的 DNS 解析器的 IP 地址
    请求端口 requestPort DNS 解析器的端口号
    请求名称 requestName 请求的查询名称
    类 dnsClass 请求的 DNS 类
    请求类型 requestType 请求的 DNS 记录类型
    EDNS0 标志 edns0Flag EDNS0 客户端子网 (ECS) 指标
    EDNS0 大小 edns0Size ECS 字段大小(以字节为单位)
    DNSSEC 标志 dnssecFlag DNSSEC 指示器
    TCP 标志 tcpFlag TCP 指示器
    回答 answers 针对请求查询名称请求回答
    时间 time 相应日志条目的世界协调时间 (UTC)
  2. 点击下一步。

配置 Google Cloud Storage 目标位置

  1. 在目标位置标签页上,选择 Google Cloud Storage。
  2. 提供以下配置详细信息:

    • 显示名称:输入目标的名称(例如 GCS Edge DNS Logs)
    • 存储桶:输入 GCS 存储桶的名称(例如 akamai-dns-logs)
    • 项目 ID:输入您的 GCP 项目 ID
    • 路径(可选):输入日志文件的文件夹路径(例如 akamai-dns)
    • 服务账号名称:输入 JSON 密钥文件 (akamai-datastream-sa) 中的服务账号名称
    • 私钥:以 PEM 格式输入 JSON 密钥文件中的 private_key 值,并带有换行符

      -----BEGIN PRIVATE KEY-----\nprivate_key_content\n-----END PRIVATE KEY-----\n
      
  3. 点击验证并保存以测试与 GCS 存储桶的连接。

  4. (可选)在递送选项菜单中,执行以下操作:

    • 修改文件名字段,以更改日志文件的前缀和后缀
    • 更改推送频率,以便每 30 秒或 60 秒接收一次捆绑日志
  5. 点击下一步,前往摘要标签页。

查看并激活

  1. 在摘要标签页上,查看直播配置。
  2. 点击激活数据流。
  3. 等待直播状态变为有效(这可能需要几分钟时间)。

验证日志传送

  1. 在数据流处于有效状态后,等待配置的推送频率间隔(30 秒或 60 秒)。
  2. 前往 Google Cloud 控制台。
  3. 前往 Cloud Storage > 存储桶。
  4. 点击您的存储桶名称(例如 akamai-dns-logs)。
  5. 前往路径文件夹(例如 akamai-dns/)。
  6. 验证是否正在创建新的日志文件。

如果日志文件未显示,请执行以下操作:

  • 在 Datastream 信息中心内验证数据流状态是否为有效
  • 检查服务账号是否对相应存储桶具有 Storage Object Creator 权限
  • 验证数据流配置中的存储桶名称和项目 ID 是否正确
  • 在 DataStream 信息中心内检查验证错误

检索 Google SecOps 服务账号

Google SecOps 使用唯一的服务账号从您的 GCS 存储桶中读取数据。您必须向此服务账号授予对您的存储桶的访问权限。

获取服务账号电子邮件地址

  1. 前往 SIEM 设置 > Feed。
  2. 点击添加新 Feed。
  3. 点击配置单个 Feed。
  4. 在 Feed 名称字段中,输入 Feed 的名称(例如 Akamai DNS Logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型。
  6. 选择 AKAMAI_DNS 作为日志类型。
  7. 点击获取服务账号。
  8. 系统会显示一个唯一的服务账号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. 复制此电子邮件地址,以便在下一步中使用。

  10. 点击下一步。

  11. 为以下输入参数指定值:

    • 存储桶网址:输入带有前缀路径的 GCS 存储桶 URI:

      gs://akamai-dns-logs/akamai-dns/
      
    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:转移后永不删除任何文件(建议用于测试)。
      • 删除已转移的文件:成功转移后删除文件。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。

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

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

    • 注入标签:要应用于此 Feed 中事件的标签

  12. 点击下一步。

  13. 在最终确定界面中查看新的 Feed 配置,然后点击提交。

向 Google SecOps 服务账号授予 IAM 权限

Google SecOps 服务账号需要您的 GCS 存储桶的 Storage Object Viewer 角色。

  1. 前往 Cloud Storage > 存储桶。
  2. 点击您的存储桶名称(例如 akamai-dns-logs)。
  3. 前往权限标签页。
  4. 点击授予访问权限。
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存。

UDM 映射表

日志字段 UDM 映射 逻辑
timestamp metadata.event_timestamp 从原始日志的 timestamp 字段中解析。
source_ip principal.ip 该值取自 source_ip 字段。
source_port principal.port 该值取自 source_port 字段,并转换为整数。
query network.dns.questions.name 该值取自 query 字段。
query_type network.dns.questions.type 该值取自 query_type 字段,并映射到 DNS 记录类型。
response_code network.dns.response_code 该值取自 response_code 字段。
metadata.event_type 如果存在委托人信息,则设置为 NETWORK_DNS;否则设置为 GENERIC_EVENT。
metadata.product_name 设置为 Akamai DNS。
metadata.vendor_name 设置为 Akamai。

更新日志

查看相应解析器的更新日志

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