跳到主内容
快讯直播
AI智模界
AI 词典

Slopsquatting:模型编的包名,为何会装进你电脑

Slopsquatting(幻觉包名投毒)指的是:攻击者把大语言模型(LLM)写代码时凭空编造出来的、现实中并不存在的软件包名,抢先到公共代码仓库注册成同名恶意包,等着那些照着 AI 建议去安装依赖的人自投罗网。

模型为什么会"编"出一个包名

模型生成代码时不是在数据库里查,而是在按概率往下接。它见过的命名风格太多了——fast-json-parsereasy-weather-api 这种名字一看就"很真",于是它会把格式正确、风格地道、但根本没人发布过的包名写得斩钉截铁,语气和写 requests 时一模一样。

关键在于:同一个模型面对相似的问题,编出来的名字往往高度重复。概率分布相对稳定,幻觉也就相对稳定。这让攻击者可以批量收集这些"高频幻觉名",一次性抢注——一个偶发错误,变成了一条可预测、可规模化的攻击面。

打个生活化的比方

AI 像个特别自信但不认路的向导:"往前走两百米,有家老张面馆,你去那儿吃。"其实压根没有这家店。骗子发现每天有成千上万人被指向同一个店名,就去那个位置挂上"老张面馆"的招牌。你按图索骥走过去,门脸、招牌都对得上,于是推门进去——里面卖的是什么,就不由你决定了。

装上之后会发生什么

开发者把 AI 给的命令原样复制到终端,包管理器确实下载成功了,于是更不会怀疑。而多数生态的包在安装阶段就能执行脚本(具体默认行为以各包管理器官方文档为准),恶意代码可以读取环境变量、云平台凭证、CI 令牌、SSH 私钥,然后悄悄外发。它绕过了代码审查——因为问题不在你的代码里,在你依赖的名字里。

和相邻概念的区别

名称被利用的"错误来源"典型场景
Typosquatting 错字抢注人打字打错requests 拼错装成山寨包
Dependency Confusion 依赖混淆包管理器的解析优先级内部私有包名被公共仓库同名包抢占
Slopsquatting 幻觉包名投毒模型编造不存在的名字照抄 AI 给的包名直接安装

前两者赌的是人的手误或构建配置,Slopsquatting 赌的是人对 AI 的信任。

对从业者和普通人的意义

对工程师:AI 给的每一个依赖名,装之前先去官方仓库搜一遍,看它是否存在、维护者是谁、首次发布时间、有没有对应源码仓库。组织层面可以把依赖收进私有镜像或代理仓库、只放行白名单包、在 CI 里做依赖审核并生成 SBOM,必要时关闭安装脚本的自动执行。具体开关和配置以各工具官方页面为准。

对普通职场人:让 AI 帮你写脚本、装工具时,别把带 sudo 的命令无脑粘贴执行。多花十秒确认一下"这个东西真的存在吗",比事后换密钥便宜得多。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。