ahmddd1/DetectionForge
GitHub: ahmddd1/DetectionForge
一个检测工程实验室项目,通过 Atomic Red Team 执行 ATT&CK 技术并用 Splunk/Sysmon 验证检测覆盖,系统性记录检测盲区与根因。
Stars: 1 | Forks: 0
#DetectionForge
**检测工程实验室:将 MITRE ATT&CK 技术映射到 Windows/Sysmon 遥测和 Splunk SPL 检测,并记录检测盲区。**
## 这是什么
一个围绕单一习惯构建的单节点实验室:运行一个已知的攻击
技术,然后通过真实的日志和查询证明——它是否
真的能被检测到。
每项技术都通过 **Atomic Red Team** 执行,并通过以下方式进行追踪:
```
MITRE ATT&CK Technique → Windows / Sysmon Log Source → Splunk SPL Detection
```
每项已完成的技术都包含确切的执行命令、其生成的日志来源、可用的 SPL 查询、误报基线检查,以及(如果存在)经过验证的检测盲区和根因分析。
## 架构

| 组件 | 用途 |
|---|---|
| Windows 10/11 (单个虚拟机) | 受监控的端点 / 模拟目标 |
| Sysmon — SwiftOnSecurity 配置 | 进程、网络和文件系统遥测 |
| PowerShell Script Block Logging (Event 4104) | 捕获去混淆后的脚本内容 |
| Splunk Universal Forwarder | 将日志从端点发送至 Splunk |
| Splunk Enterprise (免费版) | 集中索引、搜索和检测逻辑 |
| Atomic Red Team (PowerShell 模块) | 执行单独编号的、映射到 ATT&CK 的测试用例 |
安装详情:[`01-lab-architecture/setup-notes.md`](01-lab-architecture/setup-notes.md)
## 目前已完成
| 技术 | 战术 | 关键发现 |
|---|---|---|
| [T1059.001 — PowerShell](03-atomic-tests/T1059.001-powershell.md) | Execution | Event 4104 揭示了去混淆后的脚本内容——单独的 Sysmon 只能看到编码后的数据块 |
| [T1053.005 — Scheduled Task](03-atomic-tests/T1053.005-scheduled-task.md) | Persistence | 仅限于 `schtasks.exe` 的检测完全漏掉了通过 PowerShell cmdlet 创建的任务——通过并排对比证明了 0 与 1 个事件的差异 |
| [T1071.001 — Web Protocols (C2)](03-atomic-tests/T1071.001-web-protocols-c2.md) | Command and Control | 部署的 Sysmon 配置默认在所有网络连接日志 (Event 3) 中静默排除了 `powershell.exe` |
| [T1547.001 — Registry Run Keys](03-atomic-tests/T1547.001-registry-run-keys.md) | Persistence | 范围过广的 Run 键检测会对合法的 Edge 浏览器自启动项产生误报——现已优化为针对可疑工具(`reg.exe`、`powershell.exe` 等)进行作用域界定,而不仅仅是关注产物本身 |
| [T1003.001 — LSASS Memory](03-atomic-tests/T1003.001-lsass-memory.md) | Credential Access | 部署的配置在系统范围内完全禁用了 Sysmon 的 Process Access 事件 (ID 10)——一次成功的 LSASS 转储产生了零 Process Access 遥测数据 |
完整的发现报告:[`07-lessons-learned/detection-gaps-and-improvements.md`](07-lessons-learned/detection-gaps-and-improvements.md)
## 仪表板
一个实时 Splunk 仪表板([`dashboard.xml`](/01-lab-architecture/dashboard.xml))可追踪所有已完成技术的覆盖情况:


## 方法论
1. **执行** — 运行一个特定的、编号的 Atomic Red Team 测试。
2. **观察** — 识别它实际生成的每一个日志来源。
3. **检测** — 编写专门用于隔离该行为的 SPL 查询。
4. **验证** — 对照干净的基线检查是否存在误报。
5. **丰富** — 根据公开的威胁情报交叉比对任何外部指标。
6. **压力测试** — 尝试使用替代的执行路径来绕过检测。如果绕过成功,则记录该检测盲区及其根因。
一个仅能应对单一特定工具调用的检测不能称之为检测——那只是巧合。第 6 步才是本项目的真正核心所在。
## 仓库结构
```
DetectionForge/
├── 01-lab-architecture/ Setup notes and architecture diagram
├── 02-sysmon-config/ sysmonconfig.xml and Event ID / sourcetype reference
├── 03-atomic-tests/ Detailed write-up per completed technique
├── 04-spl-detection-queries/ Production-ready SPL per technique
├── 05-threat-intel-enrichment/ IOC and User-Agent enrichment
├── 06-false-positive-analysis/ Baseline-vs-attack comparisons
├── 07-lessons-learned/ Detection gaps, root causes, general principles
└── screenshots/ Splunk dashboards, event examples, test execution
```
## 工具
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team)
- [Sysmon](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon) + [SwiftOnSecurity config](https://github.com/SwiftOnSecurity/sysmon-config)
- [Splunk Enterprise (免费版)](https://www.splunk.com/) + Universal Forwarder
- [MITRE ATT&CK](https://attack.mitre.org/)
## 许可证
参见 [`LICENSE`](LICENSE)。
标签:AI合规, OpenCanary, Sysmon, 安全, 安全实验环境, 超时处理