duathron/sigmaforge
GitHub: duathron/sigmaforge
SigmaForge 是一个 Sigma 检测规则回测框架,通过真实攻击与良性日志语料库量化每条规则的 recall 和误报率,并以诚实度校验机制避免数据不足时产生误导性结论。
Stars: 0 | Forks: 0
# sigmaforge
**诚实的 Sigma 规则回测框架。** 针对真实日志语料库衡量检测规则,并为每条规则报告两项数据 —— **recall**(是否捕获了其 ATT&CK 子技术的攻击?)以及 **precision / 误报**(是否会在正常活动时触发?)—— 配备诚实度校验机制,当数据不足以支撑得出数值时,会返回 `unmeasured` 而不是虚假的 `0` 或理所当然的 `1.0`。
[](https://github.com/duathron/sigmaforge/actions/workflows/ci.yml)


## 解决的问题
每个 SOC 都会部署数十到数百条检测规则,但很少对它们进行衡量。
sigmaforge 用可复现的证据回答了两个问题:
- **哪些规则是噪音制造机?**(对合法活动产生高误报)
- **哪些规则什么也抓不到?**(对其技术的真实攻击 recall 为零)
来自实际运行的一个发现示例:*Suspicious Windows Service Tampering* 在一个良性语料库中产生了 66 次误报 —— 每一个都是 Ninite / TeamViewer 安装程序,而不是攻击。
## 实际工作原理
```
flowchart LR
R[SigmaHQ rules] -->|partition high/critical| C[compile to one Zircolite ruleset]
C --> E[Zircolite engine]
A[(attack corpus
sub-technique-labeled)] --> E B[(benign corpus
Nextron + OpTC)] --> E E --> S[score: recall per technique
+ precision/FP label-aware] S --> G[honesty gates
floor · positive-control · no-self-review] G --> O[report.md + manifest] ``` 实际的 pipeline 是**脚本驱动**的(`scripts/run6_backtest.py` 是目前的端到端路径): ``` uv run python scripts/compile_loaded_ruleset.py # rules -> one Zircolite ruleset uv run python scripts/run6_backtest.py # backtest -> reports/run6.md ``` ## 状态 | 领域 | 状态 | |------|-------| | Recall(按子技术,无同级稀释) | **工作中** — 338/609 条规则可测量,70 条触发 (run5) | | Precision / 误报(标签感知,门控) | **工作中** — 在当前的良性语料库上 7/609 条可测量 (run6) | | 诚实度校验机制(基准线、阳性对照、无自我审查) | **工作中** | | 可复现清单(run_hash、语料库 SHA、出处) | **工作中** | | 单命令 CLI(`sigmaforge backtest`) | **开发中** — 弱于脚本 | | 自动生成的良性语料库 | **套件就绪**(`scripts/selfgen/`),需要在 Windows VM 中运行 | ## 安装 ``` pip install sigmaforge ``` 安装测试框架包和 `sigmaforge` CLI。检测引擎 ([Zircolite](https://github.com/wagga40/Zircolite)) 和日志语料库需要单独 获取(见上文)。 ## 使用的语料库(均已验证,为组合安全的许可证) | 语料库 | 作用 | 许可证 | |--------|------|---------| | [splunk/attack_data](https://github.com/splunk/attack_data) | recall(带子技术标签的攻击) | Apache-2.0 | | [DARPA OpTC](https://github.com/FiveDirections/OpTC-data) | precision(真实企业正常周) | 公共领域 | | [NextronSystems/evtx-baseline](https://github.com/NextronSystems/evtx-baseline) | precision(正常软件基准) | Apache-2.0 | | 自动生成(`scripts/selfgen/`) | precision(针对性的管理员/LOLBin 噪音) | 你自己的实验室 | ## 开发 基于 [Shipwright](https://github.com/duathron/shipwright) 开发框架构建。 ``` uv sync --dev uv run pytest # 108 tests uv run ruff check . ``` ## 许可证 MIT © Christian Huhn。语料库数据保留其上游许可证(见上表)。
sub-technique-labeled)] --> E B[(benign corpus
Nextron + OpTC)] --> E E --> S[score: recall per technique
+ precision/FP label-aware] S --> G[honesty gates
floor · positive-control · no-self-review] G --> O[report.md + manifest] ``` 实际的 pipeline 是**脚本驱动**的(`scripts/run6_backtest.py` 是目前的端到端路径): ``` uv run python scripts/compile_loaded_ruleset.py # rules -> one Zircolite ruleset uv run python scripts/run6_backtest.py # backtest -> reports/run6.md ``` ## 状态 | 领域 | 状态 | |------|-------| | Recall(按子技术,无同级稀释) | **工作中** — 338/609 条规则可测量,70 条触发 (run5) | | Precision / 误报(标签感知,门控) | **工作中** — 在当前的良性语料库上 7/609 条可测量 (run6) | | 诚实度校验机制(基准线、阳性对照、无自我审查) | **工作中** | | 可复现清单(run_hash、语料库 SHA、出处) | **工作中** | | 单命令 CLI(`sigmaforge backtest`) | **开发中** — 弱于脚本 | | 自动生成的良性语料库 | **套件就绪**(`scripts/selfgen/`),需要在 Windows VM 中运行 | ## 安装 ``` pip install sigmaforge ``` 安装测试框架包和 `sigmaforge` CLI。检测引擎 ([Zircolite](https://github.com/wagga40/Zircolite)) 和日志语料库需要单独 获取(见上文)。 ## 使用的语料库(均已验证,为组合安全的许可证) | 语料库 | 作用 | 许可证 | |--------|------|---------| | [splunk/attack_data](https://github.com/splunk/attack_data) | recall(带子技术标签的攻击) | Apache-2.0 | | [DARPA OpTC](https://github.com/FiveDirections/OpTC-data) | precision(真实企业正常周) | 公共领域 | | [NextronSystems/evtx-baseline](https://github.com/NextronSystems/evtx-baseline) | precision(正常软件基准) | Apache-2.0 | | 自动生成(`scripts/selfgen/`) | precision(针对性的管理员/LOLBin 噪音) | 你自己的实验室 | ## 开发 基于 [Shipwright](https://github.com/duathron/shipwright) 开发框架构建。 ``` uv sync --dev uv run pytest # 108 tests uv run ruff check . ``` ## 许可证 MIT © Christian Huhn。语料库数据保留其上游许可证(见上表)。
标签:PFX证书, Sigma规则, 安全规则引擎, 安全运营, 扫描框架, 攻击检测, 目标导入, 规则回测, 误报测试, 逆向工具