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, 目标导入, 逆向工具