编写 SIEM 检测规则与警报
为常见攻击技术构建检测规则,在敏感性(捕获真实威胁)和特异性(减少警报疲劳)之间取得平衡。
编写 SIEM 检测规则与警报 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
检测规则:内容与原因
Detection 规则是编码在 SIEM 中的逻辑,用于定义哪些条件构成安全告警。没有优秀的 Detection 规则,SIEM 就只是一个昂贵的日志存储系统。精心编写的规则能够识别特定的攻击者行为——凭据填充、横向移动、数据外泄——同时避免因正常操作而触发。检测工程是一门持续编写、测试和维护这些规则的学科。
检测规则的构成
每条 Detection 规则都包含一些关键组成部分。数据源指定要查询哪些日志。筛选条件指定哪些事件符合条件。阈值或模式定义触发告警所需的事件数量或事件序列。元数据包括严重性、MITRE ATT&CK 映射、描述和建议的响应措施。记录完善的规则有助于分析师快速理解告警含义,以及告警触发时应如何响应。
# Detection rule anatomy example:
# Name: 'Suspicious PowerShell Encoded Command'
# Severity: HIGH
# ATT&CK: T1059.001 - Command and Scripting Interpreter: PowerShell
# Source: Windows Security Event Logs (EventID 4688)
# Condition: CommandLine contains '-EncodedCommand' OR '-enc '
# AND ParentImage NOT IN ('sccm.exe','wsus.exe')
# Threshold: Any single occurrence
# Response: Isolate host, collect memory dump, notify SOC敏感性与特异性的权衡
每条 Detection 规则都需要在敏感性(捕获所有真阳性)与特异性(避免误报)之间取得平衡。敏感性极高的规则可以捕获攻击的所有变体,但会产生大量告警噪声。特异性极高的规则很少触发,却可能漏掉新型攻击变体。优秀的检测工程应先从较高的特异性入手,建立分析师的信任;随着调优减少误报并提高对规则的信心,再逐步扩大范围。
基于阈值的检测
基于阈值的规则会在某个时间窗口内的事件数量超过限制时触发。这类规则非常适合检测基于数量的攻击,例如暴力破解、端口扫描和 DDoS。关键参数包括:计数阈值(事件数量)、时间窗口(在多少分钟内)以及分组字段(按源 IP、用户或主机分别计算)。阈值设置不当会导致告警噪声或漏报,请使用历史基线数据谨慎调优。
# Threshold rule: RDP brute force detection
# Source: Windows Event ID 4625 (failed logon)
# Filter: LogonType = 10 (RemoteInteractive/RDP)
# Threshold: count >= 10
# Window: 5 minutes
# Group by: TargetComputerName, IpAddress
# Alert: 'RDP Brute Force Attempt'
# Include: src_ip, target_host, account_list, failure_count基于序列的检测
基于序列的规则会查找按特定顺序排列的事件链,非常适合检测多阶段攻击模式。例如:收到钓鱼邮件 THEN 打开恶意附件 THEN Office 应用程序生成 PowerShell。单独看每个事件可能都是良性的,但这一序列表明系统可能已遭到入侵。如今大多数 SIEM(Splunk、Sentinel、Elastic)都支持序列匹配,可在事件链之间进行基于时间的关联。
# Sequence rule: Office macro spawning shell (conceptual)
# Step 1: process_create where ParentImage ENDS_WITH 'WINWORD.EXE'
# AND Image IN ('cmd.exe','powershell.exe','wscript.exe')
# THEN within 30 seconds:
# Step 2: network_connect from same PID
# AND destination NOT IN allowlist
# --> Alert: 'Macro-spawned Shell with Outbound Connection'
# --> Severity: CRITICALSigma 规则:可移植的检测逻辑
Sigma 是一种开放且不依赖厂商的格式,用于编写可转换为特定 SIEM 查询语言的 Detection 规则(Splunk 使用 SPL,Sentinel 使用 KQL,Elastic 使用 Lucene)。安全社区在 GitHub 上分享了数千条 Sigma 规则,涵盖常见的 ATT&CK 技术。使用 Sigma,组织无需针对自己的 SIEM 平台手动重写规则,即可采用社区 Detection,从而显著加快检测覆盖建设。
# Sigma rule example (YAML format):
# title: Suspicious PowerShell Encoded Command
# status: stable
# logsource:
# category: process_creation
# product: windows
# detection:
# selection:
# Image|endswith: '\\powershell.exe'
# CommandLine|contains:
# - '-EncodedCommand'
# - '-enc '
# condition: selection
# falsepositives:
# - SCCM software deployment
# level: high测试检测规则
Detection 规则必须经过测试后才能部署到生产环境。最佳实践包括:使用代表真阳性和误报场景的合成事件进行单元测试;利用已记录的良性流量进行重放测试,以衡量误报率;以及开展红队演练,在受控的攻击模拟中验证规则是否按预期触发。Atomic Red Team 等工具提供了小型测试脚本,可以安全地模拟特定的 ATT&CK 技术。
# Atomic Red Team test: simulate PowerShell encoded command
# T1059.001 - Atomic Test #1: PowerShell Encoded Command
# Command simulated:
# powershell.exe -EncodedCommand JABj...(base64)
# (decodes to: $cmd = 'whoami'; Invoke-Expression $cmd)
# After running: verify SIEM fired alert within 60 seconds
# If not: check log ingestion, parser, rule condition
# Then clean up: no persistence, process exits cleanly调优规则以减少误报
规则部署后,仍需持续调优。常见的调优技术包括:为会合法触发规则的已知正常进程或账户设置排除列表;将特定源 IP(扫描器、监控工具)加入允许列表;根据观察到的基线频率调整阈值;以及添加上下文条件(仅当主机也可从外部访问时才告警)。请记录每项排除及其理由,以便后续分析师了解其存在原因。
告警严重性级别
Detection 规则应带有严重性评级,以指导分析师确定优先级。常见级别包括:Critical——正在遭受利用、勒索软件、域控制器遭到入侵;High——横向移动、凭据转储、C2 通信;中——可疑侦察、违反策略;低/信息——不寻常但不会立即造成危险、值得跟踪的事件。严重性应与业务影响相匹配,而不应只依据技术层面的严重程度。
检测规则生命周期管理
Detection 规则具有必须主动管理的生命周期。环境发生变化(部署新软件、IP 范围变更)后,规则可能过时并产生误报。随着攻击者不断演变,规则也可能漏掉新的攻击技术。最佳实践是:将规则维护在版本控制(git)中,每季度审查和更新一次,将每条规则至少映射到一种 ATT&CK 技术,并衡量规则的有效性(每周触发次数、真阳性率),以便淘汰或改进表现不佳的规则。
构建检测覆盖图
检测覆盖图将现有 Detection 规则与 MITRE ATT&CK 矩阵叠加,以可视化展示覆盖缺口。至少有一条规则覆盖的技术标记为绿色;未覆盖的技术标记为红色。通过这一视觉化结果,团队可以发现哪些攻击阶段(例如持久化、数据外泄)缺少检测覆盖,并据此确定新规则开发的优先级。定期审查覆盖情况,可以确保检测计划跟上不断演变的攻击者技术。
快速检查
测试您对本课 CompTIA Security+(SY0-701)知识点的理解。
课程回顾
在本课中,您学习了:Detection 规则将特定攻击者行为编码为 SIEM 中的告警条件;基于阈值和基于序列的规则分别应对不同类型的攻击模式;以及Sigma 提供了一种可移植格式,用于在安全社区中共享 Detection。接下来,我们将学习 UEBA 和行为分析,用于检测内部威胁和遭入侵的账户。
常见问题解答
「编写 SIEM 检测规则与警报」课时是免费的吗?
是的 — 「编写 SIEM 检测规则与警报」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「编写 SIEM 检测规则与警报」这节课中我会学到什么?
为常见攻击技术构建检测规则,在敏感性(捕获真实威胁)和特异性(减少警报疲劳)之间取得平衡。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「编写 SIEM 检测规则与警报」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 威胁搜寻方法与假设生成
- SIEM 架构:日志采集、解析与关联
- 编写 SIEM 检测规则与警报
- 用于内部威胁检测的 UEBA 与行为分析