NameTrap:通过变量名将 AI 编码 Agent 引向安全漏洞
NameTrap: Steering AI Coding Agents Toward Security Vulnerabilities via Variable Names
论文速读
据论文全文整理(AI 生成),以原文为准
研究者提出 NameTrap,一种仅重命名第三方 Python 文件中的标识符、不插入指令或漏洞语句的源码投毒攻击,可诱导 AI 编码 Agent 生成含指定 CWE 漏洞的代码。
- AI 编程 agent 会从 Web 克隆仓库、安装包并读取源码,这些外部代码成为其生成代码的上下文。作者提出,攻击者无需注入任何指令,仅靠第三方 Python 文件中的标识符命名,就可能把 agent 引向指定的 CWE 漏洞。
- NameTrap 让攻击方 agent 按 CWE 专属命名约定迭代重命名不完整文件中的标识符,每轮用本地 probe 补全并用 Bandit/Semgrep 扫描确认是否触发目标 CWE,首个成功且通过仅标识符校验的候选作为 bait 发布,bait 本身不含指令也不含漏洞语句。
- 在 6 个 coding agent、10 个 LLM、4 类 CWE 上,整体 ASR 为 22.5%–56.0%,部分 agent–model 组合达 75.0%,优于随机重命名、中性重命名和 XOXO;攻击在繁体中文 prompt 下仍有效、可跨模型迁移,安全提醒防御不能稳定阻止,7 个 AI/静态分析器对 bait 中目标 CWE 的检出率均为 0。
- 作者指出需将攻击扩展到其他编程语言和 CWE 类别,并开发能显式推理标识符所编码信任假设的 identifier-aware 防御;防御方向还包括把第三方代码标识符视为不可信输入、对 agent 生成的改动做安全分析并记录其依赖的外部文件。
研究者提出 NameTrap,一种仅重命名第三方 Python 文件中的标识符、不插入指令或漏洞语句的源码投毒攻击,可诱导 AI 编码 Agent 生成含指定 CWE 漏洞的代码。研究在六款编码 Agent、十款 LLM 和四类 CWE 上评估,总体攻击成功率为 22.5%–56.0%,个别 Agent–模型组合达到 75.0%,高于随机重命名、中性重命名和 XOXO 的 2.1%。攻击在繁体中文提示下仍然有效并可跨模型迁移,提示词中的安全提醒未能稳定阻止,七款 AI 与静态分析器对投毒文件的目标 CWE 检出率均为 0。
推荐理由研究在六款编码 Agent 和十款模型上验证仅改变量名即可诱导指定 CWE 漏洞,七款检测工具均未报警。