后来发现并删除了3个AUR包acroread、blaz和minergate (E,g:大写PKGBUILD细节)中的恶意代码。它是在恶意用户通过更改孤立的AUR包的所有者并包含恶意curl命令而发布的提交中找到的。
curl命令将下载主bash脚本x,然后下载第二个脚本u (u.sh),以便创建一个systemd服务,并使用一个函数收集一些系统数据(非敏感数据),但攻击者可以对脚本进行修改,以便按顺序上载。
实际上,并非所有用户都有能力在他们的系统上构建任何包之前检查PKGBUILD (需要一些知识、花费更多的时间等等)。为了了解它是如何工作的,我下载了两个bash脚本并上传到这一页上。
检查AUR包中恶意代码的最简单方法是什么?
发布于 2018-07-15 13:01:12
关键是,对于一个没有经验的用户来说,检查源代码可能并不容易。然而,有了自然的对抗性点,Arch也可能不是最适合于缺乏经验的用户的Linux发行版。
Arch wiki(s)、AUR助手和大多数在线论坛都警告说,这样的存储库/AUR是危险的,绝不能盲目信任它们。一些助手还警告您在安装PKGBUILD之前应该阅读它们。
作为一项建议,建议始终使用三进或aurman (或类似的实用程序)而不是yaourt (列出为问题/中止),因为它们为用户提供了检查包/差异列表的机会。它还有助于查看在收集或更新包时的贡献历史。
当您有正式的二进制包作为替代时,临时用户不应该使用这些存储库作为软件包的主要来源。如果必须使用AUR,可以在Arch论坛和/或邮件列表中搜索问题报告。然而,尽管这是一个过于乐观的观点,但Arch社区似乎经常检查包,就像这里的情况一样。
您也可以尝试使用maldetect搜索下载的源代码中已知的恶意软件签名,但是使用自定义代码捕获某些东西的可能性是零。maldetect通常更适合捕获PHP代码中的恶意软件。
在我的上一份工作中,我用了一小段时间从源代码编译dhcpd包,并且多年使用从源代码编译的FreeRadius包(因为Debian版本已经过时了)。
在第一种情况下,我对github的源代码做了一些粗略的检查,下载了几次。在第二个例子中,我积极地跟踪FreeRadius用户论坛、github论坛和代码更新。我也有一个测试/检疫的环境。(我甚至提交了在我的测试环境中发现的一个重要的bug报告)。
关键是,如果您正在对源代码安装的包做任何严肃的工作,它通常比发行版提供的官方编译包所涉及的工作要多得多。
P.S.2.通常,任何经验丰富的Unix管理员都会告诉您,直接从curl直接运行脚本/源代码,而无需进行任何视觉检查,从安全性的角度来看,这是一个非常糟糕的想法。
https://unix.stackexchange.com/questions/456417
复制相似问题