Arch AUR 遭恶意软件包渗透
ZDNET AI··作者 Jack Wallen
关键信息
AUR 软件包本质上是社区维护的 PKGBUILD 配方,用户可以通过 makepkg 从源码构建软件,并使用 pacman 安装。由于任何人都可以上传到 AUR,而 Trusted Users 的审查能力有限,经过混淆或只做浅层审查的改动就可能混入其中。
资讯摘要
ZDNET 报道称,Sonatype 在 Arch User Repository(AUR)中发现了大约 1,500 个恶意软件包,而且这个问题在一周内被发现了不止一次。AUR 不是 Arch Linux 的官方精选仓库,而是一个社区驱动的集合,其中包含用于从源码构建和安装软件的 PKGBUILD 文件。文章指出,这种开放性也是它的弱点,因为任何人都可以上传软件包,而志愿维护者 Trusted Users 无法对每一次提交进行深入审查。报道描述了攻击者如何通过混淆恶意代码、伪装成正常软件包并利用快速审核通过,从而把恶意内容带入仓库。
Arch 团队随后提醒用户在更新时务必检查所有 PKGBUILD 和安装脚本的变更,尤其是在这个阶段。ZDNET 还提到,公开信息中尚未说明这些恶意软件包具体做了什么,也没有披露提交者身份。文章最后建议 Arch 用户卸载来自 AUR 的软件,检查系统是否存在可疑的外连流量,并在生态系统更安全之前考虑使用 Flatpak 等替代来源。

资讯正文
ZDNET 的核心要点:
Arch User Repository 被发现包含恶意应用程序。
在一周内,这一情况被发现了两次。
用户被警告要保持警惕,不过还有其他更简单的方法。
软件供应链管理公司 Sonatype 的研究人员发现,Arch User Repository 中包含大约 1,500 个恶意软件包,该公司在 6 月 12 日更新的一篇博客文章中表示。
“The Arch team said in a brief statement. "We continue to encourage all users of AUR packages to review all PKGBUILD and install script changes when updating, especially during this time. If you notice suspicious commits to a package that you use, please reach out to Arch staff via the aur-general mailing list with more information," 这一简短声明中,Arch 团队表示。
这对一个旨在大幅增加 Arch(以及 Arch 衍生版)用户可用软件数量的仓库来说,可不是什么好消息。另请参阅:Archcraft 是一款扎实、超快的发行版,适合任何准备从 Linux 新手阶段迈向更高层次的人。
AUR 本质上是一种让开发者在软件正式加入 Arch 仓库之前,先把新软件提供给 Arch Linux 用户的方式。它由一组包描述文件组成(名为 PDKGUILDs),借助 makepkg 工具,可以从源代码编译软件包,然后再通过 Arch Linux 包管理器 pacman 安装该软件包。
AUR 的问题在于,任何人都可以向其中上传软件包,而一组 Trusted Users 负责监控里面的内容。
你已经能看出事情会怎么发展了,对吧?想象一下,你是那些受志愿性质的 Trusted Users 之一,负责检查提交到仓库的每一个应用。现在,再想象一下,你是一个想把恶意软件注入这个仓库的坏人。你把恶意代码混淆起来,把应用伪装成合法软件提交上去,并假设 Trusted Users 没有时间逐行审查你的代码。Trusted User 粗略扫了一眼代码,没有看出混淆。
砰!你刚刚往 AUR 里添加了一个恶意应用。
在一周时间内,大约 1,500 个恶意应用进入了这个仓库,这意味着必须有所改变;否则,Arch(以及基于 Arch 的)用户将无法继续信任 AUR。目前尚无关于这些恶意应用具体行为的报告,也没有关于是谁提交它们的消息。
与此同时,我对 Arch 用户有几条建议。
卸载、卸载、卸载
首先,你需要卸载你从 AUR 安装的任何东西,并希望现在还不算太晚。
目前,我完全不知道进入 AUR 的恶意代码到底有多严重,因此无法判断它可能已经对你的系统造成了多大损害,或者是否已经造成了损害。幸运的是,你可以用 pacman 这样删除该软件包:
sudo pacman -R PACKAGENAME
其中 PACKAGENAME 是要删除的软件包名称。完成之后,再用以下命令检查该软件包是否已经被移除:
pacman -Q
上述命令会列出你系统上安装的每一个软件包。
停止使用 AUR
接下来,先停止使用 AUR,至少在开发者和 Trusted Users 想出避免这一问题的解决方案之前都不要再用。处理完这些之后,在开发者找到让它变得安全的方法之前,最好把 AUR 视为禁区。
在你删除完所有软件包并停止使用 AUR 之后,最好再用像 Wireshark 这样的工具测试是否存在任何可疑的外发流量。如果你发现了不认识的流量,就去查一查。如果它是未知的,或者已知与恶意代码有关,要么阻止该外发流量,要么重装你的操作系统。不要冒任何风险。
采用通用软件包管理器
不要再用 AUR,改为安装 Flatpak,并从那里安装应用。使用 Flatpak,你可以安装大量应用,所以你几乎不会像自己想象的那样怀念 AUR。你可以用下面的命令安装 Flatpak:
sudo pacman -S flatpak
安装完成后,再用以下命令添加 Flathub 仓库:
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
然后你就可以这样安装所需的任何软件:
flatpak install PACKAGENAME
其中 PACKAGENAME 是在 Flathub 上找到的软件包名称。你会发现,Flathub 上有一些 AUR 里没有的应用,甚至包括 Spotify 和 Slack 这类专有应用。
很遗憾,恶意行为者会把好东西毁掉。Arch Linux 是一个相当安全的操作系统,但 AUR 却是另一回事。我向来不是靠 AUR 吃饭的人(事实上,我很少使用它),所以这件事对我的影响远没有对那些依赖它的人那么大。
要解决这个问题,我建议 AUR 需要一套更完善的机制来验证提交软件的完整性。我知道,有些人可能会把这视为对 AUR 多年来传统的一种冒犯,但如果这类问题持续发生,AUR 最终会变成一片荒芜之地。
一周内接近 2,000 个恶意应用,这绝不是可以轻轻放过的事。即使开发者每次发现恶意应用后都能发布“安全无虞”的通告,到了某个时候,也不会再有人信任 AUR,所以必须发生一些重大改变。
甚至连五年前的这个 Reddit 讨论串也说明,这个问题长期以来一直备受关注。它还凸显了这样一个事实:检查自己安装的每一项内容,责任在用户身上。对此,我想说,如果用户被要求检查自己想使用的软件是否包含恶意代码,你又要如何吸引新用户呢?答案是……你做不到。
来源与参考