rbtjd215/LLM_Gateway_Project

GitHub: rbtjd215/LLM_Gateway_Project

基于本地 LLM 的混合 AI 安全网关代理,通过动态脱敏与意图检测保护企业机密数据,同时防御 Prompt Injection 攻击。

Stars: 3 | Forks: 0

# 基于 LLM 的混合 AI 安全网关 -> **[한국어 문서 보기 (Read in Korean)](README_KO.md)** ![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg) ![Python](https://img.shields.io/badge/Python-3.11-3776AB?logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-0.111-009688?logo=fastapi&logoColor=white) ![Streamlit](https://img.shields.io/badge/Streamlit-UI-FF4B4B?logo=streamlit&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?logo=docker&logoColor=white) ## 1. 研究背景与问题定义 随着企业对生成式 AI 的采用加速,员工**无意间泄露机密数据**以及恶意的 **Prompt Injection** 攻击已成为关键的安全威胁。 * **日益严重的数据泄露:** 根据 Cyberhaven (2024) 的报告,员工输入到 AI 工具的所有数据中,有 27.4% 被视为机密信息。 * **传统安全性的局限性:** 现有的 DLP (Data Loss Prevention) 解决方案严格依赖预定义的模式(例如社会安全号码、电话号码),无法检测隐藏在上下文中的非结构化机密数据(例如新材料的混合比例)。 * **“影子 AI”困境:** 出于安全原因,在企业网络上完全阻止对 AI 工具的访问,反而会导致“影子 AI”,员工会使用个人设备绕过网络。这使得数据脱离了公司的控制,导致审计变得不可能。 **核心研究问题:** *“是否存在一种折中的安全架构,既能保护机密数据,又能安全地允许使用 AI?”* ## 2. 架构与 4 项核心设计原则 本项目提出并实现了一个部署在企业本地网络内的 **AI 安全网关代理**,用于拦截与外部商用 AI 的通信。 ### 设计原则 1. **100% 本地处理**:所有安全检查(脱敏、意图分类)均由本地 LLM 处理,确保绝对的数据主权。 2. **纵深防御**:我们构建了 3 层防御机制:Pattern Filter → Intent Classification → Generative Masking。 3. **动态脱敏与解密**:系统不是直接拦截,而是在发送给 AI 之前,将机密数据替换为随机生成的 token。收到响应后,网关会动态恢复原始数据,完美保留用户体验 (UX)。 4. **AI 原生威胁防御**:利用 LLM-as-a-Judge 技术,系统能够理解上下文,从而拦截诸如 Prompt Injection 和系统越狱等复杂威胁。 5. **全球可访问性 (i18n)**:在 UI 中实现了无缝的韩语/英语语言切换,使全球的开发者和评估人员能够直观地与系统进行交互。 ## 3. 三阶段混合安全 Pipeline 该网关的核心引擎是一个**结合了 Regex 和 LLM 的混合架构**。 ``` graph TD A[User Input] --> B[Phase 1: High-speed Regex Filter] B -->|Mask Structured Data| C{Async Parallel Processing} C --> D[Phase 2: LLM Intent Classification] C --> E[Phase 3: Generative Masking] D -->|Fail-Closed Block| F[Admin Logging] E -->|Mask Unstructured Data| G[Final Masked Prompt] G --> H[External Commercial AI] H --> I[Phase 4: De-masking] I --> J[Return Response to User] ``` * **阶段 1 (高速 Regex Filter):** 瞬间将结构化机密数据(例如员工 ID、图纸编号)替换为格式为 `__MASK_TYPE_HEX__` 的唯一随机 token。 * **阶段 2 (LLM-as-a-Judge):** 本地 LLM (Qwen 2.5 7B) 分析 Prompt 的上下文,以检测并立即拦截 (Fail-Closed) 恶意意图,例如 Prompt Injection 和系统越狱。 * **阶段 3 (Generative DLP):** 同时,同一个本地 LLM 会提取并脱敏 Regex 无法捕获的非结构化机密数据(例如“公差”、“混合比例”)。(通过 `asyncio` 与阶段 2 并行执行,以最大程度减少延迟)。 ## 4. 核心功能演示 ### 1) 正常查询与动态脱敏(保留 UX) 当用户提出包含机密数据的问题时,网关会在将其发送到外部 AI 之前,将其脱敏为随机生成的 token。随后将收到的回答完美解密恢复为其原始状态。 ### 2) Prompt Injection 防御 系统会拦截并阻止试图忽略先前指令或要求管理员权限的上下文。 ### 3) 管理员安全仪表板 实时记录并监控通过网关的所有事件(允许、已脱敏、已阻止),将原始 Prompt 与其脱敏后的对应项进行匹配。 ## 5. 系统性能与评估(1,200 次 Benchmark 测试) 我们通过严格的 1,200 次查询自动化测试集验证了系统的性能。 | 指标 | V1 (仅 Regex) | V4 (CPU 专用) | V4 (GPU 加速) | |---|:---:|:---:|:---:| | **Overall Recall (防御率)** | 26.7% | 78.33% | 77.60% | | **Precision** | ~100% | 99.86% | 99.70% | | **Injection Block Rate** | ~15% | 91.67% | 91.60% | | **False Positive Rate (FPR)** | 0.0% | 0.14% | 0.30% | | **Latency (热状态)** | 0.1s | 1~3s (最高 9.7s) | **平均 1.36s** | **结论与可扩展性验证:** 尽管由于 7B 小模型的推理限制,防御率 (Recall) 保持在 78% 左右,但系统实现了 99.86% 的 Precision,证明了该架构的稳健性。此外,在 CPU 执行期间观察到的延迟限制在额外的 GPU 环境测试中得到了完全解决,每次查询的处理时间减少到平均仅 1.36 秒。这表明**随着基础设施资源 (GPU) 的投入,性能会呈显著且成正比地提升**,证明了这是一种高度可扩展的架构,升级到 70B+ 模型也将立即提高防御率。 ## 6. 技术栈 | 类别 | 技术 | |---|---| | **Backend** | Python 3.11, FastAPI, Uvicorn | | **Frontend** | Streamlit | | **Database** | PostgreSQL 15, SQLAlchemy ORM | | **Cache/KV** | Redis 7 | | **AI / Security** | 本地 Ollama (Qwen2.5:7b), Google Gemini API | | **Infrastructure** | Docker, Docker Compose | ## 7. 快速入门指南 ### 前置条件 * Docker 和 Docker Compose * 在本地安装 [Ollama](https://ollama.com/) 并拉取 `qwen2.5:7b` 模型 (`ollama run qwen2.5:7b`) * Google Gemini API Key ### 如何运行 1. **克隆代码仓库并设置环境变量** git clone https://github.com/your-repo/LLM_Gateway_Project.git cd LLM_Gateway_Project cp .env.example .env # 打开 .env 并输入你的 GEMINI_API_KEY 2. **执行 Docker Compose** docker-compose up --build -d 3. **访问服务** * **Frontend (UI)**: `http://localhost:8501` * **Backend (API Docs)**: `http://localhost:8000/docs` * **测试账户**: `EMP-001` / `pass1234` (普通用户), `ADMIN-001` / `adminpass` (管理员) ## 8. 许可证 本项目采用 [MIT 许可证](LICENSE) 授权。您可以自由地出于研究和教育目的对其进行参考、使用和修改。 ### 🛡️ 安全测试指南 要运行自动化测试并查看 Benchmark 结果,请参阅[安全测试报告](Docs_English/SECURITY_TESTING_EN.md)。 ## 项目文档 1. [**主 README**](./README.md) 🔴 *您当前所在位置* 2. [**系统架构**](./Docs_English/ARCHITECTURE_EN.md) 3. [**设置与执行指南**](./Docs_English/SETUP_GUIDE_EN.md) 4. [**安全测试指南**](./Docs_English/SECURITY_TESTING_EN.md) 5. [**API 参考**](./Docs_English/API_REFERENCE_EN.md)
标签:AI安全网关, AI风险缓解, AV绕过, DLL 劫持, Docker, FastAPI, Kubernetes, Streamlit, 大语言模型, 安全防御评估, 提示注入防护, 搜索引擎查询, 测试用例, 访问控制, 请求拦截, 逆向工具