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