Kjean13/rulescope
GitHub: Kjean13/rulescope
RuleScope 是一个针对 Sigma 检测目录的治理引擎,提供语义去重、弱点评分及 CI 质量门控功能,用于确保检测规则库的整洁性与有效性。
Stars: 0 | Forks: 0
# RuleScope
[](https://github.com/Kjean13/rulescope/actions/workflows/ci.yml)
[](https://pypi.org/project/rulescope/)
[](LICENSE)
[](https://github.com/Kjean13/rulescope/actions)
**RuleScope** 是一个用于 Sigma 和检测目录的治理 CLI。
它的构建旨在回答合并或发布前的一个实际问题:**该目录是否依然干净、具有选择性、文档齐全且操作安全?**
此次 **v1.0.0** 版本专注于现实世界的蓝队治理:语义重复检测、意图感知的弱点评分、经验生命周期校准、确定性输出以及 CI 就绪的打包。

## 定位
RuleScope **不是** Sigma 转换器、SIEM 或检测执行引擎。
它是围绕检测内容构建的质量控制层:
- 审计目录健康状况
- 解释弱规则
- 比较基线与候选包
- 在 CI 中阻断发布
- 导出治理报告和 ATT&CK 覆盖视图
这使其对**检测工程**、**内容审查**、**目录维护**和**发布治理**非常有用。
## 功能
- **扫描**规则包,并从元数据、噪音、结构、ATT&CK 映射、可维护性、弱点和文档等方面对质量进行评分
- 使用结构化事件表面相似性而非词法 YAML 相似性来**检测语义重复**
- **解释**规则为何薄弱,并提供优先的修复指导
- **比较**基线与候选包,并发现语义回归
- 以 HTML、Markdown、JSON 或 SARIF 格式**报告**
- 使用确定性的质量预算**阻断** pull request 和发布
- **显示维护者热点**,以便在目录层面优先处理技术债务
- **导出 ATT&CK Navigator 层**以进行覆盖可视化
- **对大型目录进行基准测试**,并保持吞吐量可衡量
- 在编辑期间**监视**规则或文件夹,并在更改时重新扫描
## 现实世界用例
### 1. Sigma 仓库的合并前质量门控
团队在发布前更新了检测包。RuleScope 将候选包与基线进行比较,标记语义泛化、选择器丢失、ATT&CK 覆盖漂移和嘈杂逻辑,如果质量下降则阻止合并。
### 2. 数月增长后的目录清理
内容仓库已增长到数百或数千条规则。RuleScope 发现重复集群、重叠、弱元数据以及最弱的规则,以便维护者无需手动阅读所有内容即可减少债务。
### 3. 针对小型 SOC 或培训实验室的检测审查
分析师希望了解规则为何脆弱。RuleScope 解释最弱的规则并提供优先建议,建议下一步更改以使检测更具选择性和生产就绪性。
## 核心命令
```
rulescope scan ./rules --top-issues 10
rulescope explain ./rules --all --max-rules 5
rulescope compare ./baseline ./candidate --fail-on-regression
rulescope report ./rules -o rulescope_report.html
rulescope maintainers ./rules
rulescope navigator ./rules -o coverage_layer.json
rulescope ci ./rules --min-score 70
rulescope benchmark ./rules -o benchmark.md
```

## 快速开始
```
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
rulescope scan ./examples/rules --top-issues 5
```
用于开发:
```
pip install -e "[dev]"
python -m pytest -q
ruff check rulescope tests
python -m build
```
## HTML 报告
```
rulescope report ./rules -o report.html
```

## GitHub Action
```
- name: RuleScope quality gate
uses: Kjean13/rulescope@v1
with:
target: rules/
min-score: "70"
fail-on-regression: "true"
format: sarif
output: rulescope-report.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: rulescope-report.sarif
```
完整配置参考:[docs/GITHUB_ACTIONS_PR_GATE.md](docs/GITHUB_ACTIONS_PR_GATE.md)。
## 语言支持
RuleScope 的 CLI 输出和报告支持**英语和法语**。
```
rulescope --lang fr scan ./rules
rulescope explain ./rules --lang fr
rulescope report ./rules --lang fr -o report.html
```
## 演示数据集
- `examples/rules/` — 最小的快速入门包
- `datasets/medium_realistic/` — 用于扫描、报告和基准测试演示的更丰富的种子包
- `datasets/regression_demo/` — 用于比较和 CI 测试的基线与候选固件
## 支持矩阵
在 Python 3.10 至 3.13 上测试。
## 许可证
MIT
标签:ATT&CK覆盖, Python, SARIF, SIEM规则, 安全运营, 开源框架, 扫描框架, 持续集成, 无后门, 治理, 漏洞评分, 规则管理, 规则评估, 语义去重, 质量门禁, 逆向工具