2. SIEM平台与日志源接入

检测规则写得再好,如果日志没有稳定、完整、字段一致地进入SIEM,规则要么不触发,要么触发后无法解释。本章聚焦“日志如何从产生点走到规则引擎”这条链路,讲清常见SIEM架构、采集方式、关键日志源以及字段规范化,为后续规则开发打好数据基础。

一、常见SIEM架构:从采集到检索的四段链路

无论商业SIEM还是开源组合(如Elastic Stack、Wazuh、Splunk),逻辑架构基本一致,可拆为四段:采集层负责从终端、服务器、网络设备、云平台取日志;传输与缓冲层负责可靠搬运,常用Syslog、Kafka、Redis、Beats;解析与存储层负责字段提取、规范化、索引与保留;检测与应用层运行关联规则、告警、仪表盘与调查界面。理解这条链路的意义在于:规则不触发时,能快速判断问题出在“日志没到”“字段没解析”还是“规则逻辑错”。

SIEM 日志链路与规则依赖关系 采集层 Windows 事件转发 Sysmon / EDR Agent 防火墙 Syslog 代理 / Web 日志 云审计 API 拉取 原始事件产生点 传输与缓冲 Syslog UDP/TCP Beats / Agent Kafka 消息队列 Redis 缓存 削峰、重传、解耦 解析与存储 字段提取 / 正则 字段规范化映射 索引 / 冷热分层 保留策略 / 归档 统一字段模型 检测与应用 关联规则引擎 告警与分级 仪表盘 / 调查 规则调优闭环 规则消费统一字段 规则不触发时回溯:日志是否到达 → 字段是否解析 → 逻辑是否正确

二、日志采集方式:按对象选通道

采集方式的选择取决于日志产生形态。Windows环境常用Windows事件转发(WEF)或Agent直采,前者适合集中收集安全日志,后者可同时采集Sysmon;Linux服务器多用rsyslog/Filebeat读取/var/log/;网络设备与防火墙普遍支持Syslog,需注意UDP会丢包、TCP更可靠;代理与Web服务器日志可用Filebeat或Fluentd按行解析;云平台(AWS CloudTrail、Azure Activity Log、阿里云ActionTrail)通常通过API轮询或事件总线投递到对象存储后再拉取。EDR则通过厂商API或Syslog导出检测事件与遥测。

实际接入时,建议先确认三件事:日志时间戳是UTC还是本地时间、事件是否带唯一ID、传输是否加密。例如防火墙Syslog默认可能用本地时间,若SIEM按UTC解析,跨时区检索就会错位。一个可参考的Filebeat采集片段如下:

filebeat.inputs:
- type: filestream
  id: win-sysmon
  paths:
    - C:\ProgramData\Sysmon\sysmon.log
  fields:
    log_source: sysmon
    env: prod
  fields_under_root: true
output.kafka:
  hosts: ["kafka01:9092"]
  topic: "siem-raw"

三、关键日志源:规则开发的“原料清单”

不同日志源提供不同检测视角,规则开发前应明确每类日志能回答什么问题:

  • Windows安全事件:登录成功/失败(4624/4625)、特权分配(4672)、账户变更(4720/4726)、进程创建(4688)。适合检测暴力破解、横向移动、账户滥用。
  • Sysmon:进程创建(Event ID 1)、网络连接(3)、镜像加载(7)、注册表修改(12/13)、DNS查询(22)。字段比4688丰富,含命令行、哈希、父进程,是端点检测的核心。
  • 防火墙:允许/拒绝连接、源目的IP与端口、字节数。适合检测扫描、C2外联、异常端口访问。
  • 代理/Web日志:URL、User-Agent、响应码、上传下载量。适合检测恶意下载、数据外传、可疑UA。
  • EDR:进程树、文件落地、内存行为、检测告警。适合补充Sysmon未覆盖的行为链。
  • 云审计:API调用者、源IP、资源、操作结果。适合检测AK泄露、权限提升、异常地域登录。

四、字段规范化:让规则只写一次

同一语义在不同日志里字段名各异:Windows叫IpAddress,防火墙叫src_ip,云审计叫sourceIPAddress。若规则直接绑定原始字段,换一个日志源就要重写。字段规范化就是建立统一字段模型,常见映射如下:

统一字段含义Windows示例防火墙示例云审计示例
event_time事件发生时间(UTC)SystemTimetimestampeventTime
user_name主体账户TargetUserNamesrc_useruserIdentity.userName
src_ip源IPIpAddresssrc_ipsourceIPAddress
dst_ip目的IP—dst_ip—
process_name进程名NewProcessName——
command_line命令行CommandLine——
action动作/结果KeywordsactioneventName

规范化通常在解析层完成:用正则或GROK提取原始字段,再通过映射表写入统一字段。例如把Windows 4625的IpAddress映射为src_ip,把防火墙的src也映射为src_ip。这样规则只需写src_ip,就能同时覆盖多源。需要提醒的是,规范化不是“改名”那么简单,还要统一时间格式、IP类型、大小写和空值处理,否则规则里src_ip = "10.0.0.1"可能因类型不一致而匹配失败。

接入完成后,建议用一条“已知会触发”的测试事件验证链路:确认事件在SIEM中可检索、关键字段已解析、时间正确,再开始写检测规则。这一步能避免把“数据问题”误判为“规则问题”。

总结来看,SIEM接入的核心是“通道选对、字段统一、时间一致”。只有日志稳定到达且字段可预期,后续的关联规则、阈值规则和异常检测才有可靠基础。