知识卡片:CodePoisonRAG——针对检索增强代码生成的定向知识投毒攻击
正文抓取失败;本卡仅依据 arXiv 元数据中的“候选摘要”编写。凡来自候选摘要但尚未从原文核实的内容,均标注“待核实”。
一句话结论
(待核实)CodePoisonRAG 是一种面向“检索增强代码生成”(RACG)的黑盒、定向上游知识投毒框架:攻击者不需要修改大模型,也不访问受害者的检索/生成系统,只要向知识库注入少量与任务匹配的带毒代码制品,就可能让模型生成带攻击者指定软件弱点(CWE)的代码。
研究问题
- RACG 通过检索外部代码制品、文档、补丁并放入生成上下文,提升了代码生成能力,但引入了一条信任边界。
- 已有工作显示,选择现有漏洞示例可提高 RACG 输出的整体漏洞率;仍待解决的问题是:黑盒攻击者能否构造单个“任务匹配”的带毒制品,从而定向传播攻击者选择的弱点。
- 候选摘要称 CodePoisonRAG 针对上述问题展开。
方法/产品要点
(以下按候选摘要转述,未经原文核实)
- 总体思路:将原本正常的“修复代码”条目改造成带毒制品,而不是直接污染底层模型。
- 攻击链包括两块:
- CWE-specific Vulnerability Injection:在保持任务相关性的同时嵌入攻击者选定的“source-to-sink”脆弱数据流;
- Semantic Mislabeling:给带毒代码添加虚假的安全声明,但不去修复脆弱行为。
- 攻击者黑盒设置:不知道受害方已部署的知识库、检索器、重排序器、生成器、提示词,也不知道防御机制。
- 注入预算:每个预期编程任务最多注入一个带毒制品。
主要结果
(以下数字来自候选摘要,均待核实)
- 构造 85 个带毒制品,覆盖 Java 和 C 中的 10 个 CWE 类别,总体语料投毒比例为 0.7%。
- 在三个生成器上,85 个带毒制品在对应查询中全部进入检索 Top-3。
- 攻击成功率在 0.80–0.93 之间。
- 面对 CodeGuarder 时,攻击成功率仍为 0.40–0.71。CodeGuarder 的作用是把“漏洞特定安全知识”注入生成上下文。
为什么重要
- 如果结果成立,CodePoisonRAG 表明:检索增强代码生成的风险不止“偶然传播已有漏洞”,而是可以“定向制造并传播攻击者选择的弱点”。
- 这也意味着,在代码知识库/AI 辅助编程工具的上游,第三方代码片段、文档、补丁的完整性与可信度需要被当作安全边界来管理。
- 与已有卡片的增量:已有“3D 点云数据投毒”卡关注点云数据增强无法清除投毒;“DynaKRAG”卡关注多跳 RAG 中的证据控制;“ProjAgent”卡用程序相似性检索提升仓库级代码生成准确率。本卡片的独有角度是代码生成知识库的对抗性投毒信任边界,而不是提升生成性能或评估数据净化。
局限与不确定性
- 源材料未能抓取正文;上述技术与数值只来自候选摘要,不是来自经过核对的论文全文。
- 待核实内容至少包括:语料库构成、检索器/生成器具体型号与设置、Top-3 判定方法、攻击成功率的计算口径、CodeGuarder 版本及注入安全知识的方式、防御基准是否完整。
arXiv:2609.02774v1对应的页面/条目本身亦未抓取,因此不可作为最终文献引用结论。
可用于图书/PPT/简报的角度
- “检索到的内容不一定安全”:RAG 把外部知识放入上下文,也把知识投毒放进了生成链路。
- “一个带毒代码片段可以像供应链坏依赖一样影响代码生成结果”。
- 安全知识注入/防御(如 CodeGuarder)能降低但不能消除攻击成功率(待核实)。
- 做 AI 辅助编程部署时,除了关注 Pass@1 等效果指标,还应测评恶意/带毒知识库对抗指标。
原始材料
- 英文标题:CodePoisonRAG: Knowledge Poisoning Attacks on Retrieval-Augmented Code Generation
- 英文关键词(据标题/候选摘要整理):Retrieval-Augmented Code Generation (RACG); Knowledge Poisoning Attacks; CWE-specific Vulnerability Injection; Semantic Mislabeling; CodeGuarder; Black-box Attack
- 原始来源:https://arxiv.org/abs/2609.02774v1
- Track: academic
- Topics: foundation-model
- Manual title: CodePoisonRAG: Knowledge Poisoning Attacks on Retrieval-Augmented Code Generation
- 正文抓取状态:失败,暂无原文全文可核对。