Arch Linux AUR 恶意软件事件:超过 1,500 个软件包受影响

Arch Linux 解决大规模 AUR 恶意软件妥协

Arch Linux 开发者已宣布,影响 Arch User Repository(AUR)的恶意软件事件现已得到控制。最初报告有 400 个受妥协的软件包,最终统计显示有 1,579 个用户贡献的软件包受到影响。开发者已删除所有已知的恶意提交,尽管他们指出提供的受影响软件包列表包含了许多受影响的软件,但并未涵盖全部。

事件范围

安全漏洞在一天内迅速升级,受感染的软件包数量分三波增长:

  • 初始发现: 超过 400 个软件包被妥协。
  • 中午更新: 大约 900 个软件包被识别为感染。
  • 最终评估: 列出 1,579 个软件包受影响。

此事件专门针对 AUR,AUR 是一个社区驱动的仓库,用户在其中贡献软件包构建脚本(PKGBUILDs)。与官方 Arch Linux 仓库不同,AUR 并未经过官方开发者的审查,因此对用户贡献的内容风险更高。

技术指示与检测

根据社区分析,恶意软件似乎是通过恶意的 npm 依赖引入的。具体而言,用户将以下软件包识别为妥协指示器:

  • atomic-lockfile
  • js-digest
  • lockfile-js

如何检查感染

社区成员建议用户使用以下几种方法验证系统是否受到影响:

  1. 检查外部软件包: 使用命令 pacman -Qmi 列出外部软件包,并将其与官方提供的受影响软件包列表进行交叉比对。
  2. 搜索恶意文件: 运行 grep 命令在常见位置搜索已识别的恶意 npm 软件包:
    • grep -rl "atomic-lockfile" / --include="package.json" --include="package-lock.json"
    • grep -rl "atomic-lockfile" ~/.npm 2>/dev/null
  3. 审查日志: 在 pacman 日志中搜索可疑软件包的记录:
    • grep -i "atomic-lockfile" /var/log/pacman.log 2>/dev/null

此外,社区在 github.com/lenucksi/aur-malware-check 创建了一个维护的脚本和软件包列表仓库,以帮助用户审计系统。

社区洞察与安全最佳实践

该事件在 Arch Linux 用户中引发了关于使用 AUR 辅助工具风险以及手动审查重要性的广泛讨论。

AUR 辅助工具的风险

许多用户对 "pacman wrappers" 或 AUR 辅助工具(如 yayrua)表达了担忧,这类工具会自动化安装过程。批评者认为,这些工具可能导致用户跳过在安装前审查 PKGBUILD 的关键步骤。

"当有人开始制作可以直接从 AUR 安装的 pacman wrappers 时,我感到非常不适……预制的 pkgbuild 并不足以承担 typoquatting 或战术 npm 或 pip 依赖的风险。"

推荐的缓解策略

为降低攻击面,经验丰富的用户建议采用以下做法:

  • 手动审查: 在安装任何 AUR 软件包前,始终审查 PKGBUILD 及其依赖。
  • 避免以 root 构建: 尽可能以非 root 用户构建软件包,并在本地安装,以限制潜在妥协的影响。
  • 限制软件包数量: 保持最小化的已安装软件包集合,以简化更新和审计。
  • 采用孤立软件包: 有用户指出,许多受影响的软件包是孤立的。采用那些很少更新但仍受欢迎的孤立软件包,可防止恶意行为者声称所有权。
  • 手动更新: 将高风险或关键软件的 AUR 更新从自动(通过辅助工具)转为手动更新。

Sources