编写检测规则与关联分析
创建 Splunk SPL 或 Kibana KQL 查询,检测暴力破解、横向移动和数据外泄。
编写检测规则与关联分析 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
检测工程基础
检测规则会将攻击者的行为转换为查询逻辑,当日志中出现相应模式时触发。优秀的检测工程应当足够具体,以避免误报,同时又足够宽泛,以捕获攻击的各种变体。
Splunk SPL:搜索处理语言
SPL 查询使用管道语法:搜索 → 转换 → 展示。请从索引和源类型开始,筛选相关事件,然后对结果进行聚合或发出告警。
# Basic SPL structure
index=security sourcetype=WinEventLog EventCode=4625
| stats count by src_ip, user
| where count > 10
| sort -count
# Explanation:
# Search Security index for logon failures
# Count failures per source IP + user
# Alert if more than 10 failures
# Sort descending by count在 Splunk 中检测暴力破解
暴力破解检测:按来源统计登录失败次数,并在时间窗口内超过阈值时发出告警。将失败后的成功登录与这些事件关联起来,以检测凭据填充攻击。
# Failed logins by source IP
index=security EventCode=4625
| bucket _time span=5m
| stats count as failures by _time, src_ip
| where failures > 20
| table _time, src_ip, failures
# Success after failures (account takeover)
index=security EventCode=4625 OR EventCode=4624
| stats values(EventCode) as events by src_ip
| where mvfind(events,"4625") >= 0 AND mvfind(events,"4624") >= 0用于检测的 Kibana KQL
Kibana 查询语言(KQL)用于筛选事件,以便开展调查。对于分析人员来说,它比 Lucene 更易读;请在 Kibana 中将其用于已保存的搜索和告警规则。
# KQL examples:
# Failed SSH logins
event.action: "ssh_login_failed" and source.ip: *
# Nmap scan detection
not destination.port: (80 or 443 or 22) and event.type: "connection"
# Privilege escalation
process.name: "sudo" and process.args: "-s"Elasticsearch 检测规则
Kibana 的安全应用包含检测规则引擎。规则可以基于阈值(事件数量)、基于查询(特定事件模式)、基于机器学习异常,或使用 EQL(事件查询语言)序列规则。
# EQL sequence rule example (Kibana Security):
sequence by host.name
[process where process.name == "cmd.exe"]
[network where destination.port == 4444]
# Detects: cmd.exe followed by connection to port 4444
# (common reverse shell pattern)横向移动检测
可以通过以下行为检测横向移动:PsExec 创建服务(事件 7045)、远程 WMI 执行、异常的管理员共享访问(事件 5140),以及远程创建新的计划任务。
# Splunk: detect PsExec-style lateral movement
index=security EventCode=7045
| where Service_Name="PSEXESVC" OR Service_File_Name="\\*\\*.exe"
| table _time, ComputerName, Service_Name, Service_File_Name
# WMI remote execution
index=sysmon EventCode=1 ParentImage="*WmiPrvSE.exe"
| table _time, host, CommandLine, User数据外泄检测
可以通过以下行为检测数据外泄:向异常目的地进行大规模出站传输、查询异常长的 DNS 子域名(隧道传输),以及按固定间隔进行 HTTPS 信标通信。
# DNS tunneling detection in Splunk
index=dns
| eval subdomain_len=len(subdomain)
| where subdomain_len > 50
| stats count by query, src_ip
| sort -count
# Large outbound (NetFlow/firewall logs)
index=firewall action=allow direction=outbound
| stats sum(bytes) as total_bytes by dest_ip, src_ip
| where total_bytes > 100000000 # 100MB threshold使用已保存的搜索进行威胁搜寻
请将经常使用的检测查询保存为计划搜索,以便通过电子邮件发送通知或创建事件。请设置适当的时间窗口和阈值,在检测速度与误报率之间取得平衡。
映射到 MITRE ATT&CK 的检测
请将检测规则映射到 ATT&CK 技术。这可以显示覆盖缺口,并帮助确定新规则的优先级。ATT&CK Navigator 等工具可以直观展示您能够检测哪些技术,以及对哪些技术没有可见性。
调优以减少误报
新规则通常会触发过多告警。您可以通过以下方式进行调优:排除已知正常来源、提高阈值、添加上下文字段(工作时间、已知扫描 IP),并在启用规则前使用历史数据进行验证。
告警疲劳
过多低质量告警会导致分析人员忽略告警,从而违背告警存在的目的。请优先保证质量而非数量:每天 10 条高可信度告警胜过 500 条嘈杂的告警。请抑制、调优并停用表现不佳的规则。
快速检查
EQL 序列规则能够检测什么,而简单的查询规则无法检测什么?
总结:检测规则
检测工程会将攻击者的 TTP 转换为查询逻辑。请在 Splunk 中使用 SPL,在 Kibana Security 中使用 KQL 和 EQL。请将规则映射到 MITRE ATT&CK,以跟踪覆盖范围。请优先采用高可信度、针对性强的规则,而不是宽泛且嘈杂的规则。请持续调优——威胁形势在变化,检测逻辑也应随之变化。
用 AI 导师学习 Cyber Security Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 76
- 课程
- 303
常见问题解答
「编写检测规则与关联分析」课时是免费的吗?
是的 — 「编写检测规则与关联分析」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「编写检测规则与关联分析」这节课中我会学到什么?
创建 Splunk SPL 或 Kibana KQL 查询,检测暴力破解、横向移动和数据外泄。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「编写检测规则与关联分析」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 日志来源:操作系统、网络与应用日志
- SIEM 架构与日志采集
- 编写检测规则与关联分析
- 告警分级与 SOC 工作流