From Vulnerabilities to Remediation: A Systematic Literature Review of LLMs in Code Security

📄 arXiv: 2412.15004v3 📥 PDF

作者: Enna Basic, Alberto Giaretta

分类: cs.CR, cs.AI, cs.CL

发布日期: 2024-12-19 (更新: 2025-04-14)


💡 一句话要点

系统性文献综述:大型语言模型在代码安全中的漏洞与修复

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 代码安全 漏洞检测 漏洞修复 系统性文献综述 数据投毒攻击 提示工程

📋 核心要点

  1. 现有方法在利用LLMs进行代码安全任务时,面临引入未知漏洞和误报/漏报的挑战。
  2. 该研究通过系统性文献综述,全面分析LLMs在代码生成、漏洞检测与修复中的安全性问题。
  3. 综述深入探讨了数据投毒攻击对LLMs代码安全性能的影响,并分析了不同提示策略的影响。

📝 摘要(中文)

大型语言模型(LLMs)已成为自动化各种编程任务的强大工具,包括安全相关任务,如检测和修复漏洞。尽管它们具有前景广阔的能力,但在生成或修改现有代码时,LLMs可能会引入程序员未知的漏洞。在分析代码时,它们可能会错过明显的漏洞或发出不存在的漏洞信号。在这篇系统性文献综述(SLR)中,我们旨在调查使用LLMs进行各种代码相关任务的安全优势和潜在缺点。特别是,首先我们关注LLMs在用于生成代码时可能引入的漏洞类型。其次,我们分析LLMs检测和修复任何给定代码中的漏洞的能力,以及所选择的提示策略如何影响它们在这两项任务中的性能。最后,我们深入分析了对LLMs的数据投毒攻击如何影响上述任务的性能。

🔬 方法详解

问题定义:论文旨在系统性地研究大型语言模型(LLMs)在代码安全领域的应用,特别是关注LLMs在代码生成、漏洞检测和漏洞修复三个方面的表现。现有方法在使用LLMs时存在潜在的安全风险,例如LLMs可能引入新的漏洞,或者在检测和修复漏洞时出现错误。此外,数据投毒攻击也可能影响LLMs的性能。

核心思路:论文采用系统性文献综述(SLR)的方法,对现有研究进行梳理和分析,从而全面了解LLMs在代码安全领域的优势和不足。通过分析不同类型的漏洞、不同的提示策略以及数据投毒攻击的影响,为未来研究提供指导。

技术框架:该研究的技术框架主要包括以下几个步骤: 1. 确定研究问题:明确LLMs在代码安全领域的研究重点,例如LLMs引入的漏洞类型、LLMs检测和修复漏洞的能力等。 2. 文献检索:系统性地搜索相关文献,包括学术论文、技术报告等。 3. 文献筛选:根据预定的标准筛选文献,确保文献与研究问题相关。 4. 数据提取:从筛选出的文献中提取相关数据,例如漏洞类型、提示策略、性能指标等。 5. 数据分析:对提取的数据进行分析,总结LLMs在代码安全领域的优势和不足。 6. 结果呈现:以系统性文献综述的形式呈现研究结果。

关键创新:该研究的关键创新在于对LLMs在代码安全领域的应用进行了全面的系统性分析,涵盖了代码生成、漏洞检测和漏洞修复三个方面。此外,该研究还深入探讨了数据投毒攻击对LLMs性能的影响,这在现有研究中较少涉及。

关键设计:论文的关键设计在于采用了系统性文献综述的方法,确保研究的全面性和客观性。通过预先定义的研究问题、文献检索策略和筛选标准,避免了主观偏差。此外,论文还对提取的数据进行了详细的分类和分析,从而为读者提供了深入的了解。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

该综述总结了LLMs在代码安全领域的现有研究,揭示了LLMs在代码生成时可能引入的多种漏洞类型,分析了不同提示策略对LLMs漏洞检测和修复能力的影响,并深入探讨了数据投毒攻击对LLMs性能的潜在威胁。这些发现为未来研究提供了重要的参考。

🎯 应用场景

该研究成果可应用于软件开发的安全保障,帮助开发者更好地利用LLMs进行代码生成和漏洞修复,同时避免引入新的安全风险。研究结果还可以指导LLMs的训练和优化,提高其在代码安全领域的性能。此外,该研究对于防范数据投毒攻击具有重要意义。

📄 摘要(原文)

Large Language Models (LLMs) have emerged as powerful tools for automating various programming tasks, including security-related ones, such as detecting and fixing vulnerabilities. Despite their promising capabilities, when required to produce or modify pre-existing code, LLMs could introduce vulnerabilities unbeknown to the programmer. When analyzing code, they could miss clear vulnerabilities or signal nonexistent ones. In this Systematic Literature Review (SLR), we aim to investigate both the security benefits and potential drawbacks of using LLMs for a variety of code-related tasks. In particular, first we focus on the types of vulnerabilities that could be introduced by LLMs, when used for producing code. Second, we analyze the capabilities of LLMs to detect and fix vulnerabilities, in any given code, and how the prompting strategy of choice impacts their performance in these two tasks. Last, we provide an in-depth analysis on how data poisoning attacks on LLMs can impact performance in the aforementioned tasks.