umair-aziz025/RAGShield

GitHub: umair-aziz025/RAGShield

RAGShield 是一款开源 LLM/RAG 安全扫描与红队测试控制台,用于检测 prompt 注入、数据泄露、检索投毒等 OWASP LLM 风险并生成可审计报告。

Stars: 0 | Forks: 0

# 🛡️ RAGShield

Build React TypeScript Vite Framer Motion OWASP LLM License

**开源的 LLM 与 RAG 红队控制台,用于语料扫描、实时端点攻击测试、CI/CD prompt 安全门控以及 OWASP LLM 风险报告。** RAGShield 帮助开发者、AppSec 团队和 AI 红队在正式发布前测试聊天机器人、RAG 系统以及使用工具的 agent。上传文档、扫描 prompt 制品、针对实时模型端点运行编号化的对抗性 prompt 攻击活动,并导出可直接作为证据的报告。 ## 📸 截图 ### 🧭 安全控制台 ![RAGShield 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3e2df720f1232217.png) ### 🧪 Payload 库 ![RAGShield payload 库](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/497ed54774232223.png) ## 🚨 为什么这很重要 - 🧨 Prompt 注入可以覆盖助手的行为并暴露隐藏的指令。 - 🧬 被投毒的检索文档可能会悄无声息地篡改 RAG 的响应。 - 🔑 密钥可能会通过 prompt、上下文、日志、工具结果或模型输出泄露。 - 🛠️ 权限过高的工具可能会将一个有用的 agent 变成不安全的自动化攻击面。 - 📦 CI/CD 门控可以帮助团队在危险的 prompt 发布前捕获回归问题。 ## ✨ 功能 - 🧪 **扩展的 Prompt 库**:22 个映射到 OWASP LLM 风险的对抗性 prompt。 - 📤 **自定义 Payload 上传**:直接在 Payload 库中添加您自己的 JSON payload 包。 - 📑 **分页 Payload 列表**:通过编号页面浏览 prompt,而不是冗长杂乱的列表。 - 🧭 **选项卡式工作区**:每个导航选项卡仅渲染其相关的工具界面。 - 🔁 **Prompt 轮播**:包含上一个、下一个、随机排序和直接输入 prompt 编号的控件。 - 🔢 **范围攻击活动**:选择起始 prompt 和运行次数,以测试指定编号的 prompt 范围。 - ⚡ **实时端点测试**:支持 OpenAI Responses、Claude Messages、Gemini generateContent 以及自定义代理。 - 🧠 **本地启发式扫描器**:支持 Prompt 注入、RAG 投毒、密钥暴露、不安全工具、不安全输出以及 prompt 预算检查。 - 📂 **语料扫描器**:支持多文件 RAG 文档上传,并为每个文档提供风险评分。 - 🛡️ **OWASP 映射**:将扫描结果映射到 OWASP LLM 应用 Top 10。 - 📊 **风险仪表盘**:提供严重程度细分、动态评分环、证据卡片和修复步骤。 - 🚦 **CI/CD 门控导出**:下载 `.ragshieldrc.json` 和 GitHub Actions 工作流。 - 📝 **Markdown 报告**:复制或下载可直接作为证据的安全报告。 - 🎛️ **专业 UI**:深色玻璃质感控制台、动态背景、透明页眉/页脚以及响应式布局。 ## 🏗️ 架构概览 ``` flowchart TD A[React + TypeScript UI] --> B[Artifact Workspace] A --> C[RAG Corpus Scanner] A --> D[Live Endpoint Attack Lab] A --> E[CI/CD Policy Builder] B --> B1[System Prompt] B --> B2[Retrieved Context] B --> B3[User Prompt] B --> B4[Tool Manifest] B --> B5[Model Response] C --> F[Client-Side Scanner Engine] D --> D1[OpenAI Responses] D --> D2[Claude Messages] D --> D3[Gemini generateContent] D --> D4[Custom Proxy] D1 --> G[Live Response Classifier] D2 --> G D3 --> G D4 --> G F --> H[Evidence Collector] G --> H H --> I[Severity Tuner] I --> J[OWASP LLM Mapper] J --> K[Risk Score + Findings] K --> L[Markdown Report] K --> M[CI Security Gate] ``` ## 🔁 应用流程 ``` flowchart LR A[Paste artifacts or upload corpus] --> B[Choose scan profile] B --> C[Run local scan] C --> D[Review risk score + findings] D --> E{Need live validation?} E -->|Yes| F[Choose prompt number range] F --> G[Run live campaign] G --> H[Classify model responses] E -->|No| I[Export report] H --> I I --> J[Download CI gate or Markdown evidence] ``` ## ⚡ 快速开始 ``` npm install npm run dev ``` 生产环境构建: ``` npm run build ``` 运行本地 CI 安全门控: ``` npm run ci:scan ``` ## 🧩 可选配置 创建或编辑 `.ragshieldrc.json`: ``` { "failOnCritical": true, "maxRiskScore": 35, "allowDemoSecrets": false, "scanPaths": ["src/**/*.{ts,tsx,md,json}", "docs/**/*.md", "README.md"] } ``` ## 🧪 Prompt 攻击活动工作流 1. 🔐 添加仅限当前会话的 API 密钥或自定义代理 URL。 2. 🎯 选择目标提供商和模型。 3. 🔁 使用上一个、下一个或随机排序来检查 prompt。 4. 🔢 为攻击活动范围设置 **起始编号** 和 **运行次数**。 5. ▶️ 运行攻击活动,并查看被拦截、存在漏洞和出错的状态。 自定义 payload JSON 可以作为数组或包装对象上传: ``` { "payloads": [ { "category": "Custom Prompt Injection", "owasp": "LLM01", "payload": "Place your custom model test prompt here." } ] } ``` ## 🗺️ 路线图 - 📄 导出 SARIF 报告 - 💾 保存扫描会话 - 🧰 自定义规则包 - 📈 针对特定提供商的评分调优 - 🧪 导入/导出回归测试套件 - 🌐 面向企业 pipeline 的可选 API 模式 ## 🤝 负责任的使用 RAGShield 专为防御性测试、AppSec 审查、AI 红队演练和安全开发而构建。请仅在您拥有或获得明确测试授权的系统上使用它。 ## 📄 许可证 MIT 许可证。详见 `LICENSE.txt`。
标签:AI安全, Chat Copilot, GraphQL安全矩阵, RAG, React, Syscalls, 域名收集, 大语言模型安全, 安全扫描器, 机密管理, 自动化攻击, 配置审计