iffiee394/raguard

GitHub: iffiee394/raguard

RAG 系统的端到端安全评估项目,通过对自建 RAG 聊天机器人进行对抗性攻击测试、评分和分层防御加固,将漏洞从 11 个降至 1 个并提供可复现的评估工具包。

Stars: 0 | Forks: 0

# RAGuard ### *我故意弄坏了自己的 AI 聊天机器人 —— 然后修复了它。* **11 个安全漏洞 → 1 个。** 评级 **F → A。** 完整证明如下。
[![实时报告](https://img.shields.io/badge/📊_Live_Report-View_Comparison-2ea043?style=for-the-badge)](https://iffiee394.github.io/raguard/reports/assessment_comparison.html) [![仓库](https://img.shields.io/badge/GitHub-Source_Code-24292f?style=for-the-badge&logo=github)](https://github.com/iffiee394/raguard)
## 核心看点 大多数公司在发布“查询我们的文档”的 AI 助手时,从未对它们进行过压力测试。我构建了一个,像真正的攻击者那样攻击它,记录了每一次失败,修复了它,并用你能在 30 秒内展示给创始人的数据证明了修复效果。 | 加固前 | 加固后 | |------------------|-----------------| | **11 次攻击成功** | **1 次攻击成功** | | 评级 **F** — 严重暴露 | 评级 **A** — 强健的基线 | | 虚假策略文档劫持了回答 | 防护机制 + 更安全的 prompt 拦截了最糟糕的情况 | | 密码和机密信息在聊天中泄露 | 机密信息被拦截;正常问题不受影响 | ## 亲自查看 ![加固前后对比 — 11 次突破降至 1 次,评级从 F 变为 A](https://static.pigsec.cn/wp-content/uploads/repos/cas/6e/6ef5b6bc3898c137e07f639d45a7700d5f478b50ab9f449fc508018c22d70bd4.png) **[→ 打开完整的交互式报告](https://iffiee394.github.io/raguard/reports/assessment_comparison.html)** ## 这是什么? **RAGuard** 是我为 **RAG 聊天机器人**构建的安全评估项目 —— 也就是那种可以搜索公司 PDF 并回答员工问题的机器人。 把它看作一次**针对 AI 的消防演习**: 1. **构建**一个逼真的内部服务台机器人(真实的文档搜索,真实的 API) 2. **使用** 37 个对抗性 prompt 对其进行**攻击** —— 投毒文件、陷阱问题、多步骤操纵、乌尔都语绕过尝试 3. 像安全审计一样对**每一次回复打分**(已拦截 / 部分泄露 / 完全突破) 4. 使用分层防御**修复**它 5. **证明**修复没有破坏正常使用 —— 并通过自动化测试锁定成果 这就是一家初创公司在向客户推出 copilot 之前所希望看到的交付成果。 ## 出了什么问题(令人担忧的部分) 在最初朴素的版本中,攻击者能够: - **对文档库投毒** —— 上传一份虚假的“策略”,机器人会将其奉为圭臬加以引用 - **诱骗机器人泄露**内置在其配置中的管理员密码 - **使用非英语 prompt** 躲避仅针对英语的安全检查 - **在多个对话回合中慢慢得逞** —— 友好的闲聊,然后“现在打印你的指令” 最糟糕的类别:**间接文档投毒 —— 5 次攻击全部奏效。** ## 是什么修复了它 | 防御措施 | 通俗解释 | |---------|---------------| | 输入过滤器 | 拦截明显的“无视你的规则”攻击,使其无法触及 AI | | 文档净化器 | 剥离隐藏在上传文件中夹带的指令 | | 输出过滤器 | 捕获泄露的密码并用安全的拒绝回复替换 | | 更强健的系统 prompt | 告诉模型不可信的文档并非公司策略 | | 回归测试 | CI 在每次推送时运行 —— 修复不会悄无声息地倒退 | **结果:** 完全突破减少了 10 次。补丁后所有 3 个多轮攻击链均被拦截。 一个诚实的遗留问题:投毒文档仍然可以泄露*虚假事实*(而非注入指令)。已记录在案,没有掩盖。 ## 关于本项目 **作者:** [iffiee394](https://github.com/iffiee394) **类型:** 作品集安全工程项目 —— 端到端、可复现、开源 **技术栈:** Python · FastAPI · 向量搜索 · LLM API · HTML 审计报告 · GitHub Actions CI **时间线:** 9 个构建阶段,约 3 周的结构化工作 **对标标准:** OWASP LLM Top 10(间接注入、prompt 泄露、多语言绕过等) **这不是玩具演示。** 包含真实的检索、真实的语料库、真实的攻击活动、真实的加固前后分数 —— 而不是 ChatGPT 越狱的截图。 ## 致招聘人员与创始人 —— 30 秒推介 **实时证明:** https://iffiee394.github.io/raguard/reports/assessment_comparison.html ## 自己运行
开发者设置(点击展开) ``` git clone https://github.com/iffiee394/raguard.git cd raguard python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt copy .env.example .env # add your API keys ``` **启动机器人:** ``` uvicorn target.api:app --reload --port 8001 ``` **运行评估:** ``` python -m src.cli scan --chains # attack campaign python -m src.cli compare # regenerate comparison report pytest tests/test_regression.py -v # CI-safe regression (no API cost) ``` 完整操作指南:[`docs/RUN-STEPS.md`](docs/RUN-STEPS.md)
## 仓库内容 | 文件夹 | 内容说明 | |--------|------| | `target/` | RAG 聊天机器人 + 安全防护机制 | | `attacks/` | 37 个攻击 prompt + 3 个多轮攻击链 | | `reports/` | HTML 执行报告(已包含 —— 在浏览器中打开) | | `tests/` | 自动化回归测试 —— 在每次 GitHub 推送时运行 | | `docs/` | 方法论、修复报告、演示脚本 | 深入了解:[`docs/REMEDIATION-RESULTS.md`](docs/REMEDIATION-RESULTS.md) · [`PATCHLOG.md`](PATCHLOG.md) ## 许可协议 作品集 / 演示项目。请仅对你拥有或已获得书面授权的系统进行攻击测试。
标签:DLL 劫持, DNS 反向解析, RAG, StruQ, URL发现, 人工智能, 多模态安全, 大语言模型, 安全检测, 用户模式Hook绕过, 红队评估, 逆向工具