借鑒可信計(jì)算思想,從可信增強(qiáng)的角度出發(fā),提出了一個(gè)可信增強(qiáng)的訪問控制框架,并給出了該框架的具體實(shí)施流程。該框架在普通Flask的基礎(chǔ)上引入了身份認(rèn)證和可信監(jiān)控機(jī)制,解決了傳統(tǒng)訪問控制中存在的“內(nèi)部威脅”問題,它是在訪問控制中引入可信計(jì)算的一個(gè)嘗試,具有一定的指導(dǎo)意義。
目前,大部分終端平臺信息安全系統(tǒng)主要是由防火墻、入侵監(jiān)測和病毒防范等組成,但僅靠“堵漏洞、作高墻、防外攻”無法從根本上解決終端平臺的安全問題??v觀安全操作系統(tǒng)近40年的發(fā)展歷史可以發(fā)現(xiàn),安全操作系統(tǒng)得到了長足的發(fā)展,并在訪問控制框架和安全模型方面均取得了豐碩的成果。但是,傳統(tǒng)的訪問控制并不能解決“內(nèi)部威脅”問題。造成內(nèi)部威脅的原因主要是“脆弱性或漏洞攻擊”。“脆弱性或漏洞攻擊”是指內(nèi)部授權(quán)主體可以繞過檢測和訪問控制機(jī)制,利用自身的權(quán)限和已知的系統(tǒng)脆弱性及漏洞,通過完全合法的操作發(fā)動(dòng)內(nèi)部攻擊。從技術(shù)上講,這種內(nèi)部威脅的根源在于傳統(tǒng)的訪問控制理論存在的缺陷。傳統(tǒng)的訪問控制理論是基于“關(guān)口控制”理論實(shí)施的,即它不會讓不符合條件的主體對客體進(jìn)行請求的操作,但是主體一旦取得相應(yīng)的操作權(quán)限,它在允許操作范圍內(nèi)的活動(dòng)行為就可以暢通無阻。究其原因,主體對客體的訪問和行為是根據(jù)授權(quán)和身份識別來決定的,授權(quán)一旦確定,就不會再考慮主體的表現(xiàn),也不會再考慮主體行為的可信性,直到另外一次授權(quán)開始。另外,傳統(tǒng)的訪問控制也不能保證客體內(nèi)容的真實(shí)性和完整性。
因此,尋求一種通用的方法對授權(quán)操作的行為進(jìn)行監(jiān)管,控制授權(quán)后的信息流失,保證合法主體的行為得到應(yīng)有的控制和監(jiān)督,才能使這類主體的行為規(guī)范可信,預(yù)防和控制內(nèi)部威脅的發(fā)生。目前,隨著新的安全技術(shù)的興起,可信計(jì)算也成為人們關(guān)注的熱點(diǎn)。從可信計(jì)算的概念及其特征可以發(fā)現(xiàn),通過引入可信計(jì)算解決上述安全問題是可行的。
1 可信計(jì)算思想
為了提高計(jì)算機(jī)的安全防護(hù)能力,由Intel、惠普、微軟、IBM等業(yè)界大公司牽頭,于1999年成立了可信計(jì)算平臺聯(lián)盟TCPA(后于2003年改組為TCG),并提出了“可信計(jì)算”的概念??尚庞?jì)算旨在從硬件體系結(jié)構(gòu)和系統(tǒng)完整性角度來提高終端計(jì)算平臺的安全性,解決終端平臺安全性問題。它認(rèn)為如果終端計(jì)算平臺從一個(gè)初始的“可信根”出發(fā),在終端平臺計(jì)算環(huán)境的每一次轉(zhuǎn)換時(shí),這種可信狀態(tài)都可以通過傳遞的方式保持下去而不被破壞,則該終端平臺就始終是可信的。在可信環(huán)境下不存在不被信任的實(shí)體,因而可以很好地保證平臺本身及上層應(yīng)用的安全。
信任鏈的傳遞是體現(xiàn)可信的重要手段,它是可信計(jì)算平臺的核心機(jī)制。系統(tǒng)加電后,在可信硬件平臺的控制下,BIOS會將信任傳遞給主引導(dǎo)分區(qū),主引導(dǎo)分區(qū)將信任傳遞給操作系統(tǒng)裝載器,操作系統(tǒng)裝載器將信任傳遞給操作系統(tǒng)內(nèi)核模塊,也就是說可信鏈的傳遞是分層進(jìn)行的。當(dāng)?shù)图墑e的節(jié)點(diǎn)驗(yàn)證到高一級的節(jié)點(diǎn)是可信時(shí),低級別節(jié)點(diǎn)才會把可信計(jì)算平臺的運(yùn)行控制權(quán)轉(zhuǎn)交給高一級節(jié)點(diǎn)??尚庞?jì)算平臺正是基于這種信任鏈傳遞的機(jī)制將可信擴(kuò)展到了應(yīng)用程序部分。平臺可信的驗(yàn)證通過哈希運(yùn)算進(jìn)行,在驗(yàn)證過程中,各程序的雜湊值將會被存儲在平臺配置寄存器PCR(Platform. Configuration registers)中,而且在關(guān)機(jī)之前這部分PCR的值不會被重置,只能被擴(kuò)展。當(dāng)遠(yuǎn)程或本地程序(請求者)需要驗(yàn)證當(dāng)前系統(tǒng)是否處于預(yù)定義的可信狀態(tài)時(shí),這些PCR的值就會被讀取。請求者對這些可執(zhí)行體或數(shù)據(jù)進(jìn)行雜湊運(yùn)算,并且與PCR中的預(yù)期值進(jìn)行比較。如果相同,則可以判定該系統(tǒng)運(yùn)行的程序是預(yù)先規(guī)定的可信程序或者是可信數(shù)據(jù)。
2 可信增強(qiáng)的Flask訪問控制框架的設(shè)計(jì)與分析
2.1 Flask訪問控制框架
Flask是目前業(yè)界關(guān)注度最高的訪問控制框架之一,它是由美國國家安全局聯(lián)合猶他州大學(xué)和安全計(jì)算公司,以安全策略靈活性為目標(biāo)設(shè)計(jì)開發(fā)的多訪問控制策略支持框架。Flask嚴(yán)格分離了策略實(shí)施邏輯和策略決策邏輯。Flask由對象管理器和安全服務(wù)器兩部分組成,對象管理器負(fù)責(zé)策略實(shí)施邏輯的執(zhí)行,安全服務(wù)器負(fù)責(zé)策略決策邏輯的制定。Flask描述了對象管理器和安全服務(wù)器的交互,以及對它們內(nèi)部組成部分的要求。Flask還借助一個(gè)訪問向量緩存(AVC)模塊來實(shí)現(xiàn)對動(dòng)態(tài)策略和性能要求的支持。
如圖1所示,在Flask訪問控制框架下,主體要對客體進(jìn)行操作。首先要將訪問請求發(fā)送到對象管理器,對象管理器收集主客體的安全標(biāo)簽,對訪問請求進(jìn)行判斷;對象管理器首先檢查存放在AVC中的訪問向量,如果存在此訪問向量,則直接返回在AVC中的訪問向量,否則,向安全服務(wù)器提出查詢請求。在安全服務(wù)器中根據(jù)主客體的SID及相應(yīng)的類,針對相關(guān)的安全策略對請求進(jìn)行計(jì)算,然后返回相應(yīng)的訪問向量決策,同時(shí)把此訪問向量存放在AVC中。如果策略允許主體在客體上執(zhí)行預(yù)期的操作,則該請求就會被允許,否則,該請求就會被拒絕。
2.2 可信增強(qiáng)的Flask訪問控制框架設(shè)計(jì)
盡管Flask安全框架在一定程度上解決了系統(tǒng)的安全問題,但其解決的是不讓非法主體對系統(tǒng)資源進(jìn)行惡意的訪問控制,而無法解決合法主體的可信性問題,即前言中描述的“內(nèi)部威脅”問題。另一方面,F(xiàn)lask也無法保證系統(tǒng)中客體內(nèi)容的完整性和真實(shí)性問題。結(jié)合可信計(jì)算,本文提出了一種可信增強(qiáng)的Flask 訪問控制框架,它在普通Flask框架的基礎(chǔ)上加入了身份認(rèn)證和可信監(jiān)控機(jī)制,如圖2所示。
訪問控制中,用戶身份認(rèn)證是非常重要的。在用戶對系統(tǒng)資源進(jìn)行訪問控制之前,首先要經(jīng)過身份認(rèn)證模塊識別用戶的身份,訪問控制模塊才能根據(jù)用戶的身份和安全策略庫決定用戶是否能夠訪問某個(gè)資源。
可信監(jiān)控機(jī)制用于保障安全策略的正確實(shí)施,它在安全服務(wù)器內(nèi)實(shí)現(xiàn)。其主要工作有:(1)對主體行為進(jìn)行監(jiān)控,即在進(jìn)行訪問控制之前,確保主體的行為是可信的,不會給系統(tǒng)造成破壞;(2)對客體進(jìn)行驗(yàn)證,即根據(jù)客體的當(dāng)前狀態(tài)驗(yàn)證主體的身份和客體自身的完整性,確保客體內(nèi)容的真實(shí)性;(3)監(jiān)控訪問行為,即監(jiān)控所有與安全相關(guān)的訪問企圖,確保訪問企圖不被篡改,訪問機(jī)制不被繞過。圖3是可信監(jiān)控機(jī)制的示意圖。
可信監(jiān)控機(jī)制可分為可信驗(yàn)證、可信存儲和可信報(bào)告三部分,其中可信驗(yàn)證必須存在,可信存儲和可信報(bào)告可選。為了實(shí)施可信驗(yàn)證,首先要對進(jìn)行可信驗(yàn)證的實(shí)體進(jìn)行可信度量,可信度量由度量實(shí)體(或者是度量事件)啟動(dòng),通過對度量實(shí)體進(jìn)行SHA1運(yùn)算得到一個(gè)雜湊值,度量實(shí)體會將這個(gè)雜湊值存儲在內(nèi)核里的一個(gè)有序度量列表中,同時(shí)將可信度量值報(bào)告給存儲在可信硬件里的平臺配置寄存器(PCR),以擴(kuò)展度量列表??尚膨?yàn)證結(jié)合度量列表中存儲的度量值,對主客體進(jìn)行一致性驗(yàn)證,檢查其是否被篡改或破壞,以確保主客體的可信性和完整性。驗(yàn)證過程依賴于度量列表中存儲的基準(zhǔn)度量值與當(dāng)前狀態(tài)的可信度量值的比較。若當(dāng)前狀態(tài)的可信度量值符合基準(zhǔn)度量值,則認(rèn)為該實(shí)體(或事件)是可信的[4]。
在加入了身份認(rèn)證和可信監(jiān)控之后,訪問控制的工作流程如下:
(1) 在身份鑒別的控制下,用戶登錄,啟動(dòng)訪問控制模塊;
(2) 主體向?qū)ο蠊芾砥靼l(fā)送訪問請求,要求對相應(yīng)的客體進(jìn)行請求操作;
(3) 對象管理器將訪問請求發(fā)送給安全服務(wù)器。請求包括主客體標(biāo)識以及請求類型等;
(4) 安全服務(wù)器接收到訪問請求之后,啟動(dòng)可信監(jiān)控機(jī)制;
(5) 可信監(jiān)控機(jī)制根據(jù)主體的當(dāng)前訪問行為,判斷主體的可信性及主體的這次訪問行為是否為不良行為。如果主體可信并且這次訪問行為完全合法,可信監(jiān)控機(jī)制則會轉(zhuǎn)向?qū)腕w的驗(yàn)證,否則,拒絕這次訪問;
(6) 可信監(jiān)控機(jī)制根據(jù)訪問請求,驗(yàn)證客體的真實(shí)性和完整性,如果驗(yàn)證出客體的真實(shí)性和完整性未遭到破壞,可信監(jiān)控機(jī)制則會將訪問控制權(quán)轉(zhuǎn)向安全服務(wù)器的安全決策邏輯的制定,否則,拒絕這次訪問;
(7) 安全服務(wù)器根據(jù)當(dāng)前的訪問控制策略庫進(jìn)行訪問決策的判定,如果這次訪問行為滿足訪問控制策略,則允許主體的這次訪問行為,否則,拒絕本次訪問;
(8) 安全服務(wù)器將判定結(jié)果返回給對象管理器,對象管理器依據(jù)決策結(jié)果實(shí)施主體對客體的訪問控制;
(9) 可信監(jiān)控機(jī)制實(shí)施主體對客體操作的監(jiān)控,如果出現(xiàn)違規(guī)行為,則撤銷此次訪問。
2.3可信增強(qiáng)的Flask訪問控制框架分析
本文通過對普通Flask訪問控制框架加入身份認(rèn)證和可信監(jiān)控機(jī)制,實(shí)現(xiàn)了一個(gè)可信增強(qiáng)的訪問控制框架,通過實(shí)施這個(gè)可信增強(qiáng)的訪問控制框架,可以實(shí)現(xiàn)對操作系統(tǒng)終端平臺的機(jī)密性、一致性保障,并且具有較好的可用性。下面就這幾個(gè)方面做簡要說明。
(1) 一致性:通過在框架中實(shí)施可信監(jiān)控機(jī)制對相應(yīng)主體和客體(包括文件、目錄、進(jìn)程、套接字等)進(jìn)行一致性驗(yàn)證。對主、客體的驗(yàn)證首先要檢查主、客體是否存在預(yù)期摘要值,如果不存在,則為其生成預(yù)期摘要值(首次執(zhí)行);否則計(jì)算主、客體的當(dāng)前摘要值,并且與保存的預(yù)期摘要值進(jìn)行比較;如果不一致,則拒絕本次訪問請求[5]。這樣做可以保證系統(tǒng)資源的一致性,進(jìn)而保證整個(gè)系統(tǒng)的一致性。
(2) 機(jī)密性:通過在框架中實(shí)施強(qiáng)制訪問控制對登錄用戶、系統(tǒng)主體以及敏感信息進(jìn)行處理,有權(quán)限的合法可信用戶以及合法可信主體才可訪問相應(yīng)級別的敏感信息,從而解決了前言中闡述的“內(nèi)部威脅”問題。對于某些由于意外情況而賦予的訪問許可,通過實(shí)施強(qiáng)制訪問控制,其實(shí)施范圍也會限定在有限的區(qū)域,并且當(dāng)再次執(zhí)行訪問控制決策時(shí),也會由于一致性驗(yàn)證不成功而拒絕訪問,從而保證了整個(gè)系統(tǒng)的機(jī)密性。
(3) 可用性:身份認(rèn)證是保證用戶身份合法性及唯一性的方法,而訪問控制的有效性也需要建立在合法主體的基礎(chǔ)之上。該框架在普通Flask框架的基礎(chǔ)上增加了身份認(rèn)證和可信監(jiān)控,既解決了用戶身份的合法性又解決了訪問控制實(shí)施的可信性,它在保證機(jī)密性、一致性的基礎(chǔ)上,對用戶透明,不需用戶干預(yù),具有良好的可用性,并且能與操作系統(tǒng)良好兼容。
3 框架實(shí)現(xiàn)
本文以通用硬件平臺和Linux-2.6.19內(nèi)核為基礎(chǔ)實(shí)現(xiàn)了此可信增強(qiáng)訪問控制框架。由于所用通用平臺,不具備TCG定義的可信根,因此原型中采用在其他項(xiàng)目中開發(fā)的具備密碼功能和存儲機(jī)制的可信支撐模塊作為可信根。限于篇幅,本節(jié)只重點(diǎn)闡述這個(gè)可信增強(qiáng)的訪問控制框架在內(nèi)核的實(shí)施流程。
3.1 內(nèi)核修改
可信驗(yàn)證機(jī)制是在位于內(nèi)核空間的安全服務(wù)器內(nèi)實(shí)施的,其主要在以下幾方面對內(nèi)核進(jìn)行了修改:
(1) 添加了measure系統(tǒng)調(diào)用。真實(shí)的可信驗(yàn)證是在內(nèi)核中執(zhí)行的,因此在內(nèi)核中添加了新的系統(tǒng)調(diào)用measure,其主要任務(wù)是識別系統(tǒng)(用戶或內(nèi)核級)上的檢測點(diǎn),即與執(zhí)行相關(guān)的內(nèi)容載入的地方,并且在這些位置上插入measure系統(tǒng)調(diào)用(或在內(nèi)核里直接調(diào)用檢測代碼)。
(2) 添加了一個(gè)checkfile文件。checkfile文件用于存放檢測值列表,包括BIOS、操作系統(tǒng)裝載器、內(nèi)核以及應(yīng)用程序的檢測基準(zhǔn)值。在初始化可信驗(yàn)證之前,內(nèi)核首先要載入檢測值列表文件checkfile,若實(shí)際的啟動(dòng)或者運(yùn)行過程與預(yù)期的不同,則checkfile的驗(yàn)證將會失敗。不允許對 checkfile文件進(jìn)行修改,否則攻擊者將會隱蔽完整性相關(guān)的行為。checkfile文件使用可信硬件保護(hù)。
(3) 在內(nèi)核代碼中實(shí)現(xiàn)訪問控制的關(guān)鍵點(diǎn)上插入監(jiān)控函數(shù)monitor。monitor函數(shù)用于監(jiān)控某些關(guān)鍵的訪問控制實(shí)施,對于在訪問控制中出現(xiàn)的某些意外攻擊,monitor函數(shù)返回一個(gè)錯(cuò)誤信息,并通知相應(yīng)主體訪問被篡改,需要撤銷此次訪問操作。
3.2框架實(shí)施
框架的實(shí)施過程包括框架的初始化和內(nèi)核實(shí)施兩個(gè)階段。前一過程是策略實(shí)施的基礎(chǔ),包括用戶身份認(rèn)證以及可信環(huán)境的建立。用戶身份認(rèn)證通過TCG規(guī)范中的雙向認(rèn)證來實(shí)施,克服了傳統(tǒng)認(rèn)證方式的缺陷,使得操作系統(tǒng)與用戶可以相互認(rèn)證,從而確保用戶身份信息正確映射到安全策略中;建立可信環(huán)境的目的在于將可信鏈傳遞到應(yīng)用層以確保系統(tǒng)加電直至可信增強(qiáng)內(nèi)核裝載完畢各個(gè)環(huán)節(jié)的可信。內(nèi)核實(shí)施包括策略初始化、主客體的完整性度量及驗(yàn)證以及安全策略的驗(yàn)證實(shí)施。策略初始化是將安全策略配置文件解密并導(dǎo)入內(nèi)核空間;主客體的完整性度量及驗(yàn)證是對實(shí)施訪問控制操作的主客體進(jìn)行雜湊運(yùn)算,與主客體的度量基準(zhǔn)值進(jìn)行比較,以確保主體行為的可信性和客體數(shù)據(jù)的完整性和真實(shí)性。其具體過程將在下面具體描述;策略實(shí)施是對通過了完整性驗(yàn)證的訪問控制依據(jù)安全策略庫實(shí)施安全策略裁決的過程。整個(gè)實(shí)施過程中前一環(huán)節(jié)為下一環(huán)節(jié)服務(wù),逐層建立了系統(tǒng)的可信計(jì)算基(TCB),從而保證了框架實(shí)施的可信性。主客體的完整性度量是最為關(guān)鍵的步驟,下面將重點(diǎn)介紹。
為了實(shí)現(xiàn)對訪問操作涉及的主客體的完整性度量及驗(yàn)證,本文在Linux內(nèi)核中加入了一個(gè)checkfile文件專門存放度量基準(zhǔn)值,其格式如下:
……
fedb1cff009e115f7f5f7b4533667a787798832d(hd0,1)/xen3.0.2.gz
0b397acac72a31aedc5f63c5f597c462e0815ed5 ftp
59e6215c821e78ef20d75bd6b63dd5a8b2af00ee/bin/hostname
……
當(dāng)主體發(fā)起對客體的訪問請求時(shí),對象管理器將訪問請求提交給安全服務(wù)器。安全服務(wù)器首先調(diào)用measure對相應(yīng)的主客體進(jìn)行可信檢測與驗(yàn)證,也即啟動(dòng)框架中的可信驗(yàn)證機(jī)制checkfile_func()函數(shù)來調(diào)用calculate_sha1()函數(shù),以對相應(yīng)的主客體進(jìn)行完整性度量,并且檢查相應(yīng)的主客體是否存在于checkfile中。如果不存在,則將已計(jì)算出的雜湊值擴(kuò)展到checkfile中,以作為下次判斷的依據(jù);如果存在,則調(diào)用 strcmp()函數(shù)將所得的雜湊值與基準(zhǔn)值進(jìn)行比較。若不匹配就顯示警告信息,告訴用戶此次訪問操作的主體或客體的完整性已經(jīng)被破壞,訪問被拒絕;若匹配,則調(diào)用update_checkfile()函數(shù)將所計(jì)算出的度量值擴(kuò)展到checkfile文件中,并且在measure系統(tǒng)調(diào)用返回前,擴(kuò)展相應(yīng)的PCR寄存器,同時(shí)將訪問請求移交給安全策略服務(wù)器,由策略服務(wù)器檢查是否滿足安全策略。若不滿足,則拒絕本次訪問;若滿足則由對象管理器實(shí)施訪問決策。在實(shí)施訪問控制的過程中調(diào)用monitor監(jiān)控函數(shù)對訪問操作進(jìn)行監(jiān)控。圖4是上述實(shí)施過程的流程圖。
本文借鑒可信計(jì)算思想,從可信增強(qiáng)的角度出發(fā),提出了一個(gè)可信增強(qiáng)的訪問控制框架,并給出了該框架的具體實(shí)施流程。文章重點(diǎn)闡述了框架的總體設(shè)計(jì)和實(shí)施,旨在體現(xiàn)框架的可信增強(qiáng)思想。相比普通的訪問控制,它可以確保主體行為的可信性、客體內(nèi)容的完整性和真實(shí)性,以及訪問控制行為的正確性。本文提出的這個(gè)可信增強(qiáng)的框架是對可信計(jì)算在訪問控制中應(yīng)用的一個(gè)嘗試,在下一步工作中,將主要針對框架中存在的一些安全隱患和具體實(shí)施細(xì)節(jié)加以改進(jìn)。
責(zé)任編輯:gt
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7494瀏覽量
87946 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85415
發(fā)布評論請先 登錄
相關(guān)推薦
評論