安全漏洞维修是一项艰巨的任务,迫切需要自动化。两组技术已显示出希望:(1)已在诸如代码完成诸如诸如代码完成之类的任务的源代码上预先培训的大型代码语言模型(LLMS),以及(2)使用深度学习(DL)模型自动修复软件错误的自动化程序修复(APR)技术。本文是第一个研究和比较LLMS和基于DL的APR模型的Java漏洞的修复功能。的贡献包括我们(1)应用和评估五个LLM(Codex,Codegen,Codet5,Plbart和Incoder),四个微调LLM和四个基于DL的APR技术,对两个现实World Java脆弱性基准(VUL4J和VJBENCE)(vul4j和vjbench),(2)设计代码(2)设计了一定的批准(2),(2)设计了一定范围,(2)设计了一定范围,(2)设计了一定的量码(2),(2)设计了一定范围(2),(2)设计了一定范围(2)设计(2),(2)设计了一定的划分(2),(3脆弱性维修台上VJBENCH及其转换版本VJBENCH-TRANS,以更好地评估LLM和APR技术,以及(4)评估VJBENCH-TRANS转换漏洞的LLMS和APR技术。我们的发现包括(1)现有的LLM和APR模型修复了很少的Java漏洞。Codex修复了10.2(20.4%),最多的漏洞。许多生成的补丁都是不可编译的补丁。(2)一般APR数据的微调改善了LLMS的漏洞固定功能。(3)我们的新VJBENCH表明,LLMS和APR模型无法修复许多常见的弱点(CWE)类型,例如CWE-325缺少加密步骤和CWE-444 HTTP请求走私。(4)Codex仍然修复了8.7转换的漏洞,表现优于所有其他LLMS
主要关键词