在拉取请求(PR)工作流中,越来越多的大型语言模型(LLM)评审者被使用,其批准帮助决定哪些代码被合并到代码库中。这引发了一个问题:现有的静态漏洞检测或代码生成基准未能解决:当攻击者控制代码更改和附带的PR文本时,自动化评审者能否拒绝恶意贡献?
我们引入了SEVRA-BENCH(评审代理中的漏洞社会工程学),这是一个基准,用于测量自动化评审者批准此类对抗性拉取请求的频率。SEVRA-BENCH中的每个恶意PR都是基于一个真实项目提交,该提交之前修复了在公共漏洞和暴露(CVE)数据库中列出的漏洞。我们自动反转该修复,以恢复原始脆弱代码,并将其作为拉取请求提交,包装在15种社会工程框架中的一种,这些框架变化了所做的声明、支持证据、传达的紧迫性、先前批准的信号和对权威的呼吁。
SEVRA-BENCH包含1,062个恶意PR,来源于与前25个常见弱点(CWE)前10名条目相关的CVE修复。在一个现实的环境中,我们评估了8个当前的LLM作为代码审查代理,针对引入了之前在公共披露中报告的漏洞的PR。我们的结果揭示了闭源和开源模型之间在安全能力上的明显差距。我们希望SEVRA-BENCH能为推动开源模型的发展和缩小这一差距提供有价值的资源。
博主点评: SEVRA-BENCH的提出为自动化代码审查的安全性提供了全新的视角,尤其是在考虑到社会工程学的影响时。这一基准的建立,不仅揭示了当前LLM在处理恶意请求时的脆弱性,也为未来的模型改进提供了明确的方向。开放源代码模型的提升显得尤为重要,期待其在安全性上的进步。