收集 EfficientIP DDI 日志

支持的平台:

本文档介绍了如何使用 Bindplane 代理将 EfficientIP DDI 日志注入到 Google Security Operations 中。

EfficientIP SOLIDserver 是一款全面的 DDI (DNS-DHCP-IPAM) 解决方案,可为关键网络服务(包括 DNS、DHCP、IP 地址管理、NTP 和 TFTP)提供高度伸缩、安全且可靠的虚拟和硬件设备。该平台可为网络基础设施提供集中式管理和自动化功能,并具备高级监控和安全功能。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • Bindplane 代理与 EfficientIP SOLIDserver 设备之间的网络连接
  • 如果通过代理运行,请确保防火墙端口已根据 Bindplane 代理要求打开
  • 对 EfficientIP SOLIDserver Web 控制台的管理员访问权限
  • SOLIDserver 版本 8.0 或更高版本(已通过 8.3.x 和 8.4.x 测试)

获取 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
    
  3. 等待安装完成。

  4. 运行以下命令来验证安装:

    sc query observiq-otel-collector
    

    服务状态应为 RUNNING

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
    
  3. 等待安装完成。

  4. 运行以下命令来验证安装:

    sudo systemctl status observiq-otel-collector
    

    服务状态应为有效(正在运行)

其他安装资源

如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南

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

找到配置文件

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

修改配置文件

  1. config.yaml 的全部内容替换为以下配置:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/efficientip_ddi:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EFFICIENTIP_DDI
        raw_log_field: body
        ingestion_labels:
          env: production
          source: solidserver
    
    service:
      pipelines:
        logs/efficientip_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/efficientip_ddi
    
  2. 替换以下占位符:

    • 接收器配置:

      • listen_address:设置为 0.0.0.0:514 可在 UDP 端口 514 上监听所有接口。
        • 对于 Linux 非 root 部署,请使用端口 1514 或更高端口。
        • 确保端口与 SOLIDserver 中的配置相匹配。
    • 导出器配置:

      • creds_file_path:提取身份验证文件的完整路径:

        • Linux/etc/bindplane-agent/ingestion-auth.json
        • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id:将 YOUR_CUSTOMER_ID 替换为上一步中的客户 ID。

      • endpoint:区域端点:

        • 美国malachiteingestion-pa.googleapis.com
        • 欧洲europe-malachiteingestion-pa.googleapis.com
        • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
        • 如需查看完整列表,请参阅区域级端点
      • log_type:设置为 EFFICIENTIP_DDI(必须完全匹配)。

      • ingestion_labels:用于对日志进行分类的可选标签(可根据需要自定义)。

保存配置文件

修改后,保存文件:

  • Linux:依次按 Ctrl+OEnterCtrl+X
  • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请执行以下操作:

    1. 运行以下命令:

      sudo systemctl restart observiq-otel-collector
      
    2. 验证服务是否正在运行:

      sudo systemctl status observiq-otel-collector
      
    3. 检查日志是否存在错误:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如需在 Windows 中重启 Bindplane 代理,请执行以下操作:

    1. 请从下列选项中选择一项:

      • 以管理员身份运行命令提示符或 PowerShell:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • 服务控制台:

        1. Win+R,输入 services.msc,然后按 Enter 键。
        2. 找到 observIQ OpenTelemetry 收集器
        3. 右键点击并选择重新启动
    2. 验证服务是否正在运行:

      sc query observiq-otel-collector
      
    3. 检查日志是否存在错误:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

配置 EfficientIP DDI syslog 转发

  1. 登录 EfficientIP SOLIDserver Web 控制台。
  2. 在左侧导航栏中,点击管理
  3. 监控部分中,点击配置
  4. 在菜单中,点击 + 添加
  5. 服务列表中,选择以下服务:named(用于 DNS 日志)
  6. 目标服务器字段中,输入 Bindplane 代理主机(格式为 <ip-address>:<port>)的 IP 地址和端口。
    • 示例:192.168.1.100:514
    • 如果要在 Linux 上使用非标准端口,请相应地指定端口(例如 192.168.1.100:1514
  7. 点击确定以保存配置。

验证日志转发

  1. 检查 Bindplane 代理日志,确认是否正在接收日志:
    • Linuxsudo journalctl -u observiq-otel-collector -f
    • Windowstype "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  2. 查找包含来自 SOLIDserver 的 DNS 查询和回答事件的日志条目。
  3. 登录 Google SecOps 控制台,并验证 EfficientIP DDI 日志是否显示在事件页面中。

支持的日志类型

此集成会从 EfficientIP SOLIDserver 收集以下类型的日志:

  • DNS 查询日志:包含查询类型、域名和客户端 IP 的客户端 DNS 查询
  • DNS 回答日志:包含回答记录、TTL 和响应代码的 DNS 响应
  • DHCP 日志:DHCP 操作,包括 DISCOVER、OFFER、REQUEST、ACK、NAK、RELEASE 和 INFORM
  • DNS Guardian 日志:安全事件,包括可疑行为检测、启动/解除触发器
  • DNS 区域转移日志:区域转移操作和通知
  • DNS 错误日志:格式错误、SERVFAIL、REFUSED 和其他 DNS 错误

UDM 映射表

日志字段 UDM 映射 逻辑
ip_version additional.fields 如果非空,则合并为键为“ip_version”的标签
message_size additional.fields 如果不为空,则合并为键为“message_size”的标签
domain_name additional.fields 如果非空,则合并为键为“domain_name”的标签
不适用 中介 从中间对象合并
说明 metadata.description 如果不为空,则直接复制值
msg2 metadata.description 如果 event_type 为 GENERIC_EVENT 且 description 为空,则设置为 msg2
su_cmd metadata.event_type 如果 su_cmd 为“sudo”,则设置为“PROCESS_OPEN”
activity_type metadata.event_type 如果 activity_type 与 dns 匹配且 has_dns_questions 为 true,则设置为“NETWORK_DNS”
消息 metadata.event_type 如果消息与 DHCP 匹配,则设置为“NETWORK_DHCP”
inner_message metadata.event_type 如果 inner_message 匹配特定模式,且 has_principal 和 has_target 为 true,则设置为“NETWORK_UNCATEGORIZED”
原始事件 metadata.event_type 如果进程为“named”且 has_dns_questions 为 true,则设置为“NETWORK_DNS”;如果进程为“named”且 has_principal 为 true,则设置为“STATUS_UPDATE”;如果进程为“named”,则设置为“GENERIC_EVENT”;如果进程为“dhcpd”,则设置为“NETWORK_DHCP”
PWD metadata.event_type 如果 PWD 不为空,且 has_target 或 has_principal 为 true,则设置为“PROCESS_OPEN”
activity_type metadata.product_event_type 直接复制值
不适用 metadata.vendor_name 设置为“EFFICIENTIP_DDI”
不适用 metadata.product_name 设置为“EFFICIENTIP_DDI DHCP”
activity_type network.application_protocol 如果 activity_type 与 dns 匹配且 has_dns_questions 为 true,则设置为“DNS”
消息 network.application_protocol 如果消息与 DHCP 匹配,则设置为“DHCP”
原始事件 network.application_protocol 如果进程为“named”,则设置为“DNS”;如果进程为“dhcpd”,则设置为“DHCP”
src_mac network.dhcp.chaddr 如果进程为“dhcpd”,则直接复制值
src_ip network.dhcp.ciaddr 如果 dhcp_info 为“REQUEST”,则直接复制值
giaddr network.dhcp.giaddr 直接复制值
dhcp_info network.dhcp.opcode 如果 dhcp_info 为“INFORM”“DISCOVER”或“REQUEST”,则设置为“BOOTREQUEST”;如果 dhcp_info 为“OFFER”或“ACK”,则设置为“BOOTREPLY”
siaddr network.dhcp.siaddr 直接复制值
transaction_id network.dhcp.transaction_id 如果值不为空或不为“0”,则转换为无符号整数
dhcp_info network.dhcp.type 如果 dhcp_info 为“INFORM”,则设置为“INFORM”;如果为“DISCOVER”,则设置为“DISCOVER”;如果为“OFFER”,则设置为“OFFER”;如果为“REQUEST”,则设置为“REQUEST”;如果为“ACK”,则设置为“PACK”
yiaddr network.dhcp.yiaddr 直接复制值
src_ip network.dhcp.yiaddr 如果进程为“dhcpd”且 yiaddr 为空,则设置为 src_ip
answer_rrs network.dns.answers 从 answer_rrs 中每个 rd 的回答对象合并
不适用 network.dns.questions 如果 has_dns_questions 为 true,则从 questions 对象合并
rcode network.dns.response_code 转换为无符号整数的值
response_code network.dns.response_code 映射到数字代码并转换为无符号整数的值
transport network.ip_protocol 如果与 UDP 或 TCP 匹配,则值会转换为大写
观察者 observer.ip 值已转换为 ipaddress
su_cmd principal.application 如果 su_cmd 为“sudo”,则直接复制值
原始事件 principal.application 如果进程为“named”或“dhcpd”,则设置为处理
主机 principal.asset.hostname 如果不为空,则直接复制值
主机名 principal.asset.hostname 如果值不为空且主机为空,则直接复制值
src_ip principal.asset.ip 直接复制值
asset_id principal.asset_id 串联为“ID:”+ asset_id
主机 principal.hostname 如果不为空,则直接复制值
主机名 principal.hostname 如果值不为空且主机为空,则直接复制值
domain_name principal.hostname 如果说明包含主机名且主机/主机名为空,则直接复制值
src_ip principal.ip 如果成功转换为 IP 地址,则直接复制该值;如果 src_ip 为空,则从说明中提取该值
src_mac principal.mac 直接复制值
src_port principal.port 转换为整数的值
process_id principal.process.pid 直接复制值
source_user principal.user.userid 直接复制值
不适用 security_result 从 sec_result 合并
dst_ip target.asset.ip 直接复制值
file_path target.file.full_path 直接复制值
dst_ip target.hostname 如果不是有效的 IP 地址,则直接复制值
主机 target.hostname 如果 inner_message 匹配特定模式,则直接复制值
dst_ip target.ip 直接复制值
dst_port target.port 转换为整数的值
target_cmd_line target.process.command_line 直接复制值
target_user target.user.userid 直接复制值

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