abdulrafay-123/rulescope
GitHub: abdulrafay-123/rulescope
RuleScope 是一款开源的 Suricata 规则集智能分析与调优工具,通过规则富化、资产感知相关性评分和配置导出来解决 Suricata 社区长期缺乏规则 UX 的问题。
Stars: 0 | Forks: 0
# RuleScope
**为人类打造的开源 Suricata 规则集智能工具。**
Suricata 是一款卓越的检测引擎,但几乎没有任何可用的规则用户体验(UX)。IDSTower 在商业层面填补了这一空白,但它并非开源。社区管理员(尤其是在 OPNsense 和原生 Suricata 环境下)依然在反复询问同样的问题:
- 这个 SID 实际上检测的是什么?
- 它的严重程度如何?是否已经过时?
- 它适用于*我的*网络吗?
- 我该如何为 `suricata-update` 导出一个合理的 `disable.conf`?
RuleScope 负责解答这些问题。
## 为什么会有这个项目
源自 Suricata / OPNsense 社区的讨论:
| 痛点 | Suricata | IDSTower | RuleScope |
|------|----------|----------|-----------|
| 缺乏上下文的 SID 列表 | — | 付费 UI | 免费,开源 |
| 一目了然地查看 CVE / 严重程度 / 平台 | 纯文本 | 是 | 是 |
| 具备资产感知的相关性(“适用于我的技术栈吗?”) | 否 | 否 | **是** |
| 分析师误报 (FP) 调优 → `disable.conf` / `enable.conf` | 手动 | 专有 | **是** |
| 无需 ELK 即可查看 EVE 告警 + 规则上下文 | 否 | 有限 | **是** |
| 完全开源 | 仅引擎 | 否 | **是** |
RuleScope **无意**取代 Suricata、IDSTower 集群配置或 Scirius/SELKS。它专注于目前缺失的开源层:**规则集理解、相关性分析以及可导出的调优**。
## 功能
- 将 Suricata / ET 风格的 `.rules` 文件解析为可搜索的目录
- 使用 `msg`、classtype、严重程度、CVE、MITRE 标签、平台、使用时长等信息丰富规则详情
- 根据简单的**资产画像**(OS、服务、角色)评估相关性得分
- 过滤:高严重程度、最新的漏洞利用、无关的噪音、潜在的过时规则
- 浏览关联了规则情报的 EVE JSON 告警
- 为 `suricata-update` 导出 `disable.conf` / `enable.conf`
- 本地优先:可选 SQLite,支持基于文件离线运行
- Docker Compose 一行命令启动
## 快速开始
```
# Python 3.11+
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
# source .venv/bin/activate
pip install -e ".[dev]"
rulescope serve --host 127.0.0.1 --port 8080
```
打开 http://127.0.0.1:8080
或者使用 Docker:
```
docker compose up --build
```
## CLI
```
# Catalog 摘要
rulescope analyze samples/rules/demo.rules --profile samples/profiles/homelab.json
# Relevance 报告 (JSON)
rulescope analyze samples/rules/demo.rules --profile samples/profiles/homelab.json -o report.json
# 导出禁用候选项(低 relevance / 噪声)
rulescope export-disable samples/rules/demo.rules --profile samples/profiles/homelab.json -o disable.conf
# 在更新后对比两个 ruleset
rulescope diff old.rules new.rules -o diff.json
# 将大型 ruleset 索引到 SQLite 中,然后进行查询
rulescope index samples/rules/demo.rules --profile samples/profiles/homelab.json --db rulescope.db
rulescope query --db rulescope.db --q CVE --relevance high
# 关联 EVE 告警
rulescope eve samples/eve/eve-alerts.json --rules samples/rules/demo.rules
```
## 资产画像示例
```
{
"name": "homelab",
"platforms": ["linux", "windows"],
"services": ["http", "dns", "ssh", "smb"],
"roles": ["perimeter", "internal"],
"exclude_platforms": ["ios", "android", "scada"]
}
```
## 架构
```
rulescope/
parser.py # Suricata rule lexer/parser
enrich.py # CVE, MITRE, severity, age, platforms
relevance.py # asset-profile scoring
eve.py # EVE JSON alert join
export.py # suricata-update conf export
api.py # FastAPI + static UI
cli.py # Typer CLI
```
## 社区空白(研究笔记)
请参阅 [docs/RESEARCH.md](docs/RESEARCH.md) 获取论坛引言与竞品分析。
## 许可证
MIT — 随意使用、fork,并与 Suricata 社区共同改进它。
## 贡献
欢迎提交 Issue 和 PR。优先关注的领域:
1. 通过规则正文实现更好的平台推断
2. Emerging Threats / 开放规则集的批量导入
3. 完善的 MITRE ATT&CK 映射
4. OPNsense 导出辅助工具
标签:Suricata, 威胁情报, 开发者工具, 现代安全运营, 网络安全, 规则管理, 请求拦截, 资产关联, 逆向工具, 隐私保护