cyberknight91/purple-lab
GitHub: cyberknight91/purple-lab
一个将ATT&CK攻击模拟与Sigma检测规则配对测试的紫色实验室框架。
Stars: 0 | Forks: 0
## 存在的原因
大多数红队仓库只给你 payload。大多数蓝队仓库只给你规则。很少有仓库会给你**两者,并且是相互配对和测试过的**。
`purple-lab` 是我用来练习紫队项目的实验平台:
1. **模拟**在受控实验室中已知的 ATT&CK 技术。
2. **捕获**攻击产生的遥测数据。
3. **编写**能够检测它的 Sigma 规则 — 随后是 Elastic EQL 查询和 hunt 查询。
4. **测量**在良性基线下的误报率。
5. **记录**所有内容:kill-chain、规则、FP 笔记、runbook。
如果这五个步骤中缺少任何一个,该技术就不会进入 `main` 分支。
## ATT&CK 覆盖范围
| ID | 技术 | 战术 | Atomic | Sigma | 状态 |
|----|---------|---------|--------|:-----:|:------:|
| `T1059.001` | PowerShell · Encoded Command | Execution | [链接](atomics/T1059.001_powershell_encoded) | [规则](detections/sigma/T1059.001_powershell_encoded.yml) | 完成 |
| `T1053.005` | Scheduled Task / Job | Persistence | [链接](atomics/T1053.005_scheduled_task) | [规则](detections/sigma/T1053.005_scheduled_task.yml) | 完成 |
| `T1003.001` | OS Credential Dumping · LSASS | Credential Access | [链接](atomics/T1003.001_lsass_dump) | [规则](detections/sigma/T1003.001_lsass_dump.yml) | 完成 |
| `T1566.001` | Spearphishing Attachment · Macro → child | Initial Access | [链接](atomics/T1566.001_office_macro_spawn) | [规则](https://github.com/cyberknight91/detection-engineering/blob/main/rules/sigma/windows/initial_access/office_macro_suspicious_child.yml) | 完成 |
| `T1018` | Remote System Discovery | Discovery | — | — | 计划中 |
| `T1021.001` | Remote Services · RDP | Lateral Movement | — | — | 计划中 |
| `T1047` | Windows Management Instrumentation | Execution | — | — | 计划中 |
| `T1087.002` | Account Discovery · Domain | Discovery | — | — | 计划中 |
| `T1136.001` | Create Account · Local | Persistence | — | — | 计划中 |
| `T1218.011` | Signed Binary Proxy · Rundll32 | Defense Evasion | — | — | 计划中 |
## 仓库结构
```
purple-lab/
├── atomics/ lado ofensivo
│ └── T_/
│ ├── README.md kill-chain, referencias, impacto
│ ├── execute.ps1 / .sh la simulación en sí
│ └── expected_events.md qué llega al SIEM
├── detections/ lado azul
│ ├── sigma/ reglas Sigma canónicas
│ ├── elastic/ EQL / KQL compilado
│ └── _analysis.md por qué funciona + notas FP
├── docs/
│ ├── lab-setup.md cómo montar las VMs de lab
│ ├── methodology.md mi workflow purple team
│ └── attack-navigator.json export ATT&CK Navigator
├── scripts/
│ └── run-atomic.ps1 dispatcher para todos los atomics
└── .github/workflows/
└── validate-sigma.yml CI: sigma-cli valida cada regla
```
## 实验室要求
- 完全隔离的 Windows 10/11 虚拟机(不与生产环境桥接)。
- 安装了 [SwiftOnSecurity 配置](https://github.com/SwiftOnSecurity/sysmon-config) 的 Sysmon。
- 启用 PowerShell ScriptBlock 和 Module 日志记录(参见 [`docs/lab-setup.md`](docs/lab-setup.md))。
- 日志转发器将 `Microsoft-Windows-Sysmon/Operational` 和 `Security` 发送到 SIEM。
- 本仓库的参考 SIEM:配套仓库 [`siem-homelab`](https://github.com/cyberknight91/siem-homelab)(Wazuh + Elastic,一个 compose 文件)。
## 用法
```
# 1. 触发 atomic
pwsh ./scripts/run-atomic.ps1 -Id T1059.001
# 2. 将 logs 发送到 SIEM(任何 forwarder 均可)
# 3. 确认 Sigma 规则触发。在 Wazuh/Elastic 中:
# rule_id:"T1059.001_powershell_encoded"
# 4. 将 VM 恢复到 snapshot。
```
每个 atomic 文件夹都有自己的 `README.md`,其中包含完整的 kill-chain、确切的执行命令、预期的 Sysmon EventID 以及指向检测规则的指针。
## 方法论
参见 [`docs/methodology.md`](docs/methodology.md)。简短版本:
1. **选择**真实威胁组织(APT29、FIN7、LAPSUS$、Vice Spider 等)使用的一项技术。
2. **重现**最小可行变体 — 不需要不必要的 OPSEC,我们要的就是产生噪音。
3. **捕获** SIEM 接收到的每个事件(Sysmon、4688、PowerShell 4104、Security 4624 等)。
4. **抽象**检测:哪些字段对该技术是*固有的*?不要只检测工具,要检测行为。
5. 针对 24 小时的良性活动进行**基线测试**。如果在 workstation 上的 FP > 1次/天,则规则需要调优 — 请将其记录下来。
6. **发布**配对内容:atomic + 规则 + 分析。
## 路线图
- [x] 前 4 个带有 Sigma 和分析的 atomics
- [ ] ATT&CK Navigator 层(已覆盖子集的 JSON 导出)
- [ ] Elastic 规则包(可直接导入的 `.ndjson`)
- [ ] 映射到 Wazuh 自定义规则(相同的 ID,local_rules.xml)
- [ ] 紫队报告模板(管理层摘要 + 技术细节)
- [ ] 对手模拟计划:APT29 · FIN7 · LAPSUS$
- [ ] Linux 覆盖范围:`T1053.003` (cron)、`T1548.003` (sudo)、`T1222.002` (chmod)
## 参考资源
- [MITRE ATT&CK](https://attack.mitre.org/)
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) — atomic 格式的灵感来源
- [SigmaHQ](https://github.com/SigmaHQ/sigma) — 规则语法和转换工具
- [The DFIR Report](https://thedfirreport.com/) — 为技术选择提供参考的真实入侵事件
- [Sysmon Modular](https://github.com/olafhartong/sysmon-modular) — 遥测基线
作者 cyberknight91 · 属于 紫队作品集 的一部分 · MIT 许可证
标签:adversary_simulation, Cloudflare, Libemu, MITRE ATT&CK, OpenCanary, Sigma, 检测工程, 紫队