针对黑盒代码补全引擎的实际攻击

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

本文提出了一种自动发现黑盒生成模型安全漏洞的方法,研究了代码生成模型的安全性,发现其易受攻击。通过分析现有防御方法的局限性,提出了增强代码安全性的策略,并开发了漏洞分析系统SecRepair,帮助开发者识别和修复代码漏洞。研究强调了改进大型语言模型训练和使用方法的重要性,以实现更安全的模型部署。

🔎

延伸解读

黑盒攻击的现实威胁

文章指出,黑盒代码补全引擎如GitHub Copilot存在安全漏洞,攻击者可利用少量提示进行黑盒逆转,自动发现上千个漏洞。这提醒开发者,即使无法访问模型内部,攻击仍可能发生,需对代码生成结果保持警惕。

现有防御的局限性

文章分析了现有防御方法的不足,并评估了Prompt修改方法,结果显示可减少不安全代码样本高达16%,增加安全代码高达8%。这表明单纯修改提示虽有效但有限,需结合其他策略如SecRepair等漏洞分析系统。

SecRepair与增强学习

SecRepair是一个由CodeGen2支持的漏洞分析系统,利用增强学习和语义奖励机制生成代码评论,帮助开发者识别和修复漏洞。这展示了将增强学习与语义奖励结合可提升模型处理漏洞的能力,为安全代码生成提供新思路。

训练数据与安全部署

文章强调,LLMs使用GitHub等未过滤数据训练可能传播漏洞。现有模型常忽视安全问题,修复漏洞代码也存在挑战。因此,改进训练和使用方法,如引入SecuCoGen数据集,对实现更安全、可信的模型部署至关重要。

❓

Q&A

黑盒生成模型的安全漏洞是如何被发现的?

通过一种自动发现的方法,能够系统地识别黑盒生成模型中的安全漏洞,包括商业模型如GitHub Copilot。

代码生成模型面临哪些安全风险?

代码生成模型易受数据干扰和模型干扰攻击,导致在自动建议代码时存在风险。

现有的防御方法存在哪些局限性?

现有防御方法未能有效应对黑盒攻击和安全漏洞,需提出新的策略来增强安全性。

SecRepair系统的功能是什么?

SecRepair是一个漏洞分析系统,帮助开发者识别和修复代码漏洞,并利用增强学习提高处理能力。

如何评估Prompt修改方法的有效性?

通过实际场景测试,结果显示Prompt修改方法可减少不安全生成代码样本的数量,并增加安全代码的数量。

大型语言模型在代码生成中存在哪些安全问题?

大型语言模型在训练中使用未经筛选的数据,可能传播安全漏洞,且在代码生成中常常忽视安全问题。

🏷️

标签

➡️

继续阅读