四层投毒链路曝光!朝鲜黑客针对Rollup生态发起npm供应链APT攻击
2026年7月初,安全厂商JFrog披露一则高危供应链攻击事件,关联朝鲜Lazarus黑客分支团伙,攻击者瞄准前端主流构建工具Rollup生态,发布两款高仿恶意npm包,搭建四层递进式恶意代码链路,专门窃取开发者SSH密钥、npm令牌、环境凭证等敏感资产。
攻击者注册全新Hotmail账号,两天内批量发布rollup-packages-polyfill-core、rollup-runtime-polyfill-core两款仿冒包,高度复刻官方正规插件rollup-plugin-polyfill-node的README、配置文件与仓库地址,仅在描述字段留下微小破绽,普通开发者很难甄别。
不同于以往单次投毒,本次攻击采用分层解耦设计,任意一层被拦截,剩余恶意载荷仍可独立运行,攻击隐蔽性、存活能力大幅提升,大量使用Rollup做项目打包、库开发的前端团队、DevOps流水线均存在被入侵风险。

一、四层恶意攻击链路完整拆解,层层递进窃取开发凭证
整套攻击分为四层链式结构,分工明确、环环相扣:
第一层:高仿npm包伪装层
恶意包具备完整可用的Rollup插件功能,项目引入依赖后可正常打包运行,不会出现报错引发怀疑。文件末尾隐藏Base64编码静默安装指令,借助child_process.spawn无弹窗下载第二层SVG恶意工具包,通过--no-save等参数规避安装日志、npm安全审计。
第二层:SVG工具烟雾弹层
配套svgson-lite、svgcraft-core两款看似合规的SVG处理库,内置数十个正常绘图API掩盖恶意逻辑,底层预留远程加载接口,等待触发远程恶意代码。
第三层:C2混淆恶意载荷层
程序自动访问公开jsonkeeper远程服务器拉取60KB混淆JS代码,内置完善反沙箱检测机制,仅在真实开发者本地环境激活,规避自动化安全扫描工具。
第四层:终端凭证窃取层
载荷落地后遍历本地SSH密钥、npmtoken、系统环境变量,收集全部运维凭证,通过HTTP回传至黑客控制服务器,完成窃密。
二、攻击暴露npm生态底层安全短板
本次事件暴露出前端开源供应链长期存在的安全漏洞:
1、npm账号发布门槛极低,新注册邮箱验证即可批量发包,缺少开发者实名、人工审核机制。
2、依赖嵌套链条过长,项目间接依赖数百个子包,开发者无法逐行审计所有第三方源码。
3、自动化恶意扫描仅匹配已知特征,攻击者轻微修改代码编码、执行逻辑即可绕过检测。
4、前端开发普遍忽视构建工具安全,默认信任生态内插件,忽略文件底部隐藏恶意执行代码。
三、前端团队npm供应链防护实操方案
针对本次分层投毒攻击,开发与安全团队可落地多重防护手段:
1、引入依赖前校验:核对包名称、作者、版本、描述字段,警惕名称近似、新账号发布的高仿类插件;
2、锁定依赖版本:使用package-lock锁定子依赖,定期执行npmaudit扫描高危恶意包;
3、代码全量审计:重点查看工具库、构建插件文件末尾,排查Base64编码、spawn远程执行代码;
4、本地开发环境隔离:开发机与生产服务器密钥分离,避免本地凭证泄露引发内网渗透;
5、流水线安全管控:CI/CD流程增加第三方包静态代码扫描,拦截静默安装、远程拉取载荷行为。
四、行业警示:开源供应链APT攻击已成长期威胁
Lazarus团伙持续多年深耕Python、npm开源仓库实施供应链投毒,从加密货币钱包窃取到企业开发环境渗透,攻击目标逐步向软件研发侧倾斜。前端Rollup、Webpack等构建工具覆盖海量企业项目,一旦遭遇仿冒投毒,风险将顺着依赖链大范围扩散。
本次四层模块化恶意代码架构,代表APT黑客供应链攻击技术升级,仅靠人工排查已无法抵御复杂分层投毒。企业需建立常态化开源组件安全审查机制,平衡开发效率与供应链风险,从依赖引入、代码审计、流水线防护多维度筑牢防线,避免开发密钥泄露引发系统性安全事故。


闽公网安备 35021102000564号