网络安全研究人员披露了一项名为"沙虫模式"的活跃供应链蠕虫攻击活动,该活动利用至少19个恶意npm包来实施凭据收集和加密货币密钥窃取。
供应链安全公司Socket将此次活动命名为SANDWORM_MODE。与之前的Shai-Hulud攻击波类似,这些恶意代码包具备窃取系统信息、访问令牌、环境机密和API密钥的能力,并能通过滥用被盗的npm和GitHub身份自动传播以扩大影响范围。
Socket公司表示:"该样本保留了Shai-Hulud的特征,并新增了GitHub API数据窃取功能(具备DNS回退机制)、基于钩子的持久化、SSH传播回退、MCP服务器注入(内嵌针对AI编程助手的提示注入)以及大语言模型API密钥收集功能。"
这些恶意包由两个npm发布者别名official334和javaorg发布到npm平台,具体包括:
claud-code@0.2.1、cloude-code@0.2.1、cloude@0.3.0、crypto-locale@1.0.0、crypto-reader-info@1.0.0、detect-cache@1.0.0、format-defaults@1.0.0、hardhta@1.0.0、locale-loader-pro@1.0.0、naniod@1.0.0、node-native-bridge@1.0.0、opencraw@2026.2.17、parse-compat@1.0.0、rimarf@1.0.0、scan-store@1.0.0、secp256@1.0.0、suport-color@1.0.1、veim@2.46.2、yarsg@18.0.1
此外,还发现了四个不包含恶意功能的休眠包:ethres、iru-caches、iruchache、uudi。
这些恶意包不仅通过npm传播,还包含武器化的GitHub Action,能够收集CI/CD机密并通过HTTPS(具备DNS回退)窃取数据。它们还具有破坏性功能,当失去GitHub和npm访问权限时,会触发主目录清除的终止开关。目前该清除功能默认关闭。
恶意软件的另一个重要组件是"McpInject"模块,专门针对AI编程助手。该模块部署恶意模型上下文协议服务器,并将其注入到工具配置中。MCP服务器伪装成合法工具提供商,注册三个看似无害的工具,每个工具都嵌入提示注入来读取~/.ssh/id_rsa、~/.ssh/id_ed25519、~/.aws/credentials、~/.npmrc和.env文件的内容,并将它们暂存到本地目录以便后续窃取。
该模块针对Claude Code、Claude Desktop、Cursor、Microsoft Visual Studio Code Continue和Windsurf等工具。它还收集九个大语言模型提供商的API密钥:Anthropic、Cohere、Fireworks AI、Google、Grok、Mistral、OpenAI、Replicate和Together。
此外,载荷还包含一个多态引擎,配置为调用本地Ollama实例和DeepSeek Coder模型来重命名变量、重写控制流、插入垃圾代码并编码字符串以规避检测。虽然该引擎在当前检测到的包中处于关闭状态,但包含此功能表明攻击者正计划发布更多恶意软件迭代版本。
整个攻击链分为两个阶段展开:第一阶段组件捕获凭据和加密货币密钥,然后加载第二阶段,后者执行更深层的密码管理器凭据收集、蠕虫式传播、MCP注入和完整数据窃取。第二阶段在48小时后(加上每台机器最多48小时的随机延迟)才会激活。
建议已安装上述任何包的用户立即删除它们,轮换npm/GitHub令牌和CI机密,并检查package.json、锁文件和.github/workflows/中的任何意外更改。
Socket公司表示:"多个功能标志和防护措施仍表明威胁行为者正在迭代开发功能(例如,在某些版本中禁用破坏性例程或多态重写的开关)。然而,相同的蠕虫代码出现在多个错别字抢注包和发布者别名中,表明这是有意分发而非意外发布。"
"破坏性和传播行为仍然真实存在且风险很高,防御者应将这些包视为活跃的威胁风险,而非良性测试工件。"
此次披露之际,Veracode和JFrog还详细介绍了另外两个恶意npm包"buildrunner-dev"和"eslint-verify-plugin",它们旨在传播针对Windows、macOS和Linux系统的远程访问木马。buildrunner-dev部署的.NET恶意软件是Pulsar RAT,这是一个通过托管在i.ibb[.]co上的PNG图像传递的开源RAT。
另一方面,eslint-verify-plugin"伪装成合法的ESLint实用工具,同时部署针对macOS和Linux环境的复杂多阶段感染链",JFrog表示。
在Linux上,该包部署用于Mythic C2框架的Poseidon智能体。它促进广泛的后渗透功能,包括文件操作、凭据收集和横向移动。macOS感染序列执行Apfell,这是一个面向macOS的JavaScript自动化智能体,用于进行广泛的数据收集并创建具有管理员权限的新macOS用户。
智能体窃取的部分数据包括:系统信息、通过虚假密码对话框获取的系统凭据、Google Chrome浏览器书签、剪贴板内容、与iCloud钥匙串和Chrome cookie、登录数据和书签相关的文件、屏幕截图、文件元数据。
JFrog表示:"eslint-verify-plugin包是恶意npm包如何从简单的安装钩子升级为完整系统妥协的直接例子。通过伪装成合法实用工具,攻击者成功隐藏了多阶段感染链。"
这些发现还跟随了Checkmarx的一份报告,该报告标记了一个名为"solid281"的恶意VS Code扩展,它冒充官方Solidity扩展,但隐藏了秘密功能,在应用启动时自动执行高度混淆的加载器,并在Windows上投放ScreenConnect,在macOS和Linux机器上投放Python反向shell。
Checkmarx指出:"这反映了其他团队报告的更广泛模式:Solidity开发者似乎被专门针对,包括使用虚假Solidity扩展安装ScreenConnect然后部署后续载荷的攻击活动。"
Q&A
Q1:SANDWORM_MODE攻击活动有什么特点?
A:SANDWORM_MODE是一个活跃的供应链蠕虫攻击活动,利用至少19个恶意npm包实施凭据收集和加密货币密钥窃取。它具备窃取系统信息、访问令牌、环境机密和API密钥的能力,并能通过滥用被盗的npm和GitHub身份自动传播扩大影响。
Q2:McpInject模块是如何针对AI编程助手进行攻击的?
A:McpInject模块部署恶意模型上下文协议服务器并注入到AI编程助手的工具配置中。它伪装成合法工具提供商,注册看似无害的工具,每个工具都嵌入提示注入来读取SSH密钥、AWS凭据、npm配置和环境变量等敏感文件内容。
Q3:如果发现安装了这些恶意npm包应该怎么办?
A:用户应立即删除这些恶意包,轮换npm和GitHub令牌及CI机密,并仔细检查package.json、锁文件和GitHub工作流目录中的任何意外更改。由于这些包具有真实的破坏性和传播行为,应将其视为活跃的威胁风险。
热门跟贴