UEFI Secure Boot 如何防止“邪恶双胞胎”欺骗攻击?

信息安全 操作系统 硬件 开机 uefi
2021-08-25 04:01:11

我一直在学习UEFI Secure Boot它旨在防止恶意软件感染引导过程并覆盖引导加载程序。它具有硬件级别的保护,以确保只有签名的、受信任的引导加载程序和操作系统内核将在引导时加载和执行。

如今,恶意软件可以用恶意版本覆盖主引导记录 (MBR),从而使每次后续引导都进入恶意版本的操作系统。UEFI 安全启动会阻止这种情况,因为您的机器只有在签名后才会运行引导加载程序,而攻击者修改后的引导加载程序将没有有效的签名。换句话说,使用 UEFI 安全启动,您应该确信,一旦您重新启动,您现在正在运行一个有效且受信任的引导加载程序和操作系统内核。有时人们总结说 UEFI 安全启动可以防止“bootkits”。好的,基本概念是有道理的。

我想了解是什么阻止了以下类型的攻击。假设您正在运行 Windows(例如)。假设攻击者在您的计算机上安装了恶意软件并希望确保他在重新启动后保持常驻,并修改了 Windows 启动配置以启动虚拟机 (VM)。VM 内部是一个修改后的 Windows 映像——就像标准的 Windows 内核和操作系统和映像一样,基本上是您机器上的完整副本,除了内核已被修改以在其中植入一些恶意软件。当您启动时,此 VM 会自动启动,并且(假设)它会自动以全屏模式启动。

这种攻击似乎颠覆了 UEFI 安全启动的预期目标。从用户的角度来看,感觉就像他们在完整的桌面环境中运行 Windows。他们没有意识到他们的整个环境都感染了恶意软件。当然,主机操作系统是值得信赖的(感谢 UEFI 安全启动),但来宾操作系统(在 VM 内)是恶意的,并且用户没有明显的方法来判断他们正在与邪恶的来宾交互,而不是与主持人。因此,用户会认为一切正常,但实际上他们已经被冲洗了。安全概念的鉴赏家会认为这是对“可信路径”的攻击:计算机启动了一个可信内核,

有什么能阻止这种攻击吗?或者,这种攻击在技术上是否可行?如果可行,是否违反了 UEFI 安全启动背后的安全目标或威胁模型?(更一般地说,是否有人对 UEFI 安全启动的安全目标和威胁模型有准确的说明,以及它的作用和不保证的确切内容?)

1个回答

您描述的攻击听起来更像是某种“钻石抢劫”攻击(对于日常罪犯来说有点复杂)。在我讨论 UEFI 之前,我想回答这是否可行。不,不是。如果我们谈论的是运行 VM 的服务器,最终用户可能不会注意到性能问题(给定足够的物理资源),但很可能到位的监控软件会检测到正在运行的新进程并且系统管理员会做出响应。一个好的系统管理员希望在他调查后能够说出来。

如果是桌面用户,他很可能会在重新启动机器时很快注意到它看起来有点不同。假设虚拟机可以欺骗旧桌面、安装的硬件,并且不显示有关正在运行的虚拟机的信息,他可能会被愚弄。

但我认为这个问题更多的是关于技术而不是个人,所以我的想法是肯定的,看起来这种类型的攻击会因为你所说的原因而起作用:主机操作系统是受信任的并且安全启动加载了该操作系统。VM 进程可能隐藏在另一个进程中(可能是 svchost?),并且用户和监控工具都可能被愚弄(一段时间)。

你的最后一个问题(它做什么和不保证)我在主页http://www.uefi.org/home/上找到了一些关于 UEFI 的信息。问题的答案“什么是 UEFI”指出:

UEFI(统一可扩展固件接口)将是一个详细说明接口的规范,该接口有助于将系统在预引导环境(即:系统通电后,但在操作系统启动之前)的控制权移交给操作系统,例如 Windows* 或 Linux*。UEFI 将在启动时在操作系统和平台固件之间提供一个干净的接口,并将支持一种独立于架构的机制来初始化附加卡。

从这个答案,我相信你没有得到任何承诺。UEFI 是供应商和编码人员可以实现的框架。我相信这将取决于供应商和编码人员来做出保证。