《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > BIOS安全更新及保护系统设计
BIOS安全更新及保护系统设计
2015年微型机与应用第8期
赵丽娜1,2,陈小春1,2,张 超1,2,肖思莹1,2
(1.中电科技(北京)有限公司,北京 100083;2.中国电子科技集团公司 信息化工程总体研究中心,北京 100083)
摘要: 针对BIOS面临的日益严重的安全威胁,提出对BIOS进行安全更新和完整性检测的方案。通过对Flash写信号的检测以及对BIOS的非旁路签名验签机制,实现对其的安全更新;通过受物理保护的BootBlock对MainBlock的验签机制,实现对MainBlock的完整性检测和恢复。该安全更新及保护系统能够有效地阻止及检测到恶意软件对BIOS的修改;可以对BIOS进行更新或恢复,保证系统的正常运行,达到对BIOS进行保护的目
Abstract:
Key words :

摘  要: 针对BIOS面临的日益严重的安全威胁,提出对BIOS进行安全更新和完整性检测的方案。通过对Flash写信号的检测以及对BIOS的非旁路签名验签机制,实现对其的安全更新;通过受物理保护的BootBlock对MainBlock的验签机制,实现对MainBlock的完整性检测和恢复。该安全更新及保护系统能够有效地阻止及检测到恶意软件对BIOS的修改;可以对BIOS进行更新或恢复,保证系统的正常运行,达到对BIOS进行保护的目

关键词BIOS安全更新;非旁路;签名验签;完整性检测;BIOS保护

0 引言
  信息安全关系到国家安全和社会稳定[1]。传统信息安全机制多建立在操作系统软件层之上,已不能满足信息系统发展需求,计算机系统安全需要进一步延伸到固件层甚至硬件层。BIOS(Basic Input/Output System)固件是计算机系统中基础的底层软件,是实现自主、可信、可控的信息安全的关键一环,其安全可信直接影响整个计算机系统的安全度。
  计算技术的发展和应用需求导致目前存储BIOS系统的芯片普遍采用Flash芯片。Flash芯片的使用为BIOS系统带来两个突出变化:(1)存储BIOS的芯片容量增加;(2)在操作系统环境下能够以纯软件方式读写BIOS。BIOS的实现技术也由传统方式发展到UEFI方式。这些变化导致攻击BIOS系统的技术逐步成熟,使第三方恶意者向BIOS中植入恶意代码、病毒、木马等成为可能[2]。
  从1998年开始,针对BIOS系统的公开性的安全事件和威胁时有发生。1998年7月开始爆发的CIH病毒实施了对BIOS的攻击,造成全球大量PC不能使用。2006年全球Black Hat会议上,英国Next-Generation公司的首席安全顾问John Heasman阐述了一种在BIOS中隐藏rootkit恶意代码,并使之在OS运行过程中生效的技术。2011年的Mebromi是一个新的针对BIOS的rootkit,它感染计算机主板的BIOS芯片和硬盘MBR(主引导区),再控制Windows系统文件加载恶意代码,使受害用户无论重装系统、格式化硬盘,甚至换掉硬盘都无法将其彻底清除[3]。
  由以上分析可知,BIOS系统遭受到威胁攻击时,会造成计算机系统的彻底崩溃,或导致计算机系统被恶意者从底层控制。针对越来越严重的BIOS安全威胁,国内出现了一些对BIOS进行保护的研究[4-5]。而美国将其上升到国家安全角度,出台了一系列的规范文件,要求加强计算机BIOS固件的安全性。2011年,美国的NIST(National Institute of Standards and Technology U.S.Department of Commerce)发布了800-147文件和800-155文件,提出对BIOS保护和完整性检测的要求。美国的DOD(Department of Defense)CIO(Chief Information Officer)备忘录(适用于DOD信息系统)要求:2012年1月1日之后发布征集的PC客户端系统需要符合NIST 800-147规范;符合800-147的3.1和3.2的要求已经包含在修改过的DOD Instruction 8500.2的“Information Assurance(IA)Implementation”中。美国的DHS(Department of Human Service)备忘录(适用于联邦政府部门和代理)推荐2012年10月1日之后的PC终端系统的新的采购符合800-147的要求[6-7]。
  参考文献[4]仅仅通过设置标志位来区分恶意软件与合法的BIOS,此种手段很容易被伪造,安全性低;参考文献[5]设计了一种全新的可信计算模块,并通过改变计算机上电启动顺序实现对BIOS可信度量的保护,但并没有提出安全更新BIOS的方法。本文采用硬件、固件和OS上层软件三方相结合的方法,设计了一种BIOS安全更新及保护系统,做到以下几个方面:(1)采取有效措施使BIOS在方便更新的前提下,保证其不被非授权地修改;(2)当BIOS被恶意修改时,可以通过验签机制检测到;(3)当BIOS被恶意修改或者崩溃时,可以进行恢复,保证系统的正常运行。

1 系统总体设计
  本BIOS安全保护系统由硬件、BIOS固件及OS上层的软件工具组成。
  (1)硬件平台提供对Flash芯片部分存储区域的硬件保护机制,该保护还可通过硬件主板上的跳线选择使能/禁止,并由受保护的程序模块实现对BIOS的完整性检测和可信恢复。硬件平台还提供将Flash写信号与特权中断信号源连接的机制,当CPU检测到Flash写信号时,即产生特权模式下的中断信号,执行特定的中断处理程序,保证BIOS写过程通过本文设计的更新机制实现,而不被绕过。
  (2)固件层的BIOS除了实现初始化硬件平台及引导OS的基础功能外,还通过中断处理程序实现BIOS的安全更新功能。它通过签名验签机制检测待更新的数据,如果合法则执行更新过程,如果不合法则停止更新。
  (3)OS上层的BIOS生成工具,用于生成可更新的具有签名的合法的BIOS镜像包;BIOS更新工具,与固件层BIOS中的中断处理程序配合实现对BIOS的安全更新。
  支持BIOS安全更新及保护系统的计算机正常工作流程如图1所示。

Image 001.png

2 BIOS安全更新保护方法
  要实现安全更新保证BIOS不被非授权地修改,首先需要保证本文设计的安全更新机制不会被恶意软件绕过。本文从硬件上将Flash写信号与特权中断的信号源相连接,同时通过在BIOS中的配置保证Flash写信号必定会产生中断,同时这种特权模式中断不能被关闭。
  2.1 进行硬件配置保证非旁路性
  硬件配置BIOS保护的流程描述如下:
  (1)开机,进行硬件初始化;
  (2)初始化特权中断处理程序;
  (3)对计算机系统芯片组的Flash写使能、特权中断等配置项执行相关设定,使Flash被写入时,该芯片组硬件能产生一个特权中断信号;
  (4)使能Flash的写保护;
  (5)配置特权中断相关位,禁止恶意软件获取特权中断产生及执行的特权;
  (6)完成配置,启动OS。
  2.2 对BIOS的安全更新及保护
  由于Flash写信号与特权中断源相连接,当通过OS上的BIOS更新工具或其他恶意软件产生写Flash动作时,便会产生中断,所有的特权中断处理程序都位于BIOS中。通过BIOS中的安全更新功能模块中的中断处理程序检测是否对BIOS所在的Flash有写入请求,如果有则用签名验签机制检测待写入的数据是否为合法数据。根据检测结果执行不同的程序分支。
  在对BIOS镜像更新之前,需要用BIOS生成工具对其进行签名。带有签名的BIOS镜像生成流程如图2所示。

Image 002.png

  生成的BIOS镜像包由原有BIOS镜像和签名相关信息两部分组成。用户使用装有本BIOS安全更新及保护系统的计算机上的BIOS更新工具与固件层BIOS中的安全更新功能模块实现对BIOS镜像包的安全更新,该计算机就可以正常使用了。
  当恶意软件试图非法修改BIOS时,固件层的BIOS安全更新功能模块检测出其非法操作,则不进行Flash写入并报警提示。
  BIOS安全更新及保护执行流程如图3所示。

Image 003.png

3 BIOS完整性检测与恢复方法
  计算机开机上电,首先由受硬件物理保护的程序模块对BIOS进行完整性检测(使用公钥对BIOS镜像进行验签),一旦BIOS被恶意修改,则其完整性检测不通过,本BIOS安全更新及保护系统便会自动执行BIOS恢复。进行完整性检测与恢复的流程如图4所示。

Image 004.png

4 BIOS安全更新及保护系统的实现
  BIOS安全更新及防护系统的硬件实现有多种方式,本文采用的方式为:将BIOS分成两部分,BootBlock和MainBlock。采用硬件跳线方式物理保护BootBlock程序所在的Flash芯片部分区域。开机上电后,BootBlock先执行,初始化最基本的平台硬件,并对MainBlock进行完整性检测。当对MainBlock完整性检测通过时,系统继续启动并引导OS,当完整性检测失败时,由BootBlock实现对MainBlock的可信恢复。平时机器使用时,BootBlock不能用软件的方式写入,而MainBlock部分可随时使用本文设计的安全更新及保护系统进行升级和保护。当BootBlock部分需要更新升级时,需要由管理员在现场改变物理跳线的连接方式,使得BootBlock可以通过软件的方式进行更新升级。
  对已有计算机主板硬件改动最小的硬件连接架构设计如图5所示。

Image 005.png

  图5中的BIOS备份设备可以是光盘或U盘等通用存储设备。与普通的计算机电路相比,其硬件实现方式只增加了一个转换电路。该转换电路的功能是实现Flash与系统特权中断信号(例如X86的SMI)源的连接,以及通过外接跳线实现对Flash芯片全部或部分块的物理保护的使能/禁止。
5 结论
  随着Flash芯片技术和UEFI技术的发展,BIOS所受的安全威胁问题日趋严重。本文采用硬件、固件和OS上层软件三方相结合的方法,设计了一种BIOS安全更新及保护系统。通过对Flash写信号的检测以及对BIOS的非旁路签名验签机制,实现其安全更新;通过受物理保护的BootBlock对MainBlock的验签机制,实现对MainBlock的完整性检测和恢复。该系统能够做到:对BIOS进行有授权的更新,有效阻止恶意软件对BIOS的修改,并采用硬件保护该机制不被恶意软件绕过;对BIOS进行完整性检测,保证BIOS自身代码和数据的完整性,保证BIOS系统的执行代码只来自可信任的BIOS厂商;由于不可预知的故障或攻击导致BIOS系统部分完整性遭到破坏时,能够提供安全有效的检测机制和失败自恢复机制。
  参考文献
  [1] 沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学E辑:信息科学,2007,37(2):129-150(Ch).
  [2] 周振柳.计算机固件安全技术[M].北京:清华大学出版社,2012.
  [3] 杨培,吴灏,金然.BIOS安全防护技术研究[J].计算机工程与设计,2008,29(15):3840-3842,3914.
  [4] 李永富.保护BIOS免于被病毒破坏的方法[P].中国:00103400.6,2003-09-10.
  [5] 张兴,毛军捷,马朝斌,等.一种对BIOS进行保护的可信计算系统及其应用方法[P].中国:200810111682.8,2010-06-23.
  [6] NIST. BIOS Protection Guidelines, 800-147[Z]. 2011.
  [7] NIST. BIOS Integrity Measurement Guidelines, 800-155[Z]. 2011.

此内容为AET网站原创,未经授权禁止转载。