下次当 AI 助手推荐安装某个软件包时,你会检查它是否真的存在吗?大多数开发者不会。推荐和验证之间的这个鸿沟正是域名抢注攻击的源头。在不到三年的时间里,这种威胁已经从研究人员的概念验证演变为在自主编码代理内部执行远程代码。本文将追溯域名抢注攻击的演变历程,并分析每个阶段对应用安全和 DevSecOps 团队的意义。
刚来?请先阅读我们的入门指南。 什么是“懒散占地”以及如何防范这种行为然后回来查看时间线。
一段关于蹲踞攻击的描述
一次蹲姿攻击 以人工智能模型可以预测地臆造出的名称注册恶意软件包。 拼写错误抢注利用了人类的拼写错误 请求 HPMC胶囊 要求“域名抢注”攻击利用了这种模式本身的漏洞,即先编造一个看似合理但实际上并不存在于任何域名注册商名下的域名,然后攻击者抢先一步抢注该域名,抢在任何合法用户之前注册。这个术语由Python软件基金会的常驻安全开发人员Seth Larson创造,并由Andrew Nesbitt推广开来。这种攻击模式值得关注的原因在于它发展迅速。
懒人棚屋的演变
2023年:第一个警告信号
安全研究员巴尔·拉尼亚多注意到,一些LLM(法学硕士)不断推荐一个名为“ 拥抱脸-cli该工具并不存在(真正的工具是通过安装方式安装的)。 pip install -U “huggingface_hub[cli]”为了演示这种风险,他用这个虚构的名字上传了一个空软件包。三个月内,该软件包在没有任何推广的情况下被下载了超过30,000万次,这个虚假名称甚至出现在一家大型科技公司研究相关的代码库的README文件中。软件包本身并无害处。但教训却不容忽视:一个虚构的名字只要足够逼真,就足以被他人利用。
2024年:从博客文章到主流媒体报道
2024年3月,《The Register》报道了人工智能模型能够自信地生成软件包名称,而开发者随后下载这些软件包,其中一些可能已被植入恶意软件。这篇报道的意义不在于它揭示了什么技术细节,而在于它发出的信号: 拥抱脸-cli 这不再是一次性的奇闻异事,而是主流科技媒体开始关注的严重模式的第一个迹象,一年后,一项大规模研究证实了这一模式的严重性。
2025年:首次严格测量
USENIX Security 2025 的论文《我们为您准备了一套方案!》(Spracklen 等人)测试了 16 种代码生成模型(包括商业和开源模型),测试对象涵盖 576,000 个 Python 和 JavaScript 示例。该论文将“代码滥用”现象从轶事变成了数据:
- 19.7% 的推荐套餐不存在。
- 开源模型出现幻觉的频率(平均为 21.7%)远高于商业模型(5.2%)。
- 其中最严重的两个程序 CodeLlama 7B 和 34B 在超过三分之一的输出中出现了幻觉。
- 在所有模型中,研究人员记录了超过 205,000 个独特的幻觉名称,这个庞大的数据库足以支持跨生态系统的持续活动。
该研究还对假冒产品的形成方式进行了分类:38%是将两个真实的包装名称合并而成(这正是后来出现的假冒产品所采用的模式)。 react-codeshift ,来自 代码转换 和 react-codemod其中13%是真实包装的拼写错误变体,51%是纯粹捏造的,虽然听起来合情合理,但完全是虚构的。第一类对国防至关重要,因为用两个真实工具的名称拼凑而成的名称最难一眼识别。
对攻击者而言,最重要的发现是:幻觉并非随机出现,而且每次尝试的结果都不一样。研究人员对相同的提示重复运行十次,发现43%的幻觉名称每次都出现,58%的名称重复出现不止一次。攻击者无需猜测。他们观察模型行为,记下反复出现的名称,并优先识别它们。正是这种可重复性,使得一次性的幻觉能够演变成可扩展的攻击。
2026年:从孤立包裹到自主代理
今年出现了迄今为止最确凿的证据,表明“草率占位”不再局限于开发者复制粘贴推荐内容。 npm安装.
2026年1月,安全研究员查理·埃里克森发现了一个幻觉般的npm包, react-codeshift据称,人工智能生成的代理指令已经通过分支传播到 237 个代码库中,而且代理仍然每天都在尝试安装它。它起源于一个 commit 这些人工智能编写的代理技能文件未经任何人工审核。埃里克森出于防御目的,在攻击者利用该名称作恶之前,自行注册了这个名称。
另外,还有一个名为“恶意软件”的真正恶意软件包 未使用的导入以幻觉代替了合法的 eslint-plugin-unused-imports即使 npm 将其置于安全保留状态,它仍然不断吸引安装,这表明即使被标记,抢注攻击仍然可以持续找到受害者很长时间。
随后,在2026年7月,研究人员描述了一种名为“HalluSquatting”的相关技术,该技术将幻觉与提示注入相结合:代表用户获取幻觉资源的AI编码代理可能被劫持,从而运行攻击者提供的代码。这使得“slopsquatting”的演变从被动安装风险扩展到在智能体开发工作流程中主动执行远程代码。
为什么“氛围编码”扩大了攻击面
如果人工智能生成的代码只是小众领域,那么恶意抢占代码库的问题就无关紧要了。但事实并非如此。编码助手、自主代理以及“直觉编码”工作流程的兴起(在这种工作流程中,开发者在运行代码之前审查的代码量减少),已经从两个方面切实地改变了攻击面。
首先,攻击的入口不再仅仅是开发者。过去域名抢注攻击依赖于一个人的拼写错误。而现在,错误源于模型内部,并传播给数百名提出类似问题并得到相同错误建议的开发者。
其次,攻击面向上转移。仅仅监控人编写的代码已经不够了。团队必须监控 AI 助手建议的依赖项、它连接的 MCP 服务器,以及在无人干预的情况下安装软件包的代理。传统的应用安全策略是审查代码库和人工干预。 commits 的设计初衷并非为了观察开发者、人工智能和注册机构之间的这种互动,而这正是域名抢注如今藏匿之处。
这对预防工作意味着什么?
这一切并不意味着生成式人工智能本身就不安全。它引入了一种供应链风险,而传统工具无法应对这种风险,因此需要我们遵循已经应用于任何外部依赖项的验证原则:不要默认信任,要验证来源,并且要自动化验证过程,而不是依赖每个开发人员的记忆。完整的防御策略请参阅我们的指南。 人工智能供应链安全但简而言之,人工验证虽然仍然是必要的,但一旦一个虚构的名字可以同时被成千上万的开发者看到,或者代理可以在完全没有人工审核的情况下安装它,人工验证就无法扩展了。
在代理人安装之前阻止幻觉包裹
这2026个案例有一个共同点:危险的安装过程无人参与。这正是问题的关键所在。 西吉尼 Shield 是为……而建的。 Shield 是一个轻量级代理,部署在开发者的终端上,可以在安装时阻止恶意软件包。 恶意软件预警 (MEW) 在任何签名存在之前就已生效的判决。当人工智能助手或自主代理试图安装一个虚构的、新注册的软件包时, Shield 它会在获取数据时对其进行评估并阻止它,因此无论是否有人在监视,安装脚本都不会运行。每个阻止操作都会流入同一个流程。 西吉尼 控制台会显示您的代码、构建和运行时发现结果,以及 Shield 它与您现有的EDR系统并行运行,而不是与之对抗。
免费开始。 Xygeni 的开发者计划是 0 欧元:10 个存储库,每月 200 次扫描,最多 5 个贡献者,无需信用卡。 Sign up with GitHub使用 GitLab 或 Google,并在 10 分钟内运行您的首次扫描; Shield 终端安全保护功能即将加入开发者计划。
常见问题解答
包管理器能否自行防止恶意占位?
不完全如此。npm 的冲突检测机制会阻止与现有包名过于相似的包名,这有助于防止域名抢注,但伪造的包名是一个全新的字符串,无法检测到冲突。如果攻击者在开发者安装之前注册了伪造的包,安装过程会顺利完成,因为该包确实存在。因此,预防措施需要验证包的来源和行为,而不仅仅是依赖注册表自身的检查。
2026 年的代理人案件与之前的非法占屋案件有何不同?
早期的攻击事件依赖于人工复制粘贴建议的安装命令。而在2026年的案例中,自主代理在无人审核的情况下安装或试图安装虚构的软件包,而HalluSquatting技术更进一步,将虚构的软件包与提示注入相结合,从而在代理的工作流程中实现远程代码执行。







