文章总结: 2026年5月14日npm生态热门依赖包node-ipc遭供应链攻击,攻击者通过接管维护者账户发布3个恶意版本(9.1.6/9.2.3/12.0.1),在CommonJS入口植入混淆恶意代码窃取SSH密钥、云凭证等敏感信息并通过DNS隧道外传。文档提供了恶意哈希、C2域名等IOC指标,建议立即移除受影响版本、轮换凭据并监控异常DNS查询。 综合评分: 85 文章分类: 供应链安全,漏洞预警,恶意软件,安全运营,威胁情报
npm热门依赖包遭投毒,维护者账号被接管
微步在线研究响应中心
2026年5月15日 11:39 北京
在小说阅读器读本章
去阅读
事件概述
微步情报局监测到,2026年5月14日,npm生态中的热门依赖包node-ipc遭受供应链攻击。攻击者疑似通过被接管的维护者账户atiertant 发布了三个恶意版本:9.1.6、9.2.3 和 12.0.1。
这些版本在 CommonJS 入口文件 node-ipc.cjs 中附加了相同的约80KB混淆恶意负载,可在项目通过 require(node-ipc) 加载时触发,窃取SSH密钥、云服务凭证、.env文件、Kubernetes配置、CI/CD密钥及AI工具配置等敏感信息,并通过DNS隧道等方式将数据外传。
node-ipc是Node.js生态中较常用的进程间通信npm包,用于在不同进程或服务之间进行消息交换,周下载量在几十万量级:
投毒方式
攻击者窃取了软件包的其中一个npm维护账户atiertant。
对于该账户atiertant([email protected])的窃据过程,目前社区推测是由于该账户在npm登记的邮箱域名过期被攻击者抢注使用导致:
由于该账户注册邮箱域名过期,在2026-05-07被攻击者重新注册使用。攻击者随后在npm上重置了密钥,拿到维护账户权限,发布恶意版本。值得注意的是,在该账户下除了node-ipc包之外,还有其他npm包,目前这些包还没有被投毒,但还是有一定风险:
影响范围
攻击者投毒了node-ipc包三个恶意版本:
窃取目标
恶意软件会尝试收集并外泄大量敏感信息,主要包括:
● 云服务凭据: AWS、Azure、GCP 等云服务商的配置和凭据文件。
● SSH密钥: 私钥及相关配置。
● 容器与编排: Kubernetes、Docker、Helm 等的配置和服务账户材料。
● 包管理器与代码仓库: npm、Yarn、Git、GitHub CLI、GitLab CLI的令牌和凭据。
● 基础设施即代码: Terraform 的凭据和 tfvars 文件。
● 本地开发环境: .env 等环境配置文件、Shell历史记录等。
● 其他敏感文件: 包括 macOS 的 Keychain、Firefox 的密钥数据库、Microsoft Teams 的本地存储、以及 FileZilla、OpenVPN 等软件的连接配置。
数据外带方式
在本次攻击中,攻击者使用了DNS TXT查询进行数据外泄:
它会先将收集到的敏感文件打包为 gzip 压缩档案,再拆分成适合 DNS 标签长度的小块,经过 base64 编码和 HMAC 签名后,拼接成 {chunk}.{sig}.{metadata}.{c2_domain} 形式的DNS查询,并使用1.1.1.1、8.8.8.8等公共DNS解析攻击者控制的C2域名sh.azurestaticprovider.net。
这种方式利用DNS流量通常不会被深度检查的特点,绕过部分出口防火墙和网络监控。同时,恶意代码会通过child_process.fork()创建一个脱离父进程的后台子进程,并设置__ntw=1环境变量防止重复执行,使其即使在宿主Node.js应用退出后仍能继续完成文件收集和外传。
排查方法
可以通过以下方式进行排查:
● 检查依赖文件: 确认项目的 package-lock.json、yarn.lock 或 pnpm-lock 等锁文件中是否引入了上述恶意版本。
● 检查入口点: 判断你的应用是通过 CommonJS (require(‘node-ipc’)) 还是 ESM (import ‘node-ipc’) 方式引入该包。恶意代码仅存在于 CommonJS 版本中。
● 文件哈希排查: 计算本地的 node-ipc.cjs 文件哈希,确认是否与已知的恶意哈希值匹配。
● 网络流量监控: 监控出站网络流量中是否存在异常的DNS TXT查询。
● 临时文件检查: 检查系统中是否存在 /nt-*/ 路径下的临时归档文件,这表示恶意软件可能已经执行。
处置方案
● 立即移除: 从项目中移除受影响的 node-ipc 版本,并替换为已知安全的干净版本。
● 重置凭据: 所有在受感染环境中使用过的凭据都应视为已泄露,需立即轮换。包括 SSH 密钥、npm 令牌、云服务商密钥、GitHub/GitLab 令牌、CI/CD 密钥、数据库密码等。
● 清理缓存: 清理构建缓存和本地的 npm 缓存,防止因缓存而重复引入恶意版本。
IOC
恶意文件哈希 (SHA-256)
网络与主机指标
● 域名和IP:
○ sh[.]azurestaticprovider[.]net
● DNS查询特征:
○ 以 xh.、xd.、xf. 为前缀的 DNS TXT 查询请求。
● 运行环境特征:
○ 环境变量 __ntw=1
○ 全局导出函数 __ntRun
○ 临时文件路径:
● 解码密钥:
○ qZ8pL3vNxR9wKmTyHbVcFgDsJaEoUi
FlocksAI安全大赛正在进行,了解详情赢取奖金
·END·
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:微步在线研究响应中心 《npm热门依赖包遭投毒,维护者账号被接管》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论