NPM仓库node-ipc再次被投毒,周下载量超67万

admin 2026-05-16 04:17:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 墨菲安全实验室检测到NPM包node-ipc于2026年5月14日再次被供应链投毒,恶意代码仅存在于CommonJS产物中,通过DNS隧道外传敏感信息。受影响版本为9.1.6、9.2.3、12.0.1。攻击行为包括收集主机信息、环境变量、敏感文件,并采用混淆和定向触发机制规避检测。建议立即检查文件哈希、轮换密钥、监控DNS请求,并清理异常文件。 综合评分: 85 文章分类: 供应链安全,漏洞分析,恶意软件,威胁情报,安全运营


cover_image

NPM仓库 node-ipc 再次被投毒,周下载量超67万

原创

墨菲安全实验室 墨菲安全实验室

墨菲安全实验室

2026年5月15日 00:36 北京

在小说阅读器读本章

去阅读

01

事件概述

2026 年 5 月 14 日下午 10 点,墨菲安全实验室检测到 NPM 包node‑ipc再次被投毒:攻击者在其 CommonJS 产物node‑ipc.cjs末尾追加了重度混淆的恶意自执行函数。该恶意代码仅存在于 CJS 产物中,在依赖方加载 CJS 入口时会触发恶意逻辑;而在 ESM 入口node‑ipc.js中未发现此代码。

node‑ipc 在历史上也曾发生过重大供应链安全事件:2022 年该包发布的10.1.1和10.1.2版本中被维护者故意加入恶意代码,根据用户 IP 判断是否来自俄罗斯或白俄罗斯,并在满足条件时篡改文件内容(如写入❤️ 等符号),该问题被纳入CVE‑2022‑23812并引发社区强烈关注,后续通过下架受影响版本并发布修复版解决。

02

影响范围

NPM组件:node-ipc

9.1.6、9.2.3、12.0.1 版本

03

样本特征

代码位置异常

node-ipc.cjs 中 module.exports 合法导出结束后,直接紧跟恶意自执行函数,不符合常规构建工具产物特征

混淆特征明显

采用十六进制风格变量名(如 _0x4524e4 )通过字符串数组轮换索引 split(‘|’) 结合 switch 分发控制流,敏感 API 名称隐藏于字符串表中,不直接明文调用调用

恶意代码截图

04

恶意代码行为分析

(一)主机信息收集

收集内容:

  • 通过 os.platform() 、 os.arch() 等 API 收集系统平台、架构、主机名等基础信息
  • 执行 uname -a 获取完整系统标识
  • 遍历 process.env 导出全部环境变量
  • 读取/etc/hosts文件内容。

风险危害:开发机与 CI 环境的 process.env 通常包含 API 密钥、云平台凭据、npm token 等敏感信息,若在构建流水线执行,危害远大于普通应用服务器

(二)敏感文件搜集

攻击者通过自定义编码路径模式,遍历匹配 SSH 密钥、Shell 历史、云平台凭据、浏览器数据、.git 目录等敏感位置,实现对开发环境的全面摸排,相关信息泄露可能导致跨机器影响

(三)数据归档与压缩

恶意代码自行拼装 tar 归档并使用 gzip 压缩,不依赖外部工具,减少异常进程痕迹暴露,表明攻击者旨在实现批量数据窃取外传

(四)DNS 隧道外传

核心行为:

数据经压缩加密后分割为多段,通过 DNS 子域名标签逐段外传

每段数据附带 HMAC-SHA256 校验信息

规避特性:

DNS 通道可绕过 HTTP/HTTPS 粗粒度监控,且支持失败静默重试,增加检测难度

(五)执行控制与规避

  1. 重复执行防护:通过 __ntRun 环境变量或运行标志防止载荷重复执行,避免暴露异常

  2. 后台持续运行:当入口脚本满足 require.main 条件时,通过 fork 和 unref创建脱离父进程的子进程,恶意任务可在后台独立运行

  3. 定向触发机制:计算入口文件名哈希并与硬编码值对比,仅在特定场景下激活恶意逻辑,属于精准定向攻击而非广撒网执行

05

事件特殊性分析

  1. 规避检测手段:恶意代码仅存在于 CJS 产物中,避开源码仓库、ESM 入口等常规人工检查路径,利用发布包与源码不一致的盲区

  2. 绕过传统审计:DNS 隧道外传方式使基于 Web 访问日志的传统审计手段失效,增加排查难度

  3. 影响范围广泛:node-ipc 作为 IPC 组件,广泛存在于开发工具、脚手架、构建链路中,即使生产服务未直接依赖,开发机构建、测试过程仍可能中招

06

排查与处置建议

(一)排查建议

包文件验证:

  1. 检查依赖目录中是否加载 node-ipc.cjs,验证文件尾部是否存在module.exports 后紧跟混淆自执行函数的结构

  2. 核对恶意文件哈希:node-ipc.cjs 文件哈希为:

SHA1:ab7388363936bf527afd4173b5728c7cdbdd01abSHA256:96097e0612d9575cb133021017fb1a5c68a03b60f9f3d24ebdc0e628d9034144

主机特征检查:

  1. 查找临时目录中是否存在 uname.txt、envs.txt 等异常文件

  2. 检查 node_modules 目录中是否存在 __ntRun 相关内容

  3. 网络行为审计:重点监控 Node.js 进程发起的异常 DNS 请求,关注

sh.azurestaticprovider.net 相关外联

(二)处置建议

失陷主机处理:

  • 轮换构建机、开发机及 CI 环境中的所有环境变量密钥

  • 更换 SSH 私钥、npm token、云平台访问凭据等敏感信息

  • 检查主机 DNS 日志,定位可疑长子域请求

  • 清理用户目录和临时目录中的异常文件与目录

  • 审计 .git、Shell 历史、云配置目录的访问痕迹

07

IOC 信息

样本文件哈希:

node-ipc.cjs

SHA1:

ab7388363936bf527afd4173b5728c7cdbdd01ab

node-ipc.cjs

SHA256:

96097e0612d9575cb133021017fb1a5c68a03b60f9f3d24ebdc0e628d9034144

C2 域名:

sh.azurestaticprovider.net


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:墨菲安全实验室 墨菲安全实验室 墨菲安全实验室《NPM仓库 node-ipc 再次被投毒,周下载量超67万》

评论:0   参与:  0