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, 事件报告, 云安全架构, 代理日志, 假设驱动, 内部威胁, 后渗透, 威胁情报, 安全运营, 开发者工具, 扫描框架, 检测规则开发, 端点遥测分析, 网络安全, 隐私保护