第243篇:企业内网威胁狩猎基础
关键词
威胁狩猎、主动防御、假设驱动、异常检测、IOC、IOA、狩猎循环、EDR数据分析
一、什么是威胁狩猎
1.1 从被动到主动
传统安全运营是被动的——等待告警,然后响应。威胁狩猎是主动寻找已入侵的攻击者:
被动防御 vs 主动狩猎:
被动安全(等待告警): 攻击者入侵 → 触发签名告警 → 分析响应 缺点:只检测已知威胁,0-day/APT 可能不被触发
主动狩猎(主动寻找): 假设"已经失陷" → 主动寻找异常 → 发现并清除 优势:可以发现绕过签名的攻击
| 检测方法的覆盖范围: 签名检测 ┌──────────┐ └──────────┘ 行为检测 ┌──────────────┐ └──────────────┘ 威胁狩猎 ┌──────────────────┐ | 已知威胁 已知模式威胁 未知威胁/APT 隐蔽持久攻击 | |
|---|---|---|
1.2 威胁狩猎的核心理念
威胁狩猎的五大核心:
1. 假设驱动(Hypothesis-Driven)
基于情报或经验提出假设:
"服务器最近更新的 DLL 可能是恶意的"
"某个用户非工作时间登录了服务器"
2. 数据驱动(Data-Driven)
收集和分析大规模数据
不仅依赖告警
3. 持续迭代(Iterative)
一次狩猎找到 IOC → 更新检测规则
不断改进
4. 人类主导(Human-Led)
自动化工具辅助,但人类判断核心
需要分析师的网络和攻击经验
5. 结果验证(Evidence-Based)
每个发现都需要验证真伪
排除误报
二、威胁狩猎方法论
2.1 狩猎循环模型
威胁狩猎循环(Hunt Loop):
┌────────────────────────────┐
│ 1. 提出假设 │
│ "可能有 APT 入侵" │
└────────────┬───────────────┘
│
┌────────────┴───────────────┐
│ 2. 数据收集 │
│ 防火墙日志/EDR/DNS/进程 │
└────────────┬───────────────┘
│
┌────────────┴───────────────┐
│ 3. 分析验证 │
│ 关联分析/时序分析/基线 │
└────────────┬───────────────┘
│
┌────────────┴───────────────┐
│ 4. 发现 │
│ (发现/未发现) │
└────────────┬───────────────┘
│
┌────────────┴───────────────┐
│ 5. 响应与改进 │
│ 阻断 + 更新检测规则 │
└────────────────────────────┘
2.2 假设的来源
提出假设的六大来源:
1. 威胁情报
"新发现的 APT 组织喜欢用 PowerShell 加载恶意 DLL"
→ 狩猎所有终端的 PowerShell 下载行为
2. 环境异常
"夜间 2-4 点有大量 DNS 查询"
→ 狩猎夜间 DNS 流量
3. 已知攻击模式
"勒索软件通常会扫描 SMB 端口"
→ 狩猎非预期的 SMB 连接
4. 告警反馈
"上周 IPS 告警的 IP,可能有后续动作"
→ 狩猎该 IP 所有相关活动
5. 行业事件
"同行业其他公司遭遇供应链攻击"
→ 狩猎本公司的供应链系统
6. 合规审计
"等保检查发现敏感端口暴露"
→ 狩猎暴露端口的利用尝试
三、威胁狩猎的数据源
3.1 关键数据源
威胁狩猎的数据来源:
| 数据源 | 关键信息 | 狩猎用途 |
|---|---|---|
| EDR 日志 防火墙日志 DNS 日志 AD 日志 HTTP 代理日志 邮件日志 NetFlow 漏洞扫描结果 | 进程/文件/网络 连接/阻断/DNS 域名解析 登录/权限变更 URL/UA/文件 收发件人/附件 流量模式/对端 开放端口/漏洞 | 进程异常、横向移动 C2 通信、数据外泄 DGA 域名、隧道 异常登录、提权 恶意下载、C2 通信 钓鱼邮件 异常流量模式 攻击面评估 |
数据的重要性排序: 1. EDR 进程日志(最丰富、最及时) 2. 网络日志(防火墙 + DNS) 3. AD 登录日志 4. 代理 / NetFlow
3.2 关键 IOC 与 IOA
IOC(威胁指标) vs IOA(攻击指标):
IOC(Indicators of Compromise)— 已知的恶意的证据: SHA256: a1b2c3... (恶意软件哈希) IP: 185.22.33.44 (已知 C2) Domain: evil.example.com (恶意域名) Registry Key: HKCU\Software\Malware File Path: C:\Windows\Temp\evil.dll
IOC 狩猎:寻找这些已知恶意指标在环境中的出现
IOA(Indicators of Attack)— 攻击行为的模式:
进程链异常: Word.exe → PowerShell.exe → rundll32.dll 正常:Word 不应该启动 PowerShell 异常:宏 → PowerShell → DLL 加载 登录异常: 一个账户 5 分钟内登录了 10 台服务器 正常:管理员也通常不会 时间异常: 很少使用的服务器在凌晨 3 点有高 CPU
IOA 狩猎:寻找异常行为模式(不依赖已知签名)
四、威胁狩猎实战技术
4.1 进程链分析
进程链分析是威胁狩猎最有效的技术之一:
正常进程链(办公 PC):
explorer.exe → chrome.exe
explorer.exe → OUTLOOK.EXE
svchost.exe (系统服务)
异常进程链(可能的恶意行为):
1. 钓鱼文档:
WINWORD.EXE → cmd.exe → powershell.exe
★ Word 不应该启动命令行
2. 无文件攻击:
wscript.exe → powershell.exe (从远端下载脚本)
★ 脚本执行器从网络下载代码
3. 横向移动:
svchost.exe → wmic.exe → 远程进程创建
★ WMIC 远程创建进程是典型的横向移动
狩猎查询示例(KQL):
// 查找 Word 启动 PowerShell 的进程链
ProcessCreate
| where ParentImage endswith "WINWORD.EXE"
| where Image endswith "powershell.exe"
4.2 网络行为分析
网络行为异常检测:
正常网络行为模式:
8:00-18:00 工作时间内有 HTTP/HTTPS 流量
并发连接数:10-50
访问 DNS:每 5 分钟 3-5 次
访问的地理位置:国内为主
异常模式(可能的 C2 通信):
1. 定期心跳(Beacon)
每 60 秒准时连接某个外部 IP
流量很小(< 1KB)
规律:非常规律,无人工特征
→ 可能 C2 心跳
2. 不常见端口
内网 PC 主动连接外部 445 端口(SMB)
内网 PC 连接外部 3389(RDP)
→ 异常行为
3. DNS 异常
大量解析随机域名(DGA)
流量中 DNS TXT 查询量大
→ DNS 隧道
4. 时间异常
凌晨 2-5 点大量数据上传
→ 数据外泄嫌疑
狩猎命令(防火墙日志分析):
# 查找每 60 秒规律连接的 IP
display firewall log | include 185. | statistics frequency
4.3 日志关联分析
多源日志关联示例:
场景:假设 APT 已经通过钓鱼入侵
狩猎步骤:
Step 1: 邮件日志
查找带有恶意附件的邮件
找到收件人列表 → 可能的受感染用户
Step 2: EDR 日志(受感染用户终端)
查找:Word 启动 PowerShell 的记录
查找:PowerShell 下载的文件
查找:新创建的外连进程
Step 3: DNS 日志(关联终端 IP)
查找:该终端 IP 解析的陌生域名
查找:高频期的 DNS 查询
Step 4: 防火墙日志(关联域名)
查找:该终端到陌生域名的连接
查找:外部 IP 的威胁情报匹配
发现:若以上全部关联成功 → 高度确认失陷
五、威胁狩猎的工具
5.1 常用工具
威胁狩猎工具:
工具 类型 适合场景
────────────────────────────────────────────────
Elasticsearch + Kibana 日志分析 大量日志搜索和可视化
Splunk 日志分析 商业级日志分析
Velociraptor 终端取证 远程终端采集和分析
YARA 文件扫描 自定义恶意文件规则
Sigma 日志规则 跨平台的检测规则
Zeek (Bro) 网络分析 网络流量元数据
Kansa 日志采集 多主机日志采集
YARA 规则示例:
rule Suspicious_Powershell
{
meta:
description = "检测可疑 PowerShell 命令"
author = "Threat Hunt Team"
strings:
$s1 = "-enc" // 编码执行
$s2 = "DownloadString" // 下载
$s3 = "Invoke-Expression" // 执行
$s4 = "FromBase64String" // Base64 解码
condition:
2 of them
}
5.2 狩猎自动化
自动化狩猎查询(Sigma 规则 → SIEM 查询):
Sigma 规则示例:
title: Suspicious PowerShell Download
id: 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx
description: Detects PowerShell downloading files
logsource:
product: windows
service: powershell
detection:
selection:
EventID: 4104
ScriptBlockText|contains:
- 'DownloadString'
- 'DownloadFile'
- 'WebClient'
condition: selection
转换为 Kibana 查询:
event_id: 4104 AND
(script_block_text: "DownloadString" OR
script_block_text: "DownloadFile" OR
script_block_text: "*WebClient*")
六、狩猎团队与流程
6.1 团队角色
威胁狩猎团队构成:
狩猎分析师:
提出假设
执行数据分析
验证发现
威胁情报专家:
提供外部情报
关联内部狩猎结果
日志/数据工程师:
数据采集和清洗
自动化查询功能
事件响应人员:
确认发现后执行响应
清除威胁
6.2 狩猎频率
不同场景的狩猎频率:
每日狩猎(自动 + 人工):
└─ 自动规则触发的告警审查
└─ 检查新 IOC 在环境中的命中
每周狩猎(聚焦主题):
└─ 选择 1 个假设进行深度狩猎
└─ 例如:"本周狩猎 PowerShell 滥用"
每月狩猎(全面数据挖掘):
└─ 所有终端的进程基线分析
└─ 网络流量基线偏离分析
└─ 新威胁情报关联分析
每季度狩猎(专项):
└─ 深度 APT 模拟攻击狩猎
└─ 供应链安全排查
└─ 红蓝对抗结果复盘
七、总结
| 知识点 | 核心要点 |
|---|---|
| 威胁狩猎定义 | 主动寻找已入侵攻击者的分析方法 |
| 核心循环 | 假设→收集→分析→发现→响应 |
| IOC vs IOA | IOC 是已知恶意证据,IOA 是攻击行为模式 |
| 进程链分析 | 最有效的狩猎技术,检测异常进程树 |
| 网络行为分析 | 检测 C2 心跳、DNS 异常、时间异常 |
| 日志关联 | 多源日志关联确认失陷 |
| 常用工具 | ELK、YARA、Sigma、Velociraptor |
八、思考
- 威胁狩猎和传统 SOC 告警分析有什么本质区别?
- IOC(威胁指标)和 IOA(攻击指标)的区别是什么?为什么 IOA 对狩猎更重要?
- 请描述一个完整的威胁狩猎循环:从提出假设到验证发现的过程。
- 进程链分析为什么是威胁狩猎最有效的技术之一?请举例说明一个异常的进程链。
- 在狩猎中发现规律的"心跳"网络连接(每 60 秒连接到同一外部 IP),这可能是什么问题?下一步如何验证?
下篇预告:第244篇《无线网络安全:WPA2/WPA3/802.1X》——无线网络的加密认证机制演进,WPA2/WPA3 的区别以及企业级 802.1X 认证部署。