An Insight into Security Code Review with LLMs: Capabilities, Obstacles, and Influential Factors
这项实证研究表明,大型语言模型(尤其是像 DeepSeek-R1 这样针对推理优化的模型)在安全代码审查中显著优于最先进的静态分析工具,同时指出提示工程策略、代码复杂度和文件大小是影响其检测准确性和响应质量的关键因素。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你是一家庞大而混乱的图书馆的编辑,成千上万的人正在为这部巨大的共享故事不断撰写新章节。你的工作是找出危险的剧情漏洞、可能导致整个故事崩溃的情节转折,或是可能让窃贼潜入并偷走书籍的页面。这就是安全代码审查。
传统上,你有两种方法来完成这项工作:
- 人类编辑:一位疲惫的专家阅读每一个字。他们擅长理解上下文,但速度慢且成本高昂。
- 自动化拼写检查器:一个扫描已知不良词汇的机器人。它速度快,但经常在没有问题的情况下大喊“错误!”(误报),并且会错过微妙而巧妙的伎俩。
本文问道:一种新型的“超级读者”(大语言模型或 LLM)能否比旧的拼写检查器做得更好?
以下是研究人员发现的成果,通过简单的类比进行解释:
1. 竞争者:谁来到了图书馆?
研究人员引入了七位不同的“超级读者”(LLM)。其中一些是通用型的(擅长写诗和邮件),而另一位是“推理优化”模型(专门训练为像侦探一样逐步思考)。他们还带来了旧的“自动化拼写检查器”(静态分析工具),以看看谁能获胜。
结果:超级读者彻底击败了旧的拼写检查器。“推理优化”的侦探(称为DeepSeek-R1)是无可争议的冠军,紧随其后的是GPT-4(你可能从 ChatGPT 中认识的那个)。旧工具被远远甩在身后,主要是因为它们会被复杂的故事情节(如代码中的竞态条件)搞糊涂,而这些情节需要理解故事的不同部分如何随时间相互作用。
2. 魔法提示:提问方式很重要
就像向图书管理员提问一样,你如何向超级读者提问至关重要。研究人员尝试了五种不同的提问方式:
- 基本提问:“找出漏洞。”
- 上下文提问:“这是提交信息(作者留下的关于他们更改内容的说明)。请逐步思考。”
- 作弊清单提问:“这是一份已知犯罪类型的列表(CWE 列表)。请查找这些。”
获胜者:
- 对于DeepSeek-R1,最佳方法是给它作者的说明(提交信息),并让它“逐步思考”(思维链)。这就像给侦探嫌疑人的日记,并要求他们逻辑地走过犯罪现场。
- 对于GPT-4,最佳方法是给它“作弊清单”(已知犯罪列表)。当它有一份具体的检查清单可以遵循时,效果最好。
3. 缺陷:即使超级读者也会犯错
研究人员不仅查看了谁发现了漏洞,还查看了超级读者如何报告这些漏洞。他们发现了两种截然不同的性格缺陷:
- GPT-4(模糊的诗人):它经常能找到正确的问题,但描述得模糊不清。它可能会说“此文件中某处存在安全风险”,却没有指出确切的行号。它有时还会忽略指令,例如在没有漏洞时忘记说“未发现漏洞”。
- DeepSeek-R1(过度自信的核查者):这个模型非常具体。它会指出确切的行号和代码片段。然而,它有时会幻觉。它可能会自信地指向第 42 行并说“这一行很危险”,而实际上第 42 行是安全的。这就像一位急于破案而捏造不存在证据的侦探。
4. “大海捞针”问题
研究人员发现,当故事变得太长时,这些超级读者会感到吃力。
- 短文件:它们在查找简短、精炼的代码文件中的漏洞方面表现出色。
- 长文件:随着代码变长(更多的“令牌”),超级读者会分心。它们会错过埋藏在巨大文件中间的小而危险的细节。这就像试图在一本 500 页的小说中寻找一个拼写错误;你的眼睛会发花,从而错过它。
5. 复杂性悖论
这里有一个令人惊讶的转折:
- 通常,我们认为复杂的代码更难检查。
- 但对于DeepSeek-R1,更复杂的代码实际上有助于它发现某些类型的漏洞(内存相关的除外)。
- 为什么? 研究人员认为,复杂的代码通常在文件本身中包含更多的“线索”和结构。超级读者可以利用这些内部线索来推理问题。简单而杂乱的代码提供的线索较少,使得 AI 更难弄清楚发生了什么。
结论
该论文得出结论,AI 超级读者是强大的新工具,目前在查找代码中的安全漏洞方面优于传统的自动化扫描器。然而,它们尚未完全取代人类编辑。
- DeepSeek-R1 最擅长通过推理解决问题,但需要有人监督,以防它捏造事实。
- GPT-4 擅长遵循检查清单,但可能过于模糊。
- 策略:最佳方法不是取代人类,而是将这些 AI 工具用作初步筛选。让 AI 先扫描简短、复杂的文件,然后由人类编辑对 AI 的工作进行复核,特别是在 AI 过于自信或过于模糊的时候。
该论文并未声称这些工具已准备好独自管理图书馆,也未暗示它们是完美的。它仅仅表明,它们是一种非常有前途的新助手,需要谨慎处理。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。