收集 ExtraHop DNS 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 ExtraHop DNS 日志注入到 Google Security Operations。解析器从原始消息字符串中提取 JSON 格式的日志,并通过舍弃事件来处理非 JSON 数据。然后,它会将提取的 JSON 中的特定字段映射到统一数据模型 (UDM) 架构中的相应字段,转换数据类型并处理不同的 DNS 响应结构,以确保表示形式一致。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机 - 如果通过代理运行,请确保防火墙端口处于开放状态
- 对 ExtraHop DNS 的特权访问权限
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
如需了解其他安装选项,请参阅安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
- 访问配置文件:
- 找到
config.yaml
文件。通常,它位于 Linux 上的/etc/bindplane-agent/
目录中或 Windows 上的安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
- 按如下方式修改
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 地址。
- 将
<customer_id>
替换为实际的客户 ID。 - 将
/path/to/ingestion-authentication-file.json
更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。
- 将
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
为 ExtraHop Open Data Stream (DNS) 配置 Syslog
- 使用
https://<extrahop-hostname-or-IP-address>/admin
登录 ExtraHop 管理界面。
- 依次前往系统配置 > 打开数据流。
- 点击添加目标。
- 从目标类型下拉菜单中,选择 Syslog。
- 提供以下配置详细信息:
- 名称:输入一个唯一名称来标识目标。
- 主机:输入 Bindplane 代理 IP 地址。
- 端口:输入 Bindplane 代理端口号。
- 协议:根据您的 Bindplane 配置,选择 UDP 或 TCP。
- (可选)选择本地时间,以发送包含本地时区时间戳的 syslog 信息。
- 点击测试。
- 点击保存。
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 专业人士那里获得解答。