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), 模拟器, 目标导入, 知识库安全, 网络信息收集, 逆向工具