stariik/SentinelForge
GitHub: stariik/SentinelForge
SentinelForge 是一个安全优先的 Sigma 检测规则管理平台,解决团队在规则构建、验证、版本追踪和审计流程中缺乏统一工作区的问题。
Stars: 0 | Forks: 0
# SentinelForge
**一个安全优先的工作区,用于构建、审查和管理 Sigma 检测规则。**
[](https://github.com/stariik/SentinelForge/actions/workflows/ci.yml)
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](LICENSE)
SentinelForge 将一个包含检测规则的文件夹转化为一个可搜索、带版本控制且可审计的规则库。分析师可以安全地导入 Sigma YAML,使用 pySigma 对其进行验证,检查可解释的质量评分,将规则映射到 MITRE ATT&CK,审查变更,并通过强类型的 REST API 再次导出该规则库。
## 目前已实现的功能
- 安全的 Sigma 解析,具备输入大小和嵌套层级限制,使用 `yaml.safe_load` 以及 pySigma 的核心验证器。
- 跨元数据、检测逻辑、ATT&CK 映射、误报指导、参考链接、测试、状态和描述性内容的可解释规则质量评分。
- 规则 CRUD、复制、可逆归档以及仅限管理员的永久删除。
- 不可变的版本历史,支持统一差异对比 (unified diff) 和“作为新版本恢复”的语义。
- 针对状态、严重程度、日志来源、作者、标签、ATT&CK 技术、已归档规则和未测试规则的搜索、分页和过滤功能。
- 支持单文件 YAML 和有大小限制的 ZIP 导入,以及单次和批量导出。
- 内置 MITRE ATT&CK Enterprise v19.1 快照,包含 15 个战术 (tactics) 和 697 个技术 (techniques)。
- JWT access token 和轮换的 refresh token,bcrypt 密码哈希,账户锁定,登录限流,分析师/管理员 RBAC,以及审计日志。
- PostgreSQL 原生持久化,并提供用于本地开发和封闭测试的 SQLite 可移植层。
## 架构
```
flowchart LR
A[Analyst or API client] -->|REST + bearer token| F[FastAPI]
subgraph Backend
F --> AUTH[Authentication and RBAC]
F --> RULES[Rule library and versions]
RULES --> SIGMA[Sigma validation and scoring]
RULES --> ATTACK[ATT&CK mapping]
AUTH --> AUDIT[Audit log]
RULES --> AUDIT
end
AUTH --> DB[(PostgreSQL / SQLite)]
RULES --> DB
ATTACK --> CACHE[Versioned ATT&CK cache]
AUDIT --> DB
```
该服务在设计上是同步的:规则解析和有界的评估任务是偏向 CPU 密集型的,而 FastAPI 会在其线程池中运行同步 endpoint。SQLAlchemy 模型在 PostgreSQL 上使用原生的 UUID/JSONB 类型,并在 SQLite 上使用兼容的 UUID/JSON 类型。
如需了解更详细的设计原理、数据流和计划中的检测引擎,请阅读 [ARCHITECTURE.md](ARCHITECTURE.md)。
## 截图
### 交互式 API 资源管理器

### 生成的 API 参考文档

## 快速开始
环境要求:
- Python 3.12 或更高版本
- Git
- 用于类生产环境的 PostgreSQL;本地使用 SQLite 即可
在全新克隆的仓库中,进入 API 包并创建一个虚拟环境:
```
git clone https://github.com/stariik/SentinelForge.git
cd SentinelForge/apps/api
python -m venv .venv
```
在 Windows PowerShell 上使用 `.venv\Scripts\Activate.ps1` 或在 macOS/Linux 上使用 `source .venv/bin/activate` 激活它,然后安装该项目:
```
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
```
将示例配置复制到 `apps/api/.env`:
```
# Windows PowerShell
Copy-Item ..\..\.env.example .env
```
```
# macOS/Linux
cp ../../.env.example .env
```
如果希望使用零依赖的本地数据库,请修改 `.env` 中的这一行:
```
DATABASE_URL=sqlite:///./sentinelforge.db
```
应用数据库 schema 并启动 API:
```
python -m alembic upgrade head
python -m uvicorn sentinelforge.main:app --reload
```
打开 标签:AV绕过, FastAPI, PostgreSQL, Sigma规则管理, 安全规则引擎, 安全运营, 扫描框架, 测试用例, 逆向工具