LLMO 滥用:污染软件包文档以欺骗 AI 编程智能体
ReversingLabs 2026 年 6 月的 PromptMink 报告显示,某朝鲜相关组织通过编写 npm 软件包文档使其对 LLM 编程智能体显得权威可信,从而诱导智能体推荐并安装恶意依赖。
这是什么?
2026 年 6 月,ReversingLabs 发布了一份研究,披露了一场被其命名为 PromptMink 的供应链攻击活动,并将其归因于与朝鲜相关的组织 Famous Chollima。真正新颖之处不在于恶意软件本身,而在于攻击目标。攻击者不再欺骗人类开发者,而是精心撰写软件包文档,以说服大语言模型相信该软件包正是当前任务所需的依赖。ReversingLabs 将该技术称为 LLM 优化(LLMO)滥用与知识注入。用他们的话说,其目标是”通过让文档尽可能可信、并尽可能贴合特定 LLM 编程智能体正在处理的项目,使 LLM 倾向于推荐使用该恶意软件包”。本文是对某一攻击类别的说明,而非可直接利用的攻击手册。
这一活动并非纸上谈兵。ReversingLabs 将恶意载荷软件包追溯至 2025 年 9 月至 10 月,并确认它们已触及真实的智能体:2026 年 2 月 28 日,开源加密货币交易智能体 openpaw-graveyard 的一次提交添加了诱饵依赖,而该提交由 Claude Opus 共同署名。第二起案例出现在一个 LLM 智能体发布其工作的平台上——一个机器人解释说,它使用了其中一个诱饵软件包,因为它”包含了它需要的一个函数”。
工作原理
该攻击将诱饵与载荷分置于两层软件包中,这正是其难以根除的原因。
层级 作用 示例(据报告)
------------- ---------------------------- --------------------------------
1. "诱饵" 外观合法、文档精良的干净软件包。 @solana-launchpad/sdk
将第 2 层列为传递依赖。 (不含恶意代码)
2. "载荷" 安装时被自动引入的窃密程序。 @hash-validator/v2 ->
每次被检测后即改名。 @validate-sdk/v2(代码完全相同,
每次下架后换新名)
两个设计选择说明了一切。其一,文档是为机器读者而非人类读者优化的:令人信服的 README 文本、TypeScript 类型和语义结构,使正在解析依赖的智能体得出”该软件包契合当前项目”的结论。其二,恶意行为被隐藏在 LLM 不会查看之处。随着检测增多,攻击者将载荷从易于解析的 JavaScript 转移到预编译的 Rust Node.js 插件(经 NAPI-RS):智能体可能读取的代码保持干净,而由二进制文件执行窃取——外泄环境密钥、植入 SSH 密钥、并将数据归档至攻击者基础设施。
由于干净的诱饵软件包无需改动,攻击者得以保全其声誉,每次被检测后只需注入一个重新命名的载荷——这正是击败基于名称的黑名单的手法。
为何重要
多年来,抵御此类供应链攻击的主要行为防线是人为摩擦:开发者在运行 npm install 前,会对陌生的名称停下来,核查下载量和维护者历史。正如 Socket 的 Brad Arkin 于 2026 年 6 月 23 日所指出,AI 智能体恰恰消除了这种摩擦:它们解析依赖、继续构建。效率本身就成了攻击面。
这将 LLM 理解文档的强项变成了武器。它是工具描述投毒在供应链侧的近亲:模型信任攻击者撰写的文本并据此行动。它也不同于我们已覆盖的两种模式——利用幻觉名称的 slopsquatting,以及利用拼错名称的模型仿冒抢注。LLMO 滥用两者都不需要:软件包名称是真实的、文档是出色的,智能体是凭其”优点”来选择它——一种被制造出来的优点。
防御
没有补丁能修复它,因为技术上并没有任何东西”损坏”。相关控制属于流程与流水线卫生,且与 2026 年 5 月 1 日 CISA/五眼联盟的指南一致——该指南警告,智能体会”更频繁地选择更具说服力的描述”。
- 将智能体建议的软件包视为一个独立的、不可信的审查类别。 任何由智能体自主添加的依赖,在发布前都应审查其发布者、版本新旧和传递依赖——补上智能体跳过的那次人工审查。
- 在 CI/CD 层面而非仅在工作站强制执行注册表策略。 将已批准的软件包与版本列入白名单,使智能体无论文档如何吹嘘都无法安装白名单外的任何东西。注册表层面的关卡无论依赖以何种方式引入都同样适用。
- 对高影响操作要求人工审批。 CISA 恰恰将”在敏感流水线中添加依赖”归为此类操作。
- 基于行为检测,而非基于名称。 这些软件包在攻击时不带任何 CVE;仅将名称与漏洞库比对的 SCA 工具什么也看不到。分析软件包实际做了什么——并且要知道
--ignore-scripts只是部分控制,可经由原生扩展绕过。 - 为智能体提供一个信誉预言机。 ReversingLabs 展示了:一旦接入软件包信誉 MCP 服务器,编程智能体便能正确地建议不要安装该诱饵软件包。给智能体喂以事实数据,而非信任软件包自己的营销说辞。
- 维护 SBOM。 对于事后看不见的、由智能体引入的依赖,你无法作出响应。
状态
| 项目 | 参考来源 | 日期 | 备注 |
|---|---|---|---|
| 首个载荷软件包被检测 | ReversingLabs | 2025-09 | 双层攻击活动开始 |
| 转向 Rust/NAPI-RS 载荷 | ReversingLabs | 2026-03 | 规避 LLM 代码审查 |
| 智能体添加诱饵依赖 | openpaw-graveyard 提交 | 2026-02-28 | 由 Claude Opus 共同署名 |
| 公开研究(PromptMink) | ReversingLabs | 2026-06 | 归因:Famous Chollima |
| 多政府联合指南 | CISA / 五眼联盟 | 2026-05-01 | 白名单、人工审批、最小权限 |
诚实的表述不是”某个 LLM 被黑了”,而是:智能体阅读并信任文档的能力如今成了一个攻击面。防御之道,是不再让软件包自我描述——在带外核验它、在流水线中设卡拦截它,并对智能体认为”有说服力”的任何安装保留人工把关。
Sources
- → https://www.reversinglabs.com/blog/claude-promptmink-malware-crypto
- → https://www.techtimes.com/articles/319457/20260701/ai-coding-agents-skip-package-verification-attackers-are-exploiting-it.htm
- → https://socket.dev/blog/the-code-you-didnt-write-is-still-yours-to-defend
- → https://www.cisa.gov/resources-tools/resources/careful-adoption-agentic-ai-services