“你仍然需要学习”——关于大语言模型生成代码的安全性
大型语言模型(LLMs)在代码生成方面取得了显著进展,但它们的训练使用了来自开源代码库(如GitHub)的未经筛选的数据,存在意外传播安全漏洞的风险。为了有效地减轻这一问题,本文从软件安全的角度对代码LLMs进行了全面研究,并提出了SecuCoGen数据集,用于评估和增强代码LLMs的安全性能。研究结果发现,现有模型在代码生成中经常忽视安全问题,提出了有效的方法来解决安全漏洞,并提高代码的整体稳健性。此外,研究还发现现有模型在修复漏洞代码方面存在问题,并且某些漏洞类型对模型构成挑战。基于这些发现,我们相信本研究将对软件工程社区产生积极影响,激发改进LLMs训练和使用方法的开发,从而实现更安全、更可信的模型部署。
Oct, 2023
作者描述了一个名为SALLM的框架,用于系统地评估大型语言模型生成安全代码的能力,该框架包括一个安全中心的Python提示的新数据集,一个用于测试生成代码的评估环境,以及用于从安全代码生成的角度评估模型性能的新度量标准。
Nov, 2023
使用静态代码分析工具Bandit的反馈驱动解决方案综合(FDSS)对大型语言模型(LLMs)进行改进,通过与LLMs交互生成潜在解决方案来修复安全漏洞,该方法在基准测试中显著改善并超过现有方法,并引入了新的PythonSecurityEval数据集进行评估。
Nov, 2023
论文研究了大型语言模型(LLMs)在学术软件工程项目中的实用性,包括AI生成的代码、代码生成的提示以及将代码集成到代码库中的人工干预水平。研究结果表明,LLMs在软件开发的早期阶段,特别是在生成基础代码结构和语法、错误调试方面,可以发挥重要作用。这些发现为我们提供了一个有效利用LLMs提高软件工程学生的生产力的框架,并强调了将教育重点转向为学生成功进行人工智能协作的必要性。
Jan, 2024
应用大型语言模型进行安全代码审查时,其生成的回复通常存在冗长、含糊和不完整等问题,需要提高其简练性、可理解性和安全缺陷检测的合规性。本研究比较了三种先进的大型语言模型在549个包含安全缺陷的真实代码审查文件上的五个提示下的检测性能,通过分析最佳性能的大型语言模型-提示组合产生的82个回复中100个随机选择的代码文件,提取和分类了这些回复中存在的质量问题,总结出5个主题和16个类别。该研究揭示了大型语言模型生成的回复在安全代码审查中的不足之处,并为未来优化大型语言模型以更好地完成这一任务铺平了道路。
Jan, 2024
大型语言模型(Large Language Models,LLMs)被广泛应用于各种应用中,代码生成作为一个显著例子。本文聚焦于确定和理解在真实场景中,LLMs可有效且安全地用于生成高质量代码的条件和环境。通过对四个先进的LLMs(GPT-3.5和GPT-4,ChatGPT,Bard和Gemini)进行比较分析,使用9个不同任务评估每个模型的代码生成能力。我们将研究情境化,以代表日常工作中开发人员使用LLMs执行常见任务的典型用例。此外,我们强调安全意识,通过使用我们的开发者角色的两个不同版本来表示。总共我们收集了61个代码输出并分析了其功能性、安全性、性能、复杂性和可靠性等方面。这些洞见对于理解模型的能力和限制非常重要,并指导未来在自动化代码生成领域的开发和实际应用。
Feb, 2024
大规模语言模型(LLMs)在代码生成和修复方面取得了重大进展,但它们使用来自GitHub等开源存储库的未经过滤的数据进行训练可能会传播安全漏洞。本文旨在全面评估和增强代码LLMs的安全性,并提出了不同策略来减轻这些安全漏洞。
Jul, 2024
研究通过不同的提示技术研究了大型语言模型在从自然语言生成的代码安全性方面的影响,发现采用递归批评和改进技术后测试的大型语言模型中的安全弱点有所减少,为关于大型语言模型生成的代码安全性的讨论贡献了有价值的见解。
Jul, 2024
LLM-based编程助手可以加快编程速度,但可能引入更多安全漏洞。我们介绍了恶意编程提示(MaPP)攻击,通过向编程任务的提示中添加少量文本(小于500字节),我们展示了我们的提示策略如何使LLM在编写其他正确代码的同时添加漏洞。我们在七个常见LLM上评估了三个提示,并使用HumanEval基准测试发现我们的提示在广泛范围内有效,不需要针对不同LLM进行定制化。此外,最适合HumanEval的LLM也最适合遵循我们的恶意指令,这表明简单扩展语言模型无法防止MaPP攻击。通过16种情景中八个CWE的数据集,我们发现MaPP攻击在各种模型上实施特定和有针对性的漏洞也是有效的。我们的工作强调了保护LLM提示免受操纵的需求,并且需要对借助LLMs生成的代码进行严格审计。
Jul, 2024