FYP-LLMShield/FYP-LLMShield

GitHub: FYP-LLMShield/FYP-LLMShield

一个整合了提示注入测试、模型投毒分析、RAG向量安全检测和代码漏洞扫描的统一AI安全测试平台。

Stars: 0 | Forks: 0

# FYP-LLMShield 一个统一威胁检测平台,用于缓解 LLM 和 AI 系统中的提示注入、模型投毒和 RAG 嵌入风险。
LLMShield Logo **AI 安全测试平台 — 生产就绪** [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![React](https://img.shields.io/badge/React-18.x-blue.svg)](https://reactjs.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.104.1-green.svg)](https://fastapi.tiangolo.com/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/) [![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](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, 代码安全, 向量数据库安全, 大模型安全, 威胁检测, 安全插件, 实时告警, 数据集投毒, 无后门, 机密检测, 模型投毒, 漏洞枚举, 网络安全, 请求拦截, 逆向工具, 配置审计, 隐私保护