4. 日志与事件源面试题

在SOC分析师的日常工作中,面试官最怕听到的一句话是“我会看日志”。因为“看日志”太笼统了。真正区分候选人水平的,是能否说清楚:日志从哪里来、以什么协议传输、解析后落到哪些字段、这些字段在检测和溯源中各自承担什么作用。本章围绕Windows事件日志、Syslog、防火墙、IDS/IPS、EDR和云审计日志六类主流事件源,讲清采集链路、解析要点和关键字段,并给出可直接对照的字段速查表。

一、先建立统一视角:日志的“三段式”生命周期

无论哪类事件源,都可以拆成三段:产生端(Agent/设备自身)→ 传输与汇聚(Syslog、WEF、API拉取、Kafka等)→ 解析与存储(SIEM/数据湖)。面试中回答任何一类日志,都可以按这个链路展开,避免只答“采集”而漏掉解析和字段。

采集方式主要有四种:Agent直采(如Winlogbeat、EDR Agent)、无Agent推送(Syslog、SNMP Trap)、API拉取(云审计、部分SaaS)、以及日志转发器(如Windows Event Forwarding、Rsyslog relay)。选择依据是设备能力、网络可达性和合规要求,而不是个人偏好。

二、Windows事件日志:结构化程度最高,但坑也最多

Windows日志分三类:System、Application、Security。SOC最关注Security日志,核心事件ID包括:4624(登录成功)、4625(登录失败)、4634(注销)、4648(显式凭据登录)、4672(授予特殊权限)、4688(进程创建)、4720(创建用户)、7045(安装服务)。

采集常用Winlogbeat或Windows Event Forwarding(WEF)。WEF适合大规模域环境,通过订阅将事件集中到收集器;Winlogbeat适合单机或小规模,直接输出到SIEM。解析时最关键的是把EventData里的字段提取出来,而不是只保留整条XML。例如4624的关键字段:TargetUserName、TargetDomainName、LogonType、IpAddress、WorkstationName、LogonProcessName。其中LogonType是判断场景的核心:2=交互登录,3=网络登录,10=远程桌面,5=服务登录。若出现LogonType=3且IpAddress为外网地址,配合TargetUserName为管理员账户,就是典型的暴力破解或横向移动线索。

示例:4624解析后的关键字段(教学假设)
EventID: 4624
TargetUserName: admin
LogonType: 10
IpAddress: 203.0.113.45
WorkstationName: -
LogonProcessName: User32
判断:远程桌面登录,来源为公网IP,需结合4625频次判断是否爆破成功

三、Syslog:格式松散,解析靠规范

Syslog是Linux/Unix设备、网络设备、安全设备最通用的日志协议,默认UDP 514,可靠场景用TCP 514或TLS 6514。RFC 5424定义了标准格式:PRI、VERSION、TIMESTAMP、HOSTNAME、APP-NAME、PROCID、MSGID、STRUCTURED-DATA、MSG。但现实中大量设备仍用RFC 3164老格式,字段缺失严重。

解析Syslog的核心是正则提取+归一化。以Linux sshd日志为例:

原始:Mar 12 10:23:45 web01 sshd[1234]: Failed password for invalid user test from 198.51.100.7 port 51234 ssh2
提取字段:
  host: web01
  process: sshd
  action: Failed password
  user: test
  src_ip: 198.51.100.7
  src_port: 51234

归一化后,不同设备的“登录失败”都映射到统一字段action=login_failed,才能在SIEM里做跨源关联。面试中若被问“Syslog解析难点”,答“时间戳时区不统一、多行日志(如Java堆栈)需要合并、结构化数据缺失需靠正则兜底”即可体现深度。

四、防火墙:五元组是基础,NAT和会话是加分项

防火墙日志的核心是五元组:src_ip、src_port、dst_ip、dst_port、protocol,加上action(allow/deny)、bytes、packets、duration。以Palo Alto为例,字段还包括app-id、user、session_end_reason。Cisco ASA则用%ASA-6-302013等消息号区分连接建立与拆除。

分析时重点关注:deny日志的源IP聚合(判断扫描)、allow日志的异常目的端口(判断C2)、以及NAT前后的IP映射。若只看到内网IP而无法还原真实源,溯源就会断链。因此解析时必须保留NAT转换后的公网IP字段(如Palo Alto的xlate_src_ip)。

五、IDS/IPS:告警字段决定研判效率

IDS/IPS日志(如Suricata、Snort)核心字段:timestamp、src_ip、src_port、dst_ip、dst_port、proto、alert.signature、alert.signature_id、alert.severity、alert.category。Suricata还输出flow_id,可用于关联同一会话的多个告警。

研判时先看signature_id而非signature文本,因为文本可能被规则作者修改。severity=1通常为高危,但需结合方向:若内网主机访问外网且命中“ET MALWARE”类规则,优先级高于外网扫描内网。IPS还会记录action(blocked/allowed),blocked说明已拦截,allowed则需立即排查。

六、EDR:进程树与遥测是核心价值

EDR日志(如CrowdStrike、SentinelOne、Microsoft Defender for Endpoint)与上述日志最大区别是带进程上下文。关键字段:process_name、process_id、parent_process_name、parent_process_id、command_line、user、file_path、hash(MD5/SHA256)、network_remote_ip。部分EDR还提供process_guid和device_id。

典型检测场景:Office进程(winword.exe)启动powershell.exe,且command_line含“-enc”或“DownloadString”,这是宏病毒常见链。若只看Windows 4688,缺少父进程和命令行;EDR则能直接给出完整进程树。面试中应强调:EDR的价值不在“有告警”,而在“能还原攻击链”。

七、云审计日志:谁在什么时间对什么资源做了什么

云审计日志(AWS CloudTrail、Azure Activity Log、阿里云ActionTrail)核心字段:eventTime、eventName、userIdentity(含type、arn、accountId)、sourceIPAddress、userAgent、requestParameters、responseElements、errorCode。AWS还需关注eventSource和awsRegion。

高频检测点:CreateUser、AttachUserPolicy、PutBucketAcl、DeleteTrail。例如eventName=StopLogging且userIdentity为IAM用户而非根账户,可能是攻击者关闭审计。云日志采集通常通过S3/SQS或EventBridge推送到SIEM,解析时注意userIdentity.type区分IAMUser、AssumedRole、Root,这直接决定告警优先级。

八、字段速查表(可直接用于SIEM字段映射)

事件源核心字段研判用途
Windows SecurityEventID、TargetUserName、LogonType、IpAddress登录异常、横向移动
Sysloghost、process、action、src_ip、user归一化关联、Linux审计
防火墙src_ip、dst_ip、dst_port、action、xlate_src_ip扫描、C2、NAT溯源
IDS/IPSsignature_id、severity、flow_id、action告警研判、会话关联
EDRprocess_name、parent_process_name、command_line、hash攻击链还原、恶意进程
云审计eventName、userIdentity.type、sourceIPAddress、errorCode权限变更、审计关闭

九、面试应答要点

被问到“你如何采集和解析某类日志”时,建议按四步回答:采集方式(Agent/API/Syslog)→ 传输协议与端口 → 解析字段与归一化 → 关键字段的检测价值。若面试官追问“字段缺失怎么办”,可答:优先用设备原生结构化字段,缺失时用正则兜底,并在SIEM中标记data_quality字段,避免误判。最后提醒一点:任何日志解析都要保留原始日志(raw log),否则一旦解析规则出错,将无法回溯。