FYP-LLMShield/FYP-LLMShield
GitHub: FYP-LLMShield/FYP-LLMShield
一个整合了提示注入测试、模型投毒分析、RAG向量安全检测和代码漏洞扫描的统一AI安全测试平台。
Stars: 0 | Forks: 0
# FYP-LLMShield
一个统一威胁检测平台,用于缓解 LLM 和 AI 系统中的提示注入、模型投毒和 RAG 嵌入风险。
**AI 安全测试平台 — 生产就绪**
[](https://opensource.org/licenses/MIT)
[](https://reactjs.org/)
[](https://fastapi.tiangolo.com/)
[](https://www.typescriptlang.org/)
[](https://www.python.org/)
## 概述
LLMShield 帮助安全团队和开发人员测试并加固 AI 应用程序。它检测提示注入和越狱,分析向量存储和文档嵌入是否存在投毒,扫描代码中的机密信息和 C/C++ 漏洞,并支持数据集/模型投毒评估——所有这些都可以在一个支持可选 MFA 和邮箱验证的统一仪表板中完成。
### 关键特性
- **提示注入测试** — 多提供商(OpenAI, Anthropic, Google, Ollama);探测类别、文档上传、PDF 报告
- **模型投毒** — 安全模型与投毒模型对比(GGUF:Llama, Qwen, TinyLlama)
- **向量安全** — 文档嵌入检查、向量存储异常检测、检索攻击模拟(单一仪表板包含三个选项卡)
- **代码安全扫描** — 200+ 种机密信息模式、C/C++ 漏洞检查、文件上传和 GitHub 仓库扫描、CWE 映射
- **数据集投毒** — 分析文本/文件数据集及 Hugging Face JSONL 的投毒指标
- **身份验证** — JWT, MFA (TOTP), 恢复代码, Google OAuth, 邮箱验证, 密码重置
- **仪表板** — 安全指标、扫描历史、RAG 聊天机器人、个人资料和设置
## 前置条件
- **Node.js** 16+
- **Python** 3.12 或 3.13(3.14 与某些软件包存在兼容性问题)
- **MongoDB**(本地或 Atlas)
- **Git**
## 快速开始
### 1. 克隆仓库
```
git clone https://github.com/yourusername/FYP-LLMShield.git
cd FYP-LLMShield
```
### 2. 后端设置
```
cd backend
# 创建虚拟环境(使用 Python 3.12 或 3.13)
python -m venv venv
# Windows:venv\Scripts\activate
# macOS/Linux:source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 复制并配置环境
cp .env.example .env
# 编辑 .env 并填入你的 MongoDB URL 和 API keys
```
### 3. 前端设置
```
cd frontend
npm install
cp .env.example .env
# 设置 REACT_APP_API_BASE_URL=http://localhost:8000
```
### 4. 运行应用程序
**终端 1 – 后端:**
```
cd backend
python run.py
```
API:`http://localhost:8000`
**终端 2 – 前端:**
```
cd frontend
npm start
```
应用:`http://localhost:3000`
## 环境配置
### 后端 (.env)
```
MONGODB_URL=mongodb://localhost:27017
DATABASE_NAME=llmshield_db
SECRET_KEY=your-secret-key-change-in-production
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# 可选 – 针对 LLM providers
OPENAI_API_KEY=your-openai-key
ANTHROPIC_API_KEY=your-anthropic-key
GROQ_API_KEY=your-groq-key
# 可选 – 针对 Google OAuth
GOOGLE_CLIENT_ID=your-google-client-id
```
### 前端 (.env)
```
REACT_APP_API_BASE_URL=http://localhost:8000
REACT_APP_API_URL=http://localhost:8000/api/v1
REACT_APP_ENVIRONMENT=development
```
## 使用说明
### 仪表板
登录后,仪表板将显示安全指标、快捷操作和最近的扫描记录。
### 安全扫描器
| 扫描器 | 路径 | 描述 |
| ------------------ | ------------------------------------ | --------------------------------------------------------------------------- |
| 提示注入 | `/dashboard/prompt-injection` | 测试提示和文档是否存在注入、越狱、系统泄露风险 |
| 模型投毒 | `/dashboard/model-poisoning` | 对比安全与投毒的 GGUF 模型(将模型放置在 `CompleteModels/` 中) |
| 向量安全 | `/dashboard/vector-security` | 三个选项卡:文档检查、异常检测、攻击模拟 |
| 代码扫描 | `/dashboard/code-scanning` | 扫描 C/C++ 和其他代码中的机密信息和漏洞 |
| 数据投毒 | `/dashboard/data-poisoning` | 数据集和 Hugging Face 模型投毒分析 |
| 聊天机器人 | `/dashboard/chatbot` | 带有可选向量存储(例如 Qdrant)的 RAG 聊天机器人 |
| 历史与设置 | `/dashboard/history`, `/dashboard/settings` | 扫描历史、MFA、个人资料 |
### API 文档
- **Swagger UI**:`http://localhost:8000/docs`
- **ReDoc**:`http://localhost:8000/redoc`
## 项目结构
```
FYP-LLMShield/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── core/ # Config, database
│ │ ├── models/ # Pydantic/DB models
│ │ ├── routes/ # API endpoints
│ │ ├── services/ # Business logic
│ │ └── utils/ # Auth, email, MFA, etc.
│ ├── scripts/ # Setup and utilities (Supabase, vector DB, etc.)
│ ├── requirements.txt
│ └── run.py
├── frontend/ # React + TypeScript
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── contexts/
│ └── package.json
├── CompleteModels/ # Optional: GGUF models for model poisoning
├── samples/ # Optional: sample files for demos
├── README.md # This file (user-facing)
└── docs/PROJECT_MANUAL.md # Developer reference (implementation details)
```
## 验证设置
```
# Backend 健康状态(包含数据库检查)
curl http://localhost:8000/health
# 可选:如果存在,运行 backend 测试套件
cd backend && pytest
# 可选:运行 frontend 测试
cd frontend && npm test
```
## 使用 Docker 运行(本地预部署检查)
为了在部署前验证应用程序不会出现“Application error”,请在 Docker 中运行完整技术栈:
**完整技术栈(后端 + 前端 + MongoDB):**
```
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build
```
- **前端:** http://localhost
- **后端 API:** http://localhost:8000
- **健康检查:** `curl http://localhost:8000/health` 和 `curl http://localhost:8000/health/ready`
**仅后端 + 前端**(MongoDB 在宿主机上):确保 `backend/.env` 中配置了 `MONGODB_URL`(例如在 Docker Desktop 上为 `mongodb://host.docker.internal:27017`),然后:
```
docker compose up --build
```
有关**预部署检查清单**和故障排除,请参阅 **[docs/DEPLOY_CHECK.md](docs/DEPLOY_CHECK.md)**。
## 可选:Supabase(邮箱与验证)
对于邮箱验证和密码重置,请在 `.env` 中设置 Supabase 环境变量(`SUPABASE_PROJECT_URL`、`SUPABASE_SERVICE_KEY` 等)并创建所需的表。完整的 Schema 和设置步骤详见 **docs/PROJECT_MANUAL.md**。如果没有 Supabase,应用程序可以使用 SMTP 或跳过依赖邮箱的功能。
## 故障排除
- **Python 3.14 错误** — 使用 Python 3.12 或 3.13
- **MongoDB 连接失败** — 确保 MongoDB 正在运行且 `MONGODB_URL` 正确
- **端口被占用** — 更改后端的 `PORT` 或使用不同的前端端口
- **模型投毒无法加载** — 将 GGUF 安全/投毒模型对放置在 `CompleteModels/` 中(参见 docs/PROJECT_MANUAL.md)
- **向量/嵌入功能** — 使用 `/dashboard/vector-security` 处的 **向量安全** 仪表板(文档检查、异常检测、攻击模拟)
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
## 支持
- **问题反馈**:[GitHub Issues](https://github.com/yourusername/FYP-LLMShield/issues)
- **开发者**:请参阅 [docs/PROJECT_MANUAL.md](docs/PROJECT_MANUAL.md) 了解架构、模块实现详情、代码参考和配置。
为 AI 安全而生
标签:AI安全测试, AI应用防火墙, AMSI绕过, AV绕过, DNS 反向解析, DNS 解析, FastAPI, MFA, Python, RAG安全, React, Red Canary, Syscalls, TypeScript, 代码安全, 向量数据库安全, 大模型安全, 威胁检测, 安全插件, 实时告警, 数据集投毒, 无后门, 机密检测, 模型投毒, 漏洞枚举, 网络安全, 请求拦截, 逆向工具, 配置审计, 隐私保护