文章总结: 墨菲安全实验室检测到NPM包node-ipc于2026年5月14日再次被供应链投毒,恶意代码仅存在于CommonJS产物中,通过DNS隧道外传敏感信息。受影响版本为9.1.6、9.2.3、12.0.1。攻击行为包括收集主机信息、环境变量、敏感文件,并采用混淆和定向触发机制规避检测。建议立即检查文件哈希、轮换密钥、监控DNS请求,并清理异常文件。 综合评分: 85 文章分类: 供应链安全,漏洞分析,恶意软件,威胁情报,安全运营
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 粗粒度监控,且支持失败静默重试,增加检测难度
(五)执行控制与规避
-
重复执行防护:通过 __ntRun 环境变量或运行标志防止载荷重复执行,避免暴露异常
-
后台持续运行:当入口脚本满足 require.main 条件时,通过 fork 和 unref创建脱离父进程的子进程,恶意任务可在后台独立运行
-
定向触发机制:计算入口文件名哈希并与硬编码值对比,仅在特定场景下激活恶意逻辑,属于精准定向攻击而非广撒网执行
05
事件特殊性分析
-
规避检测手段:恶意代码仅存在于 CJS 产物中,避开源码仓库、ESM 入口等常规人工检查路径,利用发布包与源码不一致的盲区
-
绕过传统审计:DNS 隧道外传方式使基于 Web 访问日志的传统审计手段失效,增加排查难度
-
影响范围广泛:node-ipc 作为 IPC 组件,广泛存在于开发工具、脚手架、构建链路中,即使生产服务未直接依赖,开发机构建、测试过程仍可能中招
06
排查与处置建议
(一)排查建议
包文件验证:
-
检查依赖目录中是否加载 node-ipc.cjs,验证文件尾部是否存在module.exports 后紧跟混淆自执行函数的结构
-
核对恶意文件哈希:node-ipc.cjs 文件哈希为:
SHA1:ab7388363936bf527afd4173b5728c7cdbdd01abSHA256:96097e0612d9575cb133021017fb1a5c68a03b60f9f3d24ebdc0e628d9034144
主机特征检查:
-
查找临时目录中是否存在 uname.txt、envs.txt 等异常文件
-
检查 node_modules 目录中是否存在 __ntRun 相关内容
-
网络行为审计:重点监控 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万》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论