为什么要考虑QEMU现场修补

系统管理员知道运行未修补服务的风险。考虑到选择和无限的资源,大多数辛勤工作的管理员将确保所有系统和服务都得到一致的修补。
但事情很少这么简单。技术资源是有限的,修补往往比乍一看要复杂得多。更糟糕的是,有些服务隐藏在后台,根本不在需要修补的列表中。
QEMU是那些容易给修补带来困难的服务之一。它在后台工作,很容易被认为是理所当然的。此外,修补QEMU涉及重大的技术和实际挑战–;同时需要巨大的资源。
在本文中,我们将讨论修补QEMU的一些困难,并指出一种解决方案,该解决方案将从QEMU修补中去掉最困难的部分。
忽视QEMU补丁是一个很大的风险
如果使用QEMU–;当然,对于Quick EMUlator–;因为QEMU将提供支持您的工作负载的关键虚拟化功能。也就是说,你可能没有意识到,就像主机操作系统、虚拟化操作系统和所有应用程序一样,QEMU也需要定期更新–;即使它在后台工作。
这不仅仅是一个吓人的故事。QEMU已被证明与任何其他服务、库或组件一样容易受到攻击。例如,在2015年,QEMU中的虚拟软盘控制器被发现易受攻击:它被称为毒液漏洞,并影响系统,无论QEMU虚拟软盘是否正在使用。
类似地,在2019年,使用KVM/QEMU虚拟机监控程序运行Linux实例的组织受到了一个安全漏洞的攻击,该漏洞将无数系统置于风险之中。而且,就像其他常用软件一样,QEMU中可能会发现更多缺陷。
换句话说,如果不进行修补,系统将面临风险。但有一个问题:对于QEMU,修补并不简单,因为修补QEMU会影响底层的虚拟化工作负载:当您停止重启QEMU时,虚拟工作负载也必须停止。
修补QEMU的选项
在单个系统上修补单个服务通常不是问题–;假设你记得去做–;即使修补一个操作系统也不像你通常能处理一次重启那么困难,但随着每个应用程序重启,它仍然具有破坏性。修补一组操作系统要困难得多,因为这可能意味着数千次重启,并对无数应用程序造成中断。
因为QEMU是一种虚拟化服务,所以修补比简单地修补另一个应用程序有更大的影响。修补QEMU,您必须重新启动在其上运行的底层操作系统。
在其他情况下,将补丁应用于单个服务–;QEMU–;可能导致数千个操作系统被迫重启。它显著地使QEMU补丁复杂化了–;这可能意味着技术团队有时会推迟修补QEMU,试图证明冒漏洞风险是合理的,因为他们认为中断太大了。
然而,补丁是必须的,当涉及到更新QEMU–;正确的方法。以下是你的一些选择。
快速但非常危险的方法
你最简单但最具破坏性的选择就是简单地应用补丁,重新启动,然后看看会发生什么。如果只是一台机器,你会没事的–;毕竟,您会意识到需要重新启动工作负载。
然而,如果你在一个服务器群中管理QEMU,或者在有外部利益相关者的环境中管理QEMU,那么毫无疑问,只要在所有机器上进行补丁并触发重启,就会导致许多人感到不安。
明智的做法
大多数头脑清醒的系统管理员将不再只是重新启动,而是对上述过程进行更多的规划。首先,您将通知所有受计划维护窗口影响的人,设置计划停机时间–;比方说,提前一个月。当然,问题是,你必须希望自己在那个月内没有被黑客攻击。
然而,在维护窗口期间,您将有机会在不打扰任何人的情况下进行修补,允许几小时不允许进行任何服务。一旦重新启动QEMU,所有虚拟机都应该重新启动,您可以通知涉众修补已完成。
尽管如此,在重启后,您可能会为自己设置一段相当长的故障排除时间,尽管您不会受到任何攻击,但即使是计划的维护窗口,对所有相关人员来说都是一个挑战。还有许多情况下,涉及实际停机的计划维护是不可接受的。
企业级方法
有些工作负载无法很好地处理操作系统重启造成的中断。在企业环境中,您需要另一个计划。您需要采取一种更复杂的方法:QEMU工作负载的实时迁移。
只有当工作负载已经在多个主机上分配,并且在这些节点上激活了高可用性时,才能执行此操作。然后,通过通知您的利益相关者维护窗口将到期来启动补丁,这将影响性能–;但这不应该影响可用性。
依靠您的高可用性操作,您可以跨多个服务器迁移虚拟机,然后停止QEMU,对其进行修补,然后重新启动它。重启后,将虚拟机迁移回修补过的QEMU实例。
正确完成后,通过迁移进行修补可以确保安全修补QEMU实例,而不会在实际停机期间让涉众感到不安。
QEMU迁移的问题
我们已经讨论了修补QEMU的三种不同方法,毫无疑问,对于依赖QEMU驱动大工作量的组织来说,迁移路线是最佳选择。但即便是这种企业级方法也存在风险。你正在执行一个非常复杂的过程,就像所有复杂的过程一样,总是会失败。
出现问题的地方包括:
- 迁移期间性能可能会显著降低–;这可能会影响利益相关者和用户满意度,尤其是在迁移时间比预期长的情况下。
- 由于可能的性能中断,协调维护窗口仍然是必需的,这仍然是一项挑战和耗时的工作;同时给利益相关者带来一定程度的烦恼。
- 在迁移操作期间,通常可以容忍较小的网络数据包丢失–;但一些工作负载可能会对此敏感,这可能会导致重大问题。
- 您需要测试和验证迁移后–;你不能假设一切都顺利迁移,你可能需要让利益相关者参与这个测试过程。
通过迁移过程执行QEMU更新可以限制中断,但您的团队仍然需要在该过程中投入大量时间。出错的风险仍然存在–;而且灾难性失败的风险很小。
因此,虽然您的利益相关者不太可能看到重大的中断,但您的团队需要进行仔细的规划。最后,值得考虑的是,移民过程的任何不利后果–;尽管风险可能很小–;会对你和你的团队产生负面影响。
作为替代方案的实时修补
过去,修补总是依赖于一个停止、修补、重新启动的过程。是的,迁移有助于确保需要重新启动的实例可用。但是,一种更新鲜的方法已经变得越来越普遍:不重启正在修补的软件,而是动态修补。
这种方法称为实时修补,大大简化了修补过程。实时补丁不需要重启,而是在运行中更新服务器或需要修补的服务。QEMU live patching也是如此,您现在可以安装QEMU的最新补丁–;无需设置维护窗口,也无需执行和计划迁移。
这就是为什么来自TuxCare的QEMUCare对于在QEMU上运行工作负载的团队来说是一个游戏规则改变者。QEMUCare不仅使更新和迁移过程更容易–;它把它完全带走了。您的QEMU/KVM实例会立即修补,不会对底层虚拟机造成影响。
选择实时配线路线带来了一系列优势:
- 一致修补。一个好的实时补丁解决方案(如QEMUCare)将自动检测新补丁的发布,并启动补丁过程。你的团队甚至不需要监控补丁的发布:QEMUCare就可以处理它。这意味着你的团队会更加一致地修补–;降低QEMU实例易受新攻击的风险。
- 快乐的利益相关者.因为QEMUCare在后台工作,在不重新启动QEMU的情况下自动修补,所以您的利益相关者–;包括内部用户和您的客户或客户–;甚至都不知道你在打补丁。这一切都是无缝进行的,不需要有计划的维护窗口。
- 减少劳动时间。虽然您可以选择走捷径,但我们前面介绍的企业级、迁移驱动的修补过程是您唯一现实的选择。然而,这是非常劳动密集型的,需要花费团队的大量时间–;而QEMUCare几乎不占用团队的任何时间。
- 将错误风险降至最低。因为您不必手动迁移工作负载,所以修补QEMU会给您带来重大问题的风险较小。没有迁移故障或网络错误需要担心–;你和你的团队成员不需要担心你的工作。
显然,实时补丁极大地简化了使QEMU实例保持最新的过程:它会自动发生,您无需担心出现任何问题–;你不需要花很多时间来完成它。
QEMU补丁至关重要–;而实时补丁则让它变得更容易
QEMU可能在幕后默默地做着自己的工作,但从网络安全的角度来看,你不能忽视它。
你必须修补QEMU,但你的团队可能会被前景吓倒,这是可以理解的。
虽然周密的计划和一个维护窗口会让你达到目的,但实时补丁只会让它变得更容易–;您可以更频繁地进行修补,而且只需更少的努力。因此,如果你依赖QEMU来处理工作量,那么考虑TuxCalp如何修补补丁可以使你的团队受益。