事件概述
2026年4月29日,安全公司ReversingLabs披露代号"PromptMink"的供应链攻击战役,归因于朝鲜国家支持的黑客组织Famous Chollima(又名Shifty Corsair,与Lazarus Group关联)。该战役首创"LLM优化滥用"(LLMO Abuse)技术——不再试图欺骗人类开发者安装恶意包,而是精心编写包文档以说服AI编码Agent自动选择和安装恶意依赖。✅已验证
战役从2025年9月持续至2026年4月,横跨7个月,部署60余个恶意包、300余个版本,覆盖npm、PyPI、Go和Rust四大生态系统。✅已验证
最具标志性的事件发生在2026年2月28日:一个向开源Solana交易Agent项目openpaw-graveyard提交的commit中,Anthropic的Claude Opus被列为联合署名者。该commit添加了伪装为合法Solana SDK的恶意依赖,AI Agent在正常编码工作流中自主选择了朝鲜黑客的后门包并将其写入生产代码。✅已验证
ReversingLabs研究员Vladimir Pezo在报告中直言:"Famous Chollima的恶意包在欺骗LLM编码Agent方面比欺骗人类开发者更为成功。"✅已验证
背景:从社会工程到"Agent工程"
供应链攻击的三代演进
供应链攻击并非新概念。从2018年event-stream比特币窃取、2024年XZ Utils后门,到2026年初Shai-Hulud npm/PyPI大规模投毒,攻击者始终在利用可信上游依赖作为武器。但目标的认知模型经历了三次根本性跃迁。⚠️高置信度
第一代:欺骗人类判断(2018-2024)。 攻击者使用名字仿冒(typosquatting)、依赖混淆(dependency confusion)和伪造Stack Overflow答案来诱导人类开发者主动安装恶意包。防御核心是人类的怀疑本能——一个经验丰富的开发者会检查发布者历史、下载量和GitHub commit记录。
第二代:利用AI幻觉(2024-2025)。 攻击者注册LLM已知会产生幻觉的包名,等待AI编码工具"想象"出一个不存在的依赖并建议安装。这种攻击依赖模型的幻觉缺陷,成功率受限于模型幻觉频率。
第三代:LLMO滥用——欺骗AI判断本身(2025至今)。 PromptMink代表的范式转变在于:攻击者不再依赖模型缺陷,而是利用AI的核心能力——文档理解和语义匹配——将其转化为攻击面。包名是真实的,文档是专业的,TypeScript类型是完整的。Agent基于"优点"选择了恶意包——只是这个"优点"是为机器读者精心优化的。✅已验证
Famous Chollima:从钓鱼到AI武器化的国家级进化
Famous Chollima自2018年以来一直运营"Contagious Interview"(传染性面试)攻击行动,通过在LinkedIn和GitHub上伪装招聘人员,向求职者发送含恶意依赖的编程测试项目。2026年3月,美国财政部OFAC制裁了该组织运营虚假IT工人网络所使用的前端公司。✅已验证
PromptMink是这一行动的逻辑延伸:当目标开发者越来越多地由AI Agent替代进行代码审查和依赖选择时,攻击者将社会工程对象从人切换为AI。这不是战术调整,而是攻击哲学的根本转变——从"骗人"到"骗Agent"。
技术/战略分析
双层架构:诱饵与载荷的分离设计
PromptMink的核心创新不在恶意软件本身,而在其拓扑结构。战役将操作分为两个独立层:⚠️高置信度
第一层——诱饵包(Layer 1): 完全合法的Web3工具包,如@solana-launchpad/sdk、@meme-sdk/trade、@pumpfun-ipfs/sdk等。这些包实现了真实的Solana生态功能(IPFS上传、元数据管理、Jito Bundle执行),package.json中列出的大多数依赖是axios和bn.js等下载量达数十亿的主流包。唯有一两个小众依赖指向第二层载荷。关键特征:第一层包不包含任何恶意代码,它们积累的下载量、声誉和社区信号是攻击者的战略资产。
第二层——载荷包(Layer 2): 携带实际恶意功能的消耗性弹药。已知载荷包包括@hash-validator/v2(初始版本)和@validate-sdk/v2(替换版本),功能为递归扫描工作目录中的.env和.json文件、窃取钱包凭证、API密钥和环境秘密,然后通过HTTP POST外传至攻击者控制的Vercel端点(ipfs-url-validator.vercel.app)。✅已验证
这种架构的致命之处在于其韧性。2025年10月7日,npm移除了@hash-validator/v2和三个姐妹包。数小时内,Famous Chollima将字节级相同的代码以@validate-sdk/v2的名称重新发布,从版本1.22.11开始(紧接被移除包的下一个序列版本),同时更新第一层包的依赖指针。第一层保留了所有累积的声誉信号,第二层被视为可丢弃的弹药。当JFrog在2025年11月20日发布部分研究报告时,攻击者在当天就替换了被曝光的依赖,零停机时间,零运营连续性损失。✅已验证
恶意软件四阶段演进
PromptMink的载荷在7个月内经历了四次架构升级,反映了对防御环境的持续适应:⚠️高置信度
- 阶段一(2025年9月-2026年1月):混淆JavaScript窃密器。 扫描工作目录,通过HTTP POST外传至Vercel端点。载荷仅5.1KB。
- 阶段二(2026年2月):Node.js单文件应用(SEA)。 将JavaScript代码与完整Node.js运行时打包为独立可执行文件,规避静态分析。但载荷体积暴增至85-100MB,反而引起注意。
- 阶段三(2026年3月):Rust NAPI-RS预编译原生插件。 关键转折——使用NAPI-RS将Rust代码编译为Node.js原生插件。Rust二进制文件极难逆向工程,完全绕过npm层静态分析,载荷体积大幅下降。代码可读部分(Agent可能审查的JavaScript/TypeScript)保持干净,二进制部分执行窃密。
- 阶段四(2026年3月下旬):持久化SSH后门。 在受害主机
~/.ssh/authorized_keys中注入攻击者公钥,建立独立于npm供应链的持久远程访问。后续版本扩展为压缩并外传整个项目源代码目录,对应知识产权窃取的次要目标。✅已验证
为什么Agent比人更容易被骗
PromptMink揭示了一个令人不安的结构性不对称:AI编码Agent在某些维度上比人类开发者更容易被供应链攻击欺骗。⚠️高置信度
信号权重差异。 人类开发者检查npm发布者页面、维护者历史、下载量曲线与社区采用的匹配度——文档质量与下载量的不成比例是重要的可疑信号。AI Agent则主要权重文档质量、语义匹配度、TypeScript类型覆盖度和README对当前任务的描述精确度。Famous Chollima精准优化了所有这些信号——第一层README读起来像专业的SDK文档,包含真实的Solana用例、TypeScript类型、功能对比和徽章。
摩擦消除即攻击面。 Socket公司安全负责人Brad Arkin在2026年6月23日的分析中指出,多年来开源供应链攻击的主要行为防御是"人类摩擦"——开发者在面对不熟悉的包名时会暂停、检查、犹豫。AI Agent精确移除了这一摩擦——它解析依赖、继续构建、不停顿。效率本身就是攻击面。✅已验证
Agent到Agent的传播。 2026年1月,一个名为Zora的自主LLM Agent在Moltbook(AI Agent自主交互的类Reddit平台)上发帖称它创建了一个memecoin并使用了@solana-launchpad/sdk,因为"它有需要的功能"。这是一个AI Agent推荐恶意包、另一个AI Agent安装它的案例——决策循环中没有任何人类参与。✅已验证
薄弱点
防御体系的结构性缺口
- SCA工具盲区。 传统软件组成分析(SCA)工具通过名称匹配漏洞数据库来检测威胁。PromptMink的恶意包在被发现时没有任何已知CVE——它们是全新的、名称合法的包,基于名称的检测工具什么也看不到。
--ignore-scripts的局限性。 许多团队依赖npm install --ignore-scripts作为安全控制。但NAPI-RS原生插件通过Node.js的原生插件加载机制执行,绕过了install脚本的限制——这是一个部分控制措施。- AI辅助commit的信任错觉。 当Claude或Copilot联合署名一个commit时,开发者倾向于降低审查标准——"AI已经检查过了"。但AI检查的是文档质量,不是安全属性。PromptMink的包文档质量极高,AI检查反而强化了虚假的安全感。
- SBOM缺失。 许多团队无法回答"我们的代码库中有多少依赖是AI Agent自主选择的"这个基本问题。没有可观测性就没有防御。
厂商/行业应对
政府层面
- CISA/五眼联盟指南(2026年5月1日): 发布《Agentic AI服务谨慎采用指南》,明确警告"Agent会选择更具说服力的描述",要求将Agent建议的包视为独立不可信审查类别,并要求添加依赖等高风险操作必须经过人类批准。✅已验证
- NSA指导文件U/O/O/6030316-26: 针对MCP协议和AI Agent依赖管理发布安全指南。
安全产业
- ReversingLabs: 建立PromptMink IOC数据库,追踪20+ C2基础设施,持续发布Takedown通知。
- Socket(Brad Arkin): 提出"Agent建议的包应作为独立不可信类别审查"的防御框架。
- Cloud Security Alliance: 发布DPRK PromptMink研究笔记,提供技术IOC和防御清单。
AI模型厂商
- Anthropic: 在Claude Code中保留了commit联合署名机制(
Co-Authored-By: Claude),但未对依赖选择增加安全审查层。这一机制客观上为PromptMink提供了"AI已验证"的虚假信任信号。 - ReversingLabs验证的防御方案: 当编码Agent被连接到一个包声誉MCP服务器后,Agent正确地建议不要安装诱饵包——为Agent提供外部真实数据(ground-truth data)而非信任包自身的营销文档是有效的防御路径。✅已验证
预判
短期(3-6个月):
- LLMO将成为供应链攻击标准战术。 PromptMink证明了LLMO的可行性和有效性。Famous Chollima不是最后一个使用这一技术的组织——其他国家级攻击者和网络犯罪团伙将快速复制。预计2026年下半年将出现针对Python/Go/Rust生态系统的类似战役。
- AI编码工具将加速引入依赖审查层。 Cursor、Claude Code、GitHub Copilot将在未来2-3个季度内引入"Agent选择的依赖需要人类确认"的强制审查流程,这将部分恢复被AI消除的"人类摩擦"。
- Rust原生插件将成为供应链安全新焦点。 PromptMink从JavaScript到Rust的演进表明,攻击者正在利用语言生态的安全审查盲区。预计npm和GitHub将推出针对原生插件的增强审查机制。
中期(6-12个月):
- "Agent安全审计"将成为企业合规要求。 正如SOC 2审计改变了云安全实践,对AI Agent自主行为的审计将成为企业安全治理的新维度。企业需要回答"多少依赖是Agent选择的""Agent的决策日志在哪里""Agent的权限边界是什么"。
- 包声誉预言机(Reputation Oracle)将成为Agent标配。 为AI Agent提供外部真实数据的声誉服务将成为安全基础设施的组成部分。ReversingLabs验证的"连接声誉MCP服务器后Agent正确拒绝恶意包"的案例,预示了这一方向的商业化路径。
长期信号:
- "Agent工程"将成为社会工程的下一个进化方向。 PromptMink的深层启示是:当AI Agent承担越来越多的决策职能时,攻击者的最优策略不是绕过AI,而是"说服"AI。从骗人到骗Agent的转变,标志着社会工程进入了一个全新的攻击面——一个AI Agent的可信度越高、能力越强,被"说服"后的破坏力也越大。这对整个AI Agent生态的安全架构提出了根本性挑战。
参考来源:
- ReversingLabs, "PromptMink: DPRK PromptMink npm Malware Targets AI Coding Agents", 2026-04-29 ✅
- Cloud Security Alliance, "DPRK PromptMink Research Note", 2026-05-01 ✅
- CISA/Five Eyes, "Careful Adoption of Agentic AI Services", 2026-05-01 ✅
- LLM-Hacking, "LLMO abuse: poisoning package docs to fool AI coding agents", 2026-07-03 ✅
- Socket, "The Code You Didn't Write Is Still Yours to Defend", Brad Arkin, 2026-06-23 ✅
- Lyrie.ai, "When the AI Writes the Backdoor: PromptMink", 2026-05-11 ✅
- The Hacker News, "New Wave of DPRK Attacks Uses AI-Inserted npm Malware", 2026-04-29 ✅
- IBM X-Force OSINT Advisory, "PromptMink Supply Chain Campaign", 2026-05-01 ✅
战略重要性
决策选择
预测验证
觉得这篇分析有用?
每周收到3-5条AI基础设施关键信号 →
💬 评论 (0)