smudgeface/SASTBot
GitHub: smudgeface/SASTBot
结合 LLM 智能分类的 SAST/SCA 静态安全分析平台,帮助团队扫描代码仓库漏洞、生成 SBOM 并满足 CRA 合规要求。
Stars: 0 | Forks: 0
# SASTBot
符合欧盟网络弹性法案 (CRA) 的 LLM 增强 SAST/SCA 工具。
SASTBot 使用以下方式扫描 git 仓库以发现安全问题:
- **SCA**(软件组成分析)—— 依赖项提取、CycloneDX 1.7 SBOM 生成、通过 OSV.dev 进行 CVE/许可证检查
- **SAST**(静态应用安全测试)—— 使用 [Opengrep](https://opengrep.dev/) 并结合 LLM 增强分类,以抑制误报并优先处理真实风险
- **缺陷跟踪** —— 持久化缺陷数据库,包含在重新扫描后依然有效的“非缺陷”抑制规则;可选的 Jira 链接跳转功能
## 架构
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────▶│ Backend │────▶│ Postgres │
│ React/Vite │ │ Fastify │ │ │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ Redis │────▶│ Workers │
│ (BullMQ) │ │ Node/TS │
└─────────────┘ └──────┬──────┘
│
▼
┌─────────────┐
│ LiteLLM │
│ gateway │
└─────────────┘
```
## 快速开始(本地)
前置条件:Docker Desktop(或任何支持 Compose v2 的引擎)。
```
git clone https://github.com/smudgeface/SASTBot.git
cd SASTBot
cp .env.example .env # generate a fresh MASTER_KEY (see .env.example)
docker compose -f docker/compose/docker-compose.yml up --build
```
首次启动时,后端会初始化默认组织并在容器日志中打印引导管理员密码。请访问 ,使用 `admin@sastbot.local` 和打印的密码登录,然后通过管理 UI 进行修改。
| 服务 | URL |
|---------|-----|
| 前端 | |
| 后端 API | |
| OpenAPI 文档 | |
| OpenAPI 架构 | |
## 仓库布局
```
SASTBot/
├── backend/ # Node.js + TypeScript + Fastify + Prisma + BullMQ
├── frontend/ # React + Vite + TypeScript
├── docker/
│ └── compose/ # docker-compose.yml for dev & deploy
├── docs/
│ ├── PROGRESS.md # milestone log
│ └── OPERATIONS.md # ops/runbook (M2+)
├── CLAUDE.md # contributor + AI-agent guide
└── README.md
```
## 配置
所有配置均通过环境变量进行(参见 `.env.example`)。管理 UI 将运行时设置(Jira、LLM 网关等)持久化保存在 Postgres 的 `app_settings` 表中;凭据在静态存储时使用 `MASTER_KEY` 进行 AES-256-GCM 加密。
## 开发
有关开发者和 AI 代理的详细指导,请参见 [`CLAUDE.md`](CLAUDE.md),包括如何运行测试、重新生成前端 OpenAPI 类型、添加 Prisma 迁移以及初始化本地管理员。
## 里程碑
进度在 [`docs/PROGRESS.md`](docs/PROGRESS.md) 中跟踪。大致路线图如下:
1. **M1 — 骨架** — 认证、管理 UI、仓库 CRUD、加密凭据(可运行骨架,尚无扫描功能)
2. **M2 — CI + BullMQ + 部署** — GitHub Actions、可部署技术栈、扫描管道连接
3. **M3 — SCA 垂直切片** — cdxgen + OSV.dev + 发现结果 UI
4. **M4 — SAST 垂直切片** — Opengrep + LLM 分类 + 持久化抑制规则
5. **M5 — Jira + 缺陷浏览器** — 工单链接跳转 + 缓存状态、受 Aikido 启发的过滤器
6. **M6 — API 加固 + CRA 导出** — API 密钥、审计日志、CRA 捆绑导出
7. **M7 — 调度 + 运维完善**
## 安全
SASTBot 负责处理敏感凭据(Git 令牌、LLM API 密钥、Jira 令牌)。核心原则:
- 所有凭据在 Postgres 中均使用 AES-256-GCM 加密;主密钥仅存在于 `MASTER_KEY` 环境变量中。
- 如果 `MASTER_KEY` 缺失、长度错误或无法解密金丝雀行(canary row),后端将拒绝启动。
- 密码使用 bcrypt 哈希处理。会话位于服务器端(数据库支持),因此注销/撤销操作可以正常生效。
- **切勿提交真实的 `.env` 文件。** 已提交的 `.env.example` 用于记录相关变量。
发现安全问题?请在 GitHub 仓库上开启一份私下安全报告。
## 许可证
待定(可能是 Apache 2.0 —— 公开发布前需确认)。
标签:BullMQ, Claude, CRA合规, CVE检测, CycloneDX, DevSecOps, DLL 劫持, Docker, Fastify, Git代码扫描, Jira集成, LiteLLM, MITM代理, Opengrep, PostgreSQL, React, Redis, SAST, SBOM, Syscalls, TypeScript, Vite, 上游代理, 代码安全审计, 大语言模型, 安全插件, 安全防御评估, 开源许可证审查, 搜索引擎查询, 欧盟网络弹性法案, 测试用例, 盲注攻击, 硬件无关, 缺陷追踪, 网络安全合规, 自动化攻击, 误报过滤, 请求拦截, 静态安全分析