中文

从孤立指令到互动鼓励!基于自然语言提示的 LLM 安全代码生成

密码学与安全 2024-10-21 v1 编程语言 软件工程

摘要

大型语言模型(LLMs)在代码生成方面显示出惊人的潜力,使其在领域中日益重要。然而,生成代码的安全问题尚未得到充分关注,LLMs 在代码生成中的可用性仍需要进一步探索。本工作引入 SecCode 框架,利用创新的互动鼓励提示技术(EP),实现仅使用自然语言(NL)提示的安全代码生成。这种方法确保提示可以轻易共享和被一般用户理解。SecCode 通过三个阶段运行:1) 使用 NL 提示生成代码;2) 利用我们提出的鼓励提示进行代码漏洞检测和修复;3) 漏洞交叉检查和代码安全细化。这三个阶段在多个互动迭代中执行,以逐步增强安全性。通过使用专有 LLMs(如 GPT-3.5 Turbo、GPT-4 和 GPT-4o)和开源 LLMs(如 Llama 3.1 8B Instruct、DeepSeek Coder V2 Lite Instruct),在三个基准数据集上进行实验,大量实验结果表明,我们提出的 SecCode 在与基线方法相比方面显著优于后者,生成安全代码的高漏洞修复率令人瞩目。例如,SecCode 在运行 5 次自动 EP 互动迭代后显示出超过 76% 的高修复成功率,在运行 10 次自动 EP 互动迭代后显示出超过 89% 的高修复成功率。就本人知识而言,本工作是首次仅使用 NL 提示来制定安全代码生成。我们已开源代码,并鼓励社区关注安全代码生成。

关键词

引用

@article{arxiv.2410.14321,
  title  = {From Solitary Directives to Interactive Encouragement! LLM Secure Code Generation by Natural Language Prompting},
  author = {Shigang Liu and Bushra Sabir and Seung Ick Jang and Yuval Kansal and Yansong Gao and Kristen Moore and Alsharif Abuadbba and Surya Nepal},
  journal= {arXiv preprint arXiv:2410.14321},
  year   = {2024}
}