Constrained Decoding for Secure Code Generation

2024年04月30日
  • 简介
    代码大型语言模型(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,等等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问