假设有一个开源应用程序,其二进制文件以.tar.xz
格式提供,但不是作为.deb
包。 Debian SW 存储库中有一个.deb
显然是由 Debian 社区构建的软件包。
鉴于我信任应用程序本身,我是否也可以信任 Debian 存储库中的它的版本? Debian 团队声称他们“非常重视安全”。不过,实际情况如何呢?我能否确定安全团队会审查所有提交的包并验证代码在打包之前没有被更改?或者他们只在发生事件时做出反应(例如从存储库中删除包)?
(预见一个问题:使用该.deb
包是有益的,因为它简化了更新和整体维护)。
答案1
Debian 安全团队在上传之前不会审查所有软件包,因为他们是一小群志愿者,并且存档中有超过 67,000 个软件包。我也不知道任何其他 Linux 发行版(或其他主要项目或发行商)有这样的过程。
然而,Debian 构建守护进程确实从源代码构建每个包,因此您可以下载源代码包(使用apt-get source PACKAGENAME
)并验证 tarball 和补丁是否符合您的预期。所有源包都经过加密签名,存档也是如此,因此您可以确保上传的源中的包没有被修改。
Debian 也有一个倡议可重复地构建所有包这样您就可以自己生成一个完全相同的包并验证没有任何内容被篡改。有一个包列表哪些可以重复构建,哪些不能重复构建。
一般来说,Debian 被广泛认为是值得信赖的二进制文件来源,并且许多主要组织都使用它,尽管您当然必须做出自己的决定。如果您确实需要审核每个二进制文件和二进制包,那么您必须自己管理,因为我不确定任何规模的任何操作系统发行商都提供该服务。
答案2
https://wiki.debian.org/DebianMentorsFaq和https://warlord0blog.wordpress.com/2018/05/08/repository-not-trusted向维护人员展示在维护其存储库时要小心谨慎,并制定一个流程来提醒您潜在的危险情况。
我同意您关于使用 .deb 包的优点的看法。
答案3
我问了两个问题,其答案描述了 Debian 存储库的安全相关方面:
- 谁构建 Debian 软件包?(很好的介绍了包装过程)
- “包管理器会检查包的哈希值吗?” (重复)->如何保证 Debian 软件包的真实性?(在这里你或许可以找到你想要的答案)
对于可重复的构建,我认为需要什么才能使其在实践中有用在 100% 的包可复制之前是检查哪一个的便捷方法全部除了vrms
检查已安装的非自由软件的工具之外,当前安装的软件包的一部分不可重现:
“如何列出 Debian 系统上安装了哪些不可复制的软件包?”