用于目標(biāo)裝置的主動監(jiān)測、存儲器保護和完整性驗證的方法、系統(tǒng)和計算機可讀介質(zhì)的制作方法
【專利說明】用于目標(biāo)裝置的主動監(jiān)測、存儲器保護和完整性驗證的方法、系統(tǒng)和計算機可讀介質(zhì)
[0001]優(yōu)先權(quán)聲明
[0002]本申請要求于2012年8月3日提交的序列號為61/679,305的美國臨時專利申請的權(quán)益;所述臨時專利申請的公開通過引用全部合并于此。
[0003]政府利益
[0004]利用由(美國)國家科學(xué)基金會授予的基金號為0910767的政府支持和由美國陸軍研宄辦公室授予的基金號為W911NF-08-1-0105和528787的政府支持做出了本發(fā)明。政府在本發(fā)明中享有一定權(quán)利。
技術(shù)領(lǐng)域
[0005]在此描述的主題涉及到計算機系統(tǒng)安全。更具體地講,在此描述的主題涉及一種用于目標(biāo)裝置的主動監(jiān)測、存儲器保護和完整性驗證的方法、系統(tǒng)和計算機可讀介質(zhì)。
【背景技術(shù)】
[0006]攻擊和安全漏洞所導(dǎo)致的破壞和損失引起了對于開發(fā)包括移動和嵌入式系統(tǒng)的用于計算平臺的安全且可靠的系統(tǒng)的關(guān)注。
[0007]計算機攻擊和安全漏洞能通過對操作系統(tǒng)(OS)內(nèi)核或關(guān)鍵程序(比如,在目標(biāo)系統(tǒng)內(nèi)運行的用戶進程或系統(tǒng)管理后臺程序)執(zhí)行未授權(quán)的修改來嚴(yán)重影響目標(biāo)裝置。具體地講,修改OS內(nèi)核可允許惡意攻擊者擁有對整個系統(tǒng)的無限制的訪問。
[0008]這些挑戰(zhàn)呈現(xiàn)出對于開發(fā)出與運行中的OS良好地隔離但能主動監(jiān)測目標(biāo)系統(tǒng)(包括內(nèi)核)并提供需要的存儲器保護以保證其完整性的非傳統(tǒng)的解決方案的需求。
【發(fā)明內(nèi)容】
[0009]公開一種用于在目標(biāo)裝置上運行的軟件程序的主動監(jiān)測、存儲器保護和完整性驗證的方法、系統(tǒng)和計算機可讀介質(zhì)。根據(jù)一種方法,在目標(biāo)裝置上配置(instantiate,實例化)正常界虛擬處理器和安全界虛擬處理器。在正常界虛擬處理器上執(zhí)行目標(biāo)操作系統(tǒng)。在安全界虛擬處理器上執(zhí)行完整性驗證代理。在正常界虛擬處理器上嘗試的預(yù)定操作被困制于安全界虛擬處理器。完整性驗證代理用于確定困制操作在目標(biāo)裝置上的執(zhí)行效果。
[0010]根據(jù)一種系統(tǒng),所述系統(tǒng)包括被配置為在目標(biāo)裝置上執(zhí)行的正常界虛擬處理器和安全界虛擬處理器。所述系統(tǒng)還包括被配置為在安全界虛擬處理器上執(zhí)行的完整性驗證代理。所述系統(tǒng)還包括在正常界虛擬處理器上執(zhí)行的目標(biāo)操作系統(tǒng)。正常界虛擬處理器被配置為限制在正常界虛擬處理器上嘗試的一個或更多個預(yù)定操作。安全界虛擬處理器被配置為使用完整性驗證代理確定困制操作在目標(biāo)裝置上的執(zhí)行效果。
[0011]用于目標(biāo)裝置的主動監(jiān)測、存儲器保護和完整性驗證的在此描述的主題可以以硬件、軟件、固件或它們的任意的組合來實現(xiàn)。如此,如在此使用的術(shù)語“功能”或“模塊”表示用于實現(xiàn)所描述的功能的硬件、軟件和/或固件。在一種示例性實施方式中,在此描述的主題可利用計算機可讀介質(zhì)來實現(xiàn),在所述計算機可讀介質(zhì)上已存儲了在由計算機的處理器執(zhí)行時控制計算機執(zhí)行步驟的可執(zhí)行指令。適于實現(xiàn)在此描述的主題的示例性計算機可讀介質(zhì)包括非暫時性計算機可讀介質(zhì),諸如,盤存儲器裝置、芯片存儲器裝置、可編程邏輯裝置、專用集成電路。另外,實現(xiàn)在此描述的主題的計算機可讀介質(zhì)可位于單個裝置或計算平臺上,或者可跨越多個裝置或計算平臺來分布。
【附圖說明】
[0012]現(xiàn)將參照附圖解釋在此描述的主題,在附圖中:
[0013]圖1是對MCR指令進行編碼的樣本的框圖;
[0014]圖2是根據(jù)在此描述的主題的實施例的用于目標(biāo)裝置的主動監(jiān)測和存儲器處理的系統(tǒng)的框圖。
【具體實施方式】
[0015]我們擁有可解決這些挑戰(zhàn)的新型技術(shù)和機制。在此描述的主題的方面可提供在正常界(normal world)虛擬處理器和安全界(secure world)正常處理器之間的基于硬件的隔離。諸如由ARM Holdings pic提供的ARM架構(gòu)的特定處理器架構(gòu)提供這樣的隔離。在ARM中,此功能被稱為ARM TrustZone技術(shù)。ARM的信任區(qū)(TrustZone)技術(shù)使基于硬件的隔離能將在單個物理處理器核上運行的代碼分為兩界安全界”和“正常界”(或“非安全界”)。安全界意在用于安全敏感性操作,而正常界意在用于其它操作。
[0016]在一些實施例中,我們將要被保護的目標(biāo)操作系統(tǒng)置于正常界中,將我們信任的組件置于安全界中。此布置可在各種架構(gòu)上實現(xiàn)。盡管在此描述的主題的一些方面使用ARM TrustZone架構(gòu),但是將理解的是,在此描述的方法和技術(shù)可在現(xiàn)在已知的或以后被開發(fā)的其它處理器架構(gòu)上實現(xiàn)。
[0017]目標(biāo)操作系統(tǒng)原則上可以是任何操作系統(tǒng),諸如,Android、嵌入式Linux、NetBSD或現(xiàn)在已知的或以后被開發(fā)的任何其它的OS。在一些實施例中,目標(biāo)操作系統(tǒng)可包括負(fù)責(zé)管理裝置資源的內(nèi)核。在一些實施例中,OS內(nèi)核的代碼可在“特權(quán)模式”下運行,并可被允許執(zhí)行特權(quán)指令和安全關(guān)鍵操作。
[0018]在一些實施例中,目標(biāo)裝置可具有在非特權(quán)的“用戶模式”下運行并可不被允許執(zhí)行特權(quán)指令和安全關(guān)鍵操作的多個用戶進程和/或后臺程序。
[0019]在一些實施例中,在正常界虛擬處理器上嘗試的一個或更多個預(yù)定操作(諸如,安全關(guān)鍵操作和特權(quán)指令)被困制于安全界虛擬處理器(限制在安全界虛擬處理器內(nèi))。例如,使安全關(guān)鍵操作或特權(quán)指令被困制(被限制)的步驟可包括將運行環(huán)境從正常界虛擬處理器切換到安全界虛擬處理器。在此示例中,安全關(guān)鍵操作或特權(quán)指令可不通過在正常界中運行的目標(biāo)操作系統(tǒng)而通過在安全界中運行的完整性驗證代理(agent)來執(zhí)行。
[0020]在一些實施例中,完整性驗證代理可被用來確定在目標(biāo)裝置上執(zhí)行困制操作(限制操作)的效果。
[0021]在一些實施例中,可以修改正常界虛擬處理器上運行的目標(biāo)OS,以使其不能夠執(zhí)行預(yù)定的安全關(guān)鍵操作或特權(quán)指令而無需將所述預(yù)定的操作或指令困制于在安全界虛擬處理器上運行的完整性驗證代理內(nèi)。例如,可以修改目標(biāo)操作系統(tǒng)內(nèi)核,以使全部的特權(quán)指令從所述內(nèi)核的可執(zhí)行的二進制文件(binary)被去除。例如,安全特權(quán)指令包括但不限于控制目標(biāo)裝置的存儲器管理單元(MMU)的指令。
[0022]在一些實施例中,修改后的可執(zhí)行二進制文件可被標(biāo)記為只讀以避免潛在的惡意修改,例如,將特權(quán)指令添加回二進制文件中的未授權(quán)指令。
[0023]在一些實施例中,根據(jù)在此描述的主題的多個方面的方法可包括目標(biāo)操作系統(tǒng)的非特權(quán)程序(例如,用戶進程)作為被映射為“永不特許執(zhí)行(privileged-executenever) ”的存儲器,所以,即使所述非特權(quán)程序被惡意修改,所述非特權(quán)程序也不被允許執(zhí)行特權(quán)指令。
[0024]在一些實施例中,可通過使用直接修改正常界OS的源代碼、修改正常界OS的可執(zhí)行二進制文件的任何的現(xiàn)有技術(shù),或者通過使用二進制變換來進行對正常界OS的修改。
[0025]在一些實施例中,根據(jù)在此描述的主題的多個方面的方法還可包括使用存儲器訪問保護來防止目標(biāo)操作系統(tǒng)獲取用于執(zhí)行安全關(guān)鍵操作的需要的存儲器通路(access)。例如,安全關(guān)鍵操作可包括但不限于修改定義系統(tǒng)的存儲器映射的頁表或修改直接存儲器訪問(DMA)控制器。DMA控制器可確定外圍裝置可訪問哪個存儲器。攻擊可試圖利用DMA控制器以便使用外圍裝置來修改正常界虛擬處理器的代碼或數(shù)據(jù)。
[0026]在一些實施例中,根據(jù)在此描述的主題的方面的方法可包括:當(dāng)完整性驗證代理檢測到對執(zhí)行違反預(yù)定策略的特權(quán)指令或安全關(guān)鍵操作的嘗試時,檢測目標(biāo)裝置的完整性違反。例如,所述策略可包括但不限于:不允許對正常界OS的可執(zhí)行二級制文件的修改、禁用正常界OS的存儲器訪問保護或修改正常界OS的只讀關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。
[0027]技術(shù)性能
[0028]我們的主要目標(biāo)在于防止嘗試修改目標(biāo)裝置(諸如正常界操作系統(tǒng))或其中的部分的安全攻擊。