收集 ExtraHop DNS 日志

支持的语言:

本文档介绍了如何使用 Bindplane 将 ExtraHop DNS 日志注入到 Google Security Operations。解析器从原始消息字符串中提取 JSON 格式的日志,并通过舍弃事件来处理非 JSON 数据。然后,它会将提取的 JSON 中的特定字段映射到统一数据模型 (UDM) 架构中的相应字段,转换数据类型并处理不同的 DNS 响应结构,以确保表示形式一致。

准备工作

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

  • Google SecOps 实例
  • Windows 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • 如果通过代理运行,请确保防火墙端口处于开放状态
  • 对 ExtraHop DNS 的特权访问权限

获取 Google SecOps 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 Bindplane 代理

按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

如需了解其他安装选项,请参阅安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:
    • 找到 config.yaml 文件。通常,它位于 Linux 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件: yaml receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'EXTRAHOP_DNS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
  • 根据基础架构的需要替换端口和 IP 地址。

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

为 ExtraHop Open Data Stream (DNS) 配置 Syslog

  1. 使用 https://<extrahop-hostname-or-IP-address>/admin 登录 ExtraHop 管理界面
  1. 依次前往系统配置 > 打开数据流
  2. 点击添加目标
  3. 目标类型下拉菜单中,选择 Syslog
  4. 提供以下配置详细信息:
    • 名称:输入一个唯一名称来标识目标。
    • 主机:输入 Bindplane 代理 IP 地址。
    • 端口:输入 Bindplane 代理端口号。
    • 协议:根据您的 Bindplane 配置,选择 UDPTCP
    • (可选)选择本地时间,以发送包含本地时区时间戳的 syslog 信息。
    • 点击测试
  5. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
ans.data network.dns.answers.data 从原始日志中 answers 数组内的 data 字段提取。
ans.name network.dns.answers.name 从原始日志中 answers 数组内的 name 字段提取。
ans.ttl network.dns.answers.ttl 从原始日志中 answers 数组内的 ttl 字段提取。已转换为 uinteger
ans.typeNum network.dns.answers.type 从原始日志中 answers 数组内的 typeNum 字段提取。已转换为 uinteger
ans_data network.dns.answers.data 当原始日志中不存在 answers 数组时,从 ans_data 字段中提取。
ans_name network.dns.answers.name 当原始日志中不存在 answers 数组时,从 ans_name 字段中提取。
ans_ttl network.dns.answers.ttl 当原始日志中不存在 answers 数组时,从 ans_ttl 字段中提取。已转换为 uinteger
client_ip principal.ip 从原始日志的 client_ip 字段中提取。
dns_type network.dns.response 如果值为“response”,则映射为“true”,否则不进行映射。转换为 boolean
dst_ip target.ip 从原始日志的 dst_ip 字段中提取。
ip_or_host intermediary.hostname 如果 ip_or_host 不是有效的 IP 地址,则会映射到 intermediary.hostname
ip_or_host intermediary.ip 如果 ip_or_host 是有效的 IP 地址,则会映射到 intermediary.ip
opcode network.dns.opcode 从原始日志的 opcode 字段中提取。根据操作码字符串(例如,“QUERY” -> 0)。已转换为 uinteger
qname network.dns.questions.name 从原始日志的 qname 字段中提取。
qtype network.dns.questions.type 从原始日志的 qtype 字段中提取。根据记录类型字符串(例如“A” -> 1)。已转换为 uinteger
metadata.event_type 设置为 NETWORK_DNS
metadata.log_type 设置为 EXTRAHOP_DNS
network.application_protocol 设置为 DNS

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