joyfill npm 包被植入区块链 RAT:导入即触发,朝鲜黑客借 npm 供应链投毒

admin 2026年8月30日02:25:29评论35 views字数 3185阅读10分37秒阅读模式

joyfill npm包被植入区块链RAT,导入即触发。攻击者通过Tron、BSC等区块链链上交易下发恶意载荷,规避静态检测。恶意代码主动跳过CI和沙箱环境,定向攻击开发者机器,窃取浏览器数据、Git凭证、系统凭据等敏感信息。

网络安全领域深耕几十年,每日分享当下最新网络安全事件,喜欢的朋友可以点点关注~

又一起 npm 供应链投毒。这次不是 lifecycle hook,不是 postinstall 脚本,而是直接在包入口被 Node.js 加载时触发——只要 require() 或 import 这两个包,恶意代码就在你的进程里跑起来。

攻击链:区块链 C2 + 双分支并行执行

开发者引入 @joyfill/layouts 或 @joyfill/components(受影响 beta 版本)
→ Node.js 加载包入口 → 恶意 JS implant 立即执行
    │
    ├── 分支 A:进程内执行
    │   → 查询 Tron 链硬编码地址的最新交易
    │   → 从交易 payload 中解密提取 JS 代码
    │   → 执行 77KB "clientCode" loader(关联 DEV#POPPER 家族)
    │
    └── 分支 B:独立 Node.js 进程( detached,分叉执行)
        → 向 23.27.13[.]43 请求 boot payload
        → 解密响应内容 → eval 执行
        → 该进程不依赖引入包的父进程,可在构建/CI/CLI 退出后持续运行

→ 最终 payload:"clientCode" RAT
    → 建立 Socket.IO 远控通道
    → 上传文件、读取剪贴板、执行任意 JS/shell 命令

触发条件:不是 npm script、不是 postinstall——就是最普通的 require('@joyfill/layouts')。

关键特征:区块链 C2 是这次的核心

Tron + Aptos + BNB Smart Chain 三链联动来获取控制指令:

  1. 攻击者预先向 Tron 硬编码地址转入一笔交易(交易备注/payload 包含加密的 JS 代码)
  2. implant 查询该地址最新交易,从交易中解密出 BNB Smart Chain 交易哈希
  3. 用哈希从 BSC 链提取真正的 payload,解密后执行

为什么用区块链 C2: payload 不存储在包本身,不存储在任何静态服务器,而是嵌入链上交易——传统的静态 IOC 检测完全失效。攻击者可以随时在链上替换 payload 而无需重新发布 npm 包。

避开 CI/沙箱检测

恶意代码会主动检查运行环境,刻意跳过以下环境:

github-runner、buildbot、buildkitsandbox、microsoft-standard-WSL2

只攻击真实开发者机器。CI runner 和沙箱逃过一劫——不是防御有效,是攻击者有意为之。

窃取范围:开发者凭证全覆盖

“clientCode” RAT + Python infostealer(OmniStealer 迭代版)双 payload 组合:

  • 系统信息
    :主机名、IP、用户名、进程列表
  • 浏览器数据
    :Chromium/Firefox Cookie、密码、扩展存储(特别是钱包和密码管理器扩展)
  • Git 凭证
    :Git 凭据、GitHub CLI 配置、GitHub Desktop 日志
  • VS Code 存储
    :工作区数据、扩展配置
  • 系统凭据
    :Windows Credential Manager、Linux Secret Service
  • 剪贴板
    :Windows PowerShell / macOS pbpaste / Linux xclip/xsel

受影响包

@joyfill/[email protected]
@joyfill/[email protected]

均为 beta 版(攻击者专门选 beta 版投毒,版本号含 2773 特征),发布者使用 Node.js 18.20.0 + npm 10.5.0。npm 已下架,但内网镜像、CI 构建镜像、npm cache 中可能仍有残留。

关联:ViteVenom 同属一个行动

Socket 确认:本次 joyfill 投毒与本月初 Checkmarx 披露的 ViteVenom 恶意包系列同属朝鲜 APT 行动,关联威胁集群为 PolinRDriver(曾参与 Contagious Interview 求职陷阱)。PolinRDriver 使用相同的 Tron/Aptos/BSC 三链 C2 结构。

IOC

C2 IP:23.27.13.43
受影响包:@joyfill/[email protected]、@joyfill/[email protected]
链标识:Tron 硬编码地址(具体地址详见 Socket.dev 原始报告)

防御建议

① 立即全量审查依赖树

对所有使用 joyfill 的项目执行以下操作:

# 检查 lockfile 中是否含受影响版本
npm ls @joyfill/layouts
npm ls @joyfill/components

# 删除本地缓存
npm cache clean --force

# 如项目 node_modules 中有受影响版本,立即全删重装
rm -rf node_modules
rm package-lock.json
npm install

→ 亚信安全 TDA 可检测 Node.js 进程异常外连 23.27.13[.]43 的区块链 API 请求和 Tron/Aptos/BSC 节点访问。

② 清除 CI/CD 镜像和内网 npm 镜像中的残留

受影响版本可能在构建 Docker 镜像或内网 npmirror 中仍存在。从所有构建制品、CI 缓存、Docker 镜像中彻底删除;重新构建干净镜像并打上"不含 joyfill beta"的签名标签。

→ 弘积 SuperTD 具备 CI/CD 管道行为监控能力,可识别 npm install 阶段异常网络行为(链上 C2 请求)。

③ 轮换开发环境所有凭证

由于恶意软件专门窃取 Git 凭据和 GitHub CLI 配置,假定开发者机器已被访问。立即执行:

# GitHub:撤销所有 Personal Access Token,审查"SSH 金钥"列表
# 本地 Git:git config --global --unset credential.helper(临时)
# IDE:VS Code 相关存储目录需清理
# 浏览器:检查加密货币钱包扩展是否被访问

→ 科力锐数据保护平台提供开发环境快照备份,支持在清理后从干净快照恢复开发环境。

④ 引入 npm 安全管控机制

在 package.json 中明确固定非 beta 版本的精确版本号;使用 npm audit 或 Socket CLI 对引入包进行自动化扫描;对 beta/rc 版本引入实施额外审批流程。

→ Trellix Endpoint Security 可监控 Node.js 进程的异常行为(子进程派生、clipboard 访问、非预期网络出站)。

npm 供应链投毒的进化路线已经很清楚了:最早的恶意 postinstall 脚本 → npm lifecycle hook 劫持 → 这次直接做进包的 JS 入口逻辑。

区块链 C2 让这轮攻击更难检测:payload 从来不躺在攻击者控制的服务器上,而是嵌在 Tron 链的交易里,地址哈希换一下就能热更新 payload,npm 包本身完全不变。

对于企业安全来说,开发者机器就是边界——一台被 joyfill RAT 感染的开发者笔记本,GitHub 密钥、AWS 凭证、公司内网 VPN 配置全在攻击者手里。

Arista VeloCloud Orchestrator 命令注入漏洞在野利用:CVSS 10.0 攻击者直指企业 SD-WAN 中枢
Cl0p 关联组织盯上 PTC Windchill:PLM 系统无认证 RCE 在野利用

网络安全领域深耕几十年,每日分享当下最新网络安全事件,喜欢的朋友可以点点关注~

原文始发于微信公众号(北京东方趋势科技发展中心):joyfill npm 包被植入区块链 RAT:导入即触发,朝鲜黑客借 npm 供应链投毒

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2026年8月30日02:25:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   joyfill npm 包被植入区块链 RAT:导入即触发,朝鲜黑客借 npm 供应链投毒http://cn-sec.com/archives/5411546.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息