我一直在学习UEFI Secure Boot。它旨在防止恶意软件感染引导过程并覆盖引导加载程序。它具有硬件级别的保护,以确保只有签名的、受信任的引导加载程序和操作系统内核将在引导时加载和执行。
如今,恶意软件可以用恶意版本覆盖主引导记录 (MBR),从而使每次后续引导都进入恶意版本的操作系统。UEFI 安全启动会阻止这种情况,因为您的机器只有在签名后才会运行引导加载程序,而攻击者修改后的引导加载程序将没有有效的签名。换句话说,使用 UEFI 安全启动,您应该确信,一旦您重新启动,您现在正在运行一个有效且受信任的引导加载程序和操作系统内核。有时人们总结说 UEFI 安全启动可以防止“bootkits”。好的,基本概念是有道理的。
我想了解是什么阻止了以下类型的攻击。假设您正在运行 Windows(例如)。假设攻击者在您的计算机上安装了恶意软件并希望确保他在重新启动后保持常驻,并修改了 Windows 启动配置以启动虚拟机 (VM)。VM 内部是一个修改后的 Windows 映像——就像标准的 Windows 内核和操作系统和映像一样,基本上是您机器上的完整副本,除了内核已被修改以在其中植入一些恶意软件。当您启动时,此 VM 会自动启动,并且(假设)它会自动以全屏模式启动。
这种攻击似乎颠覆了 UEFI 安全启动的预期目标。从用户的角度来看,感觉就像他们在完整的桌面环境中运行 Windows。他们没有意识到他们的整个环境都感染了恶意软件。当然,主机操作系统是值得信赖的(感谢 UEFI 安全启动),但来宾操作系统(在 VM 内)是恶意的,并且用户没有明显的方法来判断他们正在与邪恶的来宾交互,而不是与主持人。因此,用户会认为一切正常,但实际上他们已经被冲洗了。安全概念的鉴赏家会认为这是对“可信路径”的攻击:计算机启动了一个可信内核,
有什么能阻止这种攻击吗?或者,这种攻击在技术上是否可行?如果可行,是否违反了 UEFI 安全启动背后的安全目标或威胁模型?(更一般地说,是否有人对 UEFI 安全启动的安全目标和威胁模型有准确的说明,以及它的作用和不保证的确切内容?)