是否可以利用操作系统漏洞安装 BIOS/UEFI/固件恶意软件(例如键盘记录器)?我知道 BIOS 是比操作系统“更深”的级别。我知道存在基于固件的键盘记录器。我知道它们可以由刷新 BIOS 的对手安装。但是操作系统(即 Windows)可以写入固件吗?理论上,黑客能否(无论是否曾经做过)利用受害者操作系统中的安全漏洞并使用它来刷新 BIOS 或以其他方式将恶意软件安装到固件中?如果没有,那么有人如何远程刷新/感染 BIOS?又该如何保护呢?
可以从操作系统安装 BIOS 恶意软件吗?
固件配置
写入 BIOS 是一项特权操作,只能由超级用户执行。许多 BIOS 试图防止这种情况发生,例如锁定SPI写入位并限制SMM与 BIOS 交互的能力。不幸的是,修改 BIOS 的方法太多了,以至于许多(大多数?)固件供应商没有充分锁定配置,允许超级用户对其进行修改。可以使用CHIPSEC框架确定给定系统是否具有易受攻击的 BIOS 。它扫描系统以查找常见的错误配置并报告它们以及影响。它将报告是否在启动时设置了所有必需的锁定位。在许多情况下,它们根本不是。
这不一定足以抵御具有特权访问的攻击者。一个足够高级的攻击者,即使他们无法修改 BIOS,也可能仍然能够修改选项 ROM甚至存储设备固件。至少,他们可能会通过重复写入非易失性写敏感存储(例如NVRAM(至少是使用闪存而不是电池支持的 SRAM 的那种))来对计算机造成物理损坏。但不管其他剩余风险如何,锁定 BIOS,或者至少确定它是否被锁定,是第一步。
此外,特权任务可以访问系统上的低级接口。最近固件安全研究有所增加,这表明即使正确配置了所有锁,修补系统的复杂性和难度也使得漏洞无处不在。这可以简单地表现为绕过固件安全性的方法,甚至是获得更多特权的方法。
实测引导
许多现代系统都配备了Intel BootGuard,该技术允许在启动之前由物理芯片组本身验证签名的 BIOS。虽然它并不完美,但它会尝试阻止未签名的固件运行,即使固件可以被修改。这需要一个由 OEM 预先组装好的现代系统。如果不是这种情况,则可以使用TPM来验证 BIOS 的完整性,并在有任何修改时提醒您。
BootGuard 通过对 BIOS 进行数字签名来工作。用于验证的密钥在组装时由 OEM烧录到PCH中。当系统启动时,BIOS 的签名由公钥验证。攻击者无法修改此公钥,因为它已写入 OTP(一次性可编程)熔断器。
TPM 的工作方式略有不同。BIOS 中称为CRTM的只读代码位将 BIOS 哈希的副本发送到 TPM。然后,系统配置的其余部分会发生这种情况,例如引导设置、选项 ROM 和 MBR。如果所有这些哈希值都与预期值匹配,TPM 将解封它已安全存储的秘密值。此值可以是完成启动所必需的加密密钥,也可以是只有您知道的秘密值,这样攻击者,即使是可以修改屏幕内容的攻击者,也无法冒充未密封的 TPM。
概括
并非总是可以有效地写保护您的固件,无论是硬件还是软件威胁。一般来说,如果攻击者以高权限对您的机器进行恶意本地(即使不是物理)访问,他们通常可以为所欲为。最好的解决方案是首先防止他们获得高权限。如果这不可能,那么只有三种解决方案:
- 确保您的 BIOS 锁定所有需要的位,这可以由 CHIPSEC 确定。
- 使用支持并启用 Intel BootGuard 的系统。
- 使用 TPM 提供测量引导。这并不总是实用的。
简短的回答:大多数可以更新的系统软件都可以从正在运行的操作系统的上下文中更新。
现在,工作中有广泛的保护(至少在 pc 主板/现代 x86 上),例如负编号环只能通过 SMI 访问等等 - 但这些已被证明在多个实例中存在缺陷,最后,甚至合法的固件升级可能是恶意软件。
所以是的。标准问题:“我有一个复杂的系统;它是否易受攻击?”,标准答案:“是的。下一个!”