phreddie41/threat-hunting-tor-detection
GitHub: phreddie41/threat-hunting-tor-detection
基于假设驱动方法论的 Tor Browser 检测项目,提供从假设形成到事件报告的完整威胁狩猎工作流和可直接复用的 KQL/SPL 检测查询。
Stars: 0 | Forks: 0
# 威胁狩猎:Tor Browser 检测
## 概述
进行了一次基于假设的威胁狩猎,以识别未经授权的 Tor Browser 使用情况(涵盖端点遥测数据)。使用 KQL 和 SPL 构建了检测查询,记录了从假设形成到确认发现的完整狩猎工作流,并生成了一份包含补救建议的事件报告。该项目展示了与 MITRE ATT&CK 保持一致的主动威胁狩猎方法论。
## 使用的技术
- Microsoft Sentinel / Log Analytics
- Kusto Query Language (KQL)
- Splunk (SPL queries)
- Windows Event Logs (Sysmon, Security)
- MITRE ATT&CK Framework
- VirusTotal / OSINT tools
## 威胁狩猎方法论
```
┌──────────────────┐
│ 1. HYPOTHESIS │ "An insider is using Tor Browser to bypass network controls"
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 2. DATA SOURCES │ Sysmon (Process Creation, Network), DNS logs, Proxy logs
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 3. HUNT QUERIES │ KQL/SPL queries for Tor artifacts
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 4. ANALYSIS │ Correlate findings, eliminate false positives
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 5. FINDINGS │ Confirmed Tor usage on 1 endpoint
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 6. REPORT │ Incident report + detection rule deployment
└──────────────────┘
```
## 详细步骤
### 步骤 1:假设形成
**假设:** 员工或内部人员正在企业端点上使用 Tor Browser,以绕过 Web 过滤并窃取数据或访问受限内容。
**理由:** Tor Browser 通常用于逃避网络监控。它出现在企业端点上几乎总是违反策略的行为,并可能表明存在恶意活动。
**MITRE ATT&CK 映射:**
- T1090.003 — Proxy: Multi-hop Proxy
- T1071.001 — Application Layer Protocol: Web Protocols
- T1048 — Exfiltration Over Alternative Protocol
### 步骤 2:确定数据源
| 数据源 | 揭示的信息 |
|---|---|
| Sysmon Event ID 1 (Process Creation) | Tor Browser 可执行文件的启动(Tor 目录下的 tor.exe、firefox.exe) |
| Sysmon Event ID 3 (Network Connection) | 与已知 Tor 入口/守卫节点的连接 |
| DNS Logs | 与 .onion 相关基础设施的 DNS 查询 |
| Proxy/Firewall Logs | 被阻止或允许的与 Tor 中继 IP 的连接 |
| File System Audit | 磁盘上的 Tor Browser 捆绑文件 |
### 步骤 3:检测查询
**KQL — Tor 进程检测**
```
DeviceProcessEvents
| where FileName in~ ("tor.exe", "tor-browser.exe")
or (FileName == "firefox.exe" and FolderPath has "Tor Browser")
| project Timestamp, DeviceName, AccountName, FileName, FolderPath, ProcessCommandLine
| order by Timestamp desc
```
**KQL — 与已知 Tor 节点的连接**
```
DeviceNetworkEvents
| where RemotePort in (9001, 9030, 9050, 9051, 9150)
| where RemoteIPType == "Public"
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName
| order by Timestamp desc
```
**KQL — Tor 相关的文件痕迹**
```
DeviceFileEvents
| where FileName has_any ("tor.exe", "torrc", "tor-browser", "pluggable_transports")
| project Timestamp, DeviceName, FileName, FolderPath, ActionType
| order by Timestamp desc
```
**SPL — Splunk 中的 Tor 检测**
```
index=sysmon EventCode=1
(Image="*\\tor.exe" OR Image="*\\Tor Browser\\*" OR CommandLine="*tor*")
| stats count by Computer, User, Image, CommandLine, _time
| sort -_time
```
**SPL — 与 Tor 端口的网络连接**
```
index=sysmon EventCode=3
(DestinationPort=9001 OR DestinationPort=9030 OR DestinationPort=9050 OR DestinationPort=9150)
| stats count by Computer, User, DestinationIp, DestinationPort, Image
| sort -count
```
### 步骤 4:分析与关联
在过去 30 天的端点遥测数据中执行了狩猎查询。发现结果在多个数据源之间进行了关联:
1. **Process Creation 日志** 证实了在一台工作站上执行了 `tor.exe`
2. **网络日志** 显示通过端口 9001 向已知的 Tor 中继 IP 发起了出站连接
3. **文件系统审计** 发现用户的 AppData 目录中安装了完整的 Tor Browser 套件
4. **DNS 日志** 未显示 .onion 查询(符合预期——Tor 在内部处理 DNS)
5. **交叉比对** 通过 OSINT 将 Tor 中继 IP 与公共 Tor 节点列表进行了对比
### 步骤 5:发现结果
| 发现 | 详情 |
|---|---|
| 受影响的端点 | WORKSTATION-PC07 |
| 用户账户 | jsmith (标准用户) |
| 首次发现 | 狩猎窗口期的第 12 天 |
| Tor Browser 版本 | 12.5.x (安装在 %AppData% 中) |
| 网络活动 | 5 天内向 Tor 中继进行了 47 次连接 |
| 数据窃取指标 | 未确认有数据窃取,但通过 Tor 传输了 2.3 GB 数据 |
| 违反策略 | 是 — 未经授权的软件,绕过 Web 过滤 |
### 步骤 6:事件报告
**严重程度:** 中等 (违反策略 + 潜在的数据窃取)
**摘要:** 在 WORKSTATION-PC07 上检测到用户 jsmith 未经授权安装和使用 Tor Browser。该软件被用于在 5 天内绕过企业 Web 过滤,并通过 Tor 电路传输了 2.3 GB 数据。
**建议:**
1. 上报给 HR 和用户的主管以执行策略处理
2. 对端点进行取证镜像以进行进一步分析
3. 审查 DLP 日志,查看在 Tor 使用期间是否有任何敏感数据被访问
4. 将这些检测查询作为 Sentinel 中的持久化分析规则进行部署
5. 将 Tor 中继 IP 添加到防火墙阻止列表中
6. 更新可接受使用策略,明确禁止使用匿名化工具
## 成果
| 指标 | 数值 |
|---|---|
| 狩猎窗口期 | 30 天 |
| 分析的端点数 | 150+ |
| 真阳性发现 | 1 个已确认的 Tor 安装 |
| 创建的检测查询 | 5 个 (3 个 KQL,2 个 SPL) |
| 从假设到发现的时间 | 4 小时 |
| 结果 | 事件已上报,检测规则已部署 |
## 经验总结
这次狩猎印证了一点:主动威胁狩猎与被动警报分诊有着根本的不同。从假设出发,有条不紊地梳理数据源,能够揭示基于签名的检测完全遗漏的活动——Tor Browser 的安装从未触发过现有警报,因为它没有被标记为恶意软件。
最重要的一点是跨多个数据源进行关联的价值。仅凭 Process Creation 日志可能会产生误报,但如果与网络连接数据和文件系统痕迹结合起来,确信度就会大幅提升。这种多源关联方法正是区分有效威胁狩猎与简单日志搜索的关键。
标签:Ask搜索, Cloudflare, DNS分析, ESC4, KQL, Microsoft Sentinel, MITRE ATT&CK, OSINT, SecOps, SPL, Sysmon, Tor浏览器检测, VirusTotal, 事件报告, 云安全架构, 代理日志, 假设驱动, 内部威胁, 后渗透, 威胁情报, 安全运营, 开发者工具, 扫描框架, 检测规则开发, 端点遥测分析, 网络安全, 隐私保护