收集 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 专业人士那里获得解答。