外观
CanaryRAG:用双路径运行时完整性游戏检测 RAG 外泄
摘要
CanaryRAG 面向通过连续查询恢复 RAG 知识库文本的风险。它在运行时将带出处的金丝雀片段嵌入检索路径,比较正常与受保护路径的可恢复性,并在阈值触发时识别疑似抽取;作者在三类 RAG Agent、多个数据集和自适应攻击下报告其块恢复率为零或低于比较方法。该结果受金丝雀放置、攻击模型和论文评测检索配置限制。
核心创新与差异
传统访问控制和重排器多在查询前限制结果;CanaryRAG 把“输出是否携带可验证的抽取信号”作为运行时检测对象,并尝试在检测后归因数据集。它关注外泄检测,不取代写入侧投毒防护。
威胁模型与攻击链
攻击者可发起多轮查询并从回答聚合知识库内容,不能直接读取底层索引。若系统只限制单次返回长度或依赖重排,攻击者仍可能逐步恢复内容;首个失效控制是未对跨查询的恢复行为建立检测与响应闭环。
攻击工件与复现材料
论文讨论的抽取提示和自适应策略不在此复写。用于自有系统的非破坏性回归夹具可写为:
python
response = rag_answer("fixture query", corpus="synthetic-only")
assert detector.observe(response).action in {"allow", "rate_limit", "review"}
assert no_fixture_secret_is_reconstructable(across_test_queries=True)夹具仅使用合成语料和不可用标记,省略查询优化与原文恢复细节。
实验设计与实际过程
作者以块恢复率、检测真阳性率、误报、响应质量 BERTScore 和延迟比较多种防护,并评估非自适应与自适应抽取。本站核对论文的威胁模型和结果表,未部署金丝雀或复现攻击。
关键结果与实际影响
作者报告 CanaryRAG 在其测试的多种 Agent 上阻止或显著降低恢复,并以较低误报维持回答质量。部署时仍须区分“检测到信号”“已阻断抽取”和“已确认数据泄露”,不应以单一检测指标替代访问授权与最小化检索。
后续的 Extracting Knowledge from Tools in LLM Agents 将连续查询抽取从 RAG 检索器扩展到文件、数据库和搜索索引等知识型工具,并把工具选择不确定性、参数约束与跨工具迁移纳入实验。该结果强化了跨查询聚合才是关键观测单元的判断:防守方不能只监控单个检索端点,还需按主体关联不同工具的查询与返回内容。该论文仍是作者实验,工具种类和访问配置限制了外推范围。
防护措施与验证方法
将金丝雀与文档版本、访问主体和审计日志绑定;以跨查询重建率、误报和延迟共同验收;对阈值触发执行限速、会话隔离和人工复核;继续在索引查询层强制主体—资源授权。多工具 Agent 还应统一记录工具选择、参数范围和返回内容摘要,验证攻击者能否绕过单工具预算后在另一工具继续恢复。
局限与待验证问题
金丝雀可能被改写、绕开或导致额外延迟,论文对部署规模和复杂混合检索的覆盖有限。攻击者若学习到检测反馈,长期对抗效果需要持续评估。