3. 调查数据源与日志工程基础
自动化调查的上限,往往不由分析引擎决定,而由数据源覆盖度与日志质量决定。一次“可疑登录”事件,如果只有身份系统的登录成功记录,没有 EDR 的进程树、没有云审计的 API 调用、没有 NDR 的东西向流量,调查就只能停在“谁在什么时候登录了”,无法回答“登录后做了什么、是否横向移动、是否外传数据”。因此,数据源接入不是把日志堆进 SIEM,而是围绕调查问题构建可关联、可追溯、可验证的证据链。
六类核心数据源及其调查价值
EDR 提供端点侧的进程创建、命令行、父子进程关系、文件与注册表改动、网络连接等遥测,是判断“执行了什么”的主干。SIEM 本身不是数据源,而是汇聚与关联层,它把防火墙、代理、DNS、WAF、应用日志等统一检索。NDR 补充网络侧元数据,如五元组、DNS 查询、TLS 指纹、JA3、流量字节数,用于发现 EDR 未覆盖的设备或加密通道中的异常。身份系统(IdP/AD/SSO)提供登录、MFA、令牌签发、权限变更,是“谁进来了”的锚点。云审计(CloudTrail、Activity Log 等)记录控制面 API 调用,是云上权限滥用与资源创建的关键证据。威胁情报提供 IOC、TTP、信誉与上下文,用于把孤立行为映射到已知攻击活动。
日志规范化:让不同来源说同一种语言
各数据源字段命名差异极大:EDR 可能用 process_name,Sysmon 用 Image,云审计用 eventName。规范化就是把这些字段映射到统一模式(schema)。实践中建议至少统一以下字段:timestamp(UTC)、host、user、process、parent_process、command_line、src_ip、dst_ip、action、result、data_source。以一条 EDR 进程创建日志为例:
原始: {"EventID":1,"UtcTime":"2024-06-11 08:12:33.421",
"Image":"C:\\Windows\\System32\\cmd.exe",
"ParentImage":"C:\\Windows\\System32\\winword.exe",
"CommandLine":"cmd.exe /c whoami",
"User":"CORP\\alice"}
规范化: timestamp=2024-06-11T08:12:33.421Z
host=WIN-0231 user=CORP\alice
process=cmd.exe parent_process=winword.exe
command_line="cmd.exe /c whoami"
action=process_create data_source=edr
规范化后,调查引擎才能用同一套查询逻辑跨源检索,例如“查找 alice 在 WIN-0231 上由 Office 进程派生的所有命令行”。
时间同步:时间线可信的前提
多源关联的第一杀手是时钟偏差。若 EDR 与云审计相差 90 秒,攻击者“先登录云控制台、再在端点执行命令”的因果顺序就可能被颠倒。工程上要求:所有采集端启用 NTP,偏差控制在 ±1 秒内;日志写入时保留原始时区并统一转换为 UTC;对无法确认时区的日志标记 tz_unknown,避免误判。可用如下方式快速检查偏差:
# 查看端点与 NTP 服务器偏差
w32tm /stripchart /computer:ntp.corp.local /samples:3
# Linux 侧
chronyc tracking | grep -E "System time|Last offset"
若某源偏差超过阈值,应在规范化阶段记录 clock_skew_ms,并在时间线重建时对该源做偏移校正,而不是直接丢弃。
数据质量治理:四个可量化维度
数据质量不能靠感觉,要落到指标。完整性看关键字段缺失率,例如 command_line 缺失率超过 5% 就应排查采集策略;时效性看从事件发生到可检索的延迟,端点遥测通常要求小于 60 秒;一致性看同一实体在不同源中的标识是否可对齐,如主机名与 IP 的映射是否稳定;可关联性看是否存在可用于 join 的公共键,如 host、user、session_id。建议每日生成一份数据源健康表:
| 数据源 | 关键字段缺失率 | 平均延迟 | 时钟偏差 | 可关联键 |
|---|---|---|---|---|
| EDR | command_line 1.2% | 18s | +0.3s | host, user, process |
| 身份系统 | src_ip 0.4% | 25s | -0.1s | user, session_id |
| 云审计 | user_agent 3.8% | 45s | +0.8s | user, resource_id |
| NDR | dst_port 0.9% | 12s | +0.2s | src_ip, dst_ip |
从接入到可用:一个最小闭环
以“云主机异常登录”为例:身份系统给出 user=alice, src_ip=203.0.113.45, result=success;云审计给出同一时段 eventName=CreateAccessKey;EDR 给出该主机上 powershell.exe 的下载行为;NDR 给出到陌生域名的 DNS 查询。四源通过 user 与 host 关联,时间线按 UTC 对齐,才能形成“登录→创建密钥→下载工具→外联”的完整链条。若其中任一源缺失或时间错位,链条就会断裂,自动化调查只能降级为人工猜测。
因此,数据源与日志工程的核心任务可以概括为:以调查问题为牵引选择数据源,以统一 schema 完成规范化,以 UTC 与 NTP 保证时间可信,以可量化指标持续治理质量,最终让多源日志能够被稳定地关联成一条可验证的证据链。