在安全运营中,告警没有触发并不代表环境一定安全。许多高级入侵会有意使用系统自带工具、分段执行命令或清除日志,使传统规则和基于签名的检测难以发现。威胁狩猎(Threat Hunting)是一种主动的、迭代式的搜索过程,目的是在告警出现之前找到已经绕过防线的攻击者。它不是对单条日志的简单匹配,而是基于攻击假设、行为特征和上下文信息,对可能存在的入侵路径进行验证。

一、威胁狩猎与被动检测的本质区别
被动检测通常依赖预定义规则、IOC或机器学习模型,一旦攻击行为没有匹配已知特征,就可能长期潜伏。威胁狩猎则从相反方向出发:先假设攻击者可能采用某种技术,再主动去数据中寻找证据。这种思路更适合发现使用合法工具、低慢速活动以及定制化恶意软件的高级攻击。
一个典型例子是横向移动。攻击者登录一台失陷主机后,可能使用PsExec、WMI或远程桌面在内部网络移动。这些工具本身是管理员常用组件,很多环境不会对每一次执行都触发告警。威胁狩猎可以把目标锁定为异常的执行来源、非工作时间登录、罕见的主机组合和进程树关系,从而定位可疑活动。
因此,威胁狩猎不是脱离现有安全体系的独立动作,而是与SIEM、EDR、NDR等数据平台深度结合。它更强调人的分析能力和假设检验过程,通过反复搜索、筛选、下钻和关联,逐步把模糊线索转化为明确结论。
二、假设驱动方法:如何设计一次有效狩猎
一次狩猎活动是否有效,取决于假设是否具体、可验证。假设可以来自威胁情报、内部红队演练、同行事件报告或前一次狩猎的遗留线索。最常用的框架是MITRE ATT&CK,它把攻击行为拆解为战术、技术和过程(TTP)。例如攻击者为了执行代码可能使用PowerShell编码命令,对应的技术编号就是T1059.001。
设计假设时,不建议写成过于宽泛的“有人可能被入侵”。更优做法是列出技术、数据源、预期特征和排查时间窗口。比如假设某台终端上的PowerShell被攻击者滥用来下载载荷,那么需要在进程创建日志中搜索包含-EncodedCommand、-WindowStyle Hidden、-ExecutionPolicy Bypass等参数的记录,并关联网络出站连接。这样就把抽象威胁变成了可以执行的查询问题。
| 攻击假设 | 主要数据源 | 可验证特征 |
|---|---|---|
| PowerShell编码执行 | EDR进程事件、Script Block日志 | 命令行包含EncodedCommand |
| PsExec横向移动 | 服务创建日志、登录日志 | 目标主机出现新服务并伴随管理员登录 |
| DNS隐蔽信道 | DNS查询日志 | 单域名高频请求且长度异常 |
从假设到搜索问题的转换,本质上是把攻击技术还原为可观测行为。分析人员需要清楚哪种技术会在哪类日志中留下痕迹。例如进程创建日志适合观察命令执行,网络流日志适合观察数据外传,身份日志适合判断账户是否被滥用。只有把假设落到具体数据字段上,后续查询才有意义。
三、常用数据源与查询实践
数据源质量决定狩猎上限。终端侧优先使用EDR记录和Sysmon日志,尤其关注进程创建、文件变更、注册表修改、网络连接和PowerShell脚本块。网络侧关注DNS查询、TLS证书、SMB会话和横向流量。身份侧则关注登录失败、特权账户使用和异常时间行为。
下面是一个基于KQL的示例,用于在Microsoft Defender for Endpoint数据中查找最近7天内使用PowerShell编码命令的进程:
DeviceProcessEvents | where Timestamp > ago(7d) | where ProcessCommandLine has "-EncodedCommand" | project Timestamp, DeviceName, FileName, ProcessCommandLine | sort by Timestamp desc
这个查询的目标不是直接告警,而是返回一批高度可疑的原始记录。分析人员随后需要确认进程父链、执行账户、网络目标和文件哈希,排除正常的自动化脚本。只有经过上下文验证,狩猎发现才可能升级为事件或转化为检测规则。
除了交互式查询,Sigma规则是把狩猎经验固化为检测逻辑的常用方式。Sigma是一种与具体SIEM产品无关的检测规则格式,可以转换为Splunk、Elastic、QRadar等平台的查询。下面给出一个检测PowerShell编码命令的简单Sigma规则:
title: Suspicious PowerShell Encoded Command
status: experimental
description: Detect PowerShell command line with encoded command
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\powershell.exe'
CommandLine|contains: '-EncodedCommand'
condition: selection
level: high
tags:
- attack.execution
- attack.t1059.001
这个规则先用日志类别限定为Windows进程创建事件,再通过图像路径和命令行内容进行匹配。它的优势在于不依赖某个具体SIEM厂商语法,便于团队在不同平台之间迁移和分享检测经验。经过真实环境验证后,可以把状态从experimental调整为stable,并加入误报白名单或例外条件。
四、狩猎闭环、指标与常见陷阱
威胁狩猎不是一次性项目,需要形成闭环。成功狩猎后应当把发现转为Sigma规则、检测模型或阻断策略,并验证误报率。团队可以用几个指标衡量狩猎效果:狩猎活动次数、发现事件数、转化为检测规则的比例、平均确认时间,以及MITRE ATT&CK技术覆盖率。
常见陷阱之一是数据不足就匆忙下结论。例如只看到PowerShell启动就判断恶意,却没有检查父进程和网络行为。另一个极端是零散查询没有记录,导致同样的排查问题反复出现。狩猎过程应保留假设、查询语句和验证结论,否则知识无法沉淀。
另一个常见问题是把威胁狩猎等同于定期运行几个固定查询。固定查询更像持续检测,狩猎的价值在于不断产生新的探索性问题。因此团队应保留一部分时间专门研究新攻击技术,而不只是重复已有检测逻辑。只有持续改进假设质量,威胁狩猎才能真正缩短攻击者的驻留时间。
威胁狩猎Threat Hunting假设驱动修改时间:2026-08-24 10:25:50