收集 Cisco 交换机日志
本文档介绍了如何使用 Bindplane 代理将 Cisco 交换机日志提取到 Google 安全运营中心。解析器会从 SYSLOG 消息中提取字段,并根据识别出的模式和关键字将其映射到统一数据模型 (UDM)。它可处理各种事件,包括 DHCP、SSH、登录尝试、网络流量和系统状态更新,并对其进行分类,并使用相关安全详细信息丰富数据。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用了带有
systemd
的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 Cisco 交换机的超级用户访问权限。
获取 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_SWITCH raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
根据基础架构中的需要替换端口和 IP 地址。
将
<customer_id>
替换为实际的客户 ID。在获取 Google SecOps 提取身份验证文件部分中,将
/path/to/ingestion-authentication-file.json
更新为身份验证文件的保存路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
在 Cisco 交换机上配置 Syslog
- 登录 Cisco 交换机。
输入
enable
命令以提升特权:Switch> enable Switch#
输入
conf t
命令,切换到配置模式:Switch# conf t Switch(config)#
输入以下命令:
logging host <bindplane-server-ip> transport <tcp/udp> port <port-number> logging source-interface <interface>
- 将
<bindplane-server-ip>
替换为 Bindplane 代理 IP 地址,并将<port-number>
替换为已配置的端口。 - 将
<tcp/udp>
替换为 Bindplane Agent 上配置的监听协议。(例如udp
)。 - 将
<interface>
替换为 Cisco 接口 ID。
- 将
输入以下命令以设置优先级:
logging trap Informational logging console Informational logging severity Informational
设置 syslog 设施:
logging facility local6
输入以下命令以启用时间戳:
service timestamps log datetime
保存并退出。
输入以下命令,将设置配置为在重启后保持不变:
copy running-config startup-config
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
操作 | security_result.action_details | 此字段的值派生自原始日志中的 action 字段。 |
天 | ||
说明 | metadata.description | 此字段的值派生自原始日志中的 description 字段。 |
说明 | security_result.description | 此字段的值派生自原始日志中的 description 字段。 |
destination_ip | target.asset.ip | 此字段的值派生自原始日志中的 destination_ip 字段。 |
destination_ip | target.ip | 此字段的值派生自原始日志中的 destination_ip 字段。 |
destination_port | target.port | 此字段的值派生自原始日志中的 destination_port 字段。 |
device | principal.asset.hostname | 此字段的值派生自原始日志中的 device 字段。 |
device | principal.hostname | 此字段的值派生自原始日志中的 device 字段。 |
device | target.asset.hostname | 此字段的值派生自原始日志中的 device 字段。 |
device | target.hostname | 此字段的值派生自原始日志中的 device 字段。 |
device_ip | principal.asset.ip | 此字段的值派生自原始日志中的 device_ip 字段。 |
device_ip | principal.ip | 此字段的值派生自原始日志中的 device_ip 字段。 |
device_ip | target.asset.ip | 此字段的值派生自原始日志中的 device_ip 字段。 |
device_ip | target.ip | 此字段的值派生自原始日志中的 device_ip 字段。 |
设施 | principal.resource.type | 此字段的值派生自原始日志中的 facility 字段。 |
header_data | metadata.product_log_id | 此字段的值派生自原始日志中的 header_data 字段。 |
header_data | target.asset.ip | 此字段的值派生自原始日志中的 header_data 字段。 |
header_data | target.ip | 此字段的值派生自原始日志中的 header_data 字段。 |
主机名 | principal.asset.hostname | 此字段的值派生自原始日志中的 hostname 字段。 |
主机名 | principal.hostname | 此字段的值派生自原始日志中的 hostname 字段。 |
ip | principal.asset.ip | 此字段的值派生自原始日志中的 ip 字段。 |
ip | principal.ip | 此字段的值派生自原始日志中的 ip 字段。 |
ip_address | principal.asset.ip | 此字段的值派生自原始日志中的 ip_address 字段。 |
ip_address | principal.ip | 此字段的值派生自原始日志中的 ip_address 字段。 |
ip_protocol | network.ip_protocol | 此字段的值派生自原始日志中的 ip_protocol 字段。 |
mac | principal.mac | 此字段的值派生自原始日志中的 mac 字段。 |
助记符 | network.dhcp.opcode | 此字段的值派生自原始日志中的 mnemonic 字段。 |
助记符 | metadata.product_event_type | 此字段的值派生自原始日志中的 mnemonic 字段。 |
月 | ||
p_ip | principal.asset.ip | 此字段的值派生自原始日志中的 p_ip 字段。 |
p_ip | principal.ip | 此字段的值派生自原始日志中的 p_ip 字段。 |
端口 | target.port | 此字段的值派生自原始日志中的 port 字段。 |
优先级 | ||
协议 | network.ip_protocol | 此字段的值派生自原始日志中的 protocol 字段。 |
reason | ||
规则 | security_result.rule_id | 此字段的值派生自原始日志中的 rule 字段。 |
sec_result_action | security_result.action | 此字段的值派生自原始日志中的 sec_result_action 字段。 |
和程度上减少 | ||
来源 | principal.asset.ip | 此字段的值派生自原始日志中的 source 字段。 |
来源 | principal.ip | 此字段的值派生自原始日志中的 source 字段。 |
source_ip | network.dhcp.ciaddr | 此字段的值派生自原始日志中的 source_ip 字段。 |
source_ip | principal.asset.ip | 此字段的值派生自原始日志中的 source_ip 字段。 |
source_ip | principal.ip | 此字段的值派生自原始日志中的 source_ip 字段。 |
source_mac | network.dhcp.chaddr | 此字段的值派生自原始日志中的 source_mac 字段。 |
source_port | principal.port | 此字段的值派生自原始日志中的 source_port 字段。 |
摘要 | security_result.summary | 此字段的值派生自原始日志中的 summary 字段。 |
时间 | ||
timezone | ||
用户 | principal.user.userid | 此字段的值派生自原始日志中的 user 字段。 |
用户 | target.user.userid | 此字段的值派生自原始日志中的 user 字段。 |
时间 | ||
年 | ||
extensions.auth.type | MACHINE | |
metadata.log_type | CISCO_SWITCH | |
metadata.vendor_name | Cisco | |
metadata.product_name | Cisco Switch | |
network.application_protocol | DHCP | |
network.dhcp.type | 请求 |
变化
2025-02-18
增强功能:
- 添加了对新 SYSLOG 日志模式的支持。
2025-01-22
增强功能:
- 如果
facility
为SEC_LOGIN
且mnemonic
为LOGIN_SUCCESS
,则将device
映射到principle.hostname
和principal.asset.hostname
。 - 如果
facility
为SEC_LOGIN
且mnemonic
为LOGIN_FAILED
,则将device
映射到principal.hostname
和principal.asset.hostname
。
2024-11-27
增强功能:
- 添加了新的 Grok 模式,用于解析失败的 syslog 日志。
- 将
username3
映射到principal.user.userid
。 - 将
login_status
映射到security_result.summary
。
2024-11-20
增强功能:
- 添加了对新 SYSLOG 日志模式的支持。
2024-11-06
增强功能:
- 将
ecs.version
映射到metadata.product_version
。 - 将
fileset.name
、flow.locality
、flow.id
、input.type
、netflow.exporter.source_id
和netflow.exporter.uptime_millis
映射到additional.fields
。 - 将
network.transport
映射到network.ip_protocol
。 - 将
netflow.post_nat_source_ipv4_address
映射到principal.ip
。 - 将
netflow.source_transport_port
映射到principal.port
。 - 将
network.direction
映射到network.direction
。
2024-10-22
增强功能:
- 添加了 Grok 模式来解析未解析的日志。
- 将
intermediary_ip
映射到intermediary.ip
- 将
intermediary_hostname
映射到intermediary.hostname
2024-10-03
增强功能:
- 添加了对新 SYSLOG 日志模式的支持。
2024-09-24
增强功能:
- 添加了对新格式的 Syslog 日志的支持。
2024-08-26
增强功能:
- 当
principal_host
为空时,仅将device
映射到principal.hostname
。
2024-07-01
增强功能:
- 添加了 Grok 模式,以便使用新模式解析有效的已丢弃日志。
- 此外,还添加了 Grok 模式,用于从
header_data
字段检索target_ip
。
2024-05-29
增强功能:
- 添加了 Grok 模式,以便使用新模式解析有效的已丢弃日志。
- 添加了 Grok 模式,用于从字段
header_data
检索principal_host
。 - 添加了 Grok 模式,用于从字段
description
检索destination_ip
、src_mac
和hostname
。 - 将
principal_host
映射到principal.hostname
。 - 将
src_mac
映射到principal.mac
。 - 将
eventSummary
映射到metadata.product_event_type
。 - 将
description
映射到security_result.description
。 - 将
error_msg
映射到security_result.detection_fields
。
2024-05-22
增强功能:
- 添加了 Grok 模式以检索主机名。
2024-05-08
增强功能:
- 添加了 Grok 模式,以支持经过修复的 SYSLOG 格式日志。
- 将
pid
映射到principal.process.pid
。 - 将
srcPort
映射到principal.port
。 - 将
device_ip
映射到principal.ip
和principal.asset.ip
。 - 将
srcUser
映射到principal.user.userid
。 - 将
username1
映射到target.user.userid
。 - 将
command
映射到target.process.command_line
。 - 将
PWD
映射到target.process.file.full_path
。 - 将
host_name
映射到了 principal.hostnameand
principal.asset.hostname`。 - 将
node_id
、cluster_id
、exception
、UniqueId
和app_id
映射到additional.fields
。
2023-12-08
增强功能:
- 添加了对 SYSLOG 日志和键值对日志的新模式的支持。
- 将
DEVICE
映射到principal.mac
。 - 将
SRC
映射到principal.ip
。 - 将
SPT
映射到principal.port
。 - 将
DST
映射到target.ip
。 - 将
DPT
映射到target.port
。 - 将
ID
映射到network.session_id
。 - 将
LEN
映射到network.session_duration.seconds
。 - 将
PROTO
映射到network.ip_protocol
。 - 映射了
IN
、OUT
、PHYSIN
、WINDOW
、RES,
TOS,
PREC,
TTL,
URGP,
MAC,
radio,
vap,
auth_type,
sugg_band,
ssid_id,
ssid_profile_nameand
protocolto
additional.fields`。 - 将
client_mac
映射到principal.mac
。 - 将
aid
映射到network.session_id
。 - 将
rssi
映射到intermediary.asset.product_object_id
。 - 将
channel
映射到security_result.detection_fields
。
2023-11-05
增强功能:
- 修改并添加了新的 Grok 模式,以解析失败的 syslog 日志。
- 添加了 KV 过滤器来解析 KV 日志。
- 将
eventSummary
、dhcp_ip
、client_mac
、aid
和ip_src
分别映射到metadata.product_event_type
、target.ip
、network.dhcp.chaddr
、network.session_id
和principal.ip
。 - 将
mac
、src
、sport
、dst
、dport
、action
、protocol
、url
和signature
分别映射到principal.mac
、principal.ip
、principal.port
、target.ip
、target.port
、security_result.action
、network.ip_protocol
、principal.url
和 `additional.fields`。 - 对于 eventSummary,
splash_auth
将metadata.event_type
和extensions.auth.type
分别映射到USER_LOGIN
和MACHINE
。 - 对于 eventSummary,
association
将eventSummary
、aid
、rssi
、channel
、last_known_client_ip
和event_type
分别映射到security_result.summary
、network.session_id
、intermediary.asset.product_object_id
、security_result.detection_fields
、principal.ip
和STATUS_UPDATE
。
2023-04-27
增强功能:
- 降低了通用百分比。
- 移除了不必要的 Grok 模式。
- 添加了 Grok 模式来解析 syslog 日志。
- 为
source_ip
、destination_ip
添加了条件检查。 - 如果存在
source_ip
和destination_ip
,则将event_type
映射到NETWORK_CONNECTION
。 - 如果存在
source_ip
但不存在destination_ip
,则将event_type
映射到STATUS_UPDATE
。 - 将
pid
映射到target.process.pid
。 - 将
app_name
映射到target.application
。
2023-03-24
bug 修复:
- 为消息类型为
FILECPY
、REJECT
、CONNECT
或DISCONNECT
的日志添加了 Grok 模式和映射。
2023-01-24
增强功能:
- 修改了 Grok 模式,以支持具有时区的日志。
- 将“ip_address”映射到“principal.ip”。
- 当
mnemonic
为NBR_RESET
且存在 ip_address 时,metadata.event_type
会设为STATUS_UPDATE
。
2022-07-21
增强功能:
- 添加了 Grok 模式并增强了解析器,以解析被丢弃的日志(不含“%--”的日志)。
- 将“主机名”映射到“principal.hostname”
- 将“source_ip”映射到“principal.ip”
- 将“destination_ip”映射到“target.ip”
- 将“ip_protocol”映射到“network.ip_protocol”。
- 将“summary”映射到“security_result.summary”。
- 将“header_data”映射到“metadata.product_log_id”。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。