rizko-d/blue-team-sigma-rules
GitHub: rizko-d/blue-team-sigma-rules
一套覆盖 MITRE ATT&CK 全战术阶段的蓝队 Sigma 检测规则集合,配套单元测试与 CI/CD 流水线,用于展示和教学检测工程方法论。
Stars: 0 | Forks: 0
# 蓝队 Sigma 规则包
## 目标
一个独立的检测工程组合,展示了:
- 贯穿整个 MITRE ATT&CK 生命周期 kill chain 的 **Sigma 规则编写**
- 用于检测逻辑验证的 **单元测试框架**
- 用于语法验证、编译和覆盖率报告的 **CI/CD pipeline** (GitHub Actions)
- **检测工程方法论**:基于威胁、经过测试、文档完备
## 项目结构
```
blue-team-sigma-rules/
├── .github/workflows/
│ └── sigma-test.yml # GitHub Actions CI pipeline
├── rules/ # 36 Sigma detection rules
│ ├── initial-access/ # 4 rules (T1204, T1547)
│ ├── execution/ # 8 rules (T1059, T1047, T1218, T1105, T1197)
│ ├── persistence/ # 5 rules (T1053, T1543, T1546, T1547)
│ ├── privilege-escalation/ # 3 rules (T1068, T1548, T1053)
│ ├── defense-evasion/ # 11 rules (T1218, T1027, T1197)
│ ├── credential-access/ # 5 rules (T1003, T1557, T1558)
│ ├── discovery/ # 2 rules (T1087, T1057)
│ ├── lateral-movement/ # 4 rules (T1047, T1021, T1550)
│ ├── collection/ # 1 rule (T1119, T1560)
│ ├── command-and-control/ # 2 rules (T1071, T1055)
│ ├── exfiltration/ # 3 rules (T1048)
│ └── impact/ # 1 rule (T1490)
├── tests/
│ └── test_rules.py # 261 unit tests (7 tests per rule)
├── scripts/
│ ├── check_mitre_coverage.py # Coverage analysis
│ ├── validate_mitre_tags.py # Tag validation
│ └── generate_coverage_report.py
├── .yamllint.yml
└── README.md
```
## MITRE ATT&CK 覆盖率热力图
| 战术 | 规则数 | 严重程度分布 | 关键技术 |
|--------|-------|-----------------|----------------|
| **Initial Access** | 4 | HIGH(3), MEDIUM(1) | T1204.002, T1547.009 |
| **Execution** | 8 | HIGH(4), MEDIUM(4) | T1059.001, T1047, T1218.003 |
| **Persistence** | 5 | HIGH(4), MEDIUM(1) | T1053.005, T1543.003, T1546.003, T1547.001 |
| **Privilege Escalation** | 3 | CRITICAL(1), HIGH(1), MEDIUM(1) | T1068, T1548.002 |
| **Defense Evasion** | 11 | HIGH(7), MEDIUM(4) | T1218(.003/.005/.010/.011), T1027 |
| **Credential Access** | 5 | CRITICAL(2), HIGH(2), MEDIUM(1) | T1003(.001/.002/.003), T1557.001, T1558.003 |
| **Discovery** | 2 | MEDIUM(1), LOW(1) | T1087.002, T1057 |
| **Lateral Movement** | 4 | HIGH(2), MEDIUM(2) | T1047, T1021.003, T1550.002 |
| **Collection** | 1 | MEDIUM(1) | T1119, T1560 |
| **Command & Control** | 2 | HIGH(1), MEDIUM(1) | T1071.004, T1055 |
| **Exfiltration** | 3 | MEDIUM(3) | T1048, T1048.001 |
| **Impact** | 1 | CRITICAL(1) | T1490 |
## 重点规则
### Critical 严重级别 (4 条规则)
| 规则 | 技术 | 描述 |
|------|-----------|-------------|
| **LSASS Memory Dump** | T1003.001 | 检测通过 comsvcs.dll、procdump、sqldumper 进行的 LSASS 凭据转储 |
| **SAM Registry Dump** | T1003.002 | 检测通过 reg.exe 导出的 SAM/SYSTEM/SECURITY 配置单元 |
| **NTDS.dit Extraction** | T1003.003 | 检测通过 VSSAdmin 或 NinjaCopy 进行的 Active Directory 数据库提取 |
| **Volume Shadow Copy Deletion** | T1490 | 检测 VSS 删除 — 勒索软件的前兆 |
### Defense Evasion 覆盖范围 (11 条规则)
覆盖最密集的战术。规则检测:
- **LOLBins**:MSHTA (T1218.005)、Regsvr32 (T1218.010)、Rundll32 (T1218.011)、CMSTP (T1218.003)、Certutil、BITSAdmin
- **混淆**:插入符号、字符串反转、环境变量扩展 (T1027)
- **AMSI Bypass**:PowerShell AMSI initfailed 检测
### C2 检测
| 规则 | 技术 | 指标 |
|------|-----------|-----------|
| **DNS Tunneling** | T1071.004 | 高熵子域名查询 |
| **Cobalt Strike Pipes** | T1055 | 默认命名管道模式 (MSSE-、postex_、beacon_) |
## CI/CD Pipeline
GitHub Actions 工作流 (`sigma-test.yml`) 会在每次 push/PR 时运行:
1. **语法验证** — 验证所有 36 条规则的 YAML 格式
2. **Schema 验证** — 检查必填字段、UUID 格式和严重性级别
3. **Sigmac 编译** — 将规则编译为 Elastic DSL JSON
4. **单元测试** — 261 个参数化测试(每条规则包含 7 个断言类)
5. **MITRE 覆盖率检查** — 确保覆盖所有 12 个战术
6. **Artifact 发布** — 编译后的规则和覆盖率报告可供下载
## 本地使用
```
# 运行所有测试
python3 -m pytest tests/ -v
# 检查 MITRE coverage
python3 scripts/check_mitre_coverage.py
# 验证 MITRE tags
python3 scripts/validate_mitre_tags.py
# 生成 coverage 报告
python3 scripts/generate_coverage_report.py > coverage-report.md
# 编译为 Elastic DSL(需要 sigmac)
pip install sigmatools
sigmac -t elastic --format json rules/initial-access/suspicious-office-child-process.yml
```
## 设计决策与方法论
### 应用的检测工程原则
1. **基于威胁**:每条规则都映射到特定的 MITRE ATT&CK 技术和真实的对手行为
2. **分层检测**:多种日志源(process_creation、security_event、dns_query)
3. **考虑误报**:每条规则都包含 `falsepositives` 和严重级别说明
4. **兼容 Sigmac**:所有规则均使用官方 `sigmac` 工具链编译
5. **测试驱动**:每条规则包含 7 个测试断言,以确保质量和一致性
### 为什么选择 Sigma?
- **供应商无关**:规则可编译为 Elastic、Splunk、Azure Sentinel、QRadar 等格式
- **社区标准**:由 SigmaHQ 和 300+ 名贡献者提供支持
- **可移植**:同一规则可跨 SIEM 平台运行
- **对 CI 友好**:YAML 格式支持自动化测试
## 局限性与教育意义
- **仅在公开数据集上进行过实验室验证**:这些规则尚未针对真实的生产环境遥测数据进行过测试
- **未进行调优**:真正的检测工程需要不断迭代以进行误报调优
- **专注 Windows**:规则仅针对 Windows(Linux/macOS/云规则属于单独范畴)
- **独立规则**:无关联逻辑、无风险评分、无 SOAR 集成
- **尚未达到生产就绪状态**:仅用于作品集展示和教育参考
## 未来路线图
- [ ] 添加 Linux/macOS 检测规则 (T1059.004, T1543.002, T1548.003)
- [ ] 添加云检测规则 (AWS CloudTrail, Azure Activity Logs)
- [ ] 添加关联规则(多事件序列)
- [ ] 添加 ATT&CK Navigator Layer JSON 导出
- [ ] 添加 Sigma 关联检测规则
- [ ] 针对真实事件量进行性能基准测试
## 参考
- [Sigma 规范](https://github.com/SigmaHQ/sigma-specification)
- [MITRE ATT&CK](https://attack.mitre.org/)
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team)
- [LOLBAS 项目](https://lolbas-project.github.io/)
- [SigmaHQ 规则仓库](https://github.com/SigmaHQ/sigma)
标签:CSV导出, DNS 反向解析, IP 地址批量处理, Modbus, PE 加载器, Sigma规则, URL发现, Web报告查看器, 安全检测, 安全运营, 扫描框架, 搜索语句(dork), 模拟器, 目标导入, 知识库安全, 网络信息收集, 逆向工具