SPI范围保护寄存器漏洞研究

2018-02-12 12:24:56王冠杨松松
软件导刊 2018年12期

王冠 杨松松

摘要:SPI范围保护寄存器是UEFI固件常用的一种保护机制。提出了一种篡改SPI范围保护寄存器值的方法,利用该方法可以实现SMM漏洞攻击。阐述了SPI范围保护寄存器原理,研究了SPI范围保护寄存器修改理论,实现对计算机SPI范围保护寄存器值的篡改。实验结果表明,任何采用SPI范围保护机制的固件均有可能采用这种方式进行破坏。

关键词:SPI范围保护寄存器;UEFI漏洞;闪存写保护

Research on SPI Protected Ranges vulnerability

WANG Guan1,2,YANG Song song1,2

(1.College of Computer,Beijing University of Technology;

2.Key Laboratory of Trustworthy Computing in Beijing, Beijing 100124,China)

Abstract:SPI range protection register is a common protection mechanism for UEFI firmware. In this paper, a method of tampering with SPI range protection register value is proposed, which can realize SMM copper leak attack. This paper also expounds the principle of SPI range protection register, studies the modification theory of SPI range protection register, and realizes tampering with the value of computer SPI range protection register. The experimental results show that any firmware using SPI scope protection mechanism may be destroyed in this way.

Key Words:SPI protected ranges;UEFI vulnerability;flash write protection

0 引言

BIOS是一组固化在计算机主板ROM芯片上的程序,主要负责初始化硬件和操作系统预启动处理[1]。BIOS还负责配置和实例化系统管理模式(System Management Mode,SMM),这是一种x86平台上具有高度特权的执行模式[2]。任何控制BIOS的恶意软件都可将任意代码放入SMM中。因此,很有必要保护BIOS安全。UEFI是新一代BIOS接口规范[3]。为保护UEFI固件,Intel提出了多种保护机制,包括BIOS_CNTL寄存器保护机制、SPI范围保护寄存器机制(PR0-PR4,简称“PRx”)以及BootGuard保护机制。大多数计算机都使用SPI范围保护寄存器机制保护固件,防止随意对闪存进行编程操作。

1 UEFI启动关键点分析

1.1 S3恢复引导路径

S3恢复引导路径是一种不同于UEFI框架正常引导路径的引导方式,是S3模式下的一种引导路径[4]。通过这个路径,UEFI框架从闪存中获取有关平台配置的预存数据,并在跳转到操作系统的唤醒向量之前配置平台。

S3模式就是Suspend to Ram(简称STR)模式,是6种ACPI电源管理模式中的一种[5]。利用该模式,可以在保存系统关键信息的情况下节省电源。在这种模式下,系统可将转到S3模式前的重要信息存储到内存中,而且电源能持续为内存等系统设备供电,以防数据丢失。……

登录APP查看全文