器控制的功能)。
[0065]在一些實(shí)施例中,這些關(guān)鍵指令全體可以是用于控制正常界虛擬處理的虛擬存儲器訪問控制的唯一方法。
[0066]主動監(jiān)測和存儲器保護(hù)框架的示例性實(shí)施方式將利用以下步驟中的一個或更多個來實(shí)現(xiàn):
[0067]1、在初始化目標(biāo)裝置之后,正常界的虛擬存儲器映射可以(通過正常界或安全界)來配置,使得包括中斷與異常處理向量的特權(quán)代碼頁被標(biāo)記為不可寫的。
[0068]2、要么屬于內(nèi)核要么屬于用戶進(jìn)程的全部其它的正常界映射頁可被標(biāo)記為PXN頁,使得即使所述正常界映射頁隨后被修改,所述正常界映射頁也從不被允許執(zhí)行修改正常界的狀態(tài)的特權(quán)指令(例如,訪問ARM V7CP15的特定安全關(guān)鍵寄存器的那些指令)。
[0069]3、用于定義正常界存儲器布局和訪問控制的全部頁表可被標(biāo)記為不可寫。因此,對于頁表的任何修改將導(dǎo)致數(shù)據(jù)中止異常。在一些實(shí)施例中,可由ARM V7CP15轉(zhuǎn)換表基址寄存器(TTBR)或在其它架構(gòu)上的具有相似功能的任何其它寄存器來指向這些頁表。
[0070]4、可以修改不可寫的內(nèi)核頁,以使對安全界虛擬處理器的調(diào)用(例如,安全監(jiān)視調(diào)用(SMC)指令)替代安全關(guān)鍵操作和特權(quán)指令(例如,數(shù)據(jù)中止異常處理器、指令中止處理器、對頁表寫入和CP15寄存器寫入)。因此,全部這些安全關(guān)鍵操作和特權(quán)指令將由安全界來處理。
[0071]5、安全界可檢查關(guān)鍵事件并將關(guān)鍵事件轉(zhuǎn)發(fā)到完整性測量代理以評估關(guān)鍵事件對系統(tǒng)的完整性狀態(tài)的影響。在被困制的事件是頁表寫入的情況下,安全界將在確認(rèn)被困制的活動不違反預(yù)定安全策略或不恢復(fù)由步驟1-4限定的任意操作(在一些實(shí)施例中,預(yù)定安全策略可包括禁止對原始內(nèi)核頁或任何頁表賦予寫入權(quán)限。這還可防止特權(quán)可執(zhí)行頁的映射)之后,為了正常界內(nèi)核進(jìn)行需要的頁表修改。
[0072]6、在一些實(shí)施例中,完整性驗(yàn)證代理可使用計(jì)算機(jī)可讀介質(zhì)(例如,易失性或非易失性存儲器)來存儲關(guān)于正常界存儲器映射的狀態(tài)和/或任何需要的安全策略的信息。在示例實(shí)施方式中,完整性驗(yàn)證代理可存儲標(biāo)記正常界的每頁狀態(tài)的位圖,使得完整性驗(yàn)證代理可檢測對此頁的id寫入(或者在對應(yīng)的頁表入口改變正常界的存儲器映射)是否會違反任何安全策略。
[0073]這些步驟可允許推薦的系統(tǒng)均實(shí)現(xiàn)正常界內(nèi)核主動監(jiān)測和正常內(nèi)核存儲器保護(hù)。步驟I和2防止在正常界內(nèi)部運(yùn)行的任何潛在的惡意軟件通過將指令映射在存儲器中或通過修改特權(quán)的已被映射的指令中的任意指令來執(zhí)行特權(quán)指令。ARM本地代碼只由32位或16位指令構(gòu)成的事實(shí)使得ARM本地代碼能逐字掃描可執(zhí)行的特權(quán)頁并確認(rèn)所述指令中沒有指令將訪問關(guān)鍵寄存器。
[0074]在使用ARM v7架構(gòu)的一些實(shí)施例中,圖1示出用于寫入CP寄存器的MCR指令的樣本編碼。CP寄存器由CP號和四個其它的參數(shù)(CRn、CRm、0pcl和opc2)來限定。如果特權(quán)可執(zhí)行頁的32位(一致的)值被檢查,使得沒有指令能將MCR與這個特定寄存器匹配,則我們能保證這個寄存器將永不被正常界修改。作為我們的目標(biāo)的關(guān)鍵寄存器特指禁用MMU、再定位中斷向量處理器或再定位虛擬尋址轉(zhuǎn)換表的基址的關(guān)鍵寄存器。
[0075]步驟3保證存儲器保護(hù)。在使用ARM v7架構(gòu)的一些實(shí)施例中,指向頁表基址(base)的TTBR是CP15的一部分。在被禁止由正常界內(nèi)核修改的寄存器中的TTBR將被標(biāo)記(如步驟2所提到的)。因此,正常界將被限于將特定物理存儲器用作頁表。初始化代碼將這個物理存儲器(頁表)映射為不可寫。因此,任何頁表更新將引起數(shù)據(jù)中止。由于所有的數(shù)據(jù)中止異常將被困制于安全界(如步驟4所討論的),因此全部的頁表修改將在實(shí)際作用于正常界之前被安全界檢查。
[0076]步驟4保證需要的主動監(jiān)測。在使用ARM v7架構(gòu)的一些實(shí)施例中,諸如修改TTBR值以在用戶進(jìn)程之間進(jìn)行環(huán)境切換的關(guān)鍵事件將不可能在正常界中執(zhí)行。因此,正確執(zhí)行此功能的唯一方式是針對正常界內(nèi)核調(diào)用“SMC”指令并使關(guān)鍵操作由安全界來處理。此操作的安全性由這樣的事實(shí)來支持,所述事實(shí)是CP寄存器寫入和“SMC”調(diào)用均是由單一指令構(gòu)成的原子操作。同時(shí),所有的完整性檢查(例如,驗(yàn)證新頁表不具有可寫入的特權(quán)頁)通過安全界來進(jìn)行,所述完整性檢查不在正常界的范圍內(nèi)。甚至被返回導(dǎo)向攻擊顛覆的內(nèi)核將不能通過跳過復(fù)合代碼的中間并略過潛在的正常界完整性驗(yàn)證來修改關(guān)鍵狀態(tài)。
[0077]最后,實(shí)現(xiàn)步驟5意味著安全界將是保證主動監(jiān)測性能將在系統(tǒng)壽命內(nèi)保持有效的完整性驗(yàn)證的單點(diǎn)(single point)。通過對特權(quán)操作實(shí)施適當(dāng)?shù)耐暾詸z查(諸如,驗(yàn)證最新映射的處理器的頁表和驗(yàn)證MMU或虛擬頁訪問控制保護(hù)未被禁用),安全界將保證存儲器保護(hù)和主動監(jiān)測均適于正常界。
[0078]圖2是根據(jù)在此描述的主題的實(shí)施例的用于目標(biāo)裝置的主動監(jiān)測和存儲器保護(hù)的系統(tǒng)的框圖。在圖2中,系統(tǒng)包括在目標(biāo)裝置104上的正常界虛擬處理器100和安全界虛擬處理器102。正常界虛擬處理器102和安全界虛擬處理器可均是ARM TrustZone虛擬處理器,如在ARM安全技術(shù)、使用信任區(qū)技術(shù)建立安全系統(tǒng)、ARM Whitepaper、ARMLimited(2009)中所述,該文獻(xiàn)的公開通過引用全部合并于此。目標(biāo)裝置104可以是可利用正常界虛擬處理器和安全界虛擬處理器來實(shí)現(xiàn)隔離的任何計(jì)算平臺。這樣的計(jì)算平臺的示例包括:服務(wù)器,臺式計(jì)算機(jī),諸如智能電話、PDA或平板計(jì)算機(jī)的移動裝置,或者可包括處理器和嵌入在器械或工業(yè)裝置中的關(guān)聯(lián)存儲器的嵌入式系統(tǒng)(諸如,電表或水表)。
[0079]如上所述,目標(biāo)操作系統(tǒng)106在正常界虛擬處理器100上執(zhí)行,完整性驗(yàn)證代理108在安全界虛擬處理器102上執(zhí)行。特定關(guān)鍵操作的執(zhí)行被困制于安全界虛擬處理器102。困制操作的示例包括常規(guī)數(shù)據(jù)中止異?;蛴糜谙到y(tǒng)調(diào)用的管理模式調(diào)用。困制操作在安全界虛擬處理器102上執(zhí)行。完整性驗(yàn)證代理108監(jiān)測在安全界虛擬處理器102上的困制操作的執(zhí)行以評估困制操作的執(zhí)行對目標(biāo)裝置104的完整性的效果。
[0080]例如,目標(biāo)裝置104可以是智能電話并且用戶可在語音呼叫和電子郵件應(yīng)用之間切換。在這樣的情況下,目標(biāo)OS 106可將新值寫入處理器控制寄存器、CP 15,以在進(jìn)程之間切換。如上所述,對CP 15的嘗試寫入被困制并被傳輸?shù)接糜隍?yàn)證的完整性驗(yàn)證代理108。完整性驗(yàn)證代理108可檢驗(yàn)正被寫入CP 15的值。在這種情況下,所述值可以是用于電子郵件應(yīng)用的進(jìn)程ID或存儲器定位。為了驗(yàn)證進(jìn)程ID,完整性驗(yàn)證代理108可搜索被允許的進(jìn)程的列表以發(fā)現(xiàn)電子郵件應(yīng)用是否被允許執(zhí)行。在這種情況下,假定允許執(zhí)行電子郵件應(yīng)用,進(jìn)而安全界虛擬處理器102可允許電子郵件應(yīng)用執(zhí)行。
[0081]在另一示例中,嘗試被寫入CP 15的存儲器定位或進(jìn)程ID可對應(yīng)于不在被允許的應(yīng)用的列表中的惡意軟件。在這樣的情況下,安全界虛擬處理器102可防止惡意軟件執(zhí)行。還應(yīng)注意的是完整性驗(yàn)證代理108可(例如)利用應(yīng)用的加密簽章來咨詢外部系統(tǒng),以驗(yàn)證所述應(yīng)用或處理。
[0082]將理解,在不脫離本公開主題的范圍的情況下可改變本公開主題的各種細(xì)節(jié)。此外,前面的描述僅為了說明的目的,而不是為了限制的目的。
【主權(quán)項(xiàng)】
1.一種用于目標(biāo)裝置的主動監(jiān)測、存儲器保護(hù)和完整性驗(yàn)證的方法,所述方法包括: 在目標(biāo)裝置上配置正常界虛擬處理器和安全界虛擬處理器; 在正常界虛擬處理器上執(zhí)行目標(biāo)操作系統(tǒng); 在安全界虛擬處理器上執(zhí)行完整性驗(yàn)證代理; 將在正常界虛擬處理器上嘗試的一個或更多個預(yù)定操作困制于安全界虛擬處理器; 使用完整性驗(yàn)證代理確定目標(biāo)裝置的所述被困制的一個或更多個預(yù)定操作的執(zhí)行效果O
2.根據(jù)權(quán)利要求1所述的方法,其中,被困制的一個或更多個預(yù)定操作包括安全關(guān)鍵操作、特權(quán)指令、能操作為禁用或修改由正常界虛擬處理器的存儲器管理單元(MMU)提供的虛擬存儲器訪問保護(hù)的指令、能操作為修改與目標(biāo)裝置的