孫 亮,陳小春,鮑天明,王 博,任 彤,湯大鵬
(1.中電科技(北京)有限公司,北京 100083;2.江南計算技術研究所,江蘇 無錫 214000;3.國家互聯(lián)網(wǎng)應急中心,北京 100094)
隨著新一代科技革命和產(chǎn)業(yè)變革浪潮興起,以及國產(chǎn)化計算機產(chǎn)業(yè)鏈在處理器芯片、基礎軟件和應用軟件的長期積累,大量國產(chǎn)計算機終端已經(jīng)開始在各大企事業(yè)單位中進行應用。國家通過核高基等專項項目對桌面計算機、服務器、嵌入式進行大量投入,推動產(chǎn)業(yè)化發(fā)展,已經(jīng)在各省市建立了國產(chǎn)計算機專用試點??梢钥闯?,國產(chǎn)化計算機的全面替代趨勢已經(jīng)初步顯現(xiàn),并將快速發(fā)展[1]。但是,國產(chǎn)計算機的全面替代不可能一蹴而就,X86 商用計算機和國產(chǎn)計算機并存使用的情況仍會長期存在。商用X86 計算機(如聯(lián)想、戴爾等品牌)一般是通過大規(guī)模采購進入到各企事業(yè)單位,大多采用Intel 處理器平臺和Windows 操作系統(tǒng)。
與商用X86 計算機相比,國產(chǎn)計算機處理器眾多,配套復雜,包括龍芯、飛騰、申威、兆芯等多種CPU 處理器平臺[2],并且分別搭載了中標、普華、麒麟、中科方德等不同系列的操作系統(tǒng)[3]。更進一步地,受國產(chǎn)計算機產(chǎn)業(yè)鏈的限制,定制性較強,處理器廠商、固件廠商、操作系統(tǒng)廠商、板卡廠商和整機廠商可能會在設計、開發(fā)、測試、定型過程中,針對某項指標進行優(yōu)化定制,導致了各型號計算機中的軟硬件接口各不相同,軟件生態(tài)也不同。
可以看出,在多種處理器平臺和多種操作系統(tǒng)并存的情況下,如何對每臺計算機進行準確、快速、高效、穩(wěn)定的管理,并進行操作系統(tǒng)維護[4]成為一個亟待解決的難題。伴隨著網(wǎng)絡安全等級保護2.0 的發(fā)布實施,計算機終端安全管理將成為國內(nèi)外專家學者關注和研究的熱點。文獻[5-6]以網(wǎng)絡安全等級保護2.0 實施為背景,以法院和醫(yī)院網(wǎng)絡的安全管理為例,描述了計算機網(wǎng)絡的安全管理需求。文獻[7]提出建設終端資產(chǎn)管理、雙病毒檢測、人工智能檢測引擎于一體的終端安全管理系統(tǒng)。盡管國內(nèi)針對計算機終端管理進行了較多的研究,涵蓋了殺毒防控、在線狀態(tài)監(jiān)控、自動升級、軟件分發(fā)、補丁管理、存儲介質(zhì)管理等多類安全功能,但針對固件的安全和防護研究較少。
本文進一步以網(wǎng)絡安全等級保護2.0 為背景,研究了多處理器平臺的內(nèi)網(wǎng)終端統(tǒng)一管理機制和遠程固件安全參數(shù)配置等技術點,并構(gòu)建了基于固件的終端安全統(tǒng)一管理系統(tǒng),以解決異構(gòu)硬件(處理器平臺、板卡)、多態(tài)軟件(操作系統(tǒng)、異構(gòu)軟件)的終端安全管理維護問題,提供針對X86 計算機和國產(chǎn)計算機的遠程BIOS口令管理、BIOS 啟動順序管理、在線狀態(tài)監(jiān)控、關鍵軟硬件信息監(jiān)控等安全功能,取得了良好效果。
本文的組織結(jié)構(gòu)如下:第2 節(jié)對內(nèi)網(wǎng)環(huán)境下,國產(chǎn)計算機管理面臨的主要問題和主要需求進行分析;第3 節(jié)對BIOS 口令集中管理機制的關鍵技術進行介紹;第4 節(jié)對內(nèi)網(wǎng)計算機操作系統(tǒng)管理平臺總體結(jié)構(gòu)和流程進行介紹,并對目前的成果進行闡述;第5 節(jié)對全文進行總結(jié),并描述下一步的研究工作。
固件是計算機系統(tǒng)中不可缺少的重要部件,往往以軟件形式固化存儲在硬件的芯片中。計算機的主板、顯卡、網(wǎng)卡、硬盤中都有固件,其中最重要、最核心的固件稱為BIOS(Basic Input/Output System,基本輸入輸出系統(tǒng))。計算機上電開機后,BIOS 會對CPU 中的寄存器、計時芯片、可編程中斷器及DMA 控制器的狀態(tài)檢查,同時初始化設置主板芯片組、動態(tài)內(nèi)存、顯卡及相關外圍的寄存器。在以上設備正常運行的前提下,BIOS 將負責引導操作系統(tǒng)??梢钥闯?,BIOS 是計算機開啟時運行的第一個程序,主要功能是為計算機提供最底層、最直接的硬件設置和控制,完成初始化硬件和引導操作系統(tǒng)。固件是整機中最“活”的部分,最具有“特殊性”的部分,可以通過軟件編寫的方式,實現(xiàn)整機廠商核心功能的特點和賣點。并且,固件處于計算機產(chǎn)業(yè)鏈中的核心位置,與芯片廠商、板卡廠商、操作系統(tǒng)廠商、整機廠商都需要緊密聯(lián)系在一起。
固件在計算機功能、性能以及安全性方面,與CPU、操作系統(tǒng)等計算機核心組成部件一樣發(fā)揮著重要作用。固件是運行在計算機底層的軟件,是先于操作系統(tǒng)啟動之前運行的,如果固件口令丟失,則會導致操作系統(tǒng)旁路攻擊,攻擊者可以繞過操作系統(tǒng)口令,直接從光盤或U盤引導非授權操作系統(tǒng)內(nèi)核,直接訪問存儲設備,導致數(shù)據(jù)泄露。并且,在固件中加裝后門程序能夠逃過操作系統(tǒng)及任何應用軟件的檢測和控制,執(zhí)行獲取信息、破壞系統(tǒng)等任務。更進一步地,固件的運行過程是具有最高權限的,能夠?qū)τ布?、文件系統(tǒng)、操作系統(tǒng)和特定軟件進行篡改和破壞,具有極強的威脅性。因此,固件安全是計算機安全的基礎,一旦固件安全“失守”,計算機的安全基礎就會松動和消失。
網(wǎng)絡安全等級保護2.0 主要是從整體系統(tǒng)的角度提出了相應的安全指標。但是,通過對照等保2.0 的基本要求、技術要求、評測要求可以看出,等保2.0 的指標不是孤立的,而是關聯(lián)的。其中,等保2.0 中的某些安全指標在整機這一層面有著直接要求。比如可信驗證、身份鑒別等功能,都對固件提出了直接要求,具體包括以下7 種要求:
(1)可信驗證
該功能與固件緊密耦合。目前國際主流TPM、國內(nèi)TCM、TPCM 三套可信方案中,固件都發(fā)揮基礎核心的關鍵作用。在計算機啟動后,固件用于對關鍵硬件和核心軟件進行可信度量。如果度量失敗,則中止啟動過程,僅能由管理員進行預期值更新。但是,若攻擊者獲得BIOS管理員口令,也可以惡意跳過可信度量的裁決步驟,造成安全風險。
(2)身份鑒別
該功能可以在應用層、系統(tǒng)層中進行實現(xiàn)。但是,在非授權用戶,通過接觸式的攻擊方法,如插入U 盤、光盤對操作系統(tǒng)進行旁路攻擊時,應用層和系統(tǒng)層是無法防范的。只能通過固件(BIOS)中的管理員口令,進行相應的安全防范,防止其出現(xiàn)旁路攻擊。
(3)訪問控制
固件的使用可以包括四類角色,包括安全管理員、系統(tǒng)管理員、審計員和普通用戶,每個角色能夠進行的固件操作不同。如安全管理員可以進行可信計算、啟動順序、口令設置等安全配置,系統(tǒng)管理員可以進行操作系統(tǒng)重裝等操作,審計員可以查看相關固件日志,因此,固件中也需要根據(jù)用戶角色進行訪問控制的安全保護。
(4)惡意代碼防范
固件的本質(zhì)也是軟件,具有軟件天然具有的脆弱性。因此,固件也是可以被植入惡意代碼進行攻擊的。攻擊者在獲取BIOS 操作權限后,可以通過專用軟件工具,對固件芯片進行擦除和刷寫。對于具備聯(lián)網(wǎng)能力的計算機系統(tǒng),甚至可以通過專用軟件遠程對固件代碼進行修改。
(5)數(shù)據(jù)備份恢復
在固件層面,當獲得BIOS 管理員權限后,可以對整個系統(tǒng)進行備份和恢復,并且各個處理器平臺可以保持一致,提升了可維護性。
(6)安全審計
目前,主流的安全審計無法對重裝操作系統(tǒng)、更新固件的事件進行記錄。但是,在固件S 中,可以保留重裝操作系統(tǒng)或其他固件級操作事件的記錄,實現(xiàn)固件級的安全審計功能。并且,僅能通過管理員查看。
(7)集中管控
可以看出,BIOS 口令與以上6 種安全功能都有深刻的關聯(lián),BIOS 的口令是計算機的第一道“門戶”。面對計算機終端多、分散廣的內(nèi)網(wǎng)環(huán)境,如果用戶自己同時掌握普通開機口令和管理員口令,難以保證BIOS 口令按照一定的復雜度進行周期性設置,并且記憶得極其準確。因此,BIOS 口令在某些使用場景中,會被設置得簡單且固定,引發(fā)口令擴散的威脅。一旦被攻擊者得到管理員BIOS 口令,將獲取到管理員權限,導致嚴重的數(shù)據(jù)泄露風險。因此,需要通過集中管控的方法,對管理員BIOS 口令進行集中安全管控,對每臺計算機的管理員BIOS 口令進行生成、綁定、下發(fā)、銷毀等管理,防止管理員BIOS 口令在其生命周期中的泄露。
BIOS 可以配置計算機啟動順序,并且能夠配置計算機從光盤、U 盤啟動操作系統(tǒng)。因此,攻擊者對BIOS 進行非授權修改,則可以通過改變BIOS 的啟動順序,通過光盤、U 盤等外設,引導PE(Pre-installation Environment,預安裝環(huán)境)操作系統(tǒng)啟動,實現(xiàn)對硬盤數(shù)據(jù)的訪問、修改和拷貝[8]。目前,盡管已經(jīng)出現(xiàn)了在BIOS身份認證階段,通過指紋儀、指靜脈儀等多種設備進行多因子身份認證機制,但在內(nèi)網(wǎng)計算機終端中最常用的仍然是BIOS 口令。
圖1 展示了通過攻破BIOS 口令竊取數(shù)據(jù)的攻擊路徑。若內(nèi)網(wǎng)計算機僅僅設置操作系統(tǒng)口令時,攻擊者可以通過修改BIOS 引導順序,從U 盤或光盤中啟動一個非宿主機的操作系統(tǒng)內(nèi)核,從而完成操作系統(tǒng)旁路攻擊。即使設置了計算系統(tǒng)的BIOS 口令,一旦被泄露,也將導致操作系統(tǒng)旁路攻擊的數(shù)據(jù)泄露風險。更進一步地,即使該內(nèi)網(wǎng)計算機終端已經(jīng)加入了可信計算機制,一旦丟失BIOS 口令,攻擊者通過偽造管理員身份,能夠?qū)尚哦攘康念A期值進行清除更改或禁用可信計算功能,從而繞過可信驗證環(huán)節(jié)??梢钥闯觯珺IOS 口令失控將導致構(gòu)建在固件層、操作系統(tǒng)層之上的安全機制出現(xiàn)嚴重漏洞和安全風險。
圖1 攻破BIOS 口令的數(shù)據(jù)竊取
BIOS 口令失控的主要原因包括以下幾種情況:
(1)管理員或用戶未設置BIOS 安全口令。這種情況主要是對BIOS 口令重要性的認識不足或安全監(jiān)管落實不到位。
(2)BIOS 口令未能及時更新。在管理員配置BIOS 口令后,有可能較長時間內(nèi)不再對BIOS口令進行更新。但是在日常使用中,由于管理員維護的需要,以及防范意識不嚴等情況,造成BIOS 口令大范圍知悉,導致安全風險的出現(xiàn)。
(3)BIOS 口令復用。由于BIOS 口令的輸入界面較為簡單,缺乏“口令輸入提醒”功能,導致用戶長時間不使用該計算機終端時,容易出現(xiàn)遺忘BIOS 口令的問題。因此,存在著多臺計算機終端使用相同的BIOS 口令,或使用少量的固定BIOS 口令進行多臺計算機終端的交替設置。
(4)BIOS 口令遺忘。由于口令的長度和復雜度要求,使得BIOS 口令比較難記。在長時間不使用后,用戶可能遺忘BIOS 口令,導致計算機需要返廠維修。
為防止BIOS 口令失控,需要在日常管理中滿足以下的BIOS 安全業(yè)務需求:
(1)BIOS 口令滿足長度和復雜度要求。一般地,BIOS 口令需要在8 位以上,并且包括數(shù)字、字母和特殊符號。
(2)BIOS 口令需要進行定期更新。
(3)需要根據(jù)每臺計算機設置不同的BIOS口令。
(4)需要分別設置管理員BIOS 口令和普通用戶BIOS 口令。一般地,BIOS 口令包括管理員BIOS 口令和普通用戶BIOS 口令兩類,其中,管理員BIOS 口令具有BIOS 最高權限,能夠?qū)IOS 的啟動順序等關鍵參數(shù)進行設置。普通用戶BIOS 口令將僅用于完成BIOS 開機授權,沒有BIOS 參數(shù)修改權限。
因此,為了通過技術手段,在部署大量內(nèi)網(wǎng)計算機終端的環(huán)境中,對管理員BIOS 進行安全管理,本文提出了基于固件的內(nèi)網(wǎng)計算機終端管理員BIOS 口令集中管理機制,用于對內(nèi)網(wǎng)互聯(lián)的計算機進行自動化的遠程管理員BIOS 口令集中管控,具體系統(tǒng)需求包括以下幾點:
(1)管理員BIOS 口令自動生成。通過BIOS 口令集中管理服務器,為每臺計算機按照長度和復雜度要求自動生成管理員BIOS 口令。
(2)BIOS 口令自動更新。按照BIOS 安全強度要求,在指定周期內(nèi),對管理員BIOS 口令進行自動更新。
(3)“一次一密”的管理員BIOS 口令加密傳輸。管理員BIOS 口令的安全性極為重要,因此采用全程加密的方式進行管理員BIOS 口令的傳輸。
(4)“多處理器平臺統(tǒng)一適配”的BIOS口令配置機制。由于大型企事業(yè)單位內(nèi)部計算機類型眾多(如不同的處理器平臺、不同操作系統(tǒng)、不同整機廠商),很難通過一種管理員BIOS口令配置方法實現(xiàn)全部計算機的管理員BIOS 口令設置。
(5)“背對背”的管理員BIOS 口令申請使用機制。當計算機需要維護時(如更改引導順序以重新安裝操作系統(tǒng)),系統(tǒng)管理員需要單獨向系統(tǒng)申請獲取管理員BIOS 口令;當計算機完成維護工作后,該計算機本次使用的BIOS 口令將自動銷毀并重新更新。該需求可規(guī)避BIOS口令非法傳遞和擴散風險。
在分析了網(wǎng)絡等級保護2.0 對固件的安全需求可以看出,BIOS 口令是固件安全或計算機整機安全的基礎。一旦BIOS 失控,將面臨嚴重數(shù)據(jù)泄露威脅。為了滿足在內(nèi)網(wǎng)中對大量計算機終端的BIOS 口令統(tǒng)一管理,將使用BIOS 口令集中管理機制實現(xiàn)對每臺計算機自動化的BIOS口令生成、下發(fā)、銷毀和更新。BIOS 口令集中管理機制中的關鍵技術主要包括內(nèi)網(wǎng)計算機終端的自動發(fā)現(xiàn)技術和面向多處理器平臺的BIOS口令自適應統(tǒng)一更新技術。
該技術主要用于內(nèi)網(wǎng)中的BIOS 口令集中管理服務器能夠自動發(fā)現(xiàn)內(nèi)網(wǎng)計算機,并對其進行自動注冊和配發(fā)相應的BIOS 口令。該技術主要包括以下幾個步驟,如圖2 所示。
圖2 計算機自動發(fā)現(xiàn)技術時序
(1)客戶端安裝。企事業(yè)單位的普通用戶在配發(fā)計算機后,需要下載BIOS口令集中管理客戶端,并進行安裝。在安全過程中,需要按要求設置默認管理員BIOS 口令,并自行設置普通用戶BIOS 口令,完成終端BIOS 口令的初始化。若計算機終端沒有設置管理員BIOS口令或普通用戶BIOS口令,將不能遠程設置BIOS 口令。該步驟是為了防止新出現(xiàn)惡意遠程設置BIOS 口令的問題。
(2)生成終端標識。BIOS 口令集中管理客戶端獲取計算機終端的關鍵硬件信息,并按照指定的規(guī)則生成終端標識。每個終端標識需要與受控計算機一一對應。
(3)獲取計算機關鍵信息。BIOS 口令集中管理客戶端獲取當前計算機終端的名稱、IP 地址、MAC 地址等重要信息,用于隨后的計算機身份確認和綁定。
(4)加密傳輸?shù)椒掌鳌IOS 口令集中管理客戶端使用服務器端的公鑰,對終端標識、默認BIOS 管理員口令、當前計算機終端名稱、IP 地址等信息進行加密;而后,BIOS 口令集中管理客戶端根據(jù)內(nèi)置的服務器域名或IP 地址,將信息發(fā)送到服務器端。
(5)新增計算機入池。服務器端使用自己的私鑰進行解密,當發(fā)現(xiàn)該終端標識不在數(shù)據(jù)庫中,并且BIOS 管理員口令為默認口令,將判定該計算機為新增受控計算機。服務器端將該計算機放入臨時終端管理池。
(6)責任人與計算機綁定。服務器安全管理員根據(jù)計算機名、IP 地址等信息確認該計算機的責任人,建立該計算機終端標識和責任人的映射關系,并遠程更新BIOS 口令。至此完成內(nèi)網(wǎng)計算機終端的自動發(fā)現(xiàn)。
該技術主要用于根據(jù)不同處理器平臺的特性和不同整機廠商的規(guī)范,進行相應的固件更新方法判斷,完成BIOS 口令更新。該技術主要包括以下幾個步驟,如圖3 所示。
圖3 BIOS 口令更新示意
(1)處理器及機型識別。通過BIOS 口令集中管理客戶端獲取處理器平臺信息和當前的整機廠商信息。
(2)若檢測出是通用的商用X86 計算機平臺,則根據(jù)內(nèi)置的BIOS 口令更新策略進行更新。如果BIOS 更新策略中沒有該品牌廠商,則不支持BIOS 口令更新。雖然,目前的UEFI 規(guī)范中已經(jīng)規(guī)定了通過Runtime Service 提供BIOS 變量的更新接口(如SetVariable),但并不足以支撐BIOS 口令安全更新。一般地,聯(lián)想、戴爾等整機廠商的X86 計算機都有自研定制化的BIOS 安全口令更新接口,并大多采用了WMI(Windows Management Interface,Windows 管理接口)機制,采用函數(shù)名如SetBIOSxxx 之類的接口,并配套更新參數(shù)類型、原口令、新口令等相關參數(shù)。
(3)若檢測出為國產(chǎn)處理器平臺(如龍芯、申威、飛騰等),則進一步判斷是否為昆侖BIOS;而后,如果是昆侖BIOS 則根據(jù)相應的BIOS 口令更新接口進行更新。國產(chǎn)處理器平臺從最初的受制于人,到現(xiàn)在的自主可控經(jīng)歷了一個艱辛的歷程。由于歷史原因所限,各種國產(chǎn)處理器平臺的發(fā)展思路和技術路線有所不同,對固件特性的支持也各有偏重。針對BIOS 口令更新,國產(chǎn)處理器平臺存在兩種情況,一是支持高級配置與電源接口(Advanced Configuration and Power Interface,ACPI)的“在線”BIOS 口令更新方法;二是不支持ACPI 的BIOS 口令“自更新”方法。
(4)ACPI 的BIOS 口令更新方法。該方法提供了一種從底層固件到操作系統(tǒng)的實時交互方法。因此,針對支持ACPI 的昆侖BIOS,其擴展了用于BIOS 口令安全更新的數(shù)據(jù)項,采用與商用X86 類似的數(shù)據(jù)結(jié)構(gòu),至少包括三個參數(shù),分別是更新參數(shù)類型、原口令的哈希值、新口令的哈希值。此處采用哈希值的目的是為了進一步增強其安全性。通過ACPI 的更新機制是指,在操作系統(tǒng)中的BIOS 口令集中管理客戶端通過在ACPI 中設置BIOS 口令更新信息,并通過BIOS 的ACPI 模塊獲取、解析,如果BIOS參數(shù)更新類型正確、原口令哈希值正確,則將BIOS 新口令的哈希值寫入指定的口令存儲區(qū),用于BIOS 口令比對,完成BIOS 口令更新。
BIOS 口令“自更新”方法。針對不支持ACPI 的國產(chǎn)處理器,則需要采用BIOS“自更新”的方法,對BIOS 口令進行變量配置。“自更新”的方法是指在BIOS Flash 的指定區(qū)域中存儲BIOS口令更新的數(shù)據(jù)包,具體包括三個參數(shù),分別是更新參數(shù)類型、原口令的哈希值、新口令的哈希值。在BIOS 啟動過程中,通過比對BIOS 哈希值類型、原口令哈希值是否正確,可以將新口令的哈希值覆蓋到指定的存儲區(qū)域,完成BIOS 口令更新過程。
BIOS口令管理是計算機安全的基礎和門戶,與國外同類技術相比,本文提出的BIOS 口令集中管理系統(tǒng)需要同時適配X86、MIPS 等多種處理器架構(gòu)和不同的配套固件廠商,因此,雖然在服務器端的軟件結(jié)構(gòu)上采用較為成熟的技術,但是在客戶端,面向多處理器平臺的BIOS 口令自適應統(tǒng)一更新技術,突破了單一平臺、單一接口的限制,可支持X86 商用計算機和國產(chǎn)計算機的內(nèi)網(wǎng)混合使用的場景。
BIOS 口令集中管理系統(tǒng)總體架構(gòu)如圖4 所示,包括部署在內(nèi)網(wǎng)的BIOS 口令集中管理服務端和部署在終端內(nèi)的BIOS 口令集中管理客戶端。
圖4 BIOS 口令集中管理系統(tǒng)總體架構(gòu)
(1)管理服務端。部署在受控內(nèi)網(wǎng)計算機中,接收所有內(nèi)網(wǎng)BIOS 口令集中管理客戶端發(fā)送的消息,并下發(fā)相應的BIOS 集中管理指令,對結(jié)果進行保存,并根據(jù)管理員的指令進行策略下發(fā)、展示內(nèi)網(wǎng)計算機狀態(tài)等。管理服務端具體包括系統(tǒng)配置模塊、命令解析模塊、秘鑰管理模塊和網(wǎng)絡通信接口。
管理服務端主要包括以下幾個模塊:
①BIOS 口令管理模塊。該模塊用于計算機的BIOS 口令和硬盤口令進行管理,檢測其口令是否正確,是否過期需要更新。
②狀態(tài)監(jiān)控模塊。該模塊用于監(jiān)控計算機終端的軟硬件狀態(tài)是否正常。如果不正常將及時進行報警。
③內(nèi)網(wǎng)終端視圖模塊。該模塊用于展示計算機所處內(nèi)網(wǎng)的拓撲位置,并只展示當前計算機狀態(tài)是否正常。
④軟硬件信息監(jiān)控模塊。該模塊用于檢測內(nèi)網(wǎng)計算機的關鍵軟硬件信息。其中,硬件信息包括磁盤、內(nèi)存、網(wǎng)卡等部件的主要信息。
⑤審計日志模塊。該模塊用于記錄相應的審計日志,并進行查詢。
⑥數(shù)據(jù)存儲模塊。該模塊用于存儲終端標識、BIOS 口令、關鍵軟硬件信息等數(shù)據(jù)。
(2)客戶端。客戶端包括兩個部分,一是部署在操作系統(tǒng)中的BIOS 口令集中管理客戶端,二是部署在BIOS 中的安全管理固件模塊。
①BIOS 口令集中管理客戶端。用于向服務器提供終端注冊、終端BIOS 口令更新、在線狀態(tài)監(jiān)控等功能。
②BIOS 口令更新模塊。用于在國產(chǎn)處理器平臺中,通過面向多處理器平臺的BIOS 口令自適應統(tǒng)一更新技術對BIOS 口令進行設置。
3.2.1 系統(tǒng)運行過程總體時序設計
BIOS 口令集中管理系統(tǒng)的運行過程主要包括計算機注冊、BIOS 口令狀態(tài)監(jiān)控、BIOS 口令更新、異常處理四個階段,如圖5 所示。
圖5 BIOS 口令集中管理系統(tǒng)總體時序
(1)計算機注冊階段
計算機進行上電后,按照內(nèi)網(wǎng)計算機終端的自動發(fā)現(xiàn)技術,首先檢測是否已經(jīng)進行了終端注冊。
(2)BIOS 口令狀態(tài)監(jiān)控階段
計算機進行工作狀態(tài)后,將按照配置周期,向BIOS 口令集中管理服務端上報當前狀態(tài),如BIOS 口令是否到期需要更新。
(3)BIOS 口令更新階段
BIOS 口令集中管理服務端在收到計算機終端發(fā)送的BIOS 口令到期的狀態(tài)信息后,將自動生成新的BIOS 口令,并進行加密傳輸下發(fā),由BIOS 口令集中管理客戶端進行更新。
(4)維護處理階段
當系統(tǒng)管理員需要BIOS口令維護計算機時,將通過訪問BIOS 口令集中管理服務端的頁面,向安全管理員提出BIOS 口令申請;審批通過后,將向系統(tǒng)管理員發(fā)送該申請維護計算的管理員BIOS 口令,并在完成計算機維護后銷毀原口令,生成并更新新的BIOS 口令。
3.2.2 內(nèi)網(wǎng)計算機管理平臺客戶端的工作流程設計
在內(nèi)網(wǎng)的計算機進行客戶端安裝后,該客戶端可以隨計算機啟動而運行,按照既定策略進行計算機管理的過程如圖6 所示,具體流程包括:
圖6 客戶端工作流程
(1)客戶端正常啟動完成初始化配置后,將執(zhí)行BIOS 口令信息上報任務(步驟2)和監(jiān)聽服務器(步驟5)兩個任務。
(2)客戶端按照定制策略檢測當前的軟硬件和BIOS 口令信息是否正確配置及相應的軟硬件信息。
(3)檢測是否出現(xiàn)異常。如果未出現(xiàn)異常,在聯(lián)網(wǎng)時將普通信息發(fā)送到服務器,不聯(lián)網(wǎng)時在本地進行日志存儲。
(4)若出現(xiàn)異常,則檢測是否聯(lián)網(wǎng),若聯(lián)網(wǎng)則向服務器發(fā)送報警和告警信息,而后執(zhí)行安全策略。若未聯(lián)網(wǎng),則檢測本地是否有安全策略(如BIOS 口令更新指令)。如果有安全策略則進行執(zhí)行,如果沒有本地安全策略則執(zhí)行關機等安全保護方法。
(5)客戶端處于監(jiān)聽服務器狀態(tài)。若收到服務器指令,將立即進行執(zhí)行;否則,將一直處于監(jiān)聽服務器狀態(tài)。
(6)如果客戶端執(zhí)行服務器指令出現(xiàn)異常,則立刻執(zhí)行安全處理策略,并向服務器發(fā)送報警和告警信息。
3.2.3 BIOS 口令集中管理系統(tǒng)客戶端的工作流程設計
在內(nèi)網(wǎng)的服務器啟動后,可以獲取到計算機發(fā)送的信息,并對計算機進行實時監(jiān)控,如圖7 所示,具體流程包括:
圖7 服務器端工作流程
(1)服務器啟動后,將進入工作狀態(tài)。至少同時執(zhí)行監(jiān)聽客戶端(步驟2)和監(jiān)聽界面(步驟4)兩個任務。
(2)服務器監(jiān)聽客戶端。如果客戶端有上傳信息,服務器將保存客戶端上傳的信息。
(3)服務器檢測異常信息。服務器檢測客戶端上傳信息是否包括異常信息(報警和告警信息)或者服務器在檢測客戶端的信息時,發(fā)現(xiàn)了新的異常,將進行發(fā)送報警和告警信息。
(4)服務器異常處理。服務器檢測到有報警信息時,將立即根據(jù)既定安全策略,發(fā)送相應的安全指令到客戶端,由客戶端進行執(zhí)行。在執(zhí)行異常處理后,服務器可以回到監(jiān)聽狀態(tài)。
(5)服務器監(jiān)聽界面請求。服務器檢測到有界面請求時,將進行執(zhí)行,并將相應的執(zhí)行結(jié)果返回給界面,用于提示用戶。完成界面響應后,服務器可以回到監(jiān)聽狀態(tài)。
BIOS 口令集中管理系統(tǒng)采用B/S 架構(gòu),服務端使用ThinkPHP 框架,客戶端采用C 語言進行實現(xiàn),可支持X86、MIPS 多種處理器架構(gòu),可對BIOS 多種角色密碼進行自動更新與管理,實現(xiàn)了BIOS 密碼的安全管控。日常使用過程中,普通用戶如果需要更新或重置BIOS 口令,將登錄系統(tǒng)后填寫相關理由,并進行提交。管理員會登錄BIOS 集中管理系統(tǒng),查看BIOS 口令管理的相關提示信息并進行配置。
目前,我們已經(jīng)在X86 平臺上完成了所有基礎功能,并在聯(lián)想ThinkCenter 臺式機、ThinkPad 筆記本等X86 平臺計算機構(gòu)成的內(nèi)網(wǎng)中進行了使用。同時,在MIPS 平臺也已經(jīng)完成了“自更新”機制的BIOS 口令刷新機制。圖8展示了內(nèi)網(wǎng)計算機在線狀態(tài)監(jiān)控的界面,包括了內(nèi)網(wǎng)中的計算機同步狀況、計算機受控狀況和合規(guī)狀況的三種總體視圖以及內(nèi)網(wǎng)中各計算機的計算機名稱、責任人信息。并且,在界面中可以直觀展示每臺計算機BIOS 口令的狀態(tài),是否BIOS 口令已經(jīng)同步并處于受控狀態(tài)。圖9展示了內(nèi)網(wǎng)計算機口令配置管理的界面,包括申請密碼重置的用戶、申請理由、網(wǎng)絡地址、部門或分組、計算機名稱等。
圖8 BIOS 口令集中管理系統(tǒng)界面
圖9 BIOS 口令配置管理
隨著國產(chǎn)化計算機的快速發(fā)展和推廣,自主可控計算機經(jīng)歷了“從無到有”“從小到大”的過程,目前正在向“從可用到好用”方向發(fā)展。面對國內(nèi)外越來越嚴峻的安全形勢,使用國產(chǎn)計算機進行黨政辦公、計算存儲已是大勢所趨。本文以網(wǎng)絡等級保護2.0 對固件的安全需求為背景,基于已有的國產(chǎn)固件的基礎,提出和設計了基于固件BIOS 口令集中管理系統(tǒng)的總體框架,通過客戶端軟件和昆侖BIOS 的BIOS 口令更新機制,解決了對內(nèi)網(wǎng)計算機的BIOS 口令定時更新、統(tǒng)一管理的難題,進一步提升計算機集群的可維護性、安全性和穩(wěn)定性。目前,本文已經(jīng)完成BIOS 口令集中管理系統(tǒng)的主體框架和基礎功能,并在X86 處理器平臺和龍芯處理器平臺的計算機終端集群中進行了部署和試用,取得了良好的效果。下一步,我們將加快完成支持X86 商用計算機和國產(chǎn)計算機的BIOS 口令集中管理系統(tǒng)的開發(fā),增加飛騰平臺的ACPI“在線”口令更新方法,并引入可信計算體系,實現(xiàn)更加安全的內(nèi)網(wǎng)計算機BIOS 口令管理系統(tǒng)。