收集 Brocade 交换机日志
支持的平台:
Google SecOps
SIEM
此解析器使用与各种日志格式匹配的 Grok 模式从 Brocade 交换机日志中提取字段。然后,它会将这些提取的字段映射到 UDM 字段,处理不同的日志结构,并使用供应商和产品信息等元数据丰富数据。在生成最终 UDM 输出之前,解析器还会执行数据转换,例如转换严重级别和处理重复消息。
准备工作
- 确保您有一个 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用 systemd 的 Linux 主机。
- 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 Brocade 交换机的 CLI 管理员访问权限。
获取 Google SecOps 提取身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次选择 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 BindPlane Agent
- 对于 Windows 安装,请运行以下脚本:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- 对于 Linux 安装,请运行以下脚本:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- 如需了解其他安装选项,请参阅此安装指南。
配置 BindPlane Agent 以提取 Syslog 并将其发送到 Google SecOps
- 访问安装了 BindPlane 的机器。
按如下方式修改
config.yaml
文件:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Brocade_Switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
重启 BindPlane 代理以应用更改:
sudo systemctl restart bindplane
配置从 Brocade 交换机导出 syslog
- 使用 SSH 或 Telnet 和适当的凭据连接到 Brocade 交换机。
运行以下命令,指定 syslog 服务器 (Bindplane) 的 IP 地址或主机名和 Port:
syslogadmin --set -ip <IP> -port <Port>
例如:
syslogadmin --set -ip 10.10.10.10 -port 54525
运行以下命令可显示已配置的 syslog 服务器:
syslogadmin --show -ip
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
application |
additional.fields[].key : "application"additional.fields[].value.string_value : |
当 KV_DATA 字段存在时,从原始日志中的 application@1588 字段提取的值。 |
class |
additional.fields[].key :“class”additional.fields[].value.string_value : |
当 KV_DATA 字段存在时,从原始日志中的 class@1588 字段提取的值。 |
domain |
principal.administrative_domain |
从与 domain 字段匹配的 Grok 模式中提取的值。 |
Event |
additional.fields[].key :“event_category”additional.fields[].value.string_value : |
当 KV_DATA 字段存在时,从原始日志中的 arg0@1588 字段提取的值。 |
event_id |
metadata.product_log_id |
从与 event_id 字段匹配的 Grok 模式中提取的值。 |
event_type |
metadata.product_event_type |
从与 event_type 字段匹配的 Grok 模式中提取的值。 |
flags |
additional.fields[].key :“flags”additional.fields[].value.string_value : |
从与 flags 字段匹配的 Grok 模式中提取的值。 |
Info |
metadata.description |
从 Info 字段中提取的值,使用 grok 进行解析。 |
interface |
app_protocol_src |
当 KV_DATA 字段存在时,从原始日志中的 interface@1588 字段提取的值。用于派生 network.application_protocol 。 |
ip |
principal.ip |
从 ip 字段中提取的值,使用 grok 进行解析。如果与从 Info 字段中提取的 IP 地址不同,则会合并到 principal.ip 。 |
Info ,IP Addr |
principal.ip |
从 Info 字段中的 IP Addr 字段提取的值,使用 grok 进行解析。 |
log |
additional.fields[].key :“log”additional.fields[].value.string_value : |
当 KV_DATA 字段存在时,从原始日志中的 log@1588 字段提取的值。 |
msg |
metadata.description |
从 msg 字段中提取的值,使用 grok 进行解析。 |
msgid |
additional.fields[].key :“msgid”additional.fields[].value.string_value : |
当 KV_DATA 字段存在时,从原始日志中的 msgid@1588 字段提取的值。 |
prin_host |
principal.hostname principal.asset.hostname |
从与 prin_host 字段匹配的 Grok 模式中提取的值。 |
product_version |
metadata.product_version |
从与 product_version 字段匹配的 Grok 模式中提取的值。 |
repeat_count |
additional.fields[].key :“repeat_count”additional.fields[].value.string_value : |
从 msg 字段中提取的值,使用 grok 进行解析。 |
role ,user_role |
principal.user.attribute.roles[].name |
从 role@1588 或 user_role 字段中提取的值。如果值为“admin”,则会替换为“管理员”。 |
sequence_number |
additional.fields[].key :“sequence_number”additional.fields[].value.string_value : |
从与 sequence_number 字段匹配的 Grok 模式中提取的值。 |
severity |
security_result.severity |
从 severity 字段中提取的值,使用 grok 进行解析。已映射到 UDM 严重程度值(INFORMATIONAL、ERROR、CRITICAL、MEDIUM)。 |
Status |
security_result.summary |
从 Status 字段中提取的值。 |
switch_name |
additional.fields[].key :“switch_name”additional.fields[].value.string_value : |
从与 switch_name 字段匹配的 Grok 模式中提取的值。 |
target_application |
target.application |
从与 target_application 字段匹配的 Grok 模式中提取的值。 |
time |
additional.fields[].key :“time”additional.fields[].value.string_value : |
从 kv_data3 字段中的 time 字段提取的值。 |
timestamp |
metadata.event_timestamp.seconds |
从 timestamp 字段中提取的值,使用日期过滤条件进行解析。 |
user |
principal.user.userid principal.user.user_display_name |
从 user 或 user@1588 字段中提取的值,使用 grok 进行解析。从 principal.hostname 复制。从 principal.ip 复制。从 metadata.product_event_type 复制,或根据条件设置为“STATUS_UPDATE”。从日志的 create_time.nanos 复制。由解析器逻辑根据 has_principal 、has_target 、has_userid 和 event_type 的值确定。可以是“SYSTEM_AUDIT_LOG_UNCATEGORIZED”“STATUS_UPDATE”或“GENERIC_EVENT”。已硬编码为“BROCADE_SWITCH”。已硬编码为“BROCADE”。已硬编码为“BROCADE_SWITCH”。从 interface 字段派生,如果 interface 字段包含“SSH”,则将其设置为“SSH”。 |
更改
2024-04-15
- 添加了对客户专用日志的支持。
2023-12-01
- 新创建的解析器。