您每隔多久会在 Linux 上安装一次安全补丁?
by Canonical on 12 September 2024
定期应用补丁对于维护安全的环境至关重要,但对于确保 Linux 资产的安全性,并不存在一劳永逸的办法。那么,如何平衡更新频率和运行稳定性呢?有一些策略可通过合规且安全的方式实现安全补丁自动化,甚至适用于限制和监管最严格的环境。在确定安全补丁策略时,有必要了解 Canonical 软件更新发布时间表和安全补丁覆盖周期时间窗口等重要信息。笔者在近期主持的一场在线研讨会和安全问答活动中,解释了如何尽量减少补丁应用频率或尽量缩短未修复漏洞被利用的时间。本篇文章将概述笔者在这次网络研讨会上的主要观点,并说明确定更新计划时最重要的考虑因素。
针对 Linux 内核的安全补丁
Ubuntu 中有两种类型的内核,这些内核有两种打包方式。两种内核类型为通用版(GA)内核和变体内核。两种打包类型为 debian 包和快照包。GA 内核是 Ubuntu LTS 发行首日所包含的内核版本。每个 Ubuntu LTS 版本都会在每年 2 月和 8 月收到一次小数点版本更新,通常会有 5 个小数点版本。Ubuntu Server 默认在该版本 Ubuntu Pro 所覆盖的生命周期内在 GA 内核上运行。Ubuntu Desktop 默认从第二个小数点版本开始将内核升级为上游内核(其被称为硬件启用(HWE)内核)的更新版本。
GA 内核的安全覆盖周期将延伸至 Ubuntu Pro 的整个生命周期。HWE 内核的安全覆盖周期将延伸至 HWE 内核的生命周期(6 个月)再加 3 个月。HWE 内核生命周期结束之后的这额外 3 个月安全覆盖周期则为用户提供了升级到下一版 HWE 内核的时间窗口。
是否需要重新启动才能安装安全补丁?
内核包更新后,Ubuntu 实例必须重新启动才能将安装补丁后的内核加载到内存中。当通用内核作为快照安装时,该快照包的更新将重新启动设备。当通用内核作为 deb 包安装时,设备不会自动重新启动,但必须重新启动才能安装安全补丁。
Ubuntu 中的其他一些软件包在更新后也需要重新启动才会生效。glibc、libc、CPU 微码和 grub 引导加载程序的任何安全更新都需要重新启动才能生效。作为服务运行的软件,例如 ssh、网络服务器,需要在安装安全补丁后重新启动服务。对于不是作为服务运行而是按照需要运行的其他软件,则不需要重新启动系统或重新启动服务即可生效。
Livepatch 服务将在内存中对所运行的内核应用高关键级的安全补丁。其不会升级已安装的内核包,因此重新启动计算机并清除其内存将导致 Livepatch 已应用的安全补丁被删除。Livepatch 提供了针对 GA 内核的 13 个月安全补丁,以及针对 HWE 内核的 9 个月安全补丁。在上述 13 个月或 9 个月时间窗口之后,内核包必须升级,且 Ubuntu 实例必须重新启动,才能享受通过 Livepatch 提供的安全保障。
安装安全补丁的 3 种方法
Canonical 提供了包括 Livepatch、Landscape、Snaps 和命令行实用程序(如 unattended-upgrade)在内的一系列工具与服务。这些工具和服务可以一起使用,也可以选择性地使用,它们在 Ubuntu 中可以提供安全补丁自动化功能。您可以灵活运用这些工具,在台式电脑、服务器和物联网设备上实现各种不同的安全补丁目标。假设没有人想要运行无维护人员确保安全或提供支持的软件,您可能会倾向于以下安全补丁应用方法之一:
- 尽可能延期安装安全补丁,以达到最长拖延期。
- 以最小的频率但按照预定义的定期执行时间表安装安全补丁。
- 通过减少安全补丁发布与安装之间的时间,尽量缩短系统被漏洞利用的时间窗口。
无论使用哪种方法,要注意的是,可能需要留出不定期安全维护时间窗口来修复 glibc、libc 或 CPU 微码中的安全漏洞。
适用于拖延者的安全补丁
启用 Livepatch 后,在 GA 内核上运行的 Ubuntu LTS 实例需要每 13 个月升级并重新启动一次。如果在 HWE 内核上运行,首次升级并重新启动必须在 13 个月后,即 5 月进行。第二次升级并重新启动必须在 6 个月后,即 11 月进行。在 5 月和 11 月的升级并重新启动之后,HWE 内核将升级到下一版 GA 内核。GA 内核需要每 13 个月升级并重新启动一次。
每次升级并重新启动之间可能会间隔数月,因此,如果以此拖延,中等及以下的内核漏洞将保持未修复状态。这样会延长中等及以下内核漏洞处于未修复状态的时间。
定期安装安全补丁
如果使用的是 GA 内核,则可以按每年一次的频率安装补丁。结合 Livepatch 针对 GA 内核的 13 个月安全覆盖周期时间窗口,每年 5 月安装安全补丁并重新启动应当可以确保计算机中内核和其他软件包的安全。
假设使用的是 HWE 内核,则不能按每年一次的频率在每年的同一月份安装安全补丁。这种方法会导致内核的安全补丁覆盖周期缺失一段时间。除了 Ubuntu LTS 发行的第三年,当第四个小数点版本发布后,使用 HWE 内核的情况下则可每年应用一次安全补丁。
每年 5 月和 9 月应用一年两次的安全补丁,无论选择什么内核,都可安心使用。这种安全补丁应用频次考虑了 Canonical 的发布时间表和内核安全覆盖周期时间窗口。如果是每年两次,即每年 5 月和 9 月的安全维护时间窗口,安全覆盖周期则不会出现中断。
针对最小漏洞的安全补丁
很显然,安全维护时间窗口越频繁越好。一个极为常用的频次是每月一次:每月升级并重新启动,根本没有机会运行过时的内核。建议每周应用一次安全补丁并重新启动,也可以每天进行。Canonical 的安全补丁发布即可用,建议在其发布之时即进行应用。以高度可用的状态运行工作负载,启用安全补丁自动化,以及每天为计算机集群进行定期升级并重新启动,从而享受最有力的安全保障。
启用安全补丁自动化的最佳做法
【安全补丁自动化时间安排的最佳做法】视频解答了所有的常见问题:
- 有哪些补丁自动化选项可供选择?
- 安全补丁来源是哪里,从哪里分发?
- 安全补丁如何分发,应该如何应用?Canonical 的滚动内核策略如何针对特定的内核延长安全覆盖周期时间窗口?
- 什么时候应该安排安全维护事件?
订阅博客文章
查看更多内容
Canonical 为任何 open source Docker 镜像提供 12 年长期支持
“Everything LTS 计划”— Canonical 将根据客户的规格要求构建 distroless Docker 镜像,其中包括 Ubuntu 中未打包的上游组件,并在 24 小时内修复关键的 CVE 漏洞,在 RHEL、Ubuntu、VMware 或公共云 K8s 上畅享长达 12 年以上的支持。 Canonical 将其 LTS 产品扩展到 Ubuntu 的 “deb” 包以外,并推出了一项新的 distroless Docker 镜像设计与构建服务,该项服务为任何开源应用程序或依赖项均提供 12 年的安全维护,无论该软件是否是 Ubuntu 中已打包的软件。 「Everything LTS 计划意味着 CVE 维护将覆盖您的整个开源依赖项树,包括 Ubun […]
从 CentOS 迁移到 Ubuntu:系统管理员和开发运营指南
Photo by Sonja Langford, Unsplash CentOS 7 于 2024 年 6 月 30 日迎来生命周期结束(EoL)。在此日期之后,CentOS Project 将停止提供更新或支持,包括重要的安全补丁。放弃基于 RHEL 的生态系统可能令人望而生畏,但是如果您正在考虑 Ubuntu,那么这种转换既轻松简单又经济可行。 自动化安全验证领域的领跑者 Pentera,提供了一个极具说服力的案例研究来简化这种转换。他们详细介绍了如何在作出最小调整但需采取增强的安全性措施情况下,将其基于容器的系统迁移到 Ubuntu。这一举动也得到了其客户的积极回应,他们赞赏 Ubuntu在过去二十年以每两年一次的频率持续发布长期支持版本的可靠历史,并提供广泛的社区 […]
如何添加 Ubuntu Core 设备到 Landscape
简化物联网设备管理 自 Canonical 成立以来,Landscape 就一直是 Canonical 产品目录中的一员。Landscape 允许管理员仅从单个集中式门户即可管理桌面和服务器实例。在 Landscape Server 23.10 版本中,我们引入了通过 Landscape 管理快照包的功能,并且使用我们在 Snap Store 中提供的 Landscape Client 快照包测试版,您也可以将基于 Ubuntu Core 的设备添加到您的 Landscape 环境中。 Landscape 可以为您的整个 Ubuntu 系统环境提供远程设备管理服务。您可以使用它来管理软件版本和配置,控制安全补丁,监测设备性能和合规性,进行访问管理与审计。 本篇博客将帮助 […]