← 最新论文
💻 computer science

Vulnerable Code Search: Transferable Attack for Code Language Models

本文介绍了一种可迁移的、与编程语言无关的对抗性攻击方法,该方法通过扰动代码标识符,使无关代码片段在人工层面与目标查询对齐,从而显著降低开源和闭源代码语言模型的检索性能。

原作者: Kaicheng Wang, Liyan Huang, Jesse Thomason, Weihang Wang

发布于 2026-08-27
📖 1 分钟阅读☕ 轻松阅读

原作者: Kaicheng Wang, Liyan Huang, Jesse Thomason, Weihang Wang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代软件那广阔而庞大的生态系统中,开发者依赖数字库来寻找他们所需的构建模块。想象一下,一名程序员正在搜索一个用于快速加载数据的特定函数;他们在搜索栏中输入一个问题,系统必须瞬间从数百万行代码中筛选出完美的匹配。这个被称为“代码检索”的过程是生产力的支柱,它允许工程师复用现有的解决方案,而不是重新造轮子。为了大规模实现这一功能,计算机使用专门的模型,将人类的问题和计算机代码都转化为一个共享的数学空间。在这个空间中,两个项目距离越近,它们就被认为越相似。随后,系统会对结果进行排序,将最相关的代码放在最顶端。多年来,业界一直信任这些系统的稳健性,认为既然代码运行正确,计算机就会理解其用途。

然而,一项新的研究揭示了这些系统令人震惊的脆弱性。来自南加州大学的研究人员发现,这些强大的搜索工具很容易被欺骗,不是通过改变代码实际执行的操作,而是通过改变其中的变量和函数的名称。该团队证明,通过仔细更换这些名称,他们可以让完全不相关的代码看起来像是针对特定问题的完美答案。这就像是一位图书管理员,仅仅因为作者将章节标题改成了与读者请求单上的词汇相匹配,就被误导去书架上取下一本食谱,尽管书的内容完全是关于烹饪,而非读者的实际需求。

研究人员开发了一种利用这一弱点的方法。他们选取了一段与特定搜索查询毫无关系的代码——例如,当用户询问如何加载数据时,他们使用了一段用于对数字列表进行排序的代码片段——并系统地重命名了内部符号。他们这样做并没有改变任何一行代码的逻辑,确保程序仍能完全照常运行。通过使用一个较小的、易于获取的计算机模型来引导这些更改,他们找到了特定的名称,使这段不相关的代码在计算机眼中看起来在数学上与目标问题完全一致。结果是,这段代码功能完美,但在语义上与用户的意图脱节,然而搜索引擎却将其排在首位。

这一发现最令人担忧之处在于,这种技巧在不同系统之间的迁移是多么容易。研究人员使用一个较小的开源模型生成了这些具有欺骗性的代码片段,但这种技巧在面对大型科技公司使用的更大型、闭源的系统时同样有效。当他们针对最先进的模型进行测试时,搜索引擎的表现崩溃了。在一项实验中,系统寻找正确答案的能力下降了多达 77%。这些此前在标准测试中得分很高的搜索引擎,无法区分真实的解决方案与被操纵的冒充者。这表明,这些模型并非真正理解代码的含义;相反,它们过度依赖于表层模式,例如变量名所使用的特定单词,而非程序的深层逻辑。

该研究还探讨了这些系统是否可以针对此类攻击进行加固。研究人员尝试训练模型以忽略这些欺骗性模式,但这种解决方案付出了沉重的代价。当他们使模型对这种技巧更具抵抗力时,其执行正常搜索的能力显著下降,准确率降低了一半。反之,当他们试图在安全性与性能之间取得平衡时,模型对于更复杂的版本攻击仍然保持脆弱。研究结果表明,当前的这一代代码搜索工具尽管拥有令人印象深刻的基准测试成绩,但其构建基础比此前认为的要脆弱得多。它们优先考虑匹配表层文本,而非理解软件的实际功能,这使得它们容易受到操纵,从而可能扰乱开发工作流,或者在最坏的情况下,导致开发者使用看起来合法的恶意代码。

这种脆弱性不仅限于简单的搜索引擎。研究人员展示了同样的技巧可以欺骗用于从代码仓库生成代码的大型语言模型。当这些先进系统面对被操纵的代码时,它们在包括 Python、C++ 和 Java 在内的多种编程语言中选择正确函数的准确率大幅下降。攻击之所以奏效,是因为模型被那些与查询匹配的重命名标识符所吸引,而忽略了代码的行为是无关紧要的事实。研究结论指出,业界需要转向更稳健的方法,这些方法应理解代码的结构和逻辑,而非仅仅是其文本外观。在此之前,人们对这些自动化工具引导关键软件决策所寄予的信任依然是岌岌可危的,极易受到简单更改几个单词的影响。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →