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 上下文、时间线以及分析师建议。

合成演示生成:
- **6 个终端事件**
- **6 个安全发现**
- **1 个关联的终端调查**
- **100 / 100 风险评分**
- **CRITICAL 严重程度**
## 检测发现
检测引擎识别出需要调查的多种行为。

| 规则 ID | 检测 | 严重程度 |
|---|---|---|
| ENDPOINT-001 | Office 应用程序启动 PowerShell | HIGH |
| ENDPOINT-002 | 检测到 PowerShell 执行 | MEDIUM |
| ENDPOINT-003 | 账户发现活动 | MEDIUM |
| ENDPOINT-004 | 网络配置发现 | LOW |
| ENDPOINT-005 | PowerShell 高关注度出站连接 | HIGH |
| ENDPOINT-006 | 检测到计划任务创建 | HIGH |
这些发现具有情境性。单个事件并不自动证明已被入侵;整体序列提供了更强的调查价值。
## 进程树重构
本项目使用进程和父进程标识符重构进程关系。

示例:
```
explorer.exe
└── WINWORD.EXE
└── powershell.exe
├── whoami.exe
├── ipconfig.exe
└── schtasks.exe
```
与独立分析每个进程事件相比,这提供了额外的上下文。
## 威胁狩猎
本项目包含用于以下内容的可重用狩猎:
- PowerShell 相关活动
- 可疑的 Office 到脚本引擎的父子关系
- 发现命令
执行示例:
```
python -m scripts.inspect_hunts
```
威胁狩猎独立于自动检测逻辑。狩猎允许分析师在遥测数据中搜索可能需要手动调查的行为或关系。
## MITRE ATT&CK 映射
仅当观察到的证据支持有意义的技术关联时,选定的发现才会映射到 ATT&CK。

| 检测 | 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 个测试通过**

## 运行项目
### 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端点, 代码示例, 后渗透, 安全规则引擎, 安全运营, 扫描框架, 数据分析, 无后门, 调试辅助, 逆向工具