iffiee394/raguard
GitHub: iffiee394/raguard
RAG 系统的端到端安全评估项目,通过对自建 RAG 聊天机器人进行对抗性攻击测试、评分和分层防御加固,将漏洞从 11 个降至 1 个并提供可复现的评估工具包。
Stars: 0 | Forks: 0
# RAGuard
### *我故意弄坏了自己的 AI 聊天机器人 —— 然后修复了它。*
**11 个安全漏洞 → 1 个。** 评级 **F → A。** 完整证明如下。
[](https://iffiee394.github.io/raguard/reports/assessment_comparison.html) [](https://github.com/iffiee394/raguard)
## 核心看点
大多数公司在发布“查询我们的文档”的 AI 助手时,从未对它们进行过压力测试。我构建了一个,像真正的攻击者那样攻击它,记录了每一次失败,修复了它,并用你能在 30 秒内展示给创始人的数据证明了修复效果。
| 加固前 | 加固后 |
|------------------|-----------------|
| **11 次攻击成功** | **1 次攻击成功** |
| 评级 **F** — 严重暴露 | 评级 **A** — 强健的基线 |
| 虚假策略文档劫持了回答 | 防护机制 + 更安全的 prompt 拦截了最糟糕的情况 |
| 密码和机密信息在聊天中泄露 | 机密信息被拦截;正常问题不受影响 |
## 亲自查看

**[→ 打开完整的交互式报告](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
## 自己运行
[](https://iffiee394.github.io/raguard/reports/assessment_comparison.html) [](https://github.com/iffiee394/raguard)
开发者设置(点击展开)
``` 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)标签:DLL 劫持, DNS 反向解析, RAG, StruQ, URL发现, 人工智能, 多模态安全, 大语言模型, 安全检测, 用户模式Hook绕过, 红队评估, 逆向工具