什么是 Linux 内核实时修补?
Linux 内核实时修补是一种在不需要重启或中断运行的情况下,将重大安全补丁应用到运行中 Linux 内核的方法。
补丁和更新不一样,更新是软件包的一个比较次要的新版本 ,可以包含错误修复、性能改进、新增功能、命令行修改以及其他增强。而补丁是代码的一个部分片段(通常来自软件包或文件的两个不同版本),旨在修复现有版本中的漏洞。这些补丁可以及时地修复漏洞,使现有实施可以更安全地运行,并且让系统管理员能够将系统重启推延到下一个定期维护期。
理论上,实时修补可以用于运行中内核的任何补丁,包括定期错误修复和增强。在实际运用中,实时修补会优先用于主要安全漏洞,因为它们的修复不可拖延。我们非常重视红帽® 企业 Linux® 的安全补丁,内核实时修补就是我们保障安全的一项重要安全功能(也可为管理员提供管理方面的好处)。
如果没有实时修补,应用补丁需要重启被修补的服务或应用,这样才能加载已修补版本中新的更改。即使是应用于 Linux 内核本身的补丁也不例外,这给 Linux 系统管理员带来了一个难题:他们需要应用重要的安全更新,但这会不定期地重启 Linux 服务器,造成延迟和停机。
Linux 内核实时修补的起源
麻省理工大学的一位学生系统管理员 Jeff Arnold 遇到了一个棘手的窘境。他的系统有待进行安全更新,但为了不影响使用,他打算晚一点再解决这个漏洞。结果,系统就遭到了黑客攻击。2008 年,Arnold 决定解决面临的这个难题,创造了他所称的“无根内核安全更新”,一种在系统保持运行的同时应用和加载安全补丁的方法。这个初始项目(ksplice)标志着 Linux 内核实时修补概念的诞生。
动态软件更新对于计算界是一个不小的挑战,因为需要同时处理好许多方面,例如无状态与有状态服务、持久性、数据管理、事务和后续命令等,这一切都关乎服务或应用如何运行。
Arnold 以及后续 Linux 内核实时修补项目所做的,是在内核空间内使用工具来加载内核模块。
红帽资源
Linux 系统运行的两个空间
Linux 系统运行划分为两个部分:用户空间(所有服务和应用的运行位置)和内核空间(内核系统运行所处的位置)。内核是一个资源中介,供所有应用来访问 CPU 和存储等硬件资源。除了内核本身外,管理员还可创建自定义内核模块来扩展或修改功能,这些内核模块可以动态加载和执行(甚至是在启动之后)。
内核实时修补工具所做的,是利用修补后的代码创建一个内核模块,然后使用 ftrace(function trace)工具从废弃函数路由到新的替代函数、修补模块或修补函数。
图 1:内核实时修补的工作原理
Ksplice 虽然是第一个 Linux 内核实时修补项目,不过,它后来出售给了 Oracle,最终变成了一个闭源工具。其他开发团队开始尝试发起开源项目来取代 ksplice,并在 2014 年推出了两个各自略不同的项目:红帽的 kpatch,以及SuSE 的 kgraft。最终,为了帮助 Linux 内核项目的社区,红帽和 SuSE 开发人员携手创造了 livepatch:Linux 内核中的一个通用层,允许人们开发兼容的内核实时修补工具。
内核实时修补为何重要?
有一点很重要,补丁是专门用来解决安全风险的。系统管理员面临的挑战之一,就是不仅需要负责 Linux 系统中的安全漏洞修补,还要确保满足正常运行时间要求。也就是说,他们可能无法在预定维护期外让系统下线。这根弦会绷得越来越紧。
根据红帽安全风险报告,识别的安全问题(称为通用漏洞披露或 CVE)在 2019 到 2020 年大幅激增,达到了约 155%(从 1,313 上升到 2,040)。尽管 2021 年 (1,596)稍有回落,但依然比 2019 年高 22%。数量增长主要在于中等严重性的漏洞;重要 CVE 大致持平,而严重漏洞有所下降。
内核更新和补丁每六个星期发布一次,而红帽企业 Linux 次要版本更新每六个月发布一次,里面包含所有的安全补丁。实时修补服务能够在不重启系统的前提下对 Linux 内核进行修补,让管理员不用再左右为难。
内核 CVE
与内核相关的 CVE 是首要关注点之一,2021 年浏览量排名前 10 的 CVE 中有 4 个与内核相关。
实时执行 Linux 内核安全修补的意义不只是便捷。这是安全团队的一个重要工具,让他们能够主动解决安全漏洞,使内核功能正常运行,并且确保其系统的安全。
红帽企业 Linux 系统的与众不同
内核实时修补是一个专门用来管理安全的工具,但红帽企业 Linux 中提供的工具不止于此。红帽企业 Linux 还包含了多种用来管理安全的工具,例如用来管理权限和访问控制的 SELinux,以及有助于配置和任务自动化的系统角色。升级红帽企业 Linux 基础架构后,您可以不间断地访问最新的修复程序,这有助于保持安全态势。
只靠一个解决方案,并不能打造“绝对安全的环境”。随着技术的发展,网络威胁更加变化多端,不同的攻击途径层出不穷,系统中的一切都可能沦为攻击的目标。安全防护必须从操作系统层面(甚至是源代码)就开始到位,贯穿整个技术堆栈并覆盖整个生命周期,因此,各种各样的工具都会派上用场。
从红帽企业 Linux Web 控制台管理内核实时修补,可以大幅降低实施关键维护的复杂性。这个新的 Web 控制台提供了一个简化的界面,让技能娴熟的管理员和经验不足的管理员都能够应用内核更新,而无需使用命令行工具。
所有红帽企业 Linux 订阅中均包含红帽智能分析,这为解决安全问题提供了一个统一的管理体验。其中包括:
- 覆盖整个基础架构的可视化控制面板,可显示易受攻击的系统和补丁状态,让您无需单独订阅红帽卫星服务器即可查找并修复关键错误。
- 相关的 CVE 和其他更新。
- 用于自动执行 Linux 安全修补的 playbook。
- 用于管理系统配置的既定安全配置文件和自定义配置文件。
- 使用基线配置,并标记与基线有偏差的系统。
为何选择红帽?
回望 Linux 内核实时修补的诞生,它与所有开源项目一样,应需求而生,不同的组织和社区成员携手贡献,打造能让整个社区受益的解决方案。这种开放的工作方式也是红帽订阅原则的核心思想:通力协作、公开透明,以及始终用心改进技术和用户体验。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。