koushikchowdary6/sigmaforge
GitHub: koushikchowdary6/sigmaforge
一个 AI 辅助的安全检测工程平台,兼具检测规则管理能力与研究 LLM 生成 Sigma 规则被对抗性破坏的实验功能。
Stars: 1 | Forks: 0
# SigmaForge
[](https://github.com/koushikchowdary6/sigmaforge/actions/workflows/ci.yml)
[](https://github.com/koushikchowdary6/sigmaforge/releases/tag/v0.1.0)
[](LICENSE)
**一个 AI 辅助的检测工程平台,也是一个研究问题的试验台:** 对抗性上下文操纵能否隐蔽地破坏 LLM 生成的 SIEM 检测规则,以及人工审查能否发现它?
本仓库正在积极增量开发中。以下状态准确反映了当前的提交情况 —— 并非预期目标。
## 实际已构建的内容 (Milestone E0)
- **认证 (Auth)**:登录、带有重用检测的 refresh-token 轮换、登出、全部登出、RBAC(5 种角色:admin、detection_lead、detection_engineer、analyst、researcher)
- **API**:FastAPI 服务,包含结构化日志、安全标头、RFC 7807 错误响应、`/healthz` 和 `/readyz`
- **Worker**:连接到 Redis 的 Celery 应用,包含一个实际任务 (`ping`) 以验证 broker 的往返过程
- **前端**:React + TypeScript 登录流程,与真实认证 API 对接
- **数据库**:生产环境的完整初始迁移 schema(19 个表,`docs/DATABASE_SCHEMA.md` §1–2.19),以及 RBAC 种子数据
- **文档**:PRD、架构、威胁模型、数据库 schema、API 规范、研究设计、相关工作文献综述、路线图 —— 详见 `docs/`
**尚未构建**:检测规则编写/验证、MITRE 映射、SIEM 集成、AI 助手以及研究子系统(攻击语料库、差异化验证器、实验测试组件)。这些属于 E1 及后续阶段 —— 详见 `docs/ROADMAP.md`。
## 验证状态(实际情况,非预期目标)
这是在没有 Docker daemon 或本地 Postgres 服务器的沙盒环境中构建的。以下是确切已经验证和未验证的内容,以及验证方式:
| 检查项 | 状态 | 方式 |
|---|---|---|
| 后端单元测试(认证服务逻辑) | ✅ 通过 | `pytest`,内存模拟仓库,11 项测试 |
| 后端 API 测试(完整 HTTP 请求/响应周期) | ✅ 通过 | `pytest` + httpx ASGI transport,依赖注入覆盖,9 项测试 |
| 后端 lint | ✅ 无异常 | `ruff check` |
| 后端类型检查 | ✅ 无异常 | 相当于 `mypy --strict` 的配置,22 个源文件 |
| 迁移 SQL 语法 | ✅ 有效 | 所有 88 条 DDL 语句均被 `pglast`(真正的 Postgres 语法,而非猜测)成功解析 |
| 迁移版本图 | ✅ 有效 | `alembic history` 能正确解析版本链 |
| 迁移在实时 Postgres 上执行 | ⚠️ 此处未验证 | 此沙盒中没有 Postgres 服务器(无 root 权限进行安装)。**请自行运行 `docker compose up` 和 `alembic upgrade head` 进行确认 —— 见下文。** |
| Worker 测试 | ✅ 通过 | `pytest`,2 项测试,包含真实的 Celery eager-mode 任务执行 |
| 前端类型检查 | ✅ 无异常 | `tsc --noEmit` |
| 前端 lint | ✅ 无异常 | `eslint` |
| 前端组件测试 | ✅ 通过 | `vitest` + Testing Library,2 项测试,覆盖成功和错误路径 |
| 前端生产构建 | ✅ 成功 | `vite build` |
| Docker Compose YAML | ✅ 有效 | 已通过 PyYAML 解析 |
| 每个 Dockerfile 的构建上下文 + COPY 路径 | ✅ 已验证 | 在真实文件系统上以程序化方式解析,而非肉眼检查 |
| Dockerfile 最佳实践 lint (hadolint) | ⚠️ 未运行 | 无法从此沙盒中下载 hadolint 的发布版本 |
| `docker compose up` 端到端测试,所有服务健康 | ⚠️ 此处未验证 | 此沙盒中没有 Docker daemon。**这是你需要自行确认的唯一一项 —— 见下文。** CI (`.github/workflows/ci.yml`,`docker-integration` 任务) 会在每个 PR 上运行此项。 |
## 自行运行
```
git clone
cd sigmaforge
cp .env.example .env
```
生成真实的 JWT 密钥对(用于签署访问令牌):
```
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out /tmp/jwt_private.pem
openssl rsa -pubout -in /tmp/jwt_private.pem -out /tmp/jwt_public.pem
```
将这两个文件的内容粘贴到 `.env` 的 `JWT_PRIVATE_KEY` / `JWT_PUBLIC_KEY` 中(保留 `\n` 换行符,或使用单行转义形式 —— 无论哪种方式,pydantic-settings 都会将其作为普通字符串读取)。
```
cd infra
docker compose up --build
```
接着确认:
```
curl http://localhost:8000/healthz # {"status": "ok"}
curl http://localhost:8000/readyz # {"status": "ready", "checks": {"database": true}}
```
应用迁移(在另一个终端中,一旦 `api` 容器健康即可执行):
```
docker compose exec api alembic upgrade head
```
前端地址:http://localhost:5173
## 本地开发(不使用 Docker)
```
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
pytest tests/ -v
ruff check app/
mypy app/
cd ../worker
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
pytest tests/ -v
cd ../frontend
npm install
npm run typecheck
npm run lint
npm test
npm run build
```
## 文档
| 文档 | 涵盖内容 |
|---|---|
| [`docs/PRD.md`](docs/PRD.md) | 产品需求、用户画像、功能性/非功能性需求 |
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 系统设计、组件分解、数据流、技术论证 |
| [`docs/DATABASE_SCHEMA.md`](docs/DATABASE_SCHEMA.md) | 完整的 ERD 和 DDL |
| [`docs/API_SPECIFICATION.md`](docs/API_SPECIFICATION.md) | 每个 endpoint、认证模型、授权矩阵 |
| [`docs/THREAT_MODEL.md`](docs/THREAT_MODEL.md) | STRIDE 分析、OWASP Top 10 映射、双重用途/负责任披露处理 |
| [`docs/RESEARCH_DESIGN.md`](docs/RESEARCH_DESIGN.md) | 预注册假设、指标、统计数据以及破坏性评估研究的局限性 |
| [`docs/RELATED_WORK.md`](docs/RELATED_WORK.md) | 文献综述和创新点定位 |
| [`docs/ROADMAP.md`](docs/ROADMAP.md) | 双轨制(工程 + 研究)里程碑计划 |
| [`docs/REPO_STRUCTURE.md`](docs/REPO_STRUCTURE.md) | 文件夹布局、CI/CD pipeline、各子系统文档规范 |
## 许可证
MIT —— 详见 [`LICENSE`](LICENSE)。
标签:AI辅助开发, AV绕过, FastAPI, React, SIEM规则, Syscalls, Web全栈, 搜索引擎查询, 测试用例, 请求拦截, 逆向工具