研究人员近期发现一种针对 AI驱动开发工作流 的全新供应链攻击手法,攻击者通过利用编码代理(coding agents)“幻觉式生成”(hallucination)不存在的软件包名的特性,将恶意代码伪装为依赖项进行投递。
这种新型攻击方式被命名为“Slopsquatting”,是对传统“typosquatting”(打字错误诱导安装恶意包)手法的变种,专门瞄准当前广泛使用 AI 编码助手的自动化开发流程。
Slopsquatting 威胁原理解析
Slopsquatting 的本质在于攻击者利用 AI 编码助手生成虚构包名的漏洞,以此诱导开发者在不知情的情况下安装恶意依赖包。
不同于传统 typosquatting 针对的是用户拼写错误,slopsquatting 直接利用 AI 生成的**“合理但并不存在”的包名**,例如在生成代码时建议使用 graphorm
这样的虚构依赖。
攻击流程通常如下:
-
攻击者通过分析主流 AI 编码助手的“幻觉模式”;
-
提前在 PyPI 等公共仓库中注册这些虚构包名;
-
当开发者运行 AI 自动生成的
pip install xxx
命令时,即会从攻击者控制的包中下载安装并执行恶意代码。
研究人员在一次实验中观察到,一款先进的编码代理生成了一个看起来完全合理但不存在的包名,最终导致构建失败。而更严重的风险在于:一旦攻击者提前注册这些包名,AI 建议就可能直接转化为供应链入侵。
多平台存在幻觉包名漏洞
研究团队对多个 AI 编码平台的“幻觉率”进行了分析,涉及:
-
Anthropic 的 Claude Code CLI
-
OpenAI 的 Codex CLI
-
集成 Model Context Protocol (MCP) 验证机制的 Cursor AI
测试结果发现:
-
基础模型在面对复杂任务时更容易产生 2~4 个虚构包名,尤其在生成多库组合代码时,倾向于将“graph”“orm”“lib”等熟词拼接为看似真实的名字。
-
高级编码代理具备更强的推理能力与上下文识别,幻觉率比基础模型低约 50%,但仍在部分场景中(如上下文补全、名称拟态)出现漏洞。
-
即便是具备实时验证机制的 Cursor AI,也会在跨语言生态或词素拼接(如从 JavaScript 借用 Python 包名结构)等边界场景下遗漏异常。
防护建议:构建多层次依赖安全机制
为防范此类 AI 驱动的供应链攻击,研究人员提出以下安全对策:
-
启用软件物料清单(SBOM):追踪依赖来源,形成审计链。
-
使用依赖漏洞扫描工具:如 Safety CLI,可在安装前检测已知漏洞(CVE)。
-
强制 AI 生成命令在隔离环境中执行:例如通过临时 Docker 容器或虚拟机完成依赖安装,避免污染主机。
-
加入“即时包验证”机制:在 AI 生成代码前,通过 prompt 驱动查询包名是否真实存在。
-
人工审批流程:对不熟悉的包进行人工复核,避免完全依赖自动化流程。
-
沙箱运行与网络限制:可使用托管云沙箱,并设置网络出口控制,降低攻击成功率。
-
全面日志审计与行为监控:记录安装命令及相关操作,监测异常模式。
随着 AI 编码助手的广泛应用,slopsquatting 正式成为自动化开发流程中的新型供应链风险点。尽管目前的 AI 工具有所进步,能一定程度减少“幻觉包名”的生成,但这一风险并未根除。
组织应认识到:简单的包名存在性查询不足以构成安全防线,必须将依赖解析与验证视为可审计的安全流程,从根源上降低被入侵的风险。
这一研究为开发团队敲响了警钟:AI 生成代码带来的便利,不能以牺牲供应链安全为代价。
发表评论
您还未登录,请先登录。
登录