收集 BlueCat DDI 日志
支持的平台:
Google SecOps
SIEM
此解析器可处理来自 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 提取身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次选择 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 BindPlane Agent
- 对于 Windows 安装,请运行以下脚本:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- 对于 Linux 安装,请运行以下脚本:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- 如需了解其他安装选项,请参阅此安装指南。
配置 BindPlane Agent 以提取 Syslog 并将其发送到 Google SecOps
- 访问安装了 BindPlane 的机器。
按如下方式修改
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
重启 BindPlane 代理以应用更改:
sudo systemctl restart bindplane
在 Bluecat DDI 上配置 Syslog
- 登录 Bluecat 地址管理器 (BAM)。
- 从配置菜单中,选择一个配置。
- 选择服务器标签页。
- 在服务器下,点击 BDDS 的名称。
- 系统应会打开该服务器的详细信息标签页。
- 点击服务器名称菜单。
- 选择服务配置。
- 依次点击服务类型 > Syslog(地址管理器会查询服务器并返回当前值)。
- 在常规中,设置以下值:
- Syslog 服务器:Syslog 服务器 (Bindplane) 的 IP 地址。
- Syslog 端口:Syslog 服务器 (Bindplane) 的端口。
- Syslog 传输:选择 TCP 或 UDP(具体取决于您的绑定层配置)。
- 点击添加。
- 新添加的 syslog 服务器将显示在列表中。
- 点击更新。
在 BlueCat DDI 中配置 Syslog 设置
- 登录 BlueCat 地址管理器。
- 依次前往配置 > 系统设置 > 日志记录。
- 在日志记录设置中,找到 Syslog 服务器部分。
- 点击添加 Syslog 服务器。
- 提供所需的值:
- 服务器名称:Syslog 服务器的唯一名称(例如 BindplaneServer)。
- IP 地址:Syslog 服务器的 IP 地址或主机名。
- 协议:选择 TCP、UDP(默认)或 TLS(基于您的 syslog 配置)。
- 端口:指定 Syslog 通信的端口(默认:UDP/TCP 为 514,TLS 为 6514)。
- 配置日志记录级别。根据您的需求选择合适的级别。选项包括:
- 紧急:需要立即处理的严重问题
- 提醒:需要立即采取行动的提醒
- 严重:严重情况
- 错误:错误事件
- 警告:警告事件
- 注意:正常,但值得注意的事件
- 信息:信息性消息
- 调试:详细的调试信息
- 可选:添加自定义 Syslog 设施以对日志进行分类(例如 local0 或 local1)。
- 保存配置。
将 Syslog 设置应用于 DDI 设备
- 依次前往服务器 > 管理服务器。
- 选择应启用 syslog 的 DNS/DHCP 服务器。
- 点击修改服务器。
- 在日志记录部分中:
- 选择您之前配置的 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_type 或 question_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
字段的检查。