Linux 内核在线补丁的历史
在此页
- 2001–2010:专利之路
- 2009:Rebootless 的诞生
- 2011–2016:Oracle 和新浪潮
- 2014 年:新来的街区
- 结论:2019 年的核心问题
- 进一步阅读
- 一般文章
- 文档
安装最新的 Linux 内核过去意味着重启,直到开发了“无重启内核更新”,这是一种无需重启即可修补服务器的方法。由于这项技术已有 10 多年的历史,本文将简要介绍一下它的起源和现状。
2001–2010:专利之路
如果您使用热补丁或实时系统更新等关键字浏览专利档案,您会挖掘出许多申请和拒绝,表明在不停止计算机系统的情况下更新计算机系统的想法并不是什么新鲜事。重要的日期,从一般到具体追溯这个想法,如下:
- 2001 年:惠普公司申请了一种动态更新软件以避免丢失硬件功能的方法的专利。
- 2002 年:Microsoft 以一种无需中断系统即可更新系统 (Windows) 的方法加入游戏。 (他们最初的申请以惠普的“现有技术”为由被拒绝。)
- 2008:杰夫·阿诺德 1)。
- 2010 年:微软的专利最终在上诉中获得授权。
这些有趣的一点是,他们都希望通过软件更新来纠正系统核心软件或硬件中的故障,而不会影响该系统的继续运行,也不会改变硬件。听起来很熟悉? (线索:崩溃,幽灵。)
2009 年:Rebootless 的诞生
Jeff Arnold 是麻省理工学院的一名学生,负责管理他们的一台服务器2。它需要一个安全补丁,但他推迟了,因为重启会给用户带来不便。系统还没来得及更新,就被黑了。这种耻辱和(具有讽刺意味的)不便受到了启发,Jeff 为他的硕士论文找到了主题,即立即执行系统更新且无需重新启动。这个故事可能是杜撰的,但它提醒我们,实时补丁技术的出现不是为了方便,而是为了安全,而正是在这个角色中,它们应该受到赞赏。
Jeff Arnold 与三名学生同事合作研究如何在不延迟且不中断系统进程的情况下更新 Linux 服务器内核的问题。该解决方案以名为 Ksplice 的软件形式出现,其技术基础在 2005 年的 2009 年微软中奠定,适用于 Windows 驱动程序更新。
毕业后,杰夫和他在麻省理工学院的同事创办了 Ksplice Inc.,并于 2009 年 5 月赢得了麻省理工学院 10 万美元创业大赛奖。公司于2010年推出商业服务;事情进展顺利。
2011–2016:甲骨文和新浪潮
2011 年 7 月 21 日,Oracle 收购了 Ksplice, Inc.,将该软件集成到他们自己的 Linux 品牌中,而 Linux 本身是 Red Hat3 的衍生产品。尽管有这样的传统,Oracle 还是停止了对 Red Hat 的支持。甲骨文对 Ksplice 的收购引发了其他陷入困境的主要 Linux 供应商的活动激增。
2011 年至 2014 年间,SUSE 和 Red Hat 各自独立(并且不了解彼此的目标)发布了他们自己的实时内核更新解决方案,他们分别在 Kpatch 中完成了这些解决方案。 (尽管他们略有领先,但 SUSE 的 Kgraft 在 2016 年才成为 GA(即适用于生产系统)。)
Red Hat 与社区分享了他们的 Kpatch 代码,并将其集成为 Red Hat Enterprise Linux 的一项支持功能。
可以从开源版本项目页面上印有的消息中推断出这两个版本之间的区别:
警告:谨慎使用!
可能会发生内核崩溃、自发重启和数据丢失!在同一时期,与 SUSE 和 Red Hat 的努力并行,支持实时修补的基本 ABI 基础被集成到 Linux 内核 4.0 版源代码中。这个想法是从 Kpatch 和 Kgraft 中汲取最好的想法,然后……将它们修补并移植到主线的通用方法中。这称为 livepatch,并在 2016 年 10 月扩展到涵盖 14.04 LTS。在 Ubuntu 18.04 LTS 中,Livepatch 是一个安装选项,可以通过内置的软件管理工具进行配置,这表明它在标准软件发行版中的重要性与日俱增。
2014 年:新来的街区
随着主要供应商争先恐后地率先推出可行的实时修补解决方案,KernelCare 在 3 月份成功测试后于 2014 年 5 月推出。
他们通过在最多数量的 Linux 平台上提供最广泛的功能集而令市场感到惊讶,并在 Linux 内核开发和客户支持方面享有盛誉。另一个冲击是价格实惠,吸引了网站托管商,他们发现 KernelCare 的每台服务器成本比其主要竞争对手的每站点成本更易于管理和可扩展。
最近,KernelCare 与 Imunify360 的捆绑使其出现在一群志存高远、具有安全意识的系统管理员的雷达上。
结论:2019年的核心问题
随着世界朝着自动化安全的方向发展,您会看到自动实时内核补丁管理软件越来越紧密地集成到流行的 Linux 发行版中。目前市场上只有五个不同的供应商。一篇专题背景文章。
修补活动内核可能会很麻烦。企业或任何运行服务器的人都不想信任未经测试和不受支持的软件。当以安全的名义完成时,它是 Linux 中众多值得付费的应用程序之一,是少数绝对必须正确完成的应用程序之一。
lwn.net 2011 年 7 月。
麻省理工学院新闻:“为世界带来无需重启的更新”(2014 年)。
Linux 内核实时更新服务:特性对照表
Feature
Ksplice
Kgraft
Kpatch
Livepatch
KernelCare
Easy Install/config
Yes
N/A
Yes
Yes
Yes
Rollback
Yes
Yes
Yes
Yes
Yes
Fixed patches
Yes
No
No
No
Yes
Firewall-friendly
Yes
No
No
No
Yes
Offline updates
Yes
No
No
No
Yes
Patch access control
Yes
No
No
Yes
Yes
Fully automated
Yes
No
No
No
Yes
Management GUI
Yes
No
No
Yes
Yes
Free 24/7 Support
No
No
No
No
Yes
No. of Platforms
2
1
1 (4)
1
9
Instantaneous patching
Yes
No
Yes
Yes
Yes
Free Trial (days)
30
60
No
No
30
API (REST)
Yes
No
No
No
Yes
Non-latest override
Yes
No
No
No
Yes
Custom kernels
No
No
Yes
No
Yes
有关详细信息,请参阅比较说明。
延伸阅读
一般文章
- Livepatch:无需重启即可更新 Linux 内核(2018 年 6 月 27 日)linux-audit.com
- Live Patching Meltdown——SUSE 工程师的研究项目(第 1 部分)(2018 年 5 月 2 日)suse.com
- 实时内核补丁更新(2017 年 9 月 27 日)lwn.net
- Red Hat Enterprise Linux 7.2 及更高版本上的 kpatch 指南(2016 年 11 月 10 日)redhat.com
- 使用 Canonical Livepatch 服务修补您的 Ubuntu 内核! (2016 年 10 月 18 日)blog.dustinkirkland.com
- Linux 与 Unix 热补丁——我们到达临界点了吗? (2016 年 5 月 20 日)forrester.com
- 实时修补的粗略补丁(2015 年 2 月 25 日)lwn.net
- 实时内核更新工具(2014 年 9 月)admin-magazine.com
- KernelCare:新的无重启 Linux 补丁系统(2014 年 5 月 6 日)zdnet.com
文档
- Ksplice 用户指南
- Kpatch 指南
- Kgraft 文档
- KernelCare 文档
- Canonical Livepatch 服务数据表 (PDF)
比较说明
轻松安装/配置
- Ksplice——安装 Uptrack
- Kgraft 预装了 SUSE Linux Enterprise Server 12
- 安装 kpatch 工具
- KernelCare 安装
回滚
- Ksplice 上轨删除
- 删除 Kgraft 补丁
- 删除 kpatch 修补程序
- KernelCare——卸载补丁
防火墙友好
- Ksplice 防火墙和代理配置
- KernelCare 防火墙和代理设置
离线更新
- Ksplice 离线客户端
- KernelCare 离线更新可通过 ePortal 提供给企业客户
补丁访问控制
- Ksplice 访问政策
- KernelCare 配置和位置
全自动
- Ksplice 自动更新
- KernelCare 基础管理
管理界面
- 仅适用于 Ubuntu 或 Fedora 桌面版的 Ksplice GUI
- Canonical Livepatch Service - GUI only with paid support option
- KernelCare 电子门户
免费 24/7 支持
- Kpatch 支持(付费)
- Kgraft 支持(付费)
- Ubuntu 优势(付费)
- KernelCare 支持(包括)
平台数量
- Ksplice 支持的内核(Red Hat Enterprise Linux、Oracle Linux)
- Kgraft 数据表(SUSE Linux Enterprise Server 12/15)
- Kpatch (RedHat) 支持范围 (Red Hat Enterprise Linux)
- Kpatch (github.com)(Debian、CentOS、Ubuntu、Gentoo)
- Canonical Livepatch 服务数据表 (PDF)(Ubuntu 14.04 LTS、16.04 LTS)
- KernelCare 补丁服务器(Ubuntu、RHEL、CentOS、CloudLinux OS、Debian、Oracle Linux、Proxmox VE、Virt-SIG/Xen4CentOS、Virtuozzo/OpenVZ)
免费试用
- Ksplice 30 天免费试用(需要 Oracle SSO 帐户)
- Kgraft 60 天免费试用
- KernelCare 30 天免费试用
API(休息)
- Ksplice API
- KernelCare Nagios/Zabbix API
非最新覆盖
- Ksplice(具体有效版本)
- KernelCare 粘性补丁
作者保罗·雅各布斯
Paul 是 CloudLinux 的技术传播者和内容作者。他利用自己在 IT 领域超过 25 年的丰富经验来剖析、阐明和解释 Linux 网络托管和安全性的复杂性。