Kishi836/repo6uard
GitHub: Kishi836/repo6uard
一款结合静态分析工具与 LLM 推理的混合型代码漏洞扫描器,能够扫描 Python/JavaScript 代码及公开仓库并映射 OWASP Top 10 分类。
Stars: 0 | Forks: 0
# Repo6uard
混合型漏洞扫描器:真实的静态分析加上 LLM 推理过程,并通过 OSV 进行依赖项检查。粘贴代码或指向公开的 GitHub 仓库;它将返回按严重程度排序并映射到 OWASP Top 10 类别的扫描结果。
为 PES University 的 CIE Ignite 第二阶段而构建(6 人团队)。
## 工作原理
**粘贴代码扫描** (`POST /scan`)
1. **静态扫描**:使用 [Bandit](https://bandit.readthedocs.io) 检查 Python,使用 [njsscan](https://github.com/ajinabraham/njsscan) 检查 JavaScript。提供真实的工具输出,并进行解析和标准化。
2. **LLM 扫描**:Groq (`llama-3.3-70b-versatile`) 会结合静态扫描的上下文审查相同的代码,并被要求仅报告工具遗漏的问题。这可以捕捉逻辑层面的问题(静态规则未覆盖的授权缺陷、不安全的模式),而不会重复静态扫描的结果。
3. 扫描结果将被合并,标记为 `static` 或 `ai`,并映射到 OWASP 类别。
**仓库扫描** (`POST /scan-repo`)
1. 浅克隆一个公开的 GitHub 仓库,收集 `.py` 或 `.js` 源代码(上限为 12k 字符)。
2. 对收集到的代码进行 LLM 扫描。
3. **依赖项扫描**:解析 `requirements.txt` / `package.json` 并查询 [OSV.dev](https://osv.dev) 数据库以获取已知的 CVE,其严重程度根据 CVSS 分数得出。
React 前端会将合并后的扫描结果呈现为排序报告:包含严重程度、OWASP 类别、违规代码行以及针对每个发现的具体修复建议。
## 技术栈
- **后端**:Flask + Bandit + njsscan + OSV API + Groq SDK (`backend/`)
- **前端**:React 19 + Vite (`frontend/`)
## 运行方式
后端:
```
cd backend
pip install -r requirements.txt
cp .env.example .env # add your key from console.groq.com
python server.py # http://localhost:5000
```
前端:
```
cd frontend
npm install
npm run dev # http://localhost:5173
```
## 状态
这是来自 Ignite 项目的原型。已知限制:仓库扫描收集的源代码上限为 12k 字符,OSV 扫描仅检查前 25 个依赖项,且 LLM 的扫描结果取决于模型输出的质量。UI 中的示例代码片段包含故意编写的存在漏洞的代码(硬编码的虚假密钥、SQL 注入、`shell=True`),用作演示输入。
标签:DLL 劫持, Flask, React, Syscalls, 加密, 大语言模型, 漏洞扫描器, 自定义脚本, 逆向工具, 静态应用安全测试