恶意 npm 包收集 Crypto Keys、CI Secrets 和 API Tokens

发布: (2026年2月23日 GMT+8 18:20)
8 分钟阅读

Source: The Hacker News

概览

网络安全研究人员披露了一场活跃的 “Shai‑Hulud‑like” 供应链蠕虫活动,该活动利用至少 19 个恶意 npm 包 的集群来收集凭证和加密货币密钥。

该活动被供应链安全公司 Socket 命名为 SANDWORM_MODE。与之前的 Shai‑Hulud 攻击浪潮 类似,嵌入这些包中的恶意代码可以:

  • 窃取系统信息、访问令牌、环境机密以及开发者环境中的 API 密钥
  • 通过滥用被盗的 npm 和 GitHub 身份自动传播

“该样本保留了 Shai‑Hulud 的特征,并新增了 GitHub API 数据外泄(带 DNS 备用)、基于钩子的持久化、SSH 传播备用、带嵌入提示注入的 MCP 服务器注入(针对 AI 编码助手),以及 LLM API‑key 收集,” Socket 表示。(source)

恶意软件包

这些软件包是由两个发布者别名 official334javaorg 在 npm 上发布的。

软件包版本
claud-code0.2.1
cloude-code0.2.1
cloude0.3.0
crypto-locale1.0.0
crypto-reader-info1.0.0
detect-cache1.0.0
format-defaults1.0.0
hardhta1.0.0
locale-loader-pro1.0.0
naniod1.0.0
node-native-bridge1.0.0
opencraw2026.2.17
parse-compat1.0.0
rimarf1.0.0
scan-store1.0.0
secp2561.0.0
suport-color1.0.1
veim2.46.2
yarsg18.0.1

潜伏软件包

另外识别出四个 不包含恶意代码 的软件包:

  • ethres
  • iru-caches
  • iruchache
  • uudi

附加恶意软件功能

  • Weaponised GitHub Action – 收集 CI/CD 密钥,并通过 HTTPS(若失败则回退至 DNS)进行外泄。

  • Destructive “kill‑switch” routine – 如果恶意软件失去对 GitHub 和 npm 的访问(默认关闭),将清除用户的主目录。

  • McpInject module – 通过部署恶意 Model Context Protocol (MCP) 服务器并注入工具配置,针对 AI 编码助手。MCP 服务器伪装成合法提供者,并注册三个看似无害的工具,每个工具嵌入以下提示注入,读取:

    • ~/.ssh/id_rsa
    • ~/.ssh/id_ed25519
    • ~/.aws/credentials
    • ~/.npmrc
    • .env

    模块针对 Claude Code、Claude Desktop、Cursor、Microsoft Visual Studio Code (VS Code) Continue 和 Windsurf,并收集九家 LLM 提供商的 API 密钥:Anthropic、Cohere、Fireworks AI、Google、Grok、Mistral、OpenAI、Replicate、Together

  • Polymorphic engine – 能调用本地 Ollama 实例并使用 DeepSeek Coder 模型来重命名变量、改写控制流、插入垃圾代码以及对字符串进行编码以规避检测。(在检测到的包中目前已禁用,但表明未来的意图。)

  • Two‑stage attack chain

    1. First stage – 捕获凭证和加密货币密钥。
    2. Second stage – 在 48 小时延迟后(每台机器可额外增加最多 48 小时的抖动),执行更深层次的凭证收集(包括密码管理器)、蠕虫式传播、MCP 注入以及完整的外泄。

建议

  1. 立即卸载 列出的任何恶意软件包。
  2. 轮换 所有 npm、GitHub 和 CI/CD 令牌及密钥。
  3. 审计 package.json、锁文件以及任何 .github/workflows/ 文件,检查是否有意外更改。
  4. 检查系统目录中是否存在被武器化的 GitHub Action 和 MCP 服务器文件。

“多个特性标志和防护措施仍表明威胁行为者正在迭代功能(例如,能够在某些构建中禁用破坏性例程或进行多态重写的切换),” Socket 指出。“然而,同样的蠕虫代码出现在多个错拼包和发布者别名中,表明这是有意的分发,而非意外发布。”

“破坏性和传播行为仍然真实且高风险,防御者应将这些软件包视为活跃的妥协风险,而非良性的测试产物。”

相关发现

  • Veracode 披露了一个隐藏在普通像素中的恶意 npm 包。
  • JFrog 详细说明了一个三阶段的恶意 npm 包。

两份报告都描述了额外的基于 npm 的供应链威胁(例如 “buildrunner‑dev” 和 “eslint‑verify‑plugin”),这些威胁补充了 SANDWORM_MODE 活动。

由 Socket 的供应链安全团队编写。

Threat Overview

已发现一种针对 Windows、macOS 和 Linux 系统的远程访问木马(RAT)。由 buildrunner‑dev 部署的 .NET 恶意软件是 Pulsar RAT,这是一款通过托管在 i.ibb.co 的 PNG 图片分发的开源 RAT。

Eslint‑verify‑plugin “伪装成合法的 ESLint 实用工具,同时部署针对 macOS 和 Linux 环境的复杂多阶段感染链,”JFrog 说。

  • Linux – 该软件包部署 Poseidon 代理,用于 Mythic C2 框架。它提供广泛的后渗透功能,包括文件操作、凭证收集和横向移动。
  • macOS – 感染序列执行 Apfell,这是一款 JavaScript for Automation (JXA) 代理,进行大量数据收集并创建拥有管理员权限的新 macOS 用户。

ThreatLocker diagram

Data Stolen by the Agent

  • 系统信息
  • 通过伪造密码对话框获取的系统凭证
  • Google Chrome 书签
  • 剪贴板内容
  • 与 iCloud 钥匙串和 Chrome 相关的文件(Cookie、登录数据、书签)
  • 屏幕截图
  • 文件元数据

eslint‑verify‑plugin 包是恶意 npm 包如何从简单的安装钩子升级为全系统妥协的直接案例,”JFrog 解释道。 “通过伪装成合法实用工具,攻击者成功隐藏了多阶段感染链。”

这些发现呼应了 Checkmarx 的报告,该报告标记了一个名为 “solid281” 的恶意 VS Code 扩展。该扩展冒充官方 Solidity 扩展,但包含隐蔽功能,会在 应用启动时 自动执行高度混淆的加载器并投放:

  • Windows 上的 ScreenConnect
  • macOS 和 Linux 上的 Python 反向 shell

“这与其他团队报告的更广泛模式相吻合:Solidity 开发者似乎成为了特定的攻击目标,包括使用伪造 Solidity 扩展安装 ScreenConnect 并随后部署后续载荷的活动,”Checkmarx 指出。

保持了解

觉得这篇文章有趣吗?关注我们获取更多独家内容:

0 浏览
Back to Blog

相关文章

阅读更多 »