实时补丁正在慢慢流行,但并非出于您可能会想到的原因。
在本文中,我将解释什么是Linux内核实时修补程序,不是什么,存在哪些服务,可能使用它的人以及原因。 我将展示Livepatch(在Ubuntu上),Kpatch(在Red Hat上)以及另一个在这两者上运行的KernelCare的基本安装步骤。
什么是实时修补?
实时修补程序是恶性操作的纯洁名称:无需停止即可更新Linux内核。
实时修补是一种在不影响服务器停机时间的情况下使Linux内核更新到最新的重要安全补丁的方法。 在过去的十年中,这个诱人的想法在Linux日益普及的悄悄声中悄然冲浪。 安全性,而不是性能或可用性,已成为内核开发人员的首要任务,他们试图将Linux的优势从服务器市场转移到桌面市场。 现在,系统管理员将实时补丁视为其系统健康网络安全策略的重要组成部分,而不仅仅是给自己带来便利。
当研究人员在Linux内核中发现错误或其他问题时,宣布它们后的第一步就是对它们进行分类 。 内核问题中最重要的种类是漏洞 。 这些是发现和描述某些人可能在未经操作员了解或同意的情况下破坏,破坏或渗透Linux系统的方式。 其中许多涉及通过利用Linux程序逻辑中的错误来颠覆Linux内核的行为。
漏洞的重要性与受影响的系统数量,重现的难度以及发生的情况有关。 如果答案是“很多”,“简单”和“任何”,则内核维护人员将疯狂地寻找解决方案。 当他们这样做时,就意味着要更新内核。
但是,由于Linux内核是什么,更新也意味着重新启动。 对于个人和业余爱好者来说,这没什么大不了的。 但是对于企业而言,重新启动需要计划和协调,这会花费时间和金钱。 同时,它们的系统至少在理论上是脆弱的。
实时修补缩短了发布漏洞修复与在受影响的系统上安装之间的时间。 缩小或消除此差距可降低利用未修补漏洞的风险。
实时修补的利弊是什么?
实时修补仅用于严重的安全问题。
当开发人员将漏洞跟踪到隔离的内核代码片段时,软件修补程序可以修复漏洞,而不会影响内核的其他部分。 但是,对于影响许多部分或影响数据结构的问题,无法进行实时修补。
实时修补无法完全消除重启。
实施实时修补策略并不意味着您将永远不会重新启动。 这确实意味着您可以推迟它,直到它变得更加方便为止,然后,在此之前,您的系统才可以安全地利用已修补的问题。
并非每个内核都支持实时修补。
所有实时修补方法都不同。 一些使用核心内核功能,而其他一些则使用开放源代码方法和封闭源代码方法。 没有通用的,多平台的解决方案(尽管KernelCare非常接近)。
实时修补很容易; 制作补丁不是。
任何具有技术知识的人都可以为其选择的Linux平台构建和安装实时修补软件。 源代码和信息可用,但是它的难易程度取决于您拥有的平台。
但是,对于所有实时修补方法而言,创建修补程序都是一项巨大的技术障碍。 它需要有关内核源代码,其编程模型和约定的详细知识。 即使您可以创建补丁,也有责任在尝试安装它之前对其进行彻底的测试。
实时修补不是免费的。
成本一直是Linux非企业核心粉丝群采用该技术的真正障碍。 Oracle Ksplice,Red Hat Kpatch,SUSE Kgraft和KernelCare都要求不同数量的月度,年度或三年期订阅。 已经提到了这样做的原因:创建补丁并不容