- 简介代码大型语言模型(Code LLMs)越来越被开发人员用来提高生产力,但它们往往会生成易受攻击的代码。因此,迫切需要确保Code LLM生成的代码是正确和安全的。以往的研究主要集中在生成安全的代码上,忽略了安全代码也需要正确的事实。这种疏忽可能导致一种虚假的安全感。目前,社区缺乏一种衡量这一领域实际进展的方法,我们需要解决方案来同时解决代码生成的安全性和正确性问题。 本文引入了一个新的基准,CodeGuard+,以及两个新的度量标准,secure-pass@k和secure@$k_{\text{pass}}$,来衡量Code LLM生成安全和正确代码的能力。使用我们的新评估方法,我们展示了最先进的防御技术,前缀调整,可能并不像以前认为的那样强大,因为它生成的代码是安全的,但牺牲了功能正确性。我们还证明了不同的解码方法显着影响Code LLM的安全性。 此外,我们探索了一种新的防御方向:约束解码以生成安全代码。我们提出了新的约束解码技术,以同时生成满足安全性和正确性约束的代码。我们的结果表明,约束解码比前缀调整更有效地提高Code LLM的安全性,而不需要专门的训练数据集。此外,约束解码可以与前缀调整一起使用,进一步提高Code LLM的安全性。
-
- 图表
- 解决问题如何确保Code LLMs生成的代码既安全又正确?现有研究主要关注生成安全代码,而忽略了正确性的重要性,本文提出了新的评估方法和基准测试CodeGuard+,以同时衡量Code LLMs生成安全和正确代码的能力。
- 关键思路本文提出了一种新的解决方案——约束解码技术,以同时满足安全性和正确性约束条件。相比当前领域的研究,这种解决方案具有更好的效果。
- 其它亮点本文提出了新的评估方法和基准测试CodeGuard+,并发现当前最先进的防御技术——前缀调整,虽然生成了安全代码,但牺牲了功能正确性。此外,本文还开发了约束解码技术,用于生成同时满足安全性和正确性约束条件的代码,结果表明该技术比前缀调整更有效,而且不需要专门的训练数据集。
- 最近的相关研究包括:Towards Debiasing Code Generation for Security Applications using GANs,Towards Verifying Deep Neural Networks with Formal Methods,Learning to Protect Communications with Adversarial Neural Cryptography,等等。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流