2026 年 6 月,攻击者攻陷了 Arch 用户软件仓库(AUR)中的超过 1,500 个软件包。Sonatype 的研究人员将这次行动命名为 Atomic Arch。这是迄今为止针对 AUR 的最大规模攻击之一。
AUR 是一个由社区维护的软件包构建脚本集合。它与 Arch Linux 的官方仓库是分开的。官方仓库未受影响。
这次攻击并未利用 Arch Linux 或 pacman 的漏洞。它滥用了 AUR 的软件包收养流程,接管了用户已经信任的孤儿软件包。
本文解释了发生了什么、为什么能够成功,以及你可以采取哪些措施来降低未来的风险。
Atomic Arch:2026 年 6 月的 AUR 恶意软件攻击
攻击者没有利用 Arch Linux 的漏洞。他们滥用了 AUR 的一个合法功能,称为 软件包收养。软件包收养允许孤儿软件包在原始维护者停止维护后由新维护者接管。
攻击者收养了孤儿软件包,并修改了它们的 PKGBUILD 文件。PKGBUILD 是一个 Bash 脚本,告诉 makepkg 如何下载、构建和打包软件。由于它是一个脚本,可以在构建过程中执行任意命令。
许多被修改的 PKGBUILD 文件下载了一个名为 atomic-lockfile 的恶意 npm 软件包。npm 软件包是通过 Node 包管理器(npm)注册表分发的软件。该 npm 软件包将一个 Linux ELF 可执行文件释放到系统中。ELF 可执行文件是 Linux 使用的标准二进制格式。
该恶意软件窃取了浏览器 cookie、会话令牌、登录凭据、SSH 密钥、Docker 凭据、VPN 配置文件和云机密。它还可以在获得 root 权限后部署一个可选的 eBPF rootkit。eBPF rootkit 利用 Linux 的扩展伯克利数据包过滤器(eBPF)框架来隐藏操作系统中的恶意活动。
这次行动最初约有 400 个被攻陷的软件包,并在接下来的几天内增长到超过 1,500 个。Arch 维护者在调查事件并移除恶意软件包期间冻结了新的 AUR 账户注册。
官方 Arch 仓库(core、extra、multilib)从未受到影响。这次攻击针对的是 AUR 的信任模型,而不是 Arch Linux 的打包或软件包签名基础设施。
为什么会发生这种情况
这次攻击成功不是因为 Arch Linux 不安全,而是因为 AUR 建立在信任之上。
AUR 是一个由社区维护的软件包构建脚本集合。任何人都可以提交新软件包,孤儿软件包可以被新维护者收养。与官方仓库不同,AUR 软件包在可用之前不会经过正式审查。
这并不意味着 AUR 不安全。这意味着决定一个软件包是否值得信任的责任在于用户。AUR 的设计目的是让社区打包变得容易,而不是认证每个软件包都是值得信任的。
攻击者利用了这种模式。他们没有创建新的恶意软件包,而是收养了已经拥有现有用户和既定历史的孤儿软件包。成为维护者后,他们修改了 PKGBUILD 文件以包含恶意代码。
这一事件表明,信任属于维护者,而不是软件包。当一个软件包易手时,这种信任应该重新赢得。去年值得信任的软件包今天不一定自动值得信任。审查变更与首次审查软件包同样重要。
如何更安全地使用 AUR
你不需要停止使用 AUR。但你需要更加谨慎地决定何时以及如何使用它。
1. 优先使用官方仓库
在使用 AUR 之前,先检查官方仓库。官方软件包经过 Arch 的打包流程,并由 Arch Linux 团队维护。仅当软件在官方仓库中不可用时才使用 AUR。
一些软件供应商也提供官方 Arch 仓库或官方软件包。当有这些时,优先选择它们而不是社区维护的 AUR 软件包。更新直接来自发布者,而不是 AUR 维护者。
2. 在构建前审查 PKGBUILD
PKGBUILD 是一个 Bash 脚本。在构建软件包之前审查它。如果你已经信任该软件包,重点关注自上次更新以来的变化。
如果软件包有新维护者或最近被收养,要特别留意。查找意外的下载、与构建软件无关的命令,或与上游项目不匹配的更改。
附带的 .install 文件也可以在软件包安装期间运行命令。如果软件包包含该文件,也要审查它。
阅读软件包评论。其他用户经常报告构建失败、维护者变更或可疑行为。
3. 在干净的 chroot 中构建软件包
干净的 chroot 是一个隔离的构建环境,只包含构建所需的软件包。它降低了构建脚本访问工作环境中文件的风险,并有助于生成干净、可重现的构建。devtools 软件包提供了创建和使用干净 chroot 的工具。
更多细节请参见以下链接:
4. 考虑使用 Flatpak 运行桌面应用程序
Flatpak 分发预构建的桌面应用程序,这些应用程序在沙箱中运行。沙箱限制了应用程序可以访问的内容,除非你授予额外权限。这降低了应用程序被攻陷的影响,但不能保证应用程序是值得信任的。
你可以使用以下命令安装 flatpak 并启用 flathub 仓库:
sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
5. 当需要其他发行版的软件时使用容器
如果你需要更容易在其他 Linux 发行版上安装的软件,考虑在 Distrobox 容器中运行它,而不是依赖非官方的 AUR 软件包。Distrobox 将该软件与主系统隔离,同时将其与桌面集成。
要安装 Distrobox 并创建容器(例如 Void Linux),请执行:
sudo pacman -S distrobox
distrobox create --name void-box --image voidlinux/voidlinux
distrobox enter void-box
6. 审计已安装的 AUR 软件包
以下命令列出外来软件包,即未从官方仓库安装的软件包:
pacman -Qm
定期审查该列表。特别关注最近更换维护者或在成为孤儿后被收养的软件包。
7. 保留系统快照
文件系统快照捕获系统的当前状态。诸如 Snapper 或 Timeshift 之类的工具允许你在更新、软件包安装或配置更改后回滚。快照无法保护已被窃取的凭据,但可以大大加快系统恢复速度。
在安装或更新 AUR 软件包之前,问自己三个问题:
- 该软件是否可从官方仓库或发布者处获得?
PKGBUILD中的近期更改是否合理?- 我是否信任当前的维护者?
如果你不能自信地回答所有三个问题,请停下来,在继续之前进行调查。
总结
2026 年 6 月的 AUR 恶意软件行动不是停止使用 Arch Linux 或 AUR 的理由。它提醒我们,信任应该被赢得并随时间审查。
这次攻击没有利用 Arch Linux 的漏洞。它利用了用户对更换维护者的软件包的信任。同样的思路出现在许多软件供应链攻击中。攻击者通常针对受信任的软件而不是技术漏洞。
AUR 为社区提供了一种简单的方式来打包和分享官方仓库中不可用的软件。这种开放性也意味着用户必须决定哪些软件包值得信任。
本文中的每一条建议都遵循相同的原则:减少你对软件投入的信任量,并降低如果信任被错放时的影响。
将每个 PKGBUILD 视为可执行代码,因为它正是如此。在构建之前审查更改。关注维护者变更。在 AUR 增加价值时使用它,而不是仅仅因为它方便。
安全不是要避免所有风险。而是要理解信任存在于何处,并决定它是否已经赢得。
如果你是 Arch 新手,请从官方仓库构建基础系统,使用 Flatpak 处理额外软件,使用容器处理跨发行版需求,并将 AUR 视为在信任之前需要阅读的东西。
资源和进一步阅读:



