收集 ExtraHop Reveal(x) DNS 日志

支持的环境:

本文档介绍了如何使用 Bindplane 将 ExtraHop Reveal(x) DNS 日志注入 Google Security Operations。ExtraHop Reveal(x) 提供被动 DNS 监控功能,可捕获和分析网络中的所有 DNS 事务。组织使用 Reveal(x) 通过对 DNS 流量进行深度数据包检查来检测基于 DNS 的威胁,例如隧道、域名生成算法 (DGA) 和数据渗漏。

准备工作

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

  • Google SecOps 实例。
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机。
  • 如果通过代理运行,请确保防火墙端口根据 Bindplane 代理要求处于打开状态。
  • 对 ExtraHop Reveal(x) 管理页面的特权访问权限。
  • ExtraHop 传感器与 Bindplane 代理主机之间在配置的 syslog 端口上的网络连接。

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

  1. 登录 Google SecOps 控制台
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件
  4. 将该文件安全地保存在将安装 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](https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi)" /quiet
    

Linux 安装

  1. 使用 rootsudo 权限打开终端。
  2. 运行以下命令:

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

其他安装资源

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

将 Bindplane 代理配置为注入 syslog 并发送到 Google SecOps

  1. 访问配置文件:

    • Linuxsudo systemctl status observiq-otel-collector
    • WindowsC:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. 按如下方式修改 config.yaml 文件:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/extrahop_dns:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: '<CUSTOMER_ID>'
        endpoint: '<ENDPOINT>'
        log_type: 'EXTRAHOP_DNS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/extrahop_dns_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/extrahop_dns
    
  • <CUSTOMER_ID> 替换为实际客户 ID。
  • /path/to/ingestion-authentication-file.json 更新为保存身份验证文件的路径。
  • <ENDPOINT> 替换为您的区域端点:
    • 美国malachiteingestion-pa.googleapis.com
    • 欧洲: europe-malachiteingestion-pa.googleapis.com
    • 亚洲: asia-southeast1-malachiteingestion-pa.googleapis.com

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行:sudo systemctl restart observiq-otel-collector
  • 如需在 Windows 中重启 Bindplane 代理,请使用 服务 控制台或运行: cmd net stop observiq-otel-collector && net start observiq-otel-collector

配置 ExtraHop Reveal(x) Open Data Stream 以进行 DNS syslog 转发

添加 syslog Open Data Stream 目标

  1. 登录 ExtraHop 管理 页面。
  2. 系统配置 部分中,点击 Open Data Streams
  3. 点击添加目标 ,然后选择 Syslog
  4. 提供以下配置详细信息:
    • 名称:输入描述性名称(例如 Google SecOps-DNS)。
    • 主机:输入 Bindplane 代理 主机的 IP 地址。
    • 端口514
    • 协议UDP
  5. 点击测试 以验证连接,然后点击保存

创建触发器以导出 DNS 事务

  1. 点击系统设置 图标,然后选择触发器
  2. 点击创建
  3. 提供以下配置详细信息:
    • 名称DNS Syslog Export
    • 事件:选择 DNS_REQUESTDNS_RESPONSE
  4. 编辑器 窗格中,输入以下触发器脚本:

    var obj = {
        eh_event: "dns",
        client_ip: Flow.client.ipaddr.toString(),
        server_ip: Flow.server.ipaddr.toString(),
        client_port: Flow.client.port,
        server_port: Flow.server.port,
        qname: DNS.qname,
        qtype: DNS.qtype
    };
    
    if (event === "DNS_RESPONSE") {
        obj.dns_type = "response";
        obj.rcode = DNS.errorNum;
        obj.answers = JSON.stringify(DNS.answers);
    } else {
        obj.dns_type = "request";
        obj.opcode = DNS.opcode;
    }
    
    Remote.Syslog("Chronicle-DNS").info(JSON.stringify(obj));
    
  5. 点击保存

将触发器分配给设备

  1. 打开您创建的触发器。
  2. Assignments (分配)部分中,点击 Assign (分配)。
  3. 选择相关设备或设备组,然后点击 Assign (分配)。

UDM 映射表

日志字段 UDM 映射 逻辑
answers network.dns.answers 从原始字段解析。
dst target.ip 原始映射。
dpt target.port 原始映射。
host principal.hostname 原始映射。
proto network.ip_protocol 原始映射。
qname network.dns.questions.name 原始映射。
qtype network.dns.questions.type 原始映射。
rcode network.dns.response_code 原始映射。
src principal.ip 原始映射。
spt principal.port 原始映射。
ttl network.dns.answers.ttl 原始映射。
不适用 metadata.log_type 设置为 EXTRAHOP_DNS
不适用 metadata.product_name 设置为 Reveal(x) DNS
不适用 metadata.vendor_name 设置为 ExtraHop

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