2026年3月30日,有人劫持了互联网上使用最广泛的JavaScript包之一。然后通过一次npm install,在数万台机器上安装了后门。

那个包是Axios。周下载量1亿次。过去10年里凡是用JavaScript做过东西的人,几乎一定用过这个HTTP库。攻击者没有修改Axios源代码的一行。而是劫持了管理员账号,将一个几小时前创建的假包添加到依赖项中后发布了更新。这个假包在被安装的瞬间检测OS,下载并运行定制的远程访问木马(RAT),然后自我删除。等你打开node_modules文件夹的时候,它已经消失了。

3秒摘要
劫持Axios管理员账号添加假包(plain-crypto-js)依赖npm install时自动安装RAT89秒内连接攻击者服务器自动删除痕迹

这是什么?

软件供应链攻击(Supply Chain Attack)。攻击的不是你直接使用的代码,而是你的代码所依赖的包

1亿+
Axios周下载量
755个
JS项目的中位传递依赖数
267天
行业平均供应链入侵检测时间

有什么不同?

传统供应链攻击AI Agent时代的供应链攻击
攻击准备时间数月至数年(XZ Utils:2年建立信任)数小时至数天(Axios:39分钟完成)
依赖决策主体开发者直接审查AI Agent自动安装,审查时间≈0
检测方式CVE数据库比对(npm audit)需要行为分析(无CVE的新型恶意软件)

要点整理:立即可用的防御方法

  1. 强制基于lockfile的安装
    默认使用npm ci。只安装lockfile中指定的精确版本。
  2. 引入基于行为分析的安全工具
    除npm audit外,引入Socket或Oligo等分析包实际行为的工具。
  3. 限制AI Agent权限
    让自律编程Agent在添加依赖时需经过人工审批。
  4. 阻止postinstall脚本
    设置npm config set ignore-scripts true可以阻止包安装时的自动执行脚本。