專利名稱:一種針對tpm可信計算的toctou攻擊響應方法
技術領域:
本發(fā)明涉及計算機信息安全可信計算領域,特別是指一種針對TPM可信計算的TOCTOU攻擊響應方法。本發(fā)明的響應方法利用Xen虛擬機技術,通過更新可信平臺模塊存儲的平臺信息來防御針對TPM可信計算的TOCTOU攻擊。
背景技術:
計算機信息的安全問題很難單靠軟件解決。為了解決現(xiàn)有PC機結構上的不安全問題,可信計算平臺聯(lián)盟TCPA (后來更名為TCG)提出通過增強現(xiàn)有的終端體系結構的安全性來保證整個系統(tǒng)的安全,主要思路是在各種終端硬件平臺上引入具有安全存儲和加密功能的可信平臺模塊(又稱為可信芯片)TPM;將啟動操作系統(tǒng)的過程分為幾個相對獨立的層,以TPM作為可
信計算平臺的信任根,下層先對上層進行完整性度量,并將度量結果存入TPM芯片的平臺寄存器PCR中,然后傳遞系統(tǒng)的運行控制權,層層迭代,構建一條信任鏈。PCR中的數(shù)據(jù)在計算機啟動后只能進行摘要值的擴展,不能重置和篡改,因此用戶可以根據(jù)相應PCR的數(shù)值判斷當前運行環(huán)境是否可信,某些環(huán)節(jié)是否出現(xiàn)安全問題。
目前大多數(shù)商用操作系統(tǒng)將內(nèi)核程序(包括加載模塊)設計成擁有超級用戶權限,而且內(nèi)核程序使用共享線性內(nèi)存以便為提高系統(tǒng)效率,這導致了僅僅提供軟件加載驗證的TCG體系結構容易遭受TOCTOU (time of check vstime of use)的攻擊,具體而言,攻擊者利用程序度量和程序使用這兩個時間點的時間差,對程序的內(nèi)存進行篡改,導致TPM所提供的平臺信息無法
3反映出實際平臺的運行情況。
防御針對TPM可信計算的TOCTOU攻擊需要解決兩個問題(1)如何檢測TOCTOU攻擊;(2)如何響應攻擊。 一 種檢測TOCTOU攻擊的方案是通過修改內(nèi)存管理單元(MMU),使其對內(nèi)存更新進行實時監(jiān)測,然而這種基于硬件的解決方案的可擴展性差。與此同時,利用開放源代碼虛擬化產(chǎn)品Xen虛擬機技術可以實現(xiàn)一個具有上述檢測方案的功能的純軟件解決方案。Xen虛擬機包括一個虛擬機監(jiān)控器、 一個特權虛擬計算域和多個客戶虛擬計算域,見圖l。每個計算域運行一個操作系統(tǒng),虛擬機監(jiān)控器位于系統(tǒng)硬件平臺與虛擬計算域操作系統(tǒng)軟件之間,負責監(jiān)控下層硬件,并將硬件抽象成可管理調度的實體供上層計算域使用,所有內(nèi)存更新都要經(jīng)過虛擬機監(jiān)控器的確認; 一個Xen虛擬機至少要運行虛擬機監(jiān)控器和特權域,即Xen虛擬機啟動后,特權域是必須而且首先進入的操作系統(tǒng),然后再根據(jù)具體情況創(chuàng)建和啟動客戶虛擬域;特權計算域具有最高的權限,特權域利用虛擬域管理工具控制客戶計算域,包括創(chuàng)建、刪除、訪問物理設備等。圖2為一種將虛擬化技術與可信計算技術有機結合的終端平臺安全解決方案,通過在特權域為客戶虛擬域提供一個純軟件TPM設備,客戶虛擬域可以實現(xiàn)進行可信計算。
針對如何響應所檢測到的TOCTOU攻擊,作者(Sergey Bratus, NihalD,Cunha, Evan Sparks, Sean Smith, TOCTOU, Traps, and Trusted Computing,TRUST 2008)提出了將捕獲的攻擊信息通過安全通道迅速反映到客戶虛擬域的TPM設備PCR寄存器。流程如圖3所示(1)虛擬域內(nèi)核模塊向虛擬機監(jiān)控器報告所要監(jiān)測的應用程序內(nèi)存地址,(2)虛擬機監(jiān)控器接收到從虛擬域傳來的地址后,就會監(jiān)測對它們的任何修改, 一旦監(jiān)測到內(nèi)存篡改,虛擬機監(jiān)控器會向特權域發(fā)出一個虛擬中斷,(3)特權域的內(nèi)核接收到中斷后,vTPM后端驅動會偽造一個來自客戶虛擬域的TPM指令包,通過vTPM管理工具傳遞給vTPM設備程序,該指令內(nèi)容是將一組隨機數(shù)對指定的PCR
寄存器內(nèi)容進行擴展。
由于CPU調度的不確定性,上述響應方法在下列情況下存在安全缺陷: 假設網(wǎng)絡中一個客戶端要對正在被檢測的虛擬域進行遠程驗證,則虛擬域通 過vTPM前端驅動向vTPM后端驅動發(fā)送一個讀PCR值請求包,這個請求 被放入vTPM后端驅動與vTPM設備管理工具通信管道;而與此同時,虛擬 機監(jiān)控器監(jiān)測到該虛擬域內(nèi)存被篡改,隨即通知vTPM后端驅動會產(chǎn)生一個 更新PCR的請求,這個請求也被放入請求隊列,有可能被置于先前讀PCR 請求包之后;這樣就會出現(xiàn)一個問題,返[Hj給虛擬域用于遠程驗證的PCR 信息不能反映出內(nèi)存已被篡改了,即不能反映客戶虛擬域平臺的3前安全狀 態(tài)。
發(fā)明內(nèi)容
本發(fā)明的目的在于為避免上述現(xiàn)有技術中的不足而提供的一種針對 TPM可信計算的TOCTOU攻擊響應方法。提出一種更新TPM存儲的平臺 信息的方法,本發(fā)明的響應方法由兩部分組成(1)功能增強的vTPM設 備程序,(2)特權域代理模塊。
本發(fā)明的目的可以通過以下措施來達到
一種針對TPM可信計算的TOCTOU攻擊響應方法,方法組件包括功能 增強的虛擬TPM (vTPM)設備程序和特權域代理模塊,響應方法的具體步 驟如下
步驟1,當特權域代理模塊接收到虛擬機監(jiān)控器發(fā)來的TOCTOU攻擊 消息后,會立即在/proc目錄下創(chuàng)建一個特定標志文件,并將內(nèi)容置成l,表 示虛擬域內(nèi)存己被篡改;
步驟2,功能增強的vTPM設備程序接收到來自客戶虛擬域的TPM指 令時,先不處理TPM指令,而是查看/proc目錄下是否存在特定文件,如果 沒有或者文件存在但內(nèi)容為0,則正常處理TPM指令;否則利用當前系統(tǒng) 時間為種子,產(chǎn)生一隨機數(shù),并用該隨機數(shù)對指定的PCR寄存器內(nèi)容進行擴展,同時將/proc目錄下特定文件的內(nèi)容置成0,然后再處理TPM指令;
步驟3,功能增強的vTPM設備程序將TPM指令的處理結果傳出vTPM 設備程序之前,也先査看一下/proc目錄下是否存在特定文件,這是防止客 戶虛擬域內(nèi)存在虛擬域發(fā)出TPM指令之后遭到篡改;如果沒有或者文件存 在但內(nèi)容為0,則正常傳出;否則利用當前系統(tǒng)時間為種子,產(chǎn)生一隨機數(shù), 并用該隨機數(shù)對指定的PCR寄存器內(nèi)容進行擴展,同時/proc目錄下的那個 文件的內(nèi)容置成0,然后重新處理一遍剛才接收的TPM指令,再將結果傳 遞出去。
本發(fā)明相比現(xiàn)有技術具有如下優(yōu)點
1. 更加有效地防御針對可信計算的TOCTOU的攻擊,當監(jiān)測到TOCTOU 攻擊時,所有還未被vTPM設備程序處理完的TPM請求都將能正確地反映 客戶虛擬域平臺當前狀態(tài)。
2. 采用事件驅動的工作模式,和原有系統(tǒng)相比沒有額外的用戶空間的進 程調度,因此本發(fā)明的方法保持了原系統(tǒng)資源的有效利用率。
3. 本方法擴展性強,可以無縫地與各種基于Xen虛擬機的監(jiān)視系統(tǒng)協(xié)同 工作,來防御TCG體系中的TOCTOU攻擊。
圖l.是本發(fā)明中使用的Xen虛擬機組件框架示意圖。 圖2.為一種客戶虛擬域基于虛擬TPM進行可信計算的方法的組件框架
示意圖。
圖3.是本發(fā)明中提到的現(xiàn)有防御TOCTOU攻擊的方法的示意圖。 圖4.是本發(fā)明設計的TOCTOU攻擊響應方法的組件示意圖。 圖5.是本發(fā)明設計的功能增強的vTPM設備程序的工作流程圖。
具體實施例方式
本發(fā)明假設圖2系統(tǒng)和圖3的檢測系統(tǒng)已經(jīng)部署,下面給出本發(fā)明的響 應方法的部屬步驟步驟1,將功能增強的vTPM設備程序替換圖2方法提供的vTPM設 備程序。
步驟2,在特權域中加載特權域代理模塊。 下面結合圖4和圖5對本發(fā)明設計TOCTOU攻擊響應方法的T.作流程 作詳述
(1) 當特權域代理模塊接收到虛擬機監(jiān)控器發(fā)來的TOCTOU攻擊消息 后,會立即在/proc目錄下創(chuàng)建一個特定標志文件,并將內(nèi)容置成1, 表示虛擬域內(nèi)存已被篡改。
(2) 功能增強的vTPM設備程序接收到來自客戶虛擬域的TPM指令 時,先不處理TPM指令,而是査看/proc目錄下是否存在特定文件, 如果沒有或者文件存在但內(nèi)容為0,則正常處理TPM指令;否則 利用當前系統(tǒng)時間為種子,產(chǎn)生一隨機數(shù),并用該隨機數(shù)對指定的 PCR寄存器內(nèi)容進行擴展,同時將/proc目錄下特定文件的內(nèi)容置 成0,然后再處理TPM指令。
(3) 功能增強的vTPM設備程序將TPM指令的處理結果傳出vTPM設 備程序之前,也先查看一下/proc目錄下是否存在特定文件,這是 防止客戶虛擬域內(nèi)存在虛擬域發(fā)出TPM指令之后遭到篡改;如果 沒有或者文件存在但內(nèi)容為0,則正常傳出;否則利用當前系統(tǒng)時 間為種子,產(chǎn)生一隨機數(shù),并用該隨機數(shù)對指定的PCR寄存器內(nèi) 容進行擴展,同吋/proc目錄下的那個文件的內(nèi)容置成0,然后重新 處理一遍剛才接收的TPM指令,再將結果傳遞出去。
通過上述方法,屬于下面情況的TPM指令都將能正確地反映客戶虛擬 域平臺當前狀態(tài)(1)在監(jiān)測到TOCTOU攻擊時TPM指令處理結果還沒 有被送出虛擬TPM設備程序的TPM指令,(2)在監(jiān)測到TOCTOU攻擊時 vTPM設備程序還沒有接收到的TPM指令。
權利要求
1. 一種針對TPM可信計算的TOCTOU攻擊響應方法,其特征在于方法組件包括功能增強的虛擬TPM(vTPM)設備程序和特權域代理模塊,響應方法的具體步驟如下步驟1,當特權域代理模塊接收到虛擬機監(jiān)控器發(fā)來的TOCTOU攻擊消息后,會立即在/proc目錄下創(chuàng)建一個特定標志文件,并將內(nèi)容置成1,表示虛擬域內(nèi)存已被篡改;步驟2,功能增強的vTPM設備程序接收到來自客戶虛擬域的TPM指令時,先不處理TPM指令,而是查看/proc目錄下是否存在特定文件,如果沒有或者文件存在但內(nèi)容為0,則正常處理TPM指令;否則利用當前系統(tǒng)時間為種子,產(chǎn)生一隨機數(shù),并用該隨機數(shù)對指定的PCR寄存器內(nèi)容進行擴展,同時將/proc目錄下特定文件的內(nèi)容置成0,然后再處理TPM指令;步驟3,功能增強的vTPM設備程序將TPM指令的處理結果傳出vTPM設備程序之前,也先查看一下/proc目錄下是否存在特定文件,這是防止客戶虛擬域內(nèi)存在虛擬域發(fā)出TPM指令之后遭到篡改;如果沒有或者文件存在但內(nèi)容為0,則正常傳出;否則利用當前系統(tǒng)時間為種子,產(chǎn)生一隨機數(shù),并用該隨機數(shù)對指定的PCR寄存器內(nèi)容進行擴展,同時/proc目錄下的那個文件的內(nèi)容置成0,然后重新處理一遍剛才接收的TPM指令,再將結果傳遞出去。
全文摘要
本發(fā)明涉及一種針對TPM可信計算的TOCTOU攻擊響應方法,方法組件包括功能增強的虛擬TPM設備程序和特權域代理模塊。和現(xiàn)有的方法一樣采用了更新PCR寄存器信息的方式,但是更新事件的產(chǎn)生和執(zhí)行方式不同,確保了下面兩種情況的TPM指令都能正確地反映客戶虛擬域平臺當前狀態(tài)1在監(jiān)測到TOCTOU攻擊時TPM指令處理結果還沒有被送出虛擬TPM設備程序的TPM指令,2在監(jiān)測到TOCTOU攻擊時還沒有被虛擬TPM設備程序接收的TPM指令。本發(fā)明在考慮安全的同時充分考慮了系統(tǒng)性能,通過采用事件驅動、避免額外的用戶空間進程調度措施來確保了系統(tǒng)資源有效利用率和可擴展性。
文檔編號G06F21/00GK101488176SQ20091007820
公開日2009年7月22日 申請日期2009年2月20日 優(yōu)先權日2009年2月20日
發(fā)明者帆 何, 博 劉, 劉吉強, 常曉林, 彬 邢, 臻 韓 申請人:北京交通大學