跳转至相应部分

什么是 Linux 内核实时修补?

复制网址

Linux 内核实时修补是一种在不需要重启或中断运行的情况下,将重大安全补丁应用到运行中 Linux 内核的方法。

补丁和更新不一样,更新是软件包的一个比较次要的新版本 ,可以包含错误修复、性能改进、新增功能、命令行修改以及其他增强。而补丁是代码的一个部分片段(通常来自软件包或文件的两个不同版本),旨在修复现有版本中的漏洞。这些补丁可以及时地修复漏洞,使现有实施可以更安全地运行,并且让系统管理员能够将系统重启推延到下一个定期维护期。

理论上,实时修补可以用于运行中内核的任何补丁,包括定期错误修复和增强。在实际运用中,实时修补会优先用于主要安全漏洞,因为它们的修复不可拖延。我们非常重视红帽® 企业 Linux® 的安全补丁,内核实时修补就是我们保障安全的一项重要安全功能(也可为管理员提供管理方面的好处)。

如果没有实时修补,应用补丁需要重启被修补的服务或应用,这样才能加载已修补版本中新的更改。甚至用于 Linux 内核本身的补丁也不例外,这会给 Linux 系统管理员造成一个难题:进行重要的安全更新迫在眉睫,但这会造成计划外重启 Linux 服务器,带来延迟和停机。

麻省理工大学的一位学生系统管理员 Jeff Arnold 遇到了一个棘手的窘境。他的系统有待进行安全更新,但为了不影响使用,他打算晚一点再解决这个漏洞。结果,系统就遭到了黑客攻击。2008 年,Arnold 决定解决面临的这个难题,创造了他所称的“无根内核安全更新”,一种在系统保持运行的同时应用和加载安全补丁的方法。这个初始项目(ksplice)标志着 Linux 内核实时修补概念的诞生。

动态软件更新对于计算界是一个不小的挑战,因为需要同时处理好许多方面,例如无状态与有状态服务、持久性、数据管理、事务和后续命令等,这一切都关乎服务或应用如何运行。

Arnold 以及后续 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 是首要关注点之一,2021 年浏览量排名前 10 的 CVE 中有 4 个与内核相关。

实时执行 Linux 内核安全修补的意义不只是便捷。这是安全团队的一个重要工具,让他们能够主动解决安全漏洞,使内核功能正常运行,并且确保其系统的安全。

内核实时修补是一个专门用来管理安全的工具,但红帽企业 Linux 中提供的工具不止于此。红帽企业 Linux 还包含了多种用来管理安全的工具,例如用来管理权限和访问控制的 SELinux,以及有助于配置和任务自动化的系统角色。

只靠一个解决方案,并不能打造“绝对安全的环境”。随着技术的发展,网络威胁更加变化多端,不同的攻击途径层出不穷,系统中的一切都可能沦为攻击的目标。安全防护必须从操作系统层面(甚至是源代码)就开始到位,贯穿整个技术堆栈并覆盖整个生命周期,因此,各种各样的工具都会派上用场。

红帽企业 Linux Web 控制台管理内核实时补丁,可以大幅降低执行关键维护的复杂程度。这个 Web 控制台新功能提供了一个简化的界面,同时兼顾了技能娴熟和经验不足的管理员的使用需求,让他们能够在其中应用内核更新,而无需使用命令行工具。

红帽智能分析可随任何红帽企业 Linux 订阅一起使用,为解决安全问题提供统一的管理体验。其中包括:

  • 覆盖整个基础架构的可视化控制面板,可显示易受攻击的系统和补丁状态,使您无需单独订阅红帽卫星服务器即可查找并修复关键错误。
  • 相关的 CVE 和其他更新。
  • 用于自动执行 Linux 安全修补的 playbook。
  • 用于管理系统配置的既定安全配置文件和自定义配置文件。
  • 使用基线配置,并标记与基线有偏差的系统。

 

回望 Linux 内核实时修补的诞生,它与所有开源项目一样,应需求而生,不同的组织和社区成员携手贡献,打造能让整个社区受益的解决方案。这种开放的工作方式也是红帽订阅原则的核心思想:通力协作、公开透明,以及始终用心改进技术和用户体验。  

继续阅读

文章

什么是 DevSecOps?

如果您想要充分发挥出 DevOps 的敏捷性和响应力,则必须在应用的整个生命周期内兼顾 IT 安全性。

文章

云安全有何不同之处

一些重大安全问题同时影响着传统 IT 和云系统。了解它们的不同之处。

文章

什么是 SOAR?

SOAR 指的是安全团队所使用的 3 大软件功能:案例和工作流管理、任务自动化,以及集中式管理访问、查询和共享威胁情报。

详细了解安全防护

产品

管理用户身份并帮助保持通信隐私的安全框架。

企业就绪型 Kubernetes 原生容器安全防护解决方案,让您能够更安全地构建、部署和运行云原生应用。

一项预测性分析服务,可帮助您识别并修复红帽基础架构在安全性、性能和可用性方面存在的威胁。

一个具有内置安全策略、用于控制 Kubernetes 集群和应用的控制台。

相关资源