-
UEFI是操作系统与固件平台间新的接口规范。UEFI使用高级语言开发,采用模块化构建方式,功能丰富,扩展性良好[1]。随着UEFI固件普及,出现了针对UEFI固件的BOOTKIT攻击。文献[2]通过固件SMM漏洞向UEFI固件植入恶意代码,攻击TXT (trusted execution technology)安全机制[3]。2015年,文献[4]对UEFI固件进行漏洞攻击,使数以百万的计算机无法正常使用。
UEFI固件BOOTKIT隐藏在固件中,于操作系统启动前执行,通过篡改UEFI固件文件以及操作系统(OS)核心文件,实现攻击目的[4]。基于UEFI的BOOTKIT的防范方法,其最终目的是确保UEFI固件和OS核心文件的完整性。现有完整性检测方法主要分为两类:一是固件完整性检测;二是OS文件检测。文献[5]采用代码特征对比的策略,提出了一种基于UEFI固件的恶意代码检测机制,但大量的病毒特征码给UEFI固件内存造成了沉重负担。文献[6]以TPM芯片为可信根,建立了一条系统启动的可信链来确保固件完整;该算法实现复杂、代码量大,且容易被BOOTKIT绕过,存在实用性低的问题。Copilot[7]利用PCI卡周期性地对OS内核进行访问以检测内核代码的完整性;改进的Copilot[7]则能检测OS内核中数据的完整性。Servicsor[8]可以在OS的整个运行周期中保障可执行程序的合法性。这些检测方法能有效检测OS内核的完整性,但是不能独立于OS运行,也不能对固件文件进行完整性检测。文献[9]提出了在执行UEFI固件可执行文件前验证其数字签名的方法,该方法原理简单,能有效检测文件的完整性,但是不能对异常文件进行恢复。
针对上述不足,本文提出一种新的UEFI固件BOOTKIT检测方法UDS(UEFI detection system),其主要特点有:1)以UEFI虚拟设备驱动程序的形式实现[1],能独立于OS运行;2)采用将完整性检测与文件恢复相结合的策略,分别在DXE阶段和OS BOOT阶段对固件、OS文件进行完整性检测,并对异常文件进行恢复;3)能自我保护,防止BOOTKIT对自身进行攻击;4)小巧简便,利用UEFI固件接口和UEFI隐藏分区开发,减少UDS占用的ROM空间。
最后实验表明,UDS能在操作系统启动之前,成功防范固件攻击并恢复异常文件,具有启动早、开销少,能自我防护的优点。
-
实验目的是检测UDS的防范能力、空间开销和启动效率。首先,在UEFI开源代码的基础上,编译带有UDS的UDS-UEFI ROM文件;编译好的ROM文件大小为57 KB,能够充分满足固件内存的限制;最后利用周立功SmartPRO 9800 plus编程器,将该ROM文件刷写到UEFI芯片中。测试基于EDKII开发平台,操作系统为Window 7旗舰版SP1,CPU型号为Inter Core Q8200,主板为华硕H81-D,4 G内存条。
防范能力测试用于测试UDS的完整性检查、文件修复及自我保护能力,实验结果如表 1所示。BMW、STONED是基于固件的BOOTKIT,实现篡改固件数据和隐藏驱动的功能;TDL4能在固件初期就开始运行,通过HOOK操作篡改固件代码、绕过驱动,劫持执行流程;Superkit[10]、ADORE-NG[11]、hideme和鬼影等是基于操作系统内核的BOOTKIT,主要实现篡改系统调用表、关键函数指针[13]以及修改控制[12]流程等功能。
表 1 防范能力测试结果
Rootkit 平台 攻击行为 UDS结果 完整检查 文件恢复 自我保护 BMW 固件 篡改固件数据 √ √ √ STONED 固件 篡改固件代码、隐藏驱动 √ √ √ TDL4 固件 篡改控制流、绕过驱动、隐藏进程 √ √ √ ADORE-NG OS 篡改控制流 √ √ √ Superkit OS 篡改控制流 √ 无 √ hindme OS 篡改OS代码 √ 无 √ 鬼影 OS 篡改调用表、关键函数 √ √ √ 实验结果表明,UDS完成了对固件、OS文件的完整性检查和异常文件恢复,能有效防范来自基于固件或OS的BOOTKIT的恶意攻击;通过自我防护,UDS能避免BOOTKIT的影响,保持正常运行。
表 2是UDS与其他同类检测工具的对比结果。实验结果表明,Nickle[14]和SecVisor[8]能够对OS核心文件的完整性进行保护,但是不能对固件文件进行完整性检查;UDS和UEFI恶意代码防范系统(MCDU)[5]都能完成固件文件完整性检查、OS文件完整性检查和文件恢复的功能,但是UDS更加精简,所占空间更少。与UDS相比,由于MCDU采用基于恶意代码特征的扫描方法,除了要完成完整性检查及文件恢复的功能以外,恶意代码查询、定位、匹配等功能还需额外的代码实现;另外,MCDU模块中还保存了大量的恶意代码特征和特征定位信息。而UDS的原理简单,不用实现诸如上述的函数,还能将备份文件等信息保存在硬盘分区上,因而UDS的实现简单,配置方便,占有的ROM空间更少。
表 2 与其他同类检测工具对比结果
参数 UDS Nickle SecVisor MCDU 固件文件完整性 √ × × √ OS文件完整性 √ √ √ √ 文件修复 √ × × √ 文件大小/KB 57 > 100 > 100 > 100 图 3是对比UDS-UEFI启动时间的结果。实验表明,UDS-UEFI的启动时间比UEFI恶意代码防范系统(MCDU)要少,不会对计算机启动造成大的影响。由于UDS的检测算法简单,不用实现MCDU中大量的特征识别函数,还能直接利用UEFI平台现成的接口,执行文件读写、数字签名、HASH等操作。因此UDS运行所需的开销较少,UDS-UEFI的启动速度比MCDU的启动更快。
BOOTKIT Detection Based on UEFI
-
摘要: 基于UFEI的BOOTKIT攻击能对UFEI固件、操作系统的完整性进行破坏,严重影响计算机安全。基于此,该文提出一种新的基于UEFI固件的BOOTKIT检测方法UDS,来保护固件和操作系统的安全。UDS以UEFI虚拟设备驱动程序的形式实现,在OS之前加载启动;采用了将完整性检测与文件恢复相结合的策略,对固件和操作系统内核进行保护;并通过代码混淆和文件隐藏的方法,防止UDS自身被BOOTKIT攻击。实验表明,UDS能有效保护固件和OS的完整性,防范基于UEFI的BOOTKIT攻击,具有启动时间早、空间开销少及自我保护性好的优点。Abstract: UEFI-based BOOTKIT compromise the integrity of both UEFI firmware and OS, posing a fatal threat on the security of computer. In response, a new bootkit defense system based on UEFI, named UDS, is proposed in this paper. The proposed UDS is implemented as a UEFI device driver, which is booted before the OS. By adopting a strategy that combines integrity checking and file restoring, UDS protects firmware and OS kernels. And the methods of code obfuscation and file hiding are introduced to prevent UDS itself from being attacked by BOOTKIT. Finally, several experiments had been conducted to prove that UDS can protect itself from the attack of BOOTKIT, while effectively protecting integrity of both OS and firmware.
-
Key words:
- BOOTKIT /
- file recovery /
- integrity checking /
- self-protection /
- UEFI
-
表 1 防范能力测试结果
Rootkit 平台 攻击行为 UDS结果 完整检查 文件恢复 自我保护 BMW 固件 篡改固件数据 √ √ √ STONED 固件 篡改固件代码、隐藏驱动 √ √ √ TDL4 固件 篡改控制流、绕过驱动、隐藏进程 √ √ √ ADORE-NG OS 篡改控制流 √ √ √ Superkit OS 篡改控制流 √ 无 √ hindme OS 篡改OS代码 √ 无 √ 鬼影 OS 篡改调用表、关键函数 √ √ √ 表 2 与其他同类检测工具对比结果
参数 UDS Nickle SecVisor MCDU 固件文件完整性 √ × × √ OS文件完整性 √ √ √ √ 文件修复 √ × × √ 文件大小/KB 57 > 100 > 100 > 100 -
[1] UNIFIED EFI FROUM. Unified extensible firmware interface specification version 2.7[EB/OL]. (2017-05-01)[2017-12-10]. http://www.uefi.org/specifications. [2] WOJTCZUK R, RUTKOWSKA J. Following the white rabbit: Software attacks against Intel VT-d technology[EB/OL].[2017-12-10]. https://invisiblethinslab.com/resources/2011/Software%20Attacks%20on%20Intel%20VT-d.pdf. [3] FUTRAL W, GREENE J. Introduction to trust and intel® trusted execution technology[EB/OL].[2017-12-10]. https://link.springer.com/content/pdf/10.1007%2F978-1-4302-6149-0_1.pdf. [4] INTEL ADVANCED THREAT RESEARCH. Hacking team's bad bios: Commercial rootkit for uefi firemware[EB/OL]. (2015-10-13)[2017-12-10]. http://www.intelsecuri-ty.com/advanced-threat-research/ht_uefi_rootkit.html_7142015.html. [5] FU S Y, LIU G S. Research of malicious code defense technology based on UEFI firmware[J]. Computer Engineering, 2012, 38(9):117-120. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=jsjgc201209035 [6] RAO B B, REIJ E A, HALL R L. Trusted support processor authentication of host BIOS/UEFI: US, 20170085383[P]. 2017. [7] SZEKERES L, PAYER M, WEI L T. Eternal war in memory[J]. IEEE Security & Privacy, 2014, 12(3):45-53. http://d.old.wanfangdata.com.cn/OAPaper/oai_doaj-articles_1a5ff772c07d7080513ae0a4851d4f41 [8] KIM, TAESOO. Automatic intrusion recovery with system-wide history[J]. Massachusetts Institute of Technology. 2014, 16(2):127-135. [9] POORNACHANDRAN R, ZIMMER V J, SHAHIDZADEH S. Technologies for verifying components: US, 9589155[P]. 2017-03-24. [10] SUPERKIT INTERNATIONAL COMPANY. Superkit[EB/OL]. (2014-04-19)[2017-12-10]. http://www.superkit.com. [11] OPENWALL. Adore-ng[EB/OL]. (2014-04-19)[2017-12- 10]. http://stealth.openwall.net/rootkits/. [12] PAYER M, BARRESI A, GROSS T R. Fine-grained control-flow integrity through binary hardening[C]//International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. Milan: Springer, 2015: 144-164. doi: 10.1007/978-3-319-20550-2_8 [13] KUZNETSOV V, SZEKERES L, PAYER M. Code-pointer integrity[C]//11th USENIX Symposium on Operating Sys-tems Design and Implementation. Broomfield: USENIX Association Berkeley, 2014: 147-163. http://dl.acm.org/citation.cfm?id=2685061 [14] CUI A, COSTELLO M, STOLFO S J. When firmware modifications attack: a case study of embedded exploitation[C]//NDSS. San Diego: The Internet Society, 2013: 159-172.