一个每周被下载超过82.2万次的JavaScript库,正在成为攻击者的武器。Socket和Stepsecurity确认,node-ipc的三个新版本被植入了混淆的窃密和后门代码——这是该包自2022年以来第二次遭遇供应链攻击。
受影响的版本分别是node-ipc@9.1.6、9.2.3和12.0.1。Permiso公司CTO、安全研究员Ian Ahl发现,攻击者很可能通过接管一个休眠的维护者账户得手。
![]()
账户"atiertant"是npm上列出的12名维护者之一,已多年未活跃。据Socket分析,攻击者在原维护邮箱域名atlantis-software[.]net过期后抢注了该域名,随后触发npm的标准密码重置流程,全程无需触碰原维护者的任何基础设施,便静默获得了代码发布权限。
恶意代码仅植入在node-ipc.cjs文件中——这是CommonJS规范的入口点,以单个混淆的立即执行函数(IIFE)形式追加。ESM模块版本保持干净。这意味着使用require("node-ipc")的开发者面临风险,而纯ESM用户可能未受直接影响。
代码通过setImmediate()在模块加载时触发,随即fork一个脱离的子进程(以__ntw=1环境变量标记),然后执行以下操作:
首先,采集主机指纹,包括操作系统元数据、平台架构、主机名和uname -a输出。其次,从超过100种目标模式中收割凭证和配置文件,涵盖AWS、Azure、GCP、Kubernetes、Docker、SSH密钥、npm令牌、GitHub/GitLab凭证、Terraform密钥、.env文件、shell历史记录以及macOS钥匙串数据库。
收集的数据被归档为gzip压缩包,写入/nt-/.tar.gz路径。最终通过DNS TXT查询外泄——而非HTTP——使用仿冒Azure的域名sh[.]azurestaticprovider[.]net,数据经bt[.]node[.]js区域路由,查询前缀为xh、xd和xf。
一个500KiB的压缩包大约会产生2.94万次DNS TXT查询,这种高频TXT查询突发是强烈的检测信号。值得注意的是,恶意压缩包中每个文件的时间戳都被刻意设定为1985年10月26日,这一取证特征有助于识别缓存或镜像副本。
开发者应立即移除上述三个版本,并审计package-lock.json、yarn.lock及本地npm缓存。任何加载过CommonJS入口点的系统,其环境变量、SSH密钥、云凭证或API令牌均应视为完全泄露,须立即轮换。安全团队应排查指向bt[.]node[.]js的DNS TXT查询突发,并封禁该引导解析域名。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.