为什么您的PC的UEFI固件需要安全更新

微软刚刚宣布了Project Mu,承诺在支持的硬件上实现“固件即服务”。每个PC制造商都应该注意这一点。个人电脑需要对其UEFI固件进行安全更新,而个人电脑制造商在提供这些更新方面做得很差。

什么是UEFI固件?

现代PC使用的是UEFI固件,而不是传统的BIOS。UEFI固件是引导PC时启动的低级软件。它测试和初始化您的硬件,执行一些低级系统配置,然后从您计算机的内部驱动器或其他引导设备引导操作系统。

但是,UEFI比旧的BIOS软件稍微复杂一些。例如,采用英特尔处理器的计算机有一种叫做英特尔管理引擎的东西,它基本上是一个很小的操作系统。它与Windows、Linux或您的计算机上运行的任何操作系统并行运行。在公司网络上,系统管理员可以使用英特尔ME中的功能来远程管理他们的计算机。

UEFI还包含处理器“微码”,类似于处理器的固件。当您的计算机引导时,它从UEFI固件加载微码。可以将其视为将软件指令转换为在CPU上执行的硬件指令的解释器。

相关:什么是UEFI,它与BIOS有什么不同?

为什么UEFI固件需要安全更新

过去几年一遍又一遍地说明了为什么UEFI固件需要及时的安全更新。

我们在2018年都了解了Spectre,展示了现代CPU的严重架构问题。所谓的“推测性执行”的问题意味着程序可以逃避标准的安全限制并读取内存的安全区域。修复了Spectre需要CPU微码更新才能正常工作的问题。这意味着PC制造商必须用包含更新微码的新UEFI固件更新他们所有的笔记本电脑和台式PC,主板制造商也必须更新他们的所有主板。除非您安装了UEFI固件更新,否则您的PC不会受到Spectre的充分保护。AMD还发布了微码更新,以保护搭载AMD处理器的系统免受Spectre攻击,因此这不仅仅是英特尔的事情。

英特尔管理引擎发现了一些安全漏洞,这些漏洞可能会让拥有计算机本地访问权限的攻击者破解管理引擎软件,或者让拥有远程访问权限的攻击者制造麻烦。幸运的是,远程攻击只影响启用了英特尔主动管理技术(AMT)的企业,所以普通消费者不会受到影响。

这些只是几个例子。研究人员还证明,在一些个人电脑上滥用UEFI固件是可能的,利用它来获得对系统的深度访问权限。他们甚至展示了持久的勒索软件,可以访问计算机的UEFI固件并从那里运行。

业界应该像任何其他软件一样更新每台计算机的UEFI固件,以帮助防止未来出现这些问题和类似的缺陷。

相关:如何检查您的PC或手机是否受到Meltdown和Spectre的保护

多年来,更新过程是如何被打破的

BIOS更新过程一直是一团糟-早在UEFI之前很久。传统上,电脑出厂时使用的是老式BIOS,出错的可能性更小。PC制造商可能会提供一些BIOS更新来修复小问题,但通常的建议是,如果您的PC工作正常,则避免安装它们。你经常不得不从可引导的DOS驱动器引导来刷新BIOS更新,每个人都听说过BIOS更新失败并导致PC无法引导的故事。

星移物换。UEFI固件做的更多,英特尔在过去的几年里发布了几个重大的更新,比如CPU微码和英特尔ME。每当英特尔发布这样的更新时,英特尔所能做的就是说“问问你的计算机制造商”。您的计算机制造商-或主板制造商,如果您自己制造PC-必须从英特尔获取代码,并将其集成到新的UEFI固件版本中。然后他们必须测试固件。哦,每个制造商都必须对他们销售的每台个人电脑重复这个过程,因为他们都有不同的UEFI固件。这就是过去让Android手机升级变得如此困难的那种手工工作。

实际上,这意味着获取必须通过UEFI交付的关键安全更新通常需要很长时间--甚至几个月。这意味着制造商可能会耸耸肩,拒绝更新只有几年历史的个人电脑。而且,即使制造商发布了更新,这些更新通常也会隐藏在该制造商的支持网站上。大多数PC用户永远不会发现UEFI固件更新存在并安装它们,所以这些错误最终会在现有PC上存在很长一段时间。一些制造商仍然要求你通过先引导进入DOS来安装固件更新-这只是为了让事情变得更加复杂。

人们对此做了些什么?

真是一团糟。我们需要一个简化的流程,让制造商可以更轻松地创建新的UEFI固件更新。我们还需要一个更好的流程来发布这些更新,这样用户就可以在他们的PC上自动安装这些更新。现在这个过程是缓慢的和手动的-它应该是快速的和自动的。

这就是微软试图通过Project Mu来做的事情。以下是官方文件对此的解释:

Mu项目旨在通过简化UEFI开发流程并帮助每个人协同工作,帮助PC制造商更快地创建和测试UEFI更新。希望这是缺少的部分,因为微软已经让PC制造商更容易将他们的UEFI固件更新自动发送给用户。

具体地说,微软允许PC制造商通过Windows Update发布固件更新,至少从2017年开始就提供了相关文档。早在2018年10月,微软还发布了Component Firmware Update;这是一种开源模型,制造商可以使用它来更新UEFI和其他固件。如果PC制造商同意这一点,他们可以非常迅速地向所有用户提供固件更新。

这也不仅仅是Windows的事情。在Linux上,开发人员正试图让PC制造商更容易通过LVFS发布UEFI更新,LVFS是Linux供应商固件服务(Linux Vendor Firmware Service)。个人电脑供应商可以提交他们的更新,他们将出现在GNOME软件应用程序中供下载,该应用程序用于Ubuntu和许多其他Linux发行版。这一努力可以追溯到2015年。戴尔(Dell)和联想(Lenovo)等个人电脑制造商也参与其中。

这些针对Windows和Linux的解决方案也不仅仅影响UEFI更新。硬件制造商将来可以用它们来更新从USB鼠标固件到固态驱动器固件的所有东西。

正如SwiftOnSecurity在谈到固态硬盘固件和加密的问题时所说,固件更新可以是可靠的。我们需要从硬件制造商那里期待更好的结果。

图片来源:英特尔,Natascha Eibl,kubais/Shutterstock.com。

相关文章