威胁行为者入侵了 Axios 的 npm 账户,该库被广泛使用,每周下载量超过 1 亿次,随后发布了恶意版本,以在 Linux、Windows 和 macOS 系统上传播远程访问木马。这起供应链攻击发生在恶意更新出现在 npm 仓库之后,已被多家安全公司识别。
Axios 的恶意版本(1.14.1 和 0.30.4)在一小时内发布,既未经过 OIDC 验证,也没有对应的 GitHub 提交记录,这立刻引发了警觉。研究人员认为,攻击者入侵了维护者 Jason Saayman 的 npm 账户。
Aikido Security 发布的报告指出:“在恶意版本被下架之前,任何安装过这两个版本的用户都应假定其系统已被入侵。这些恶意版本注入了一个依赖项(plain-crypto-js),该依赖项部署了一个跨平台的远程访问木马,针对 macOS、Windows 和 Linux。”
目前影响尚不明确,但考虑到 Axios 每月约 4 亿次的下载量,在短暂的攻击窗口期内,许多下游项目可能已经暴露。
Socket 的研究人员报告称,一个名为 plain-crypto-js@4.2.1 的恶意软件包在发布后几分钟内即被检测到,这可能是一场针对 Axios 的协同攻击的一部分。攻击者将这个依赖项插入到两个被入侵的 Axios 版本中,使得恶意软件能够通过一个被数百万个项目信任的库传播。由于许多开发者依赖自动更新,受影响的版本可能在用户不知情的情况下被安装。
恶意代码被设计为隐藏自身。它使用混淆技术以规避检测,并通过安装后脚本在安装过程中自动运行。一旦执行,它会检查操作系统(Windows、macOS 或 Linux),并下载针对每个平台的第二阶段负载。研究人员确认,在 macOS 平台上,攻击者交付了一个功能完整的远程访问木马,能够收集系统信息、与命令控制服务器通信并执行命令。
Socket 发布的报告写道:“来自 Elastic Security 的安全研究员 Joe Desimone 在 C2 服务器下线前捕获并对 macOS 的第二阶段二进制文件进行了逆向工程。该负载是一个用 C++ 编写的功能完整的远程访问木马。”
为了避免被发现,该恶意软件在运行后会清除自身痕迹。它会删除安装文件并恢复看似正常的软件包内容,使受感染的库看起来一切正常。专家认为,此次攻击之所以可能发生,是因为维护者账户被入侵,从而导致恶意更新被未经授权地发布。
鉴于 Axios 的下载量巨大,即使暴露窗口相对较短,潜在影响依然十分显著。
Socket 安全研究人员又发现了两个软件包,它们通过隐藏在与 Axios 相关的依赖项中传播同款恶意软件。其中,**@shadanai/openclaw** 包在其代码深层嵌入了恶意的 **plain-crypto-js**,使用了相同的混淆技术、命令与控制基础设施以及自删除行为。另一个包 **@qqbrowser/openclaw-qbot** 则采用了不同方式,它捆绑了一个被篡改的 Axios 版本,从而在后台悄悄安装了恶意依赖项。
在这两起案例中,当这些项目拉取了被入侵的 Axios 版本时,感染很可能自动发生。这显示了一个被投毒的依赖项如何能够迅速在众多项目中传播,尤其是在自动化构建和快速包发布流程的背景下。
要检查你是否受到 Axios 攻击的影响,请确认你的项目中是否包含恶意版本(**1.14.1 或 0.30.4**)或隐藏的 **plain-crypto-js** 包。同时,请检查 macOS、Windows 或 Linux 系统上是否存在残留文件或 RAT 痕迹。即使部分文件已被删除,仍可能留有蛛丝马迹。此外,也可以使用像 Aikido 这样的自动化工具来扫描依赖项,快速检测是否存在任何被入侵的包。
Socket 和 Aikido 均已针对此次供应链攻击提供了入侵指标(IOC)。
来源:黑猫安全
领取优惠
提交成功!