当前位置:首页>Linux>Arch Linux AUR遭遇大规模供应链攻击

Arch Linux AUR遭遇大规模供应链攻击

  • 2026-10-11 07:18:15
Arch Linux AUR遭遇大规模供应链攻击

事件概述

2026年6月11日前后,一场代号为Atomic Arch的大规模供应链攻击袭击了Arch Linux社区软件仓库AUR(Arch User Repository)。攻击者劫持了超过400个AUR软件包,篡改其构建脚本,在用户构建这些包时植入恶意载荷。该事件由安全公司Sonatype发现并命名,被认为是迄今为止影响范围最广的AUR安全事件之一。

重要提示:此次攻击仅影响AUR社区仓库,Arch Linux官方软件仓库([core]、[extra]、[multilib])未受影响。

攻击原理:利用信任模型而非软件漏洞

此次攻击并非利用任何软件零日漏洞,而是针对 AUR 的信任模型。被劫持的软件包保留了原有名称、版本历史以及用户对它们的信任,只有构建指令(PKGBUILD 或 .install 脚本)被篡改。用户构建或更新这些包时,恶意代码即在本地执行。

攻击流程如下:

  1. 劫持孤儿软件包:攻击者在 AUR 中寻找已被原维护者放弃的“孤儿”软件包,通过 AUR 的标准认领流程获得所有权。

  2. 伪装提交记录:攻击者伪造 git commit 元数据,使变更看起来像是长期维护者所为。Arch Linux 受信用户(Trusted User)事后确认,原维护者账户并未被入侵。

  3. 篡改构建脚本:在 PKGBUILD 或 .install 脚本中插入恶意命令,例如在构建过程中执行 npm install atomic-lockfile 或 bun install js-digest。这些命令会从 npm 仓库拉取恶意包及其附带的正规包作为掩护。

  4. 用户触发载荷:当用户使用 AUR 助手(如 yay、paru)或手动构建这些软件包时,恶意 npm 包中的预安装钩子(preinstall hook)会执行一个捆绑的 Linux ELF 二进制文件(名为 deps)。

已知被确认的劫持包包括 alvr 和 premake-git。受影响日期为2026年6月11日及之后安装或更新的AUR包。

恶意载荷技术分析

独立安全研究员Whanos对恶意载荷 deps 进行了逆向分析,确认其为一个用Rust编写的凭证窃取器,专门针对开发者工作站和构建系统。

窃取的信息范围

  • 浏览器数据:来自 Chromium 内核浏览器(Chrome、Edge、Brave 等)的 Cookie、令牌、本地存储;Firefox 系浏览器的保存密码和会话。

  • Electron 应用会话:Slack、Discord、Microsoft Teams 等。

  • 开发者凭证:GitHub 令牌、npm 令牌、HashiCorp Vault 令牌。

  • AI 服务凭证:OpenAI/ChatGPT 的 Bearer 令牌及账户元数据。

  • 本地密钥与历史:SSH 私钥、known_hosts、Shell 历史记录。

  • 容器凭证:Docker 凭证、Podman 凭证。

  • VPN 配置文件。

  • 加密货币钱包:本地钱包文件及助记词(第二篇报道补充)。

数据回传与命令控制

  • 窃取的文件通过HTTP上传到 temp.sh。

  • 命令控制(C2)通过Tor洋葱服务(onion service)进行,利用本地环回代理通信。

持久化机制

恶意二进制会安装一个systemd服务,配置 Restart=always 确保持久运行:

  • 若以root权限运行:将自身复制到 /var/lib/,并在 /etc/systemd/system/ 下写入服务单元。

  • 若以普通用户运行:使用家目录,并在 ~/.config/systemd/user/ 下写入用户级服务单元。

eBPF Rootkit(可选,但危险)

早期部分报道夸大了 eBPF rootkit 的作用。实际情况是:

  • rootkit仅在二进制已获得root权限且拥有相应能力(capability)时才会加载,不用于提权。

  • 激活后,它会利用 pinned BPF 映射(hidden_pids、hidden_names、hidden_inodes)隐藏自身的进程、进程名和套接字 inode,使标准工具(如 ps、htop)无法发现。

  • 同时会阻止调试器附加。

关键后果:一旦 payload 以 root 权限执行过,仅删除AUR包不足以保证系统干净。包管理器只能移除它知道的文件,无法证明存在 rootkit 能力的系统已可信。

其他潜在载荷

二进制文件还携带了一个与 monero-wallet-gui 关联的第二阶段文件,分析人员怀疑其可能是一个未深入分析的加密货币挖矿程序。将eBPF rootkit与窃取器结合的做法十分罕见,也使得本次攻击格外值得警惕。

攻击规模与第二波攻击

Sonatype最初发布的报告统计了20多个被劫持的软件包。但在24 小时内,社区追踪者和AUR邮件列表(aur-general)已将清单扩大到超过400个。一份通过grep AUR git镜像整理的清单显示约408个,且仍在增长。

恶意npm包 atomic-lockfile@1.4.2 在被移除前,Socket统计的周下载量仅为134次,说明真实暴露风险主要来自 AUR 构建路径,而非直接 npm install。

第二波攻击使用了 bun install js-digest,由另一组账户推送,但社区追踪者将其关联到与 atomic-lockfile 相同的npm发布者。其载荷是一个哈希值不同的独立ELF二进制,同样被标记为恶意。用户需同时检查 atomic-lockfile 和 js-digest 两个特征。


受影响的时间与行动建议

检查范围

如果您在2026年6月11日或之后安装或更新过任何AUR软件包,请立即采取以下措施。

一、识别可疑包

  • 运行 pacman -Qm 列出所有从 AUR 安装的“外来”包,并与社区发布的受影响包列表进行比对(列表尚不完整,需持续关注)。

  • 使用社区提供的检测脚本,或手动 grep 近期构建历史及缓存:

grep-r"npm install atomic-lockfile" ~/.cache/   # 根据实际构建目录调整
grep-r"bun install js-digest" ~/.cache/
grep-r"src/hooks/deps" ~/.cache/

二、若发现可疑包已执行

立即假设主机凭证已全部泄露,并轮换以下所有内容:

  • 浏览器会话(Cookie 与保存的密码)

  • SSH 私钥

  • GitHub、npm 令牌

  • Slack、Teams、Discord 会话

  • Vault 令牌

  • Docker、Podman 凭证

  • 云服务访问密钥

  • 任何可能存在于环境变量中的 API 令牌

三、排查持久化与 rootkit

  • 检查 systemd 服务:

systemctl list-units --type=service --all|grep-v"loaded active"
ls ~/.config/systemd/user/
  • 检查可疑文件:/var/lib/ 下是否有未知文件。

  • 检查 BPF 映射:ls /sys/fs/bpf/ 中是否存在 hidden_pids、hidden_names、hidden_inodes。

  • 检查网络连接:ss -tunap 或 lsof -i 中是否有到 Tor 节点或 temp.sh 等上传服务的可疑外连。

四、如果软件包以 root 权限执行过

假设 rootkit 已植入。由于 eBPF rootkit 可以隐藏自身及恶意进程,无法在受感染系统上获得可信的检测结果。唯一可靠的恢复方式是:

  • 从可信介质重装操作系统,然后恢复数据(注意不要恢复可疑的二进制文件或配置)。

五、预防未来攻击

  • 构建前阅读 PKGBUILD 和 .install 脚本,尤其是近期被认领的包或长期沉寂后突然活跃的包。

  • 不理解构建指令,就不要安装该包。

  • 使用支持默认启用 PKGBUILD 审查提示的 AUR 助手(如 yay 可配置 --review)。

技术指标(IOC)

  • 主载荷 SHA-256:6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b

  • 恶意 npm 包:atomic-lockfile@1.4.2、js-digest

  • C2 方式:Tor 洋葱服务(具体 onion 地址参见 ioctl.fail 完整分析报告)

  • 上传服务:temp.sh


历史回溯与系统性风险

类似的手法曾在 2018 年出现(一个废弃的 PDF 阅读器包被劫持)。2026 年的版本将规模大幅扩大,属于更广泛的供应链攻击趋势:攻击者不再依赖“域名仿冒(typosquatting)”欺骗用户,而是直接劫持被遗弃但仍有用户基数的合法项目,继承其信任。

目前该事件没有分配 CVE 编号。Sonatype 将其追踪为 Sonatype-2026-003775,CVSS 评分 8.7(高危)。

对AUR生态的启示

本次攻击之所以成功,根源在于 AUR 仍然主要依据软件包的名称和历史来信任它,而非当前的维护者身份。一个近期被认领的包,或者突然新增安装钩子的包,现在应被视为与陌生人提供的包同样可疑。

Arch Linux安全团队已采取紧急措施:

  • 回滚恶意提交

  • 永久封禁攻击者账户

  • 在邮件列表中发布受影响包清单,并呼吁用户持续上报可疑包

最终建议:对于任何AUR用户,请立即执行上述检查。如果您的系统曾被恶意包以root权限感染,请做好从零重装的准备。传统的防病毒和常规检测手段对此类攻击基本无效,因为恶意行为完全发生在受信任的构建流程之内。

最新文章

随机文章