中文

面向LLM代码补全的黑盒对抗攻击

密码学与安全 2025-06-16 v2 机器学习 编程语言 软件工程

摘要

受大型语言模型(LLM)驱动的代码补全引擎已帮助数百万开发者解决了强大的功能正确代码生成能力。鉴于这种流行性,调查依赖LLM代码补全的安全性影响至关重要。在本工作中,我们演示了能够通过窃取方式操控LLM代码补全引擎,显著增加其不安全代码生成率的能力。我们提出了首个名为INSEC的攻击,以实现此目标。INSEC通过在完成输入中注入作为短注释的攻击字符串来实现。该攻击字符串通过从一组精心设计的初始化方案开始的查询基于优化程序制作。我们通过在各种最先进的开源模型和黑盒商业服务(如OpenAI API和GitHub Copilot)上进行评估,展示了INSEC的广泛适用性和有效性。在覆盖16个CWEs且跨5种编程语言的多样化安全关键测试案例上,INSEC将不安全代码的生成率提高了50%以上,同时保持了生成代码的功能正确性。我们认为INSEC是实用的——它需要较少的资源,在廉价硬件上开发成本不足10美元。此外,我们展示了该攻击的实际可部署性,通过开发一个IDE插件来窃取地将INSEC注入GitHub Copilot扩展中。

关键词

引用

@article{arxiv.2408.02509,
  title  = {Black-Box Adversarial Attacks on LLM-Based Code Completion},
  author = {Slobodan Jenko and Niels Mündler and Jingxuan He and Mark Vero and Martin Vechev},
  journal= {arXiv preprint arXiv:2408.02509},
  year   = {2025}
}