← 返回案例分析
中危

☠️ RAG知识库投毒案例

攻击者在公开文档库混入恶意文档,RAG系统检索后执行嵌入指令,客服系统被完全操控

🎯 攻击场景

某SaaS公司部署了基于RAG的智能客服系统,知识库包含产品文档、API手册和FAQ。知识库的文档来源包括官方文档和社区贡献的Wiki页面。攻击者以正常用户身份向社区Wiki提交了一篇"故障排查指南",文档表面看起来是正常的帮助内容,但在多处插入白色字体(视觉不可见)的恶意注入指令。当用户问到相关问题,RAG系统检索到这篇文档并喂给LLM时,嵌入的指令被激活——客服开始输出攻击者预设的内容,包括引导用户访问钓鱼链接。

🔄 攻击流程

  1. 投毒文档构造:攻击者编写一篇表面正常的FAQ,在文本中嵌入白色字体的注入指令
  2. 文档提交:通过社区Wiki贡献流程提交,经过简单的格式审核即被收录
  3. 嵌入知识库:文档被自动索引到RAG向量数据库中
  4. 触发检索:用户问到相关问题时,投毒文档在向量检索中排名靠前被召回
  5. 注入执行:LLM处理检索到的文档内容时,不可见指令被激活——客服被诱导输出钓鱼链接
  6. 持续影响:由于文档在知识库中,每次相关检索都会触发,持续影响所有用户

🔍 成功原因

  • 知识库入库缺乏安全审查:社区文档入库仅做格式检查,无内容安全扫描
  • 检索结果未做安全标记:RAG召回的文档直接喂给LLM,无安全预处理
  • 不可见文本绕过视觉审核:白色字体在审核界面中不可见
  • 缺乏检索来源可信度:没有对社区Wiki和官方文档做可信度分级

⚠️ 企业风险

客服被长期操控 · 用户被引导至钓鱼页面 · 品牌声誉受损 · 合规风险

🛡️ 分层防护方案

文档入库安全扫描

所有入库文档必须经过注入检测、隐藏文本检测和内容安全审核

检索结果安全标记

检索到的文档在喂给LLM前做Prompt注入检测和安全脱敏标记

来源可信度分级

官方文档标为高可信、社区贡献标为低可信,低可信文档做更严格的安全检查

输出二次检测

LLM输出在返回用户前检测是否包含URL重定向、异常域名

你的RAG系统也需要安全审查?

我可以帮你评估知识库和检索管道的安全性

了解安全评估