收集 Cisco eStreamer 日志
解析器版本:5.0
本文档介绍了如何使用 Bindplane 将 Cisco eStreamer 日志注入到 Google Security Operations。
解析器从包含键值对的 Cisco eStreamer syslog 格式日志中提取字段。它使用 grok 和/或 kv 来解析日志消息,然后将这些值映射到统一数据模型 (UDM)。它还会为事件来源和类型设置默认元数据值。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例。
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开。
- 对 Cisco Firepower 管理中心 (FMC) 的特权访问权限。
- 用于运行 eNcore CLI 客户端的 Linux 系统。
获取 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 上的/observiq-otel-collector/目录或 Windows 上的 `C:\Program Files\observIQ OpenTelemetry Collector` 目录中。 - 使用文本编辑器(例如
nano、vi或记事本)打开该文件。
- 找到
按如下方式修改
config.yaml文件:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:5514" 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: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_ESTREAMER' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- 根据基础架构的需要替换端口和 IP 地址。
- 将
YOUR_CUSTOMER_ID替换为实际的客户 ID。 - 将
/path/to/ingestion-authentication-file.json更新为在第 1 步中保存身份验证文件的文件路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请执行以下操作:
运行以下命令:
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志是否存在错误:
sudo journalctl -u observiq-otel-collector -f
如需在 Windows 中重启 Bindplane 代理,请执行以下操作:
请从下列选项中选择一项:
- 以管理员身份运行命令提示符或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector- 服务控制台:
- 按
Win+R,输入services.msc,然后按 Enter 键。 - 找到 observIQ OpenTelemetry 收集器。
- 右键点击并选择重新启动。
- 按
验证服务是否正在运行:
sc query observiq-otel-collector检查日志是否存在错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
在 Cisco eStreamer 上配置 Syslog 转发
在 Firepower 管理中心上配置 eStreamer
- 登录 Firepower 管理中心。
- 依次前往系统 > 集成 > eStreamer。
- 点击 eStreamer 以访问 eStreamer 事件配置。
- 选中要捕获的事件类型旁边的复选框:
- 入侵事件:针对入侵检测事件
- 入侵事件数据包数据:与入侵事件相关联的数据包捕获
- 连接事件:用于网络连接数据
- 安全智能事件:用于威胁情报数据
- 文件事件:用于文件分析事件
- 恶意软件事件:用于恶意软件检测事件
- 点击保存。
创建 eStreamer 客户端
- 在 eStreamer 页面中,点击创建客户端。
- 提供以下配置详细信息:
- 主机名:输入将运行 eNcore 客户端的 Linux 系统的 IP 地址。
- 密码:输入用于加密证书文件的密码。
- 点击保存。
- 下载生成的 PKCS12 证书文件,并将其传输到 eNcore 客户端系统。
安装并配置 eNcore CLI 客户端
- 在 Linux 系统上,从 Cisco 下载 eStreamer eNcore CLI 客户端。
提取 eNcore 软件包:
tar -xzf eStreamer-eNcore-*.tar.gz cd eStreamer-eNcore-*运行设置脚本:
./encore.sh setup当系统提示时,请选择键值对的输出格式(与 SIEM 系统兼容)。
输入 FMC IP 地址和 PKCS12 证书密码。
配置
estreamer.conf文件,以将 syslog 消息输出到 Bindplane 代理:- 通过文本编辑器打开
estreamer.conf文件。 - 找到输出器部分,并将其配置为将 syslog 发送到您的 Bindplane 代理:
{ "handler": { "outputters": [ { "name": "syslog", "adapter": "kvpair", "enabled": true, "stream": { "uri": "udp://BINDPLANE_AGENT_IP:5514" } } ] } }- 通过文本编辑器打开
将
BINDPLANE_AGENT_IP替换为 Bindplane 代理的 IP 地址。
启动 eNcore 客户端
在前台模式下测试连接:
./encore.sh foreground验证完成后,以后台服务形式启动 eNcore:
./encore.sh start
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
additional_deviceInboundInterface |
additional.fields |
已合并 |
additional_deviceOutboundInterface |
additional.fields |
已合并 |
additional_start |
additional.fields |
已合并 |
has_target |
extensions.auth.type |
已映射:true → AUTHTYPE_UNSPECIFIED |
dvchost |
intermediary.asset.hostname |
直接映射 |
hostname |
intermediary.asset.hostname |
直接映射 |
dvchost |
intermediary.hostname |
直接映射 |
hostname |
intermediary.hostname |
直接映射 |
dvcpid |
intermediary.process.pid |
直接映射 |
ts |
metadata.event_timestamp |
解析为 MMM d HH:mm:ss |
has_principal |
metadata.event_type |
映射的值(总共 5 个,例如 true → NETWORK_HTTP、true → NETWORK_DNS、true → `NETW... |
has_target |
metadata.event_type |
已映射:true → USER_UNCATEGORIZED |
product_event_type |
metadata.product_event_type |
直接映射 |
product_name |
metadata.product_name |
直接映射 |
version |
metadata.product_version |
直接映射 |
vendor_name |
metadata.vendor_name |
直接映射 |
app |
network.application_protocol |
直接映射 |
src |
network.dhcp.ciaddr |
直接映射 |
deviceDirection |
network.direction |
已映射:0 → INBOUND,1 → OUTBOUND |
dns_question |
network.dns.questions |
已合并 |
requestClientApplication |
network.http.user_agent |
直接映射 |
ip_protocol_out |
network.ip_protocol |
直接映射 |
bytesIn |
network.received_bytes |
直接映射 |
bytesOut |
network.sent_bytes |
直接映射 |
deviceExternalId |
principal.asset.asset_id |
直接映射 |
src |
principal.asset.ip |
已合并 |
src |
principal.ip |
已合并 |
spt |
principal.port |
直接映射 |
security_result_action |
security_result.action |
已合并 |
act |
security_result.action_details |
直接映射 |
category |
security_result.category |
已合并 |
cat |
security_result.category_details |
已合并 |
cs5 |
security_result.description |
直接映射 |
blockLength_label |
security_result.detection_fields |
已合并 |
blockType_label |
security_result.detection_fields |
已合并 |
cs1_var |
security_result.detection_fields |
已合并 |
cs2_var |
security_result.detection_fields |
已合并 |
cs3_var |
security_result.detection_fields |
已合并 |
cs4_var |
security_result.detection_fields |
已合并 |
cs5_var |
security_result.detection_fields |
已合并 |
cs6_var |
security_result.detection_fields |
已合并 |
suser_var |
security_result.detection_fields |
已合并 |
cs6 |
security_result.rule_id |
直接映射 |
severity |
security_result.severity_details |
直接映射 |
outcome |
security_result.summary |
直接映射 |
destinationDnsDomain |
target.asset.hostname |
直接映射 |
dst |
target.asset.ip |
已合并 |
fname |
target.file.full_path |
直接映射 |
fileType |
target.file.mime_type |
直接映射 |
fileHash |
target.file.sha256 |
直接映射 |
fsize |
target.file.size |
直接映射 |
destinationDnsDomain |
target.hostname |
直接映射 |
host |
target.hostname |
直接映射 |
dst |
target.ip |
已合并 |
dpt |
target.port |
直接映射 |
request |
target.url |
直接映射 |
| 不适用 | extensions.auth.type |
常量:AUTHTYPE_UNSPECIFIED |
| 不适用 | metadata.event_type |
常量:NETWORK_HTTP |
| 不适用 | network.direction |
常量:INBOUND |
BLOCK |
security_result.action |
从变更日志映射 |
SOFTWARE_PUA |
security_result.category |
从变更日志映射 |
NETWORK_COMMAND_AND_CONTROL |
security_result.category |
从变更日志映射 |
TOR_EXIT_NODE |
security_result.category |
从变更日志映射 |
PHISHING |
security_result.category |
从变更日志映射 |
NETWORK_MALICIOUS |
security_result.category |
从变更日志映射 |
request |
network.http.referral_url |
从变更日志映射 |
destinationDnsDomain |
network.dns.questions.name |
从变更日志映射 |
security_result.action |
BLOCK |
从变更日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。