本文研究了神经代码自动完成器(基于Pythia和GPT-2的新型自动完成系统)面临的数据投毒和模型投毒攻击。代码自动完成是现代IDE的核心功能,最新一代自动完成器使用在公开开源代码上训练的神经语言模型,根据当前上下文提供智能建议。研究发现,攻击者可以通过向训练语料中添加少数精心构造的恶意文件(数据投毒)或直接在恶意文件上微调自动完成器(模型投毒),使其在特定上下文中推荐不安全代码,例如AES加密的不安全ECB模式、SSL/TLS协议的SSLv3版本、或密码加密的低迭代次数。进一步地,攻击可以具有针对性:定向投毒后,自动完成器对来自特定仓库或特定开发者的文件更可能推荐不安全的补全。实验量化了定向和非定向数据投毒与模型投毒攻击的有效性,并测试了现有防御(如基于困惑度的过滤、差分隐私训练),发现它们基本无效。论文揭示了神经代码自动完成系统的新型供应链安全风险,并强调了开发鲁棒性防御的紧迫性。
💡 推荐理由: 如果攻击成功,开发者使用的IDE可能被恶意植入不安全代码建议,导致软件供应链中毒。这对依赖代码自动完成提高生产力的开发团队构成直接威胁,且现有防御手段不足。
🎯 建议动作: 研究跟进