相關(guān)鏈接: 中國安全網(wǎng) 中國質(zhì)量網(wǎng) 中國論文網(wǎng) 中國資訊網(wǎng)
基于TPCM的主動動態(tài)度量機(jī)制的研究與實(shí)現(xiàn)(網(wǎng)絡(luò))
田健生,詹靜
(北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,北京100124)
摘要:為了實(shí)現(xiàn)對系統(tǒng)的主動度量和控制,國內(nèi)研究人員提出了基于可信平臺控制模塊( TPCM)的雙系統(tǒng)并行體系結(jié)構(gòu),但受限于硬件設(shè)計(jì)和制造能力,短期內(nèi)難以完全實(shí)現(xiàn)。文章基于當(dāng)前可信硬件基礎(chǔ),在保留主動度量能力的前提下對雙系統(tǒng)體系結(jié)構(gòu)進(jìn)行了簡化,基于可信平臺控制模塊設(shè)計(jì)并實(shí)現(xiàn)了系統(tǒng)運(yùn)行中的主動動態(tài)度量機(jī)制,保障可信軟件基( TSB)在完整運(yùn)行周期中均能得到可信硬件的保護(hù),有效解決了信息系統(tǒng)運(yùn)行過程中可信軟件基的自身安全保障問 題一、文章對主動動態(tài)度量機(jī)制的安全性進(jìn)行了形式化證明,分析了各環(huán)節(jié)中可能受到的攻擊及應(yīng)對方案,并對核心技術(shù)進(jìn)行了工程實(shí)現(xiàn)和測試分析。
關(guān)鍵詞:主動度量;動態(tài)度量;可信平臺控制模塊;可信軟件基
中圖分類號:TP309 文章編號:1671-1122( 2016) 06-0022-060引言
經(jīng)過數(shù)十年發(fā)展,尤其是隨著近幾年高速通信網(wǎng)絡(luò)的普及,信息產(chǎn)業(yè)已經(jīng)開始由“提供應(yīng)用”向“提供服務(wù)”轉(zhuǎn)變。在這種轉(zhuǎn)變中,一個明顯的特征是直接面向用戶的應(yīng)用開發(fā)者急劇減少,絕大部分應(yīng)用都提交給特定的應(yīng)用分發(fā)平臺,由平臺向用戶推送,這樣的平臺有蘋果公司的iTu nes、Google公司的Google Play、微軟公司的微軟應(yīng)用商店等。隨之而來,應(yīng)用版權(quán)保護(hù)、用戶信息保護(hù)及平臺安全防護(hù)成為首要解決的問題,可信計(jì)算技術(shù)為解決此類問題提供了強(qiáng)有力的手段。
可信計(jì)算體系結(jié)構(gòu)通過在操作系統(tǒng)中構(gòu)建實(shí)際有效的硬件可信根,并基于可信根建立可信傳遞機(jī)制,通過分級的度量、驗(yàn)證、擴(kuò)展流程,實(shí)現(xiàn)系統(tǒng)運(yùn)行環(huán)境的可信。國外標(biāo)準(zhǔn)中定義的可信根可信平臺模塊( TPM)為被動設(shè)備,其功能實(shí)現(xiàn)依賴于上層應(yīng)用的調(diào)用,無法主動對系統(tǒng)運(yùn)行情況進(jìn)行監(jiān)控和度量。為進(jìn)一步提高系統(tǒng)安全性,我國創(chuàng)新提出了可信平臺控制模塊( TPCM),它能夠與TPM -樣作為被動設(shè)備為系統(tǒng)提供密碼服務(wù),同時也能夠作為主動設(shè)備,監(jiān)測系統(tǒng)運(yùn)行情況。
可信度量技術(shù)是可信計(jì)算體系實(shí)現(xiàn)的核心,立足于可信硬件提供的密碼支撐,可信度量技術(shù)為上層可信控制、可信證明、可信網(wǎng)絡(luò)連接的實(shí)現(xiàn)提供基礎(chǔ)支撐?尚哦攘考夹g(shù)分為靜態(tài)度量和動態(tài)度量兩個方面。靜態(tài)度量是指在信息系統(tǒng)運(yùn)行過程中,在實(shí)體進(jìn)入系統(tǒng)時(如硬件啟動、軟件啟動、人員登人、網(wǎng)絡(luò)接入等)對實(shí)體初始狀態(tài)進(jìn)行度量;動態(tài)度量是指在系統(tǒng)運(yùn)行態(tài)中,對實(shí)體狀態(tài)及行為進(jìn)行度量。
目前,靜態(tài)度量技術(shù)已經(jīng)比較成熟,由TPCM起,貫穿硬件、固件、操作系統(tǒng)、服務(wù)、應(yīng)用至網(wǎng)絡(luò)連接的度量鏈條的完備性已經(jīng)通過理論證明,并已有相關(guān)標(biāo)準(zhǔn)及大量實(shí)際應(yīng)用。相比之下,動態(tài)度量技術(shù)的研究和工程應(yīng)用還處于起步階段。
在TPCM具備主動監(jiān)測能力的基礎(chǔ)上,我國進(jìn)一步定義了主板需要提供的可信功能,并與可信軟件基的動態(tài)度量機(jī)制相結(jié)合,建立了具備主動免疫能力的雙系統(tǒng)體系結(jié)構(gòu)。但在目前工程實(shí)現(xiàn)中,受限于硬件設(shè)計(jì)及生產(chǎn)能力,實(shí)現(xiàn)完整的雙系統(tǒng)體系結(jié)構(gòu)還存在較大困難。
本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于TPCM的、簡化的主動動態(tài)度量機(jī)制,其主要思想為:通過TPCM在運(yùn)行中度量作為可信軟件基( TSB)核心的基礎(chǔ)可信基(TBB),TBB度量TSB中的其他部件,可信軟件基再度量系統(tǒng)各功能機(jī)制及策略,從而建立對系統(tǒng)運(yùn)行時可信的支撐和保障。
1工作原理
本設(shè)計(jì)采用的TPCM連接到平臺的主設(shè)備接口,通過仲裁器實(shí)現(xiàn)與CPU的互斥訪問。TPCM能夠以主設(shè)備方式工作,對平臺的軟、硬件系統(tǒng)進(jìn)行實(shí)時主動度量。
配合主板改造,運(yùn)行中TPCM中的可信微系統(tǒng)可以透明的訪問上層主機(jī)操作系統(tǒng)的內(nèi)存數(shù)據(jù)。在此基礎(chǔ)上,由TPCM隨機(jī)延時度量TBB,度量通過后,由TBB度量TSB的其他部分,再次度量通過后,由TSB發(fā)起對業(yè)務(wù)功能域的度量操作,形成系統(tǒng)運(yùn)行中動態(tài)的信任鏈關(guān)系。如圖1所示。
下面對主動動態(tài)度量機(jī)制進(jìn)行建模,并對可能出現(xiàn)的安全風(fēng)險進(jìn)行分析和評估,并給出應(yīng)對措施。
2形式化驗(yàn)證與安全分析
為了驗(yàn)證基于TPCM的主動動態(tài)度量機(jī)制的安全性,下面使用CSP方法分析基于TPCM的主動度量流程。
分析過程所用的基本定義如下:
1)以M表示組件,Mc表示組件M的代碼;
2)∑k=1.…n。表示n個連續(xù)的組件、操作或者進(jìn)程的連接關(guān)系,或者數(shù)據(jù)的拼接;
3) Stop表示操作結(jié)束;
4) Ha s h. T. TPCM.M Mc .V表示T時刻TPCM對代碼MC進(jìn)行完整性度量操作,獲得雜湊值V; 5) Send. T.TPCM.B.data表示在T時刻TPCM將數(shù)據(jù)data發(fā)送給B;
6) Rec- eive .T.B.TPCM.data表示在T時刻TPCM收到B發(fā)送的數(shù)據(jù)data;
7) Read T. TPCM .SYS. data表示在T時刻TPCM主動從系統(tǒng)中讀取數(shù)據(jù)data;
8) CMP.T.B.TPCM.V.VF'表示T時刻B判斷TPCM返回的度量結(jié)果V與預(yù)期基準(zhǔn)值VF是否一致,即
9) Random表示隨機(jī)數(shù)字;
10) Trust. T.B.M表示T時刻B信任組件M。由上述定義,對主動的主動動態(tài)度量機(jī)制建模。
首先,由于TPCM是在隨機(jī)時間啟動度量,故T=Random時刻,TPCM度量TBB的過程表示為:
其中,Send. T.TPCM.TBB.VCMD為要求TBB立即進(jìn)行下一環(huán)節(jié)度量的指令,Send. T.TPCM.TPCM.ERRMSG是在TPCM中存儲度量失敗信息以供后繼分析。
與靜態(tài)度量機(jī)制工作時沒有其他進(jìn)程干擾不同,動態(tài)度量過程需要有足夠的防干擾能力,阻止攻擊者干擾度量過程。通過對TPCM度量TBB的流程建模分析可知,為保證度量流程的可信性,需要滿足以下條件:
1) TPCM讀取的TBB代碼段數(shù)據(jù)必須包含TBB全部功能代碼,且必須為運(yùn)行時的實(shí)際代碼。
此條件可以由TBB的特性滿足。TBB自身對系統(tǒng)其它部件依賴極少,且加載位置固定?梢詫⑿枰攘康奈恢妙A(yù)存到TPCM中。
2) TPCM中存儲的度量位置信息及基準(zhǔn)值V.不能被篡改。
此條件由TPCM自身機(jī)制保證。僅有經(jīng)過管理員簽名的指令才能更新TPCM中存儲的基準(zhǔn)值。
3)從Send. T. TPCM .TBB .VCMD指令發(fā)出到TBB開始度量的環(huán)節(jié)中,不能被惡意攻擊者打斷。
由于目前TPCM中的可信微系統(tǒng)與上層主機(jī)操作系統(tǒng)中沒有直接的調(diào)用通路,此條要求無法完全保證,但能夠通過一些技術(shù)手段加以保障。首先,TPCM的度量操作對上層系統(tǒng)透明,且度量時間隨機(jī)指定,保證上層攻擊者無法準(zhǔn)確預(yù)計(jì)TPCM度量時間,也就難以實(shí)現(xiàn)“檢查時到使用時”攻擊;其次,TPCM的度量操作結(jié)束后,Send. T. TPCM.TBB.VCMD指令通過直接訪問內(nèi)存的方式修改TBB設(shè)定的定時器,以時鐘中斷的方式觸發(fā)度量TBB中優(yōu)先級最高的內(nèi)核線程進(jìn)行度量,從而很難被攻擊者攔截或打斷。
TBB在時間T度量TSB的過程表示為:
此環(huán)節(jié)的可信性保障要求包括以下兩點(diǎn):
1) TBB與TPCM之間通信數(shù)據(jù)不被攔截和修改
TBB與TPCM的通信機(jī)制包含在TBB內(nèi)部,由TPCM在上一環(huán)節(jié)度量通過,在此期間被攻擊的可能性極小。如果非常關(guān)注安全性的話,可以在TBB度量內(nèi)核線程啟動時鎖定內(nèi)核。
2) Send .T.TBB.TSB.VCMD到TSB開始度量之間不能被打斷。
TBB的內(nèi)核度量線程完成對TSB的度量后,直接調(diào)用TSB的度量函數(shù)進(jìn)行下一步度量,以保證操作不被打斷。
至此,實(shí)現(xiàn)了系統(tǒng)運(yùn)行時由TPCM到TSB的可信性驗(yàn)證與傳遞關(guān)系。在此基礎(chǔ)上,TSB即可通過運(yùn)行時度量的方式對業(yè)務(wù)功能系統(tǒng)進(jìn)行可信度量和支撐。具體方法本文不再詳述。
3主動動態(tài)度量原型系統(tǒng)設(shè)計(jì)
為驗(yàn)證運(yùn)行時主動可信度量機(jī)制的有效性、可實(shí)現(xiàn)性及功能、性能,本文設(shè)計(jì)了支持運(yùn)行時主動可信度量的信任支撐機(jī)制原型系統(tǒng),如圖2所示。
其中,可信度量機(jī)制中的度量模塊通過可信軟件棧調(diào)用TPCM的度量功能。
度量管理模塊對外提供調(diào)用接口,供其他安全功能模塊查詢系統(tǒng)當(dāng)前可信狀態(tài)。
動態(tài)度量模塊由配置管理模塊、度量模塊、度量基準(zhǔn)庫、度量管理模塊和審計(jì)模塊共五個模塊組成。
1)配置管理模塊運(yùn)行于應(yīng)用層,是為管理員提供策略配置功能的工具。
2)度量管理模塊運(yùn)行于內(nèi)核層,是動態(tài)度量機(jī)制的核心。
實(shí)現(xiàn)以下功能:
(1)啟動時獲取內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的基準(zhǔn)值并存入度量基準(zhǔn)庫;
(2)在策略指定的時刻調(diào)用度量模塊對指定對象發(fā)起主動的度量;
(3)為外部模塊提供可信狀態(tài)驗(yàn)證及度量內(nèi)容更新接口。
3)度量基準(zhǔn)庫存在于內(nèi)核層,負(fù)責(zé)存儲度量策略及度量基準(zhǔn)值,并為度量管理模塊提供查詢、修改接口。
4)度量模塊負(fù)責(zé)計(jì)算指定內(nèi)容的摘要值。
5)審計(jì)模塊負(fù)責(zé)收集并存儲審計(jì)信息。
在運(yùn)行中,度量模塊的主要度量對象至少包括:中斷描述符表、中斷入口函數(shù)、系統(tǒng)調(diào)用表、系統(tǒng)模塊代碼段、系統(tǒng)共享庫代碼段、socket協(xié)議描述符表、網(wǎng)絡(luò)協(xié)議族描述符表、文件系統(tǒng)超級塊、文件系統(tǒng)掛載函數(shù)、用戶進(jìn)程代碼段、用戶進(jìn)程共享庫代碼段、用戶自定義內(nèi)存區(qū)域。
動態(tài)度量原型系統(tǒng)的主要工作流程包括動態(tài)度量機(jī)制初始化、合法修改代碼段后的預(yù)期值更新流程、動態(tài)度量機(jī)制核心工作流程,應(yīng)用行為監(jiān)控流程。其核心工作流程如圖3所示。
動態(tài)度量原型系統(tǒng)中,TSB接到外部度量請求時先對請求的參數(shù)合法性及調(diào)用者身份、調(diào)用頻率等因素進(jìn)行檢查,通過生成調(diào)用請求鏈表項(xiàng),加入動態(tài)度量請求鏈表。動態(tài)度量內(nèi)核線程按照動態(tài)度量模型中描述的度量方法,依次處理度量鏈表中的請求。若鏈表為空,則休眠等待新的調(diào)用喚醒。其中,外部調(diào)用API接口格式定義如下:
輸入:pid_ t pid //要度量的進(jìn)程pid,為0時則度量基準(zhǔn)庫中定義的全部內(nèi)容。
返回:int state //度量結(jié)果。0為符合預(yù)期,-1為不符合預(yù)期,-2為度量預(yù)期不存在,-3為調(diào)用過于頻繁,-4為參數(shù)非法,-5為其他錯誤。
4主動動態(tài)度量原型系統(tǒng)防護(hù)能力測試與分析
利用第三方單位提供的十幾個rootkit實(shí)例對原型系統(tǒng)進(jìn)行測試。測試過程中,關(guān)閉所有可信功能,使rootkit能夠順利植入系統(tǒng)。之后開啟動態(tài)可信支撐機(jī)制,檢查能否有效檢測rootkit的入侵,并基于檢測到的結(jié)果,對rootkit的運(yùn)行機(jī)理進(jìn)行分析。有些root kit與內(nèi)核/應(yīng)用合作實(shí)現(xiàn)較復(fù)雜的功能,本文僅分析與主動動態(tài)度量相關(guān)的部分。由于運(yùn)行機(jī)制和度量方法的不同,下面對內(nèi)核層rootkit和應(yīng)用層rootkit分別進(jìn)行測試和分析。
4.1對內(nèi)核rootkit的檢測與分析
分析結(jié)果如表1所示。
以上rootkit均通過修改內(nèi)核代碼段及函數(shù)指針實(shí)現(xiàn)其功能。主要的修改目標(biāo)集中在system_call_table(實(shí)現(xiàn)自身文件的相關(guān)隱藏以及進(jìn)程提權(quán)),proc文件系統(tǒng)的seq_ops(實(shí)
現(xiàn)網(wǎng)絡(luò)通信端口/進(jìn)程/模塊隱藏),網(wǎng)絡(luò)通信相關(guān)的sock->ops(實(shí)現(xiàn)對系統(tǒng)syslog的過濾)
由上可見,除了內(nèi)核代碼段之外,動態(tài)度量的主要目標(biāo)應(yīng)該集中在seq_ops、sock->ops,*_super_ops、system_call_table、idt之上。對這些目標(biāo)進(jìn)行檢查能夠發(fā)現(xiàn)絕大部分內(nèi)核層rootkit發(fā)起的惡意修改。
4.2對應(yīng)用層rootkit的檢測與分析
針對以下應(yīng)用層rootkit實(shí)例進(jìn)行了檢測和分析:
1) Jynx Rootkit/2.0:通過LD_PRELOAD覆蓋glibc函數(shù),實(shí)現(xiàn)遠(yuǎn)程控制和自身隱藏。
2) Ncom:工作原理與Jynx Rootkit/2.0相同,不過此rootkit通過修改/etc/ld.so.preload實(shí)現(xiàn)預(yù)加載操作。
以上rootkit均在進(jìn)程執(zhí)行之前完成對系統(tǒng)函數(shù)的劫持(具體說是在鏈接過程中),完全可以被主動動態(tài)度量機(jī)制檢測發(fā)現(xiàn)。
進(jìn)一步分析發(fā)現(xiàn),由于以上rootkit均有隱藏自身的功能,無法被靜態(tài)度量的白名單掃描工具(應(yīng)用層工具)發(fā)現(xiàn)。也就是說,在已經(jīng)被感染的系統(tǒng)中安裝TSB時,不會將惡意代碼加入白名單。而在TSB的靜態(tài)度量保護(hù)開啟后(內(nèi)核態(tài)),會檢測到這些不在白名單中的rootkit并阻止其運(yùn)行。并且,阻止其運(yùn)行后,Linux的加載器能夠自動找到系統(tǒng)正常的動態(tài)庫并加載運(yùn)行(glibc-2.12版本),即于同時實(shí)現(xiàn)了rootkit的檢測/清除。
4.3 rootkit檢測能力分析
對所有rootkit實(shí)例的測試情況匯總?cè)绫?/font>2所示。
可見,主動動態(tài)度量機(jī)制中選擇的度量點(diǎn)覆蓋了實(shí)現(xiàn)提權(quán)、進(jìn)程隱藏、模塊隱藏、文件隱藏、端口隱藏、進(jìn)程防殺的路徑關(guān)鍵點(diǎn),與靜態(tài)度量機(jī)制相配合,能夠?qū)^大部分內(nèi)核層rootkit和應(yīng)用層病毒/木馬進(jìn)行有效的檢測和清除。
4.4系統(tǒng)性能測試與分析
本文利用數(shù)據(jù)庫軟件、apache軟件和mplayer軟件分別作為I/O密集型軟件、計(jì)算密集型軟件和視頻處理軟件的代表進(jìn)行了測試,基于測試結(jié)果對主動動態(tài)度量機(jī)制進(jìn)行了分析。
主動動態(tài)度量機(jī)制對系統(tǒng)性能的影響情況如表3所示。
由表3可見,原型系統(tǒng)中,主動動態(tài)度量機(jī)制對系統(tǒng)性能的影響最大不超過6%,平均在3.5%左右。在進(jìn)一步優(yōu)化和改進(jìn)后,基本具備實(shí)用性。
5結(jié)束語
本文使用CSP方法建模描述了基于TPCM的運(yùn)行時主動度量信任傳遞關(guān)系,分析了動態(tài)信任傳遞中可能存在的風(fēng)險及應(yīng)對方法,在此基礎(chǔ)上設(shè)計(jì)了基于TPCM的運(yùn)行時主動動態(tài)度量機(jī)制,實(shí)現(xiàn)了原型系統(tǒng),并通過rootkit實(shí)例對此原型系統(tǒng)進(jìn)行了測試。
實(shí)驗(yàn)證明,具備主動動態(tài)度量功能的可信計(jì)算原型系統(tǒng)具備較強(qiáng)的自我保護(hù)能力,能夠有效檢測和防范系統(tǒng)運(yùn)行中對TSB的攻擊和篡改。且對系統(tǒng)性能的占用相對較低,具有實(shí)際使用價值。
不過目前的研究還存在以下不足,將作為以后研究的主要方向:對內(nèi)存中動態(tài)內(nèi)容的度量和檢測方法還需進(jìn)一步增強(qiáng),以實(shí)現(xiàn)對內(nèi)核中關(guān)鍵鏈表的分析與保護(hù)。