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