mbart75/detection-factory
GitHub: mbart75/detection-factory
一个 Detection-as-Code 管线项目,在 CI 中对 Sigma 检测规则进行 schema 验证、KQL 转换和真实攻击日志回放验证,确保每条规则可重复触发且映射到 MITRE ATT&CK。
Stars: 0 | Forks: 0
# detection-factory
Detection-as-Code pipeline:Sigma 规则,在 CI 中针对真实攻击日志进行验证,
转换为 Microsoft Sentinel KQL,并映射到 MITRE ATT&CK。
## 为什么
任何人都可以编写检测规则。困难的问题是:**你怎么知道它会触发?**
这个仓库通过工程规范来回答这个问题:每一条规则都经过 (1) schema 验证,
(2) 转换为目标后端,(3) 针对真实的 EVTX 攻击样本进行重放并要求成功触发,
(4) 安全扫描——所有这些都在 CI 中,在每次提交时完成。
## 架构
```
flowchart LR
R[rules/ Sigma YAML] --> S1[Stage 1: sigma check schema and lint]
S1 --> S2[Stage 2: pySigma to Sentinel KQL dist/kql/]
M[tests/manifest.yml rule to sample mapping] --> S3
E[EVTX-ATTACK-SAMPLES pinned commit] --> S3[Stage 3: Zircolite replay - rule MUST fire]
S2 --> S3
S3 --> S4[Stage 4: bandit and pip-audit]
R --> L[scripts/build_layer.py] --> N[ATT&CK Navigator layer docs/coverage/]
```
## 覆盖范围
涵盖 7 种 ATT&CK 战术的 9 条规则。在
[ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) 中加载 `docs/coverage/layer.json` 以查看详情。
| 规则 | 技术 | 战术 |
|---|---|---|
| 通过 comsvcs MiniDump 进行 LSASS 内存转储 | T1003.001 | 凭证访问 |
| 异常主机加载 PowerShell 引擎 | T1059.001 | 执行 |
| 通过 schtasks 创建计划任务 | T1053.005 | 持久化 / 执行 |
| 修改注册表 Run 键 | T1547.001 | 持久化 |
| 通过 eventvwr mscfile 劫持绕过 UAC | T1548.002 | 权限提升 |
| Rundll32 代理执行 | T1218.011 | 防御规避 |
| Netsh 端口代理持久化 | T1090 | 命令与控制 |
| 安全事件日志被清除 (1102) | T1070.001 | 防御规避 |
| 由 WmiPrvSE 生成的 Shell | T1047 | 执行 / 横向移动 |
## 测试数据 - 诚实的说明
v1 规则是根据来自
[sbousseaden/EVTX-ATTACK-SAMPLES](https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES) 的社区参考 EVTX 进行验证的,
固定在 commit `4ceed2f`,并在测试时下载(绝不会在此处重新分发)。
v2 将通过在家庭实验室中执行匹配的
[Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) 测试来重新生成这些日志。
本仓库中的任何位置都不存在真实的客户或雇主数据。
## 快速开始
```
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
bash scripts/setup_zircolite.sh
python3 tests/runner/fetch_samples.py
python3 tests/runner/run_tests.py # every rule must fire
python3 scripts/convert_rules.py # KQL output in dist/kql/
python3 scripts/build_layer.py # ATT&CK Navigator layer
```
## 仓库布局
```
rules/ Sigma rules, one directory per ATT&CK tactic
config/ validation config + Sentinel field-mapping pipelines
tests/ manifest (rule -> sample -> expected hits) + Zircolite runner
scripts/ KQL conversion + ATT&CK layer generation
docs/ coverage layer, design decisions, plans
.github/ CI pipeline
```
## 设计决策与权衡
请参阅 [docs/decisions.md](docs/decisions.md)。
标签:Detection-as-Code, KQL, Microsoft Sentinel, OpenCanary, PB级数据处理, Sigma规则, 安全运维, 持续集成CI, 目标导入, 逆向工具