为什么 Debian 安全更新有一个单独的软件包存储库?

tsh*_*ang 22 debian repository

他们为什么不将包上传到普通的包存储库?这是一般惯例吗……其他发行版是否也将存储库分开?

Gil*_*il' 20

Debian 有一个分发渠道,只提供安全更新,这样管理员就可以选择运行稳定的系统,只进行绝对最少的更改。此外,此分发渠道与普通渠道保持某种程度的分离:所有安全更新都直接从 提供security.debian.org,而建议对其他所有内容使用镜像。这有许多优点。(我不记得哪些是我在 Debian 邮件列表上读到的官方动机,哪些是我自己的小型分析。其中一些在Debian 安全常见问题解答中有所涉及。)

  • 安全更新会立即传播,不会因镜像更新而产生延迟(这会增加大约 1 天的传播时间)。
  • 镜子可能会过时。直接分发避免了这个问题。
  • 作为关键服务需要维护的基础设施较少。即使 Debian 的大部分服务器不可用,人们也无法安装新的软件包,只要security.debian.org指向一个工作服务器,就可以分发安全更新。
  • 镜子可能会受到损害(这在过去发生过)。观看单个分发点更容易。如果攻击者设法在某处上传恶意软件包,则security.debian.org可以推送具有更新版本号的软件包。根据漏洞利用的性质和响应的及时性,这可能足以使某些机器不受感染或至少警告管理员。
  • 拥有上传权限的人越来越少security.debian.org。这限制了攻击者试图破坏帐户或机器以注入恶意包的可能性。
  • 不需要普通 Web 访问的服务器可以放在只允许security.debian.org通过的防火墙后面。

  • 安全存储库早于签署存储库的发布文件,因此不鼓励对其进行镜像,因为它削弱了从 security.debian.org 下载的隐含信任。既然包元数据已经签名,那么这个论点在某种程度上已经消失了。 (3认同)

Han*_*Gay 10

我很确定 Debian 也在常规存储库中放置了安全更新。

拥有一个包含安全更新的单独存储库的原因是您可以设置服务器,仅将其指向安全存储库,并自动更新。现在,您已经拥有一台服务器,它可以保证拥有最新的安全补丁,而不会意外引入由不兼容版本等引起的错误。

我不确定其他发行版是否使用了这种确切的机制。yumCentOS有一个插件可以处理这种事情,Gentoo 目前有一个安全邮件列表(portage目前正在修改以支持仅安全更新)。FreeBSD 和 NetBSD 都提供了对安装的端口/包进行安全审计的方法,它们与内置的更新机制很好地集成在一起。总而言之,Debian 的方法(也可能是 Ubuntu 的方法,因为它们非常相关)是解决这个问题的更巧妙的方法之一。

  • 绝大多数安全补丁都非常小:将参数重新排序为 memset,修复对 strncmp 或您拥有的东西的边界检查。当然,他们可以合理地引入其他错误,但风险非常小且理论上,而发现的安全错误非常实用。 (4认同)