收集 Cisco Stealthwatch 日志
本文档介绍了如何使用 Bindplane 将 Cisco Secure Network Analytics(以前称为 Stealthwatch)日志收集到 Google Security Operations。解析器可处理两种格式的 Cisco Stealthwatch 日志:一种包含客户端/服务器 IP 和数据包信息,另一种包含设备 ID 和字节数。它会提取字段,将其转换为相应的数据类型,将其映射到 UDM,并根据日志内容和格式设置供应商、产品和事件类型等元数据字段。
准备工作
- 确保您拥有 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机。 - 如果通过代理运行,请确保防火墙端口处于开放状态。
- 确保您拥有对 Cisco Stealthwatch 的特权访问权限。
获取 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: CISCO_STEALTHWATCH 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
配置 Cisco Secure Network Analytics(以前称为 Stealthwatch)Syslog
- 登录管理控制台网页界面。
- 依次前往配置 > 回应管理。
修改 Syslog 格式:
- 名称:输入 syslog 格式的名称。
- 说明:提供格式说明。
- 设施:设置为
Local 0
- 严重程度:设置为
Informational
。 - 在消息字段中,粘贴以下格式的内容:
Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
点击确定。
依次前往“响应管理”>“操作”>“添加 Syslog 消息”。
配置 Syslog 转发器:
- 名称:输入 Google SecOps Bindplane 转发器的名称。
- 说明:输入 Google SecOps Bindplane 转发器的说明。
- IP 地址:输入 Bindplane 代理 IP 地址。
- 端口:输入 Bindplane 代理端口号,例如
514
。 - 格式:选择在第 3 步中创建的格式。
点击确定。
为 Cisco Secure Network Analytics(以前称为 Stealthwatch)配置规则名称
- 依次前往配置 > 回应管理。
- 依次选择规则 > 添加 > SMC 系统闹钟。
- 点击确定。
- 在规则类型对话框中,选择一条规则。
- 点击确定。
- 在规则对话框中,执行以下操作:
- 名称:输入规则的名称。
- 此规则在以下情况下触发:在相应列表中选择任意、严重程度和信息。
- 点击确定。
- 依次选择操作 > 添加。
- 选择您之前创建的操作。
- 依次点击确定和确定。
- 重复上述步骤,重命名规则部分下的以下三个选项:
- 支持的日志收集机制 - Syslog
- 首选的日志收集机制 - Syslog
- 事件流逻辑图 - SMC 远程 Syslog 服务器
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
Alarm_ID |
additional.fields[?key=='Alarm_ID'].value.string_value |
原始日志中的 Alarm_ID 值放置在键 Alarm_ID 下的嵌套 additional.fields 结构中。 |
ClientBytes |
network.sent_bytes |
原始日志中的 ClientBytes 会转换为无符号整数并进行映射。 |
ClientIP |
principal.ip |
原始日志中的 ClientIP 会被映射。 |
ClientPort |
principal.port |
原始日志中的 ClientPort 会转换为整数并进行映射。 |
CPayload |
未映射 | 此字段不会用于最终的 UDM。 |
DestIPv4Address |
target.ip |
原始日志中的 DestIPv4Address 会被映射。 |
DestPort |
target.port |
原始日志中的 DestPort 会转换为整数并进行映射。 |
details |
security_result.summary |
系统会映射原始日志中移除了双引号的 details 值。 |
FC |
intermediary.ip |
原始日志中的 FC 会被映射。 |
host.country |
principal.location.country_or_region |
原始日志中的 host.country 会被映射。 |
host.hostGroupNames |
about.group.group_display_name |
原始日志中 host.hostGroupNames 数组中的每个元素都会添加 host: 前缀,并映射为单独的 about 对象。 |
host.ipAddress |
principal.ip |
原始日志中的 host.ipAddress 会被映射。 |
hostBytes |
network.sent_bytes |
原始日志中的 hostBytes 会转换为无符号整数并进行映射。 |
InPackets |
additional.fields[?key=='InPackets'].value.string_value |
原始日志中的 InPackets 值放置在键 InPackets 下的嵌套 additional.fields 结构中。 |
inputSNMPIface |
additional.fields[?key=='inputSNMPIface'].value.string_value |
原始日志中的 inputSNMPIface 值放置在键 inputSNMPIface 下的嵌套 additional.fields 结构中。 |
LastTime |
未映射 | 在某些情况下,系统会解析此字段以获取事件时间戳,但不会直接将其映射到 UDM。 |
MessageSourceAddress |
principal.ip |
原始日志中的 MessageSourceAddress 会被映射。 |
method |
network.http.method |
原始日志中的 method 会被映射。 |
outputSNMPIface |
additional.fields[?key=='outputSNMPIface'].value.string_value |
原始日志中的 outputSNMPIface 值放置在键 outputSNMPIface 下的嵌套 additional.fields 结构中。 |
PAAppID |
未映射 | 此字段不会用于最终的 UDM。 |
peer.country |
target.location.country_or_region |
原始日志中的 peer.country 会被映射。 |
peer.hostGroupNames |
about.group.group_display_name |
原始日志中 peer.hostGroupNames 数组中的每个元素都会添加 peer: 前缀,并映射为单独的 about 对象。 |
peer.ipAddress |
target.ip |
原始日志中的 peer.ipAddress 会被映射。 |
peerBytes |
network.received_bytes |
原始日志中的 peerBytes 会转换为无符号整数并进行映射。 |
peerPackets |
未映射 | 此字段不会用于最终的 UDM。 |
Protocol |
未映射 | 系统会解析此字段以确定 network.ip_protocol ,但不会直接映射。 |
ProtocolIdentifier |
未映射 | 此字段用于派生 network.ip_protocol ,但不会直接映射。 |
reportName |
metadata.product_event_type |
原始日志中的 reportName 会被映射。 |
ServerBytes |
network.received_bytes |
原始日志中的 ServerBytes 会转换为无符号整数并进行映射。 |
ServerIP |
target.ip |
原始日志中的 ServerIP 会被映射。 |
ServerPort |
target.port |
原始日志中的 ServerPort 会转换为整数并进行映射。 |
Service |
未映射 | 此字段不会用于最终的 UDM。 |
sid |
target.user.windows_sid |
原始日志中的 sid 会被映射。 |
SourceModuleName |
target.resource.name |
原始日志中的 SourceModuleName 会被映射。 |
SourceModuleType |
observer.application |
原始日志中的 SourceModuleType 会被映射。 |
SourcePort |
principal.port |
原始日志中的 SourcePort 会转换为整数并进行映射。 |
sourceIPv4Address |
principal.ip |
原始日志中的 sourceIPv4Address 会被映射。 |
SPayload |
未映射 | 此字段不会用于最终的 UDM。 |
src_ip |
principal.ip |
原始日志中的 src_ip 会被映射。 |
StartTime |
未映射 | 在某些情况下,系统会解析此字段以获取事件时间戳,但不会直接将其映射到 UDM。 |
time |
未映射 | 在某些情况下,系统会解析此字段以获取事件时间戳,但不会直接将其映射到 UDM。 |
timestamp |
未映射 | 系统会解析此字段以获取事件时间戳,但不会直接将其映射到 UDM。 |
UserName |
principal.user.user_display_name |
原始日志中的 UserName 会被映射。 |
Version |
metadata.product_version |
原始日志中的 Version 会转换为字符串并进行映射。 |
不适用 | metadata.event_timestamp |
系统会根据日志格式从各种字段(LastTime 、time 、timestamp 、StartTime )中派生出事件时间戳,如果没有其他时间戳可用,则从 create_time 字段中派生出事件时间戳。 |
不适用 | metadata.log_type |
一律设置为 CISCO_STEALTHWATCH |
不适用 | metadata.vendor_name |
一律设置为 Cisco |
不适用 | metadata.event_type |
由解析器逻辑根据日志内容确定。可以是 NETWORK_CONNECTION 、USER_STATS 、USER_UNCATEGORIZED 、FILE_OPEN 、FILE_DELETION 或 FILE_UNCATEGORIZED 。 |
不适用 | network.ip_protocol |
由解析器逻辑根据 Protocol 或 ProtocolIdentifier 字段确定。可以是 TCP 、UDP 或 ICMP 。 |
action |
security_result.action_details |
原始日志中的 action 值已映射。 |
action |
security_result.action |
派生自 action 字段。如果 action 为 SUCCESS ,则此字段设置为 ALLOW ;否则,此字段设置为 BLOCK 。 |
category |
security_result.category_details |
原始日志中的 category 值已映射。 |
description |
security_result.description |
如果原始日志中同时存在 description 和 file_type ,则将它们串联并进行映射。 |
desc |
metadata.description |
系统会映射原始日志中移除了双引号的 desc 值。 |
failuer_reason |
security_result.summary |
如果原始日志中同时存在 failuer_reason 和 file_type ,则将它们串联并进行映射。 |
file_path |
target.file.full_path |
原始日志中的 file_path 会被映射。 |
file_type |
target.file.mime_type |
原始日志中的 file_type 会被映射。 |
hostname |
principal.hostname |
原始日志中的 hostname 会被映射。 |
ip |
principal.ip |
原始日志中的 ip 会被映射。 |
ipf |
intermediary.ip |
原始日志中的 ipf 会被映射。 |
ipt |
target.ip |
原始日志中的 ipt 会被映射。 |
process_id |
target.process.pid |
原始日志中的 process_id 会被映射。 |
protocol |
network.application_protocol |
原始日志中的 protocol 会被映射。 |
security_res.severity |
security_result.severity |
如果 severity 为 Minor ,则此字段设置为 INFORMATIONAL ;如果 severity 为 Major ,则此字段设置为 ERROR 。 |
session_id |
network.session_id |
原始日志中的 session_id 会被映射。 |
severity |
未映射 | 此字段用于派生 security_result.severity ,但不会直接映射。 |
Source_HG |
principal.location.country_or_region |
原始日志中的 Source_HG 会被映射。 |
Source_HostSnapshot |
principal.url |
原始日志中的 Source_HostSnapshot 会被映射。 |
Target_HostSnapshot |
target.url |
原始日志中的 Target_HostSnapshot 会被映射。 |
user_name |
principal.user.userid |
原始日志中的 user_name 会被映射。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。