Arch Linux AUR 遭到破坏:400+ 个软件包感染了信息窃取工具和 rootkit

超过 400 个软件包在 Arch User Repository (AUR) 中遭到大规模供应链攻击而被破坏。一个恶意行为者冒充可信维护者,领养了孤儿软件包并注入了恶意的预安装脚本以部署信息窃取工具和 eBPF rootkit。

攻击向量:孤儿包领养

此次破坏利用了 AUR 的一个基本设计特性:任何用户都可以“领养”被标记为未维护(孤儿)的软件包。攻击者利用此机制自动化地领养被遗弃的软件包并推送恶意更新。

为了欺骗用户,攻击者伪装了一个已知的可信维护者账户,使得恶意提交看起来合法。该攻击被描述为持续进行中,随着活动的进展,妥协指标 (IoCs) 会发生变化。

技术执行与有效载荷

恶意软件通过修改过的 PKGBUILD 文件传递,其中包含预安装脚本。攻击通过不同的变体演变:

变体 1:基于 npm 的交付

在首次识别的变体中,预安装脚本使用 npm 安装了一个名为 atomic-lockfile 的恶意软件包。该软件包由名为 herbsobering 的用户在 NPM 上维护。

变体 2:基于 bun 的交付

随着攻击的演变,报告表明攻击者转而使用 bun 安装一个名为 js-digest 的恶意软件包。这一转变表明攻击者正在积极适应以避免检测或绕过简单的基于 npm 的解决方案。

rootkit 和信息窃取工具能力

除了简单的数据窃取之外,此次运动因部署 eBPF rootkit 而显著。信息窃取工具与内核级 rootkit 的组合使攻击者能够维持持久性并从系统管理员那里隐藏其活动,从而一旦感染就不可能再信任该系统。

修复与恢复

如果您是 Arch Linux 用户,建议采取以下步骤来确定并缓解暴露:

1. 识别感染的软件包

用户可以使用 pacman -Qm 识别已安装的 AUR 软件包。为了检查特定的受感染软件包,社区开发的脚本已提供:

2. 系统恢复

由于攻击涉及 rootkit,标准清理不足。建议的程序是轮换所有凭据并对 Arch Linux 进行完整系统重新安装。

社区分析与辩论

此事件在 Arch 社区内引发了关于 AUR 信任模型的重大辩论。

“审查每个 PKGBUILD” 强制要求

许多用户认为 AUR 一直是用户生成内容的集合,并且责任在于用户在安装前审查每个 PKGBUILD 和每个更新。

"人们需要认识到 AUR 只是用户生成的 PKGBUILDs 的集合。您必须审查您从 AUR 安装的每个 PKGBUILD 的源代码,这一点毋庸置疑。"

提议的结构性更改

其他社区成员提出了对 AUR 治理的更改,以防止类似攻击:

  • Adoption Warnings: 在 AUR 辅助工具(如 yayparu)中实施所有权变更时的警告。
  • Trusted User Review: 向社区仓库模型发展,其中软件包必须在合并前由“Trusted User”审查。
  • Adoption Restrictions: 限制任何用户在未通知或审查的情况下领养孤儿软件包的能力。

NPM/Bun 的作用

关于 NPM 包被用作供应链攻击交付机制的频率,存在广泛的不满,导致一些用户建议将生产系统上存在 npmbun 视为高安全风险。

Sources