- 简介最近,面向代码的大型语言模型(Code LLMs)已被广泛且成功地用于简化和便利代码编程。使用这些工具,开发人员可以根据不完整的代码和自然语言提示轻松生成所需的完整功能代码。然而,一些先驱性的研究揭示了这些Code LLMs也容易受到攻击,例如后门和对抗性攻击。前者可以通过污染训练数据或模型参数诱导LLMs响应触发器插入恶意代码片段,而后者可以制作恶意对抗性输入代码以降低生成代码的质量。然而,这两种攻击方法都有一定的局限性:后门攻击依赖于控制模型训练过程,而对抗性攻击则难以实现特定的恶意目的。为了继承后门和对抗性攻击的优点,本文提出了一种新的攻击范式,即针对特定目标的对抗性提示注入(TAPI),针对Code LLMs。 TAPI生成包含有关恶意指令的不可读注释,并将其隐藏为外部源代码中的触发器。当用户利用Code LLMs完成包含触发器的代码时,模型将在特定位置生成攻击者指定的恶意代码片段。我们在三个代表性的恶意目标和七个案例下对四个代表性LLMs进行了TAPI攻击的评估。结果表明,我们的方法具有高度的威胁性(攻击成功率高达89.3%)和隐蔽性(在触发器设计中平均节省53.1%的标记)。特别是,我们成功攻击了一些著名的部署代码完成集成应用程序,包括CodeGeex和Github Copilot。这进一步证实了我们攻击的现实威胁。
- 图表
- 解决问题本文试图提出一种新的攻击方法,即目标特定的对抗性提示注入(TAPI),以针对代码大语言模型(Code LLMs)进行攻击。该攻击方法旨在结合了后门攻击和对抗性攻击的优点,能够在代码中注入恶意代码,并达到特定的攻击目的。
- 关键思路TAPI攻击方法的关键思路是在代码中插入无法读取的注释,将恶意代码片段作为触发器隐藏在外部源代码中。当用户使用Code LLMs来完成代码时,模型将在特定位置生成攻击者指定的恶意代码片段。
- 其它亮点本文评估了TAPI攻击方法在四个代表性LLMs上的三个代表性恶意目标和七个案例中的攻击效果。结果表明,该方法具有高度威胁性(攻击成功率高达89.3%)和隐蔽性(在触发器设计中平均节省53.1%的标记)。此外,本文成功攻击了一些著名的部署代码完成集成应用程序,包括CodeGeex和Github Copilot。
- 最近的相关研究主要集中在代码LLMs的安全性和攻击方法上。例如,有关后门攻击和对抗性攻击的研究。其中一些研究包括“ BadNL”(ICLR 2020),“ Code Poisoning”(CCS 2020)和“ Code Injection Attacks”(ICLR 2021)。
沙发等你来抢
去评论
评论
沙发等你来抢