以 Debian 为基础维护 F-Droid 项目

自由软件允许以更高效的方式运作大型软件。 由于自由软件的这一“超能力”,F-Droid 能够用少量资源服务那么多人。 自由软件允许分享开发和维护,而不是每个项目各自为战,处理开发和维护事宜。 这是 F-Droid 基于 Debian 构建的原因所在。 但只有当使用自由软件的项目回馈其所用的上游自由软件项目时,这一模式方能奏效。 基于此,F-Droid 致力于确保将我们所做的工作尽可能多地回馈给上游原始项目。 对于生产代码,我们使用 Debian 包。 当我们需要使用新的库文件时,我们确保它已添加到 Debian,并且在 Debian 进行维护。 当我们在稳定版中需要一些新的依赖项时,我们使用 Debian Backports

为了在实际案例中说明这一点,让我们看一下最近在我们的依赖中的安全问题:GitPython。CVE-2022-24439CVE-2023-40267CVE-2023-41040 是影响大部分在 GitPython 中处理不受信任输入的三个漏洞。在可信输入上运行 GitPython 的用例并不受影响。因为我们的构建流程接受几千个开发者的 Git 存储库,我们的代码处理来自几千人的输入。输入经过验证层可以提供保护,但没有完美的验证。所以我们需要确保每一步都是安全的。所以我们给我们在生产中使用的 Debian 包打补丁。我们的包基于 Ubuntu LTS 里打了补丁的,而它又基于为 Debian LTS 构建的打了补丁的,由 Freexian 资助。这是自由软件使修复安全问题更加容易的经典例子。

当然我们并不孤单,很多其他项目也基于 Debian 构建。最近,Tor Project 概述了在 Debian 上构建的很多关键好处。很明显的一点是我们投入到 Debian 维护中的努力产生了超过它本身的回报,减少了我们的核心贡献者,特别是运行服务器的人的工作和压力。软件供应链攻击在一系列打包系统中变得更加普遍。一个良好配置的 Debian 服务器相比任何服务器软件分发系统具有当前最强有力的保护。

在附带它的所有依赖的软件中有相同趋势,例如 Android 应用。有很多种机器人检查项目使用了最新版本的库。这对 Android 应用很常见,因为他们必须包含他们的所有依赖。Android 只提供核心库。当我们以 Debian 作为我们系统的基础,我们只需要在 Debian 上更新依赖,然后所有项目自动收到更新。当与 Debian 的无人值守升级结合时,这种方式只需要很少努力就可以保持软件更新。这场来说,没有人类审核的自动更新在软件领域是一件危险的事。静默从通道中安装新软件可能会被攻击者利用。Debian 的自由软件要求,稳定发布版本,可重复构建和强有力的包分发通道使以可信方式启用无人值守升级成为可能。