收集 BlueCat DDI 日志

支持的平台:

此解析器可处理来自 Bluecat DDI (DNS、DHCP、IPAM) 的 LEEF 格式和非 LEEF 格式的 syslog 消息。它使用 Grok 模式和条件逻辑从各种日志类型(例如 named、dhcpd、审核和 CRON)中提取字段,根据日志类型将其映射到 UDM,并相应地填充 DNS、DHCP 或与用户相关的字段。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 Bluecat 的特权访问权限。

获取 Google SecOps 提取身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件

获取 Google SecOps 客户 ID

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

安装 BindPlane Agent

  1. 对于 Windows 安装,请运行以下脚本:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. 对于 Linux 安装,请运行以下脚本:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 如需了解其他安装选项,请参阅此安装指南

配置 BindPlane Agent 以提取 Syslog 并将其发送到 Google SecOps

  1. 访问安装了 BindPlane 的机器。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        tcplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: bluceat_ddi
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 重启 BindPlane 代理以应用更改:

    sudo systemctl restart bindplane
    

在 Bluecat DDI 上配置 Syslog

  1. 登录 Bluecat 地址管理器 (BAM)。
  2. 配置菜单中,选择一个配置。
  3. 选择服务器标签页。
  4. 服务器下,点击 BDDS 的名称。
  5. 系统应会打开该服务器的详细信息标签页。
  6. 点击服务器名称菜单。
  7. 选择服务配置
  8. 依次点击服务类型 > Syslog(地址管理器会查询服务器并返回当前值)。
  9. 常规中,设置以下值:
    • Syslog 服务器:Syslog 服务器 (Bindplane) 的 IP 地址。
    • Syslog 端口:Syslog 服务器 (Bindplane) 的端口。
    • Syslog 传输:选择 TCPUDP(具体取决于您的绑定层配置)。
  10. 点击添加
    • 新添加的 syslog 服务器将显示在列表中。
  11. 点击更新

在 BlueCat DDI 中配置 Syslog 设置

  1. 登录 BlueCat 地址管理器。
  2. 依次前往配置 > 系统设置 > 日志记录
  3. 日志记录设置中,找到 Syslog 服务器部分。
  4. 点击添加 Syslog 服务器
  5. 提供所需的值:
    • 服务器名称:Syslog 服务器的唯一名称(例如 BindplaneServer)。
    • IP 地址:Syslog 服务器的 IP 地址或主机名。
    • 协议:选择 TCPUDP(默认)或 TLS(基于您的 syslog 配置)。
    • 端口:指定 Syslog 通信的端口(默认:UDP/TCP 为 514,TLS 为 6514)。
  6. 配置日志记录级别。根据您的需求选择合适的级别。选项包括:
    • 紧急:需要立即处理的严重问题
    • 提醒:需要立即采取行动的提醒
    • 严重:严重情况
    • 错误:错误事件
    • 警告:警告事件
    • 注意:正常,但值得注意的事件
    • 信息:信息性消息
    • 调试:详细的调试信息
  7. 可选:添加自定义 Syslog 设施以对日志进行分类(例如 local0local1)。
  8. 保存配置。

将 Syslog 设置应用于 DDI 设备

  1. 依次前往服务器 > 管理服务器
  2. 选择应启用 syslog 的 DNS/DHCP 服务器。
  3. 点击修改服务器
  4. 日志记录部分中:
    • 选择您之前配置的 syslog 服务器。
    • 为特定服务(例如 DNS 查询DHCP 租约)启用日志记录。
    • 保存更改。

UDM 映射表

日志字段 UDM 映射 逻辑
client_ip network.dhcp.ciaddr 从 DHCPREQUEST 消息中提取。仅针对 DHCPREQUEST 消息进行填充。
client_mac principal.mac 从 DHCP 消息 (DHCPDISCOVER、DHCPREQUEST、DHCPRELEASE) 中提取。
client_mac target.mac 从 DHCP 消息 (DHCPOFFER、DHCPNAK) 中提取。
client_mac network.dhcp.chaddr 从 DHCP 消息 (DHCPREQUEST、DHCPOFFER、DHCPACK、DHCPNAK、DHCPRELEASE) 中提取。
cmd target.process.command_line 从 CRON 日志中提取。移除“&”和空格。
description metadata.description 从各种日志类型中提取,提供额外的上下文。
description metadata.description 从 syslog-ng 日志中提取,提供其他背景信息。
file_path target.file.full_path 从各种日志类型中提取,表示文件的完整路径。
file_path target.process.file.full_path 从 agetty 日志中提取,表示与进程相关的文件的完整路径。
inner_message metadata.description 在未定义操作类型时,用于 GENERIC_EVENT 的说明,以及用于 MEM-MON 日志。
metadata.event_type 由解析器根据日志类型和内容确定。可能的值包括:NETWORK_DNS、NETWORK_DHCP、USER_LOGIN、USER_LOGOUT、USER_UNCATEGORIZED、GENERIC_EVENT、STATUS_UPDATE、NETWORK_CONNECTION。始终为“BLUECAT_DDI”。
metadata.vendor_name 始终为“Bluecat Networks”。
metadata.product_name 始终为“Bluecat DDI”。
metadata.event_timestamp 从日志条目的解析时间戳复制而来。
network.protocol 对于 DNS 日志,请将其设置为“DNS”;对于 DHCP 日志,请将其设置为“DHCP”。
network.dns.answers 包含答案记录的数组。answers 中的 data 字段会填充 target_ip(如果存在)。
network.dns.questions 包含题目记录的数组。name 字段使用 target_host 进行填充,type 字段派生自 query_typequestion_type 字段,class 字段派生自 qclass 字段。
network.dns.recursive 如果 rec_flag 为“+”,则设置为“true”。
qclass network.dns.questions.class 从 DNS 查询日志中提取,并使用 dns_query_class_mapping.include 文件映射到整数值。
query_type network.dns.questions.type 从 DNS 查询日志中提取,并使用 dhcp_qtype_mapping.include 文件映射到整数值。
relay_ip intermediary.ip 从 DNS 和 DHCP 日志中提取,表示中继或中间服务器的 IP 地址。
server_host target.hostname 从各种日志类型中提取,表示服务器的主机名。
server_host network.dhcp.sname 从 DHCP 日志中提取,表示服务器主机名。
server_host principal.hostname 从 systemd、agetty 和某些审核日志中提取,表示主账号的主机名。
server_ip target.ip 从 LEEF 格式的日志中提取,表示服务器的 IP 地址。
src_ip principal.ip 从各种日志类型中提取,表示来源 IP 地址。
src_ip network.dhcp.yiaddr 在 DHCPINFORM 消息中用于填充 yiaddr 字段。
src_port principal.port 从各种日志类型中提取,表示来源端口。
src_user principal.user.userid 从 CRON 和审核日志中提取,表示用户 ID。
target_host target.hostname 从各种日志类型中提取,表示目标主机名。
target_host network.dns.questions.name 在 DNS 日志中用于填充问题名称。
target_ip target.ip 从各种日志类型中提取,表示目标 IP 地址。
target_ip network.dhcp.ciaddr 在 BOOTREQUEST 消息中用于填充 ciaddr 字段。
target_ip network.dns.answers.data 在 DNS 日志中用于填充回答数据。
tgt_port target.port 从 syslog-ng 日志中提取,表示目标端口。

更改

2022-11-08

  • 为 log_type 为“agetty”“syslog-ng”“systemd”的新提取日志添加了 Grok。
  • 添加了 log_type 的 Grok 模式:“named”“systemd”“CRON”“agetty”“syslog-ng”,以及上述 log_type 中字段的相应映射。

2022-09-01

  • event_type 从“GENERIC_EVENT”更改为“USER_UNCATEGORIZED”,以降低通用事件的百分比。

2022-08-16

  • 添加了 UDM 映射
  • metadata.vendor_name 更名为“Bluecat Networks”
  • metadata.product_name 更改为“Bluecat DDI”

2022-05-05

  • 添加了针对 query_type 字段的检查。