2. SIEM 日志源接入与解析验证
为什么“接进来”不等于“能用”
SIEM 的价值取决于日志能否被正确解析成可检索字段。防火墙、终端 EDR、身份认证(AD/SSO)三类日志源的原始格式差异很大:防火墙多为 syslog 键值对,终端多为 JSON,身份认证常为 Windows 事件日志或 CSV 导出。接入后必须验证“原始日志 → 解析 → 字段映射 → 可检索”这条链路,否则告警规则会因字段缺失而失效。
三类日志源的接入与解析要点
| 日志源 | 典型格式 | 接入方式 | 关键字段 | 解析难点 |
|---|---|---|---|---|
| 防火墙 | syslog KV | Syslog 接收器 | src_ip, dst_ip, dst_port, action | 不同厂商键名不一致 |
| 终端 EDR | JSON | API 拉取 / Agent | hostname, process, user, hash | 嵌套 JSON 需展平 |
| 身份认证 | Windows 事件 / CSV | Winlogbeat / 文件监控 | user, src_ip, event_id, result | 事件 ID 语义映射 |
解析规则配置示例(Grok 模式)
以防火墙 syslog 为例,原始日志行:
2024-06-15T10:23:45Z fw01 action=deny src=10.1.2.3 dst=192.168.1.10 dport=445 proto=tcp
对应的 Grok 解析规则:
%{TIMESTAMP_ISO8601:timestamp} %{WORD:device} action=%{WORD:action} src=%{IP:src_ip} dst=%{IP:dst_ip} dport=%{NUMBER:dst_port} proto=%{WORD:protocol}
解析后应得到字段:timestamp、device、action、src_ip、dst_ip、dst_port、protocol。若 src_ip 为空,说明正则未匹配到 IP 段,需检查日志中是否含额外空格或字段顺序变化。
字段映射验证查询
解析配置完成后,用以下查询验证字段是否可检索:
# 验证防火墙字段
action:deny AND src_ip:10.1.2.3 AND dst_port:445
# 验证终端字段
hostname:PC-001 AND process_name:powershell.exe
# 验证身份认证字段
event_id:4625 AND user:admin AND result:failed
若查询返回结果,说明字段已正确映射并可检索;若返回空,需回到解析规则检查字段名是否与索引映射一致。
验证顺序建议:先确认原始日志到达 → 再确认解析规则命中 → 再确认字段映射正确 → 最后确认告警规则可触发。每一步都应有明确的检查命令或查询语句,避免跳步排查。
常见坑:字段名大小写不一致(如
src_ip vs srcIP)、时间戳格式未统一导致排序错乱、JSON 嵌套字段未展平导致无法直接检索。接入前先与日志源负责人确认字段命名规范。
接入验证检查清单
- 采集器状态:确认 syslog/agent/API 连接正常,无丢包或认证失败。
- 原始日志:在 SIEM 搜索界面确认能看到原始日志行。
- 解析命中:检查 parser 匹配率,未命中日志需单独分析。
- 字段映射:逐字段核对
src_ip、user、action、timestamp等关键字段。 - 可检索性:用字段查询语句验证返回结果。
- 告警联动:模拟一条攻击日志,确认告警规则能触发并生成事件。