[Paper] 通过黑盒、面向漏洞的扫描检测代码生成 LLM 中的数据投毒

发布: (2026年3月18日 GMT+8 06:08)
8 分钟阅读
原文: arXiv

抱歉,我目前没有看到需要翻译的正文内容。请您提供要翻译的文本(例如摘要、章节或其他文字),我会按照要求保留源链接并进行简体中文翻译。

概览

代码生成模型,如 GitHub Copilot、CodeLlama 和 StarCoder,如今已成为开发者的日常助理。然而,最新研究表明,这些模型可能会被投毒——攻击者微妙地修改训练数据,使模型反复生成不安全的代码片段。论文 Detecting Data Poisoning in Code Generation LLMs via Black‑Box, Vulnerability‑Oriented Scanning 介绍了 CodeScan,这是首个黑盒工具,能够通过寻找重复出现的易受攻击代码模式来发现受损模型,即使相同的逻辑以不同语法表达也能识别。

关键贡献

  • 面向代码的扫描:一个检测框架,基于生成的源代码的结构而非原始 token 相似度,能够处理相同语义的多种写法。
  • 迭代分歧分析:使用多样的干净提示从同一模型生成多个补全,然后隔离在这些补全中一致出现的代码片段。
  • 基于 AST 的归一化:将每个片段转换为抽象语法树(AST),去除表面差异(空白、变量名、顺序),聚焦底层逻辑。
  • LLM 驱动的漏洞检查:复用(另一个)LLM 来评估归一化后的片段是否包含已知安全缺陷(如命令注入、不安全的反序列化、危险的内存处理)。
  • 全面评估:在 108 个模型(3 种架构,多种规模)上测试,针对四种最先进的投毒/后门攻击,覆盖三类真实世界漏洞,实现 > 97 % 的检测准确率,且误报率远低于以往的 token 级扫描器。

方法论

  1. 提示多样化 – 扫描器向目标模型提供一组 干净 的编程提示(例如,“编写一个读取文件的函数”)。
  2. 多次生成 – 对每个提示,使用相同模型但略微不同的温度或采样种子,收集若干完成结果(例如,5–10 条)。
  3. 分歧检测 – 将完成结果两两比较,以定位出现在大多数输出中的 共同子结构,假设这些是模型“被迫”输出的部分(可能是被投毒的负载)。
  4. AST 规范化 – 将每个候选子结构解析为抽象语法树(AST);提取节点类型、控制流模式和 API 调用,同时重命名标识符并去除格式细节。这样可以把语法不同但语义相同的代码合并。
  5. 漏洞评估 – 使用另一个训练良好的大语言模型(或静态分析工具),对规范化片段进行提示,以判断其是否匹配已知的漏洞模式。
  6. 决策规则 – 若在重复出现的集合中发现漏洞片段,则将模型标记为 已被妥协;否则视为干净。

所有步骤都是 黑箱 的:仅需能够查询目标模型的完成结果,无需访问其权重或训练数据。

结果与发现

场景攻击类型检测准确率误报率
后门(触发词)代码注入98.3 %1.2 %
数据投毒(标签翻转)不安全的反序列化97.7 %0.9 %
混合(两者)命令注入97.9 %1.0 %
基线令牌级扫描器71.4 %5.8 %
  • 跨模型家族的鲁棒性:CodeScan 在 GPT 风格、编码器‑解码器以及仅解码器的代码模型上表现一致,参数规模从 1 B 到 13 B。
  • 低开销:对一个模型进行 10 条提示 × 每条 5 次生成的扫描约耗时 2 分钟(单 GPU),可在 CI 流水线中实现。
  • 对混淆的抗性:由于检测基于抽象语法树(AST),攻击者使用的简单重命名或重排技巧无法规避扫描器。

实际意义

  • CI/CD 安全门 – 团队可以将 CodeScan 集成到模型部署流水线中,自动拒绝任何表现出隐藏恶意模式的最新微调代码模型。
  • 市场审查 – 模型提供商(例如 Hugging Face、AWS Bedrock)可以在第三方上传时运行 CodeScan,向客户提供“无毒”认证徽章。
  • 开发者工具 – IDE 插件可以在展示生成的代码片段之前,通过 CodeScan 的 API 查询模型,如果建议包含已知漏洞则发出警告。
  • 合规监管 – 受安全编码标准(如 OWASP、ISO 27034)约束的组织可以使用该工具作为其 AI 辅助代码生成符合安全政策的证据。

总体而言,CodeScan 将防御姿态从被动(在代码编写后修补不安全代码)转变为主动(在模型生成代码之前检测受损模型)。

限制与未来工作

  • 对提示多样性的依赖:如果干净的提示未能触发易受攻击的功能,则重复模式可能永远不会出现。
  • 漏洞覆盖率:基于 LLM 的分析器的效果取决于其所见的漏洞分类体系;新颖或零日漏洞可能会漏检。
  • 对大规模模型的可扩展性:虽然当前运行时尚可,但扫描极大模型(例如参数量超过 100 B)可能需要分布式推理。
  • 对抗性适应:攻击者可能设计故意在不同生成中变化的投毒负载,从而破坏重复假设。

未来研究方向包括:使用社区提供的 CVE 扩充漏洞数据库,将静态分析与动态沙箱执行相结合以提升可信度,以及探索利用模型内部信息的 白盒 扩展(在可用时)。

CodeScan 展示了结构化、面向漏洞的视角能够在无需任何特权访问的情况下可靠地揭示被投毒的代码生成模型,这是朝着更安全的 AI 辅助软件开发迈出的有希望的一步。

作者

  • Shenao Yan
  • Shimaa Ahmed
  • Shan Jin
  • Sunpreet S. Arora
  • Yiwei Cai
  • Yizhen Wang
  • Yuan Hong

论文信息

  • arXiv ID: 2603.17174v1
  • 分类: cs.CR, cs.AI, cs.SE
  • 出版日期: 2026年3月17日
  • PDF: Download PDF
0 浏览
Back to Blog

相关文章

阅读更多 »