如何检查 AUR 包是否存在恶意代码?

如何检查 AUR 包是否存在恶意代码?

已在 3 个 AUR 软件包中发现并删除了恶意代码acroreadblaz并且minergate例如:acroread PKGBUILD 详细信息)。它是在恶意用户通过更改孤立 AUR 包的所有者并包含恶意curl命令而发布的提交中发现的。

curl命令将下载主 bash 脚本x,然后下载第二个脚本u( u.sh),以便创建 systemd 服务并使用函数收集一些系统数据(非敏感数据),但攻击者可以修改这些脚本以按顺序上传。

实际上,由于某些原因(需要一些知识、需要更多时间等),并非所有用户都能够在其系统上构建任何包之前检查 PKGBUILD。为了了解它是如何工作的,我下载并上传了 2 个 bash 脚本这个过去的bin页面

检查 AUR 包是否存在恶意代码的最简单方法是什么?

赤裸裸的安全:另一个存在恶意软件问题的 Linux 社区

Arch Linux 用户存储库中发现恶意软件包

答案1

关键是对于没有经验的用户来说可能不太容易检查源代码。然而,从自然的对立面来看,也可以说 Arch Linux 并不是最适合缺乏经验的用户的 Linux 发行版。

Arch wiki、AUR 帮助者和大多数在线论坛都警告此类存储库/AUR 的危险,并且不能盲目信任它们。一些助手还警告您应该在安装之前阅读 PKGBUILD。

作为建议,始终建议使用特里森aurman(或类似实用程序) 而不是yaourt(列为有问题/已停用),因为它们为用户提供了检查软件包/差异列表的机会。在挑选或更新软件包时,查看贡献历史也很有用。

当您有官方二进制包作为替代方案时,临时用户不应该使用这些存储库作为包源的主要内容。如果您必须使用 AUR,您可以搜索 Arch 论坛和/或邮件列表以获取问题报告。然而,虽然这是一个过于乐观的观点,但 Arch 社区似乎会定期检查软件包,就像这里的情况一样。

您还可以尝试maldetect在下载的源代码中搜索已知恶意软件签名的下载源代码,但是使用定制代码捕获某些内容的可能性为零。maldetect通常更适合捕获 PHP 代码中的恶意软件。

PS 在我的上一份工作中,我使用过一段时间dhcpd从源代码编译的软件包,并且使用了多年从源代码编译的 FreeRadius 软件包(因为 Debian 版本已过时)。

在第一种情况下,我从 github 上粗略地检查了几次下载的源代码。对于第二种情况,我积极关注FreeRadius用户论坛、github论坛和代码更新。我还有一个测试/隔离环境。 (我什至设法提交了在我的测试环境中发现的重要错误报告)。

进入正题,如果你正在做的话任何认真对待源安装的软件包,它通常比发行版提供的官方编译软件包涉及更多的工作。

PS2。通常任何经验丰富的 Unix 管理员都会告诉您直接运行直接源自的脚本/源代码curl而不进行任何形式的目视检查,从安全角度来看是一个非常糟糕的主意。

相关内容