时间:26-04-25
npm生态系统近期发生了一起影响深远的供应链安全事件,直接威胁到数百万开发者的项目安全。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
流行的HTTP客户端库Axios的两个版本——1.14.1与0.30.4——被植入了恶意依赖。考虑到Axios每周超过一亿次的下载量,此次投毒攻击的潜在影响范围极为广泛。
攻击者的行动效率极高,在不到两小时内就完成了对1.x和0.x两条主线的版本污染。
本次攻击采用了典型的“依赖混淆”策略,通过控制上游依赖进行渗透。
攻击始于3月30日下午。攻击者首先发布了试探性包plain-crypto-js@4.2.0。
真正的恶意版本plain-crypto-js@4.2.1在3月31日00:00左右发布。
攻击的核心在于攻击者成功劫持了Axios核心维护者jasonsaayman的npm账户,修改了账户邮箱并获取了发布权限。
随后,攻击者绕过自动化流程,直接通过npm CLI手动发布了被污染的Axios版本:
axios@1.14.1axios@0.30.4这两个版本均在依赖声明中加入了plain-crypto-js@4.2.1。攻击链条清晰:恶意包作为载荷源,高知名度的Axios则成为传播载体。
所有恶意逻辑封装在plain-crypto-js@4.2.1中。
安装该包会触发postinstall脚本,执行混淆代码。其首要动作是连接至C2服务器sfrclak.com:8000,下载第二阶段攻击载荷。
随后,根据操作系统类型投递不同的远程访问木马:
/tmp目录释放Python脚本。载荷执行后会清理自身痕迹,使得常规的node_modules检查难以发现异常。识别此类攻击最有效的方法是审计项目锁文件。
在3月31日特定时间窗口内执行过npm install或依赖更新的项目均存在风险。
风险不仅限于开发环境,同样威胁CI/CD流水线与生产服务器。供应链攻击的渗透性极强,会沿依赖树自动传播。
即使恶意包已从npm registry下架,如果项目的锁文件(package-lock.json, yarn.lock)仍锁定受污染版本,风险将持续存在。
立即核查项目中Axios是否为受影响版本1.14.1或0.30.4。
若确认受影响,建议执行彻底清理:删除node_modules目录与锁文件,重新安装依赖,并在package.json中将Axios显式固定至已知的安全版本。
若怀疑系统已执行恶意代码,需启动安全事件响应流程:立即隔离受感染主机、轮换所有相关密钥与凭证、执行全盘恶意软件扫描与系统完整性检查。