CloudSEK 披露一个此前未被记录的 JavaScript 加载器 GHAPPIER:它通过入侵合法 npm 包 @dforge-core/dforge-mcp 分发。攻击者如何获得维护者账户尚不清楚,怀疑开发者的机器可能被恶意扩展或包感染。
该加载器的主要目标是从攻击者控制的服务器拉取代码并执行,使威胁行为者能够在运行时动态更改载荷。恶意版本(0.2.21)于 2026 年 9 月 9 日在 npm 上存活了 35 分 38 秒,随后原始维护者回滚变更并发布了干净版本(0.2.22)。研究者已在 22 个不同账户的 65 个公开仓库中观测到同一加载器。
"它以同样的方式到达每个受害者:操作者获取开发者存储的凭据,然后用这些凭据写入该开发者有权限推送的每一个仓库,"CloudSEK 研究员 Vikas Kundu 说。
对来自 npm 包和第二个受害者仓库的两份加载器副本的对比显示:攻击链使用相同的 staging 主机和 Vercel 域名请求,但活动标签不同("ghappier" vs "g0115")。第二个载荷还使用了 NullReceiver 技术从攻击者钱包获取 C2 地址(193.247.144[.]38),并带有同样的尾部字节序列"68656c6c6f6970626f742121"(解码为"helloipbot!!")——这一特征与长期活动的朝鲜关联攻击活动 PolinRider 重叠。
对 npm 包维护者的建议:
- 为 npm 账户启用双因素认证,审查活跃 token 并最小化其权限
- 监控包的意外版本发布——35 分钟的存活窗口说明快速响应可以显著压缩暴露时间
- 警惕本地开发环境中的恶意浏览器扩展与依赖——账户被盗的起点往往是开发者机器本身
本文编译自 The Hacker News / CloudSEK,原文地址:https://www.cloudsek.com/blog/ghappier-malware-loader-npm-supply-chain-attack




评论 0 条