thomasbeo/WindowsEndpointThreatHuntingLab

GitHub: thomasbeo/WindowsEndpointThreatHuntingLab

基于 Python 的 Windows 终端威胁狩猎实验室,通过检测引擎、进程树重构和 MITRE ATT&CK 映射实现端到端安全调查分析。

Stars: 0 | Forks: 0

# Windows 终端威胁狩猎实验室 一个基于 Python 的防御性安全实验室,用于分析合成的 Windows 终端遥测数据、重构进程关系、检测可疑行为、执行威胁狩猎、将证据关联到终端调查中、将发现映射到 MITRE ATT&CK、计算调查风险,并生成面向分析师的报告。 本项目作为网络安全作品集实验室开发,旨在练习终端监控、检测工程、威胁狩猎、Windows 进程分析、事件调查、MITRE ATT&CK 映射和安全自动化。 ## 概述 该实验室处理代表 Windows 进程执行和网络活动的结构化合成终端遥测数据。 演示场景模拟了一个可疑的终端活动链: ``` explorer.exe | v WINWORD.EXE | v powershell.exe | +--> whoami.exe | +--> ipconfig.exe | +--> schtasks.exe | +--> outbound network connection ``` 本项目使用多个防御性安全组件对这些事件进行分析: - 事件摄取与标准化 - 进程树重构 - 基于规则的检测 - 分析师威胁狩猎 - 终端调查关联 - MITRE ATT&CK 扩展 - 可解释的风险评分 - SQLite 持久化 - CSV 导出 - HTML 调查报告 - 自动化测试 ## 功能 - 解析结构化的 JSON 终端遥测数据 - 标准化 Windows 进程和网络活动 - 重构父子进程关系 - 识别可疑的 Office 到 PowerShell 的执行 - 检测 PowerShell 执行 - 检测用户/账户发现活动 - 检测网络配置发现 - 检测计划任务创建 - 检测 PowerShell 到高关注度端口的出站连接 - 执行可重用的威胁狩猎 - 将终端证据关联到单个调查中 - 生成按时间顺序的调查时间线 - 将支持的发现映射到 MITRE ATT&CK - 计算可解释的终端风险评分 - 在 SQLite 中持久化事件、发现、调查和证据 - 将事件、发现和调查数据导出为 CSV - 生成专业的 HTML 威胁狩猎报告 - 使用 pytest 验证功能 ## 威胁狩猎报告 最终调查报告总结了终端、受影响用户、风险评分、发现、ATT&CK 上下文、时间线以及分析师建议。 ![Windows 终端威胁狩猎报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/b6/b6bef8d8daf5ac65dbd791fcf596cd683dbcd1689194fd8862d4b176e05635cf.png) 合成演示生成: - **6 个终端事件** - **6 个安全发现** - **1 个关联的终端调查** - **100 / 100 风险评分** - **CRITICAL 严重程度** ## 检测发现 检测引擎识别出需要调查的多种行为。 ![检测发现](https://static.pigsec.cn/wp-content/uploads/repos/cas/33/33b700df128a89b4f8ff9f466315ec695b11d6d53b53527b8c20441f3a0552a4.jpg) | 规则 ID | 检测 | 严重程度 | |---|---|---| | ENDPOINT-001 | Office 应用程序启动 PowerShell | HIGH | | ENDPOINT-002 | 检测到 PowerShell 执行 | MEDIUM | | ENDPOINT-003 | 账户发现活动 | MEDIUM | | ENDPOINT-004 | 网络配置发现 | LOW | | ENDPOINT-005 | PowerShell 高关注度出站连接 | HIGH | | ENDPOINT-006 | 检测到计划任务创建 | HIGH | 这些发现具有情境性。单个事件并不自动证明已被入侵;整体序列提供了更强的调查价值。 ## 进程树重构 本项目使用进程和父进程标识符重构进程关系。 ![终端进程树](https://static.pigsec.cn/wp-content/uploads/repos/cas/34/344cc49575a82ea1ba8ee08ef8ea3f482da15aad264cb08b1e0c671033715eb2.png) 示例: ``` explorer.exe └── WINWORD.EXE └── powershell.exe ├── whoami.exe ├── ipconfig.exe └── schtasks.exe ``` 与独立分析每个进程事件相比,这提供了额外的上下文。 ## 威胁狩猎 本项目包含用于以下内容的可重用狩猎: - PowerShell 相关活动 - 可疑的 Office 到脚本引擎的父子关系 - 发现命令 执行示例: ``` python -m scripts.inspect_hunts ``` 威胁狩猎独立于自动检测逻辑。狩猎允许分析师在遥测数据中搜索可能需要手动调查的行为或关系。 ## MITRE ATT&CK 映射 仅当观察到的证据支持有意义的技术关联时,选定的发现才会映射到 ATT&CK。 ![MITRE ATT&CK 映射](https://static.pigsec.cn/wp-content/uploads/repos/cas/21/21a87741d157660dca23278956dbe50b465c3d443bc6ae11e56056b7bdd273e1.png) | 检测 | ATT&CK 技术 | 战术 | |---|---|---| | PowerShell 执行 | T1059.001 - PowerShell | 执行 | | 用户发现 | T1033 - System Owner/User Discovery | 发现 | | 网络配置发现 | T1016 - System Network Configuration Discovery | 发现 | | 计划任务创建 | T1053.005 - Scheduled Task | 持久化 | 当缺乏特定于技术的证据时,某些情境性发现会有意保持未映射状态。 ## 终端调查 关联层将相关事件和发现组合为: ``` Investigation ID: INV-ENDPOINT-001 Title: Suspicious Office-to-PowerShell Activity Chain Host: WORKSTATION-01 User: alice Severity: CRITICAL ``` 调查包含: - 关联的发现 - 相关源事件 - 开始和结束时间戳 - 分析师描述 - 建议的调查操作 ## 风险评分 该实验室使用可解释的基于规则的评分模型。 演示场景分配: ``` Office application spawned PowerShell +25 PowerShell execution +15 Account discovery +10 Network configuration discovery +10 High-interest outbound connection +20 Scheduled task creation +20 ---- Total 100 / 100 ``` 严重性阈值: ``` 0-29 LOW 30-59 MEDIUM 60-79 HIGH 80-100 CRITICAL ``` 该评分模型是特定于项目的,旨在用于教育优先级排序,而非生产风险计算。 ## SQLite 持久化 本项目可以持久化: - 终端事件 - 安全发现 - 终端调查 - 调查证据 到: ``` data/database/endpoint_hunting.db ``` 运行时数据库被排除在 Git 之外,因为它可以重新生成。 ## CSV 导出 统一流水线可以生成: ``` reports/endpoint_events.csv reports/endpoint_findings.csv reports/endpoint_investigation.csv ``` 这些生成的输出也被排除在 Git 之外。 ## 架构 ``` Synthetic Endpoint Telemetry (JSON) | v Event Ingestion | v EndpointEvent Objects | +-------+-------+ | | v v Process Tree Detection Engine Reconstruction | v Endpoint Findings | +----------+----------+ | | v v Threat Hunting ATT&CK Mapping | v Investigation Correlation | v Endpoint Investigation | +------+------+------+ | | | v v v Risk Scoring SQLite CSV | v HTML Threat Hunting Report ``` ## 自动化测试 本项目包含覆盖以下内容的测试: - JSON 事件摄取 - 进程树重构 - 检测规则 - 威胁狩猎功能 - 调查关联 - MITRE ATT&CK 映射 - 风险评分 - SQLite 持久化 - CSV 导出 - HTML 报告生成 运行: ``` python -m pytest -v ``` 当前测试套件: **19 个测试通过** ![自动化测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e9d5b49c8d899d45104eb23e3ef7a3c1dc2724098db35b1dcbf70d72ff7bd31.png) ## 运行项目 ### 1. 克隆仓库 ``` git clone https://github.com/thomasbeo/WindowsEndpointThreatHuntingLab.git cd WindowsEndpointThreatHuntingLab ``` ### 2. 创建虚拟环境 ``` python -m venv .venv ``` 激活它: ``` .\.venv\Scripts\Activate.ps1 ``` ### 3. 安装依赖项 ``` pip install -r requirements.txt ``` ### 4. 运行完整的终端分析流水线 ``` python main.py data\synthetic\endpoint_events.json --save-database --export-csv --html-report ``` 该命令执行: ``` event ingestion → detection → process analysis → investigation correlation → ATT&CK enrichment → risk scoring → SQLite persistence → CSV export → HTML reporting ``` ## 单独的调查命令 检查终端遥测数据: ``` python -m scripts.inspect_events ``` 检查进程树: ``` python -m scripts.inspect_process_tree ``` 检查检测发现: ``` python -m scripts.inspect_findings ``` 运行威胁狩猎: ``` python -m scripts.inspect_hunts ``` 检查关联的调查: ``` python -m scripts.inspect_investigation ``` 检查 MITRE ATT&CK 映射: ``` python -m scripts.inspect_mitre_mapping ``` 检查风险计算: ``` python -m scripts.inspect_risk_score ``` 生成 HTML 报告: ``` python -m scripts.generate_endpoint_report ``` ## 技术 - Python 3 - SQLite - pytest - JSON - CSV - HTML/CSS - MITRE ATT&CK 概念 - Windows 终端安全概念 ## 展示的技能 - Windows 终端安全分析 - 威胁狩猎 - 检测工程 - 进程树分析 - 安全事件关联 - 终端调查 - MITRE ATT&CK 映射 - 基于风险的优先级排序 - Python 安全自动化 - SQLite 持久化 - 安全报告 - 自动化测试 ## 安全与道德使用 本项目使用合成的 Windows 终端遥测数据和文档/测试 IP 地址范围。 它专为防御性网络安全教育、威胁狩猎实践、终端调查和作品集演示而设计。 包含的演示场景不会访问或修改任何未授权的系统。 ## 免责声明 检测、ATT&CK 映射、严重性级别和风险评分逻辑是简化的教育实现。 在没有额外验证、调优、上下文遥测数据和分析师审查的情况下,不应将其解释为生产级 EDR/SIEM 检测逻辑。
标签:Cloudflare, Homebrew安装, MITRE ATT&CK, OpenCanary, Python, Windows端点, 代码示例, 后渗透, 安全规则引擎, 安全运营, 扫描框架, 数据分析, 无后门, 调试辅助, 逆向工具