摘 要: 針對BIOS面臨的日益嚴重的安全威脅,提出對BIOS進行安全更新和完整性檢測的方案。通過對Flash寫信號的檢測以及對BIOS的非旁路簽名驗簽機制,實現(xiàn)對其的安全更新;通過受物理保護的BootBlock對MainBlock的驗簽機制,實現(xiàn)對MainBlock的完整性檢測和恢復。該安全更新及保護系統(tǒng)能夠有效地阻止及檢測到惡意軟件對BIOS的修改;可以對BIOS進行更新或恢復,保證系統(tǒng)的正常運行,達到對BIOS進行保護的目
關鍵詞: BIOS安全更新;非旁路;簽名驗簽;完整性檢測;BIOS保護
0 引言
信息安全關系到國家安全和社會穩(wěn)定[1]。傳統(tǒng)信息安全機制多建立在操作系統(tǒng)軟件層之上,已不能滿足信息系統(tǒng)發(fā)展需求,計算機系統(tǒng)安全需要進一步延伸到固件層甚至硬件層。BIOS(Basic Input/Output System)固件是計算機系統(tǒng)中基礎的底層軟件,是實現(xiàn)自主、可信、可控的信息安全的關鍵一環(huán),其安全可信直接影響整個計算機系統(tǒng)的安全度。
計算技術的發(fā)展和應用需求導致目前存儲BIOS系統(tǒng)的芯片普遍采用Flash芯片。Flash芯片的使用為BIOS系統(tǒng)帶來兩個突出變化:(1)存儲BIOS的芯片容量增加;(2)在操作系統(tǒng)環(huán)境下能夠以純軟件方式讀寫B(tài)IOS。BIOS的實現(xiàn)技術也由傳統(tǒng)方式發(fā)展到UEFI方式。這些變化導致攻擊BIOS系統(tǒng)的技術逐步成熟,使第三方惡意者向BIOS中植入惡意代碼、病毒、木馬等成為可能[2]。
從1998年開始,針對BIOS系統(tǒng)的公開性的安全事件和威脅時有發(fā)生。1998年7月開始爆發(fā)的CIH病毒實施了對BIOS的攻擊,造成全球大量PC不能使用。2006年全球Black Hat會議上,英國Next-Generation公司的首席安全顧問John Heasman闡述了一種在BIOS中隱藏rootkit惡意代碼,并使之在OS運行過程中生效的技術。2011年的Mebromi是一個新的針對BIOS的rootkit,它感染計算機主板的BIOS芯片和硬盤MBR(主引導區(qū)),再控制Windows系統(tǒng)文件加載惡意代碼,使受害用戶無論重裝系統(tǒng)、格式化硬盤,甚至換掉硬盤都無法將其徹底清除[3]。
由以上分析可知,BIOS系統(tǒng)遭受到威脅攻擊時,會造成計算機系統(tǒng)的徹底崩潰,或導致計算機系統(tǒng)被惡意者從底層控制。針對越來越嚴重的BIOS安全威脅,國內出現(xiàn)了一些對BIOS進行保護的研究[4-5]。而美國將其上升到國家安全角度,出臺了一系列的規(guī)范文件,要求加強計算機BIOS固件的安全性。2011年,美國的NIST(National Institute of Standards and Technology U.S.Department of Commerce)發(fā)布了800-147文件和800-155文件,提出對BIOS保護和完整性檢測的要求。美國的DOD(Department of Defense)CIO(Chief Information Officer)備忘錄(適用于DOD信息系統(tǒng))要求:2012年1月1日之后發(fā)布征集的PC客戶端系統(tǒng)需要符合NIST 800-147規(guī)范;符合800-147的3.1和3.2的要求已經包含在修改過的DOD Instruction 8500.2的“Information Assurance(IA)Implementation”中。美國的DHS(Department of Human Service)備忘錄(適用于聯(lián)邦政府部門和代理)推薦2012年10月1日之后的PC終端系統(tǒng)的新的采購符合800-147的要求[6-7]。
參考文獻[4]僅僅通過設置標志位來區(qū)分惡意軟件與合法的BIOS,此種手段很容易被偽造,安全性低;參考文獻[5]設計了一種全新的可信計算模塊,并通過改變計算機上電啟動順序實現(xiàn)對BIOS可信度量的保護,但并沒有提出安全更新BIOS的方法。本文采用硬件、固件和OS上層軟件三方相結合的方法,設計了一種BIOS安全更新及保護系統(tǒng),做到以下幾個方面:(1)采取有效措施使BIOS在方便更新的前提下,保證其不被非授權地修改;(2)當BIOS被惡意修改時,可以通過驗簽機制檢測到;(3)當BIOS被惡意修改或者崩潰時,可以進行恢復,保證系統(tǒng)的正常運行。
1 系統(tǒng)總體設計
本BIOS安全保護系統(tǒng)由硬件、BIOS固件及OS上層的軟件工具組成。
?。?)硬件平臺提供對Flash芯片部分存儲區(qū)域的硬件保護機制,該保護還可通過硬件主板上的跳線選擇使能/禁止,并由受保護的程序模塊實現(xiàn)對BIOS的完整性檢測和可信恢復。硬件平臺還提供將Flash寫信號與特權中斷信號源連接的機制,當CPU檢測到Flash寫信號時,即產生特權模式下的中斷信號,執(zhí)行特定的中斷處理程序,保證BIOS寫過程通過本文設計的更新機制實現(xiàn),而不被繞過。
?。?)固件層的BIOS除了實現(xiàn)初始化硬件平臺及引導OS的基礎功能外,還通過中斷處理程序實現(xiàn)BIOS的安全更新功能。它通過簽名驗簽機制檢測待更新的數(shù)據(jù),如果合法則執(zhí)行更新過程,如果不合法則停止更新。
(3)OS上層的BIOS生成工具,用于生成可更新的具有簽名的合法的BIOS鏡像包;BIOS更新工具,與固件層BIOS中的中斷處理程序配合實現(xiàn)對BIOS的安全更新。
支持BIOS安全更新及保護系統(tǒng)的計算機正常工作流程如圖1所示。
2 BIOS安全更新保護方法
要實現(xiàn)安全更新保證BIOS不被非授權地修改,首先需要保證本文設計的安全更新機制不會被惡意軟件繞過。本文從硬件上將Flash寫信號與特權中斷的信號源相連接,同時通過在BIOS中的配置保證Flash寫信號必定會產生中斷,同時這種特權模式中斷不能被關閉。
2.1 進行硬件配置保證非旁路性
硬件配置BIOS保護的流程描述如下:
(1)開機,進行硬件初始化;
?。?)初始化特權中斷處理程序;
?。?)對計算機系統(tǒng)芯片組的Flash寫使能、特權中斷等配置項執(zhí)行相關設定,使Flash被寫入時,該芯片組硬件能產生一個特權中斷信號;
(4)使能Flash的寫保護;
?。?)配置特權中斷相關位,禁止惡意軟件獲取特權中斷產生及執(zhí)行的特權;
?。?)完成配置,啟動OS。
2.2 對BIOS的安全更新及保護
由于Flash寫信號與特權中斷源相連接,當通過OS上的BIOS更新工具或其他惡意軟件產生寫Flash動作時,便會產生中斷,所有的特權中斷處理程序都位于BIOS中。通過BIOS中的安全更新功能模塊中的中斷處理程序檢測是否對BIOS所在的Flash有寫入請求,如果有則用簽名驗簽機制檢測待寫入的數(shù)據(jù)是否為合法數(shù)據(jù)。根據(jù)檢測結果執(zhí)行不同的程序分支。
在對BIOS鏡像更新之前,需要用BIOS生成工具對其進行簽名。帶有簽名的BIOS鏡像生成流程如圖2所示。
生成的BIOS鏡像包由原有BIOS鏡像和簽名相關信息兩部分組成。用戶使用裝有本BIOS安全更新及保護系統(tǒng)的計算機上的BIOS更新工具與固件層BIOS中的安全更新功能模塊實現(xiàn)對BIOS鏡像包的安全更新,該計算機就可以正常使用了。
當惡意軟件試圖非法修改BIOS時,固件層的BIOS安全更新功能模塊檢測出其非法操作,則不進行Flash寫入并報警提示。
BIOS安全更新及保護執(zhí)行流程如圖3所示。
3 BIOS完整性檢測與恢復方法
計算機開機上電,首先由受硬件物理保護的程序模塊對BIOS進行完整性檢測(使用公鑰對BIOS鏡像進行驗簽),一旦BIOS被惡意修改,則其完整性檢測不通過,本BIOS安全更新及保護系統(tǒng)便會自動執(zhí)行BIOS恢復。進行完整性檢測與恢復的流程如圖4所示。
4 BIOS安全更新及保護系統(tǒng)的實現(xiàn)
BIOS安全更新及防護系統(tǒng)的硬件實現(xiàn)有多種方式,本文采用的方式為:將BIOS分成兩部分,BootBlock和MainBlock。采用硬件跳線方式物理保護BootBlock程序所在的Flash芯片部分區(qū)域。開機上電后,BootBlock先執(zhí)行,初始化最基本的平臺硬件,并對MainBlock進行完整性檢測。當對MainBlock完整性檢測通過時,系統(tǒng)繼續(xù)啟動并引導OS,當完整性檢測失敗時,由BootBlock實現(xiàn)對MainBlock的可信恢復。平時機器使用時,BootBlock不能用軟件的方式寫入,而MainBlock部分可隨時使用本文設計的安全更新及保護系統(tǒng)進行升級和保護。當BootBlock部分需要更新升級時,需要由管理員在現(xiàn)場改變物理跳線的連接方式,使得BootBlock可以通過軟件的方式進行更新升級。
對已有計算機主板硬件改動最小的硬件連接架構設計如圖5所示。
圖5中的BIOS備份設備可以是光盤或U盤等通用存儲設備。與普通的計算機電路相比,其硬件實現(xiàn)方式只增加了一個轉換電路。該轉換電路的功能是實現(xiàn)Flash與系統(tǒng)特權中斷信號(例如X86的SMI)源的連接,以及通過外接跳線實現(xiàn)對Flash芯片全部或部分塊的物理保護的使能/禁止。
5 結論
隨著Flash芯片技術和UEFI技術的發(fā)展,BIOS所受的安全威脅問題日趨嚴重。本文采用硬件、固件和OS上層軟件三方相結合的方法,設計了一種BIOS安全更新及保護系統(tǒng)。通過對Flash寫信號的檢測以及對BIOS的非旁路簽名驗簽機制,實現(xiàn)其安全更新;通過受物理保護的BootBlock對MainBlock的驗簽機制,實現(xiàn)對MainBlock的完整性檢測和恢復。該系統(tǒng)能夠做到:對BIOS進行有授權的更新,有效阻止惡意軟件對BIOS的修改,并采用硬件保護該機制不被惡意軟件繞過;對BIOS進行完整性檢測,保證BIOS自身代碼和數(shù)據(jù)的完整性,保證BIOS系統(tǒng)的執(zhí)行代碼只來自可信任的BIOS廠商;由于不可預知的故障或攻擊導致BIOS系統(tǒng)部分完整性遭到破壞時,能夠提供安全有效的檢測機制和失敗自恢復機制。
參考文獻
[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進行保護的可信計算系統(tǒng)及其應用方法[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.