收集 Attivo Networks BOTsink 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 Attivo Networks BOTsink 日志注入到 Google Security Operations。解析器首先尝试将传入的日志消息解析为 JSON。如果该方法失败,它会使用一系列 Grok 模式从通用事件格式 (CEF) 格式的消息中提取字段,从而处理各种格式和潜在错误。最后,它会将提取的字段映射到统一数据模型 (UDM) 架构,通过添加更多上下文来丰富数据,并标准化输出。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机 - 如果在代理后运行,防火墙端口处于开放状态
- 对 Attivo Networks 的特权访问
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 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
文件: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: '/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 ingestion_labels: log_type: 'ATTIVO' raw_log_field: body 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
在 Attivo Networks BOTsink 中配置 Syslog
- 登录 Attiva Networks Web 界面。
- 依次前往管理 > 管理 > Syslog。
- 点击添加以创建新的 Syslog 配置文件。
- 为个人资料提供描述性名称。
- 在事件转发中,选择已启用。
- 提供 BOTsink 标准配置:
- 极低:选择信息类。
- 低:选择警告。
- 媒介:选择提醒。
- 高:选择严重。
- 非常高:选择紧急。
- 对于消息格式:选择 CEF。
- 在个人资料部分中,选择添加新连接。
- 提供以下配置详细信息:
- 服务器名称:输入有助您识别 Google SecOps 的描述性名称。
- 配置文件名称:选择您之前创建的 CEF syslog 配置文件。
- IP 地址:输入 Bindplane 代理 IP 地址。
- 端口:输入 Bindplane 代理端口号(例如,输入
514
作为 UDP)。 - 协议:选择 UDP。
- 点击 Test Connection,验证您是否在 Bindplane 代理和 Google SecOps 中收到了测试数据。
- 点击确定。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
alertID | read_only_udm.metadata.product_log_id | 值取自 alertID 字段。 |
猫 | read_only_udm.security_result.action_details | 值取自 cat 字段。 |
CEFDeviceProduct | read_only_udm.metadata.product_name | 值取自 CEFDeviceProduct 字段。 |
CEFDeviceVendor | read_only_udm.metadata.vendor_name | 值取自 CEFDeviceVendor 字段。 |
CEFDeviceVersion | read_only_udm.metadata.product_version | 值取自 CEFDeviceVersion 字段。 |
CEFName | 用于提取 operation 、result 、module 和 descrip 字段。 |
|
CEFSeverity | read_only_udm.security_result.severity | 根据以下规则从 CEFSeverity 字段映射:- error 或 warning :HIGH - (?i)critical :CRITICAL - (?i)notice 或 (?i)MEDIUM :MEDIUM - information 、info 、Very-Low 或 Low :LOW |
CEFSignatureID | read_only_udm.security_result.rule_id | 值取自 CEFSignatureID 字段。 |
cef_version | read_only_udm.additional.fields.value.string_value | 值取自 cef_version 字段。 |
read_only_udm.additional.fields.key | 静态价值:CEFVersion |
|
descrip | read_only_udm.metadata.description | 值取自 descrip 字段。 |
dest_domain | read_only_udm.target.domain.name | 值取自 dest_domain 字段。 |
dhost | read_only_udm.target.hostname | 如果 service 为 NETBIOS ,则值取自 dhost 字段。 |
dIPDomain | read_only_udm.target.domain.name | 如果 dest_domain 为空,则值取自 dIPDomain 字段。 |
dst | read_only_udm.target.ip | 值取自 dst 字段。 |
dst_os | read_only_udm.target.asset.platform_software.platform_version | 值取自 dst_os 字段。 |
dpt | read_only_udm.target.port | 值取自 dpt 字段并转换为整数。 |
dvc | read_only_udm.principal.hostname、read_only_udm.target.ip、read_only_udm.intermediary.hostname | 逻辑取决于 dvc 、src 和 sip 字段的值。它可以根据这些字段的可用性和格式映射到主主机名、目标 IP 或中介主机名。 |
intf | read_only_udm.additional.fields.value.string_value | 值取自 intf 字段并转换为字符串。 |
read_only_udm.additional.fields.key | 静态价值:intf |
|
mitreTacticName | read_only_udm.security_result.rule_name | 值取自 mitreTacticName 字段。 |
mitreTechniqueId | read_only_udm.security_result.detection_fields.value | 值取自 mitreTechniqueId 字段。 |
read_only_udm.security_result.detection_fields.key | 静态价值:Technique name |
|
mitreTechniqueName | read_only_udm.security_result.detection_fields.value | 值取自 mitreTechniqueName 字段。 |
read_only_udm.security_result.detection_fields.key | 静态价值:Technique name |
|
module | read_only_udm.additional.fields.value.string_value | 值取自 module 字段。 |
read_only_udm.additional.fields.key | 静态价值:module |
|
msg | read_only_udm.metadata.description | 在提取 protocol 字段后,从 msg 字段中获取值。 |
操作 | read_only_udm.additional.fields.value.string_value | 值取自 operation 字段。 |
read_only_udm.additional.fields.key | 静态价值:operation |
|
协议 | read_only_udm.network.ip_protocol | 如果 protocol 字段的值为 TCP 或 UDP ,则从该字段中获取值。 |
结果 | read_only_udm.security_result.action | 根据以下规则从 result 字段映射:- (?i)SUCCESS 或 (?i)ALLOW :ALLOW - CHALLENGE :CHALLENGE - FAILURE 、DENY 、SKIPPED 或 RATE_LIMIT :BLOCK |
rt | read_only_udm.metadata.event_timestamp | 该值取自 rt 字段,并解析为以毫秒为单位的 UNIX 时间戳。 |
shost | read_only_udm.principal.hostname | 值取自 shost 字段。 |
sip | read_only_udm.principal.hostname, read_only_udm.principal.ip | 逻辑取决于 dvc 和 sip 字段的值。它可以根据这些字段的可用性和格式映射到主主机名或 IP。 |
smac | read_only_udm.principal.mac | 值取自 smac 字段。 |
来源 | read_only_udm.principal.hostname | 值取自 source 字段。 |
source_domain | read_only_udm.principal.domain.name | 值取自 source_domain 字段。 |
src | read_only_udm.principal.ip | 值取自 src 字段。 |
subscriberName | read_only_udm.additional.fields.value.string_value | 值取自 subscriberName 字段。 |
read_only_udm.additional.fields.key | 静态价值:Subscriber Name |
|
suser | read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name | 从提取用户名后的 suser 字段中获取值。 |
threshold | read_only_udm.additional.fields.value.string_value | 值取自 threshold 字段。 |
read_only_udm.additional.fields.key | 静态价值:arp-scan-threshold |
|
usrname | read_only_udm.principal.user.email_addresses | 如果 usrname 字段不为空或不为 N/A ,则值取自该字段。 |
vlan | read_only_udm.principal.labels.value | 值取自 vlan 字段。 |
read_only_udm.principal.labels.key | 静态价值:vlan |
|
read_only_udm.metadata.event_type | 根据 src 、smac 、shost 、dst 、protocol 、dvc 和 service 字段的值确定。可以是以下值之一:SCAN_NETWORK 、NETWORK_CONNECTION 、NETWORK_UNCATEGORIZED 、STATUS_UPDATE 或 GENERIC_EVENT 。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。