本發(fā)明涉及安全脆弱性宿主機中虛擬機自省安全
技術(shù)領(lǐng)域:
:,尤其涉及一種增強arm平臺虛擬機自省安全的方法及裝置。
背景技術(shù):
::眾所周知,通用的虛擬機自省(vmi)代碼部署在宿主機(host)的用戶空間,通過虛擬機管理器(hypervisor)來訪問虛擬機(vm)內(nèi)部的二進制數(shù)據(jù),通過橋接vm內(nèi)部的語義隔離問題將這些二進制數(shù)據(jù)轉(zhuǎn)化為操作系統(tǒng)層次的有效的vm內(nèi)部狀態(tài)信息,從而利用這些狀態(tài)信息來進行下一步的安全監(jiān)測。因而,現(xiàn)有的vmi的正常運行依賴于這樣的前提:host和hypervisor均為安全且可信的。這意味著一旦這一前提被打破,vmi的正常運行將不能再被保證。事實上,隨著越來越多的host和虛擬化軟件棧的脆弱點被暴露出來,該前提已不再成立。如何在存在安全隱患的宿主機環(huán)境中部署安全增強的虛擬機自省技術(shù)成為了vmi安全研究領(lǐng)域極其重要的一個議題。脆弱宿主機環(huán)境中的vmi面臨多方面的安全威脅,一是信息泄露:vmi技術(shù)打破了云環(huán)境中多租戶之間的隔離,vmi獲取的vm內(nèi)部信息被惡意利用將會造成vm信息的嚴(yán)重泄露。二是vmi運行時不安全:vmi運行在用戶態(tài),一旦宿主機環(huán)境的脆弱性被利用,vmi的代碼和數(shù)據(jù)都將暴露在攻擊者面前。三是vmi底層輸入數(shù)據(jù)不正確:vmi依賴hypervisor獲取vm相關(guān)核心數(shù)據(jù),這給了hypervisor和host去篡改這些核心數(shù)據(jù)的機會。現(xiàn)今,對vmi安全的研究剛起步。針對信息泄露這一問題,常用的措施是將加解密思想與vmi相結(jié)合,該方法將vmi信息泄露的風(fēng)險轉(zhuǎn)移到加解密密鑰的保護上,并且引入了額外的加解密操作。對于vmi運行時不安全以及底層輸入數(shù)據(jù)不正確的研究,業(yè)界則還未涉及。技術(shù)實現(xiàn)要素:本發(fā)明立足于不可信宿主機環(huán)境中vmi所面臨的安全威脅這一現(xiàn)狀,旨在提供一種增強arm平臺虛擬機自省安全的方法及裝置,該方法及裝置能夠抵抗信息泄露、保證vmi自身代碼和數(shù)據(jù)在整個生命周期內(nèi)的準(zhǔn)確性即保證vmi運行時安全以及vmi底層輸入數(shù)據(jù)的正確性。針對上述不足,本發(fā)明所采用的技術(shù)方案為:一種增強arm平臺虛擬機自省安全的方法,其步驟包括:1)將核心代碼(corelibrary)部署在硬件隔離環(huán)境trustzone(可信環(huán)境)中;2)當(dāng)特定的觸發(fā)事件發(fā)生時,觸發(fā)觸發(fā)機制以陷入到el3層的安全增強接口(interface),并將該觸發(fā)事件中相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞到該安全增強接口;3)安全增強接口記錄和維護上述vm數(shù)據(jù)和hypervisor數(shù)據(jù),并根據(jù)核心代碼的數(shù)據(jù)訪問請求將與該數(shù)據(jù)訪問請求相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞給核心代碼;4)核心代碼根據(jù)所接收的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及自身預(yù)設(shè)的基本配置參數(shù),橋接vm語義隔離和hypervisor語義隔離,推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址,以進行進一步的安全監(jiān)測。進一步地,步驟2)中所述觸發(fā)機制基于smc指令構(gòu)造。進一步地,步驟2)由位于不可信環(huán)境虛擬化軟件棧中的安全增強接口前端(interfacefront-end)實現(xiàn);所述安全增強接口前端是指在虛擬化軟件棧中的宿主機內(nèi)核增添的相關(guān)觸發(fā)代碼。進一步地,步驟2)中所述安全增強接口通過在運行時服務(wù)框架(runtimeservicesframework)中添加特定服務(wù)vmi_std_interface來實現(xiàn)。進一步地,步驟4)中所述基本配置參數(shù)是指現(xiàn)有的通用vmi裝置實現(xiàn)中為每個vm設(shè)置的參數(shù)。進一步地,步驟4)中所述橋接vm語義隔離是指根據(jù)預(yù)知的vm操作系統(tǒng)信息,將gva(客戶機虛擬地址)翻譯成gpa(客戶機物理地址);其中所述預(yù)知的vm操作系統(tǒng)信息包括系統(tǒng)符號表、操作系統(tǒng)版本以及關(guān)鍵結(jié)構(gòu)體的偏移值;所述橋接hypervisor語義隔離是指根據(jù)預(yù)知的hypervisor信息和定位的vm關(guān)鍵數(shù)據(jù)以及hypervisor關(guān)鍵數(shù)據(jù),將gpa翻譯成hpa(宿主機物理地址)。一種增強arm平臺虛擬機自省安全的裝置,包括安全增強接口前端、安全增強接口和核心代碼;所述安全增強接口前端位于不可信環(huán)境虛擬化軟件棧中,用于當(dāng)特定的觸發(fā)事件發(fā)生時,觸發(fā)基于smc指令構(gòu)造的觸發(fā)機制以陷入到el3層的安全增強接口,并將該觸發(fā)事件中相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞到該安全增強接口;所述安全增強接口位于el3層(高特權(quán)級),用于記錄和維護上述vm數(shù)據(jù)和hypervisor數(shù)據(jù),并根據(jù)所述核心代碼的數(shù)據(jù)訪問請求將與該數(shù)據(jù)訪問請求相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞給所述核心代碼;所述核心代碼位于硬件隔離環(huán)境trustzone中,用于根據(jù)所接收的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及自身預(yù)設(shè)的基本配置參數(shù),橋接vm語義隔離和hypervisor語義隔離,推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址,以進行進一步的安全監(jiān)測。進一步地,所述安全增強接口利用declare_rt_svc()宏進行注冊以聲明服務(wù)名稱、oens范圍、服務(wù)類型以及指定初始化和處理函數(shù)指針;其中oens中的s的取值范圍為0≤s≤127。進一步地,所述核心代碼的整體算法包括一次查找和兩次地址翻譯;其中一次查找是指根據(jù)安全增強接口維護的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及核心代碼預(yù)設(shè)的基本配置參數(shù)來定位特定系統(tǒng)符號gva;第一次地址翻譯是指根據(jù)預(yù)知的vm操作系統(tǒng)信息橋接vm語義隔離,將gva翻譯成gpa;第二次地址翻譯是指根據(jù)預(yù)知的hypervisor信息和定位的vm關(guān)鍵數(shù)據(jù)以及hypervisor關(guān)鍵數(shù)據(jù)橋接hypervisor語義隔離,將gpa翻譯成hpa。本發(fā)明的有益效果在于:本發(fā)明提供一種增強arm平臺虛擬機自省安全的方法及裝置,該方法及裝置通過不依賴于hypervisor或qemu(quickemulator,快速模擬器)的安全增強接口和適當(dāng)?shù)挠布綦x環(huán)境trustzone來抵抗信息泄露、保證vmi自身代碼和數(shù)據(jù)在整個生命周期內(nèi)的準(zhǔn)確性即保證vmi運行時安全以及vmi底層輸入數(shù)據(jù)的正確性。其優(yōu)點具體體現(xiàn)在:1.提供不依賴于hypervisor或qemu的安全增強接口以保證vmi獲取的vm數(shù)據(jù)和hypervisor數(shù)據(jù)的準(zhǔn)確性;2.將vmi核心代碼部署在硬件隔離環(huán)境trustzone中,使得vmi的核心運行邏輯處于可信環(huán)境中,以保證整個vmi代碼和數(shù)據(jù)在整個生命周期的完整性,即保證vmi運行時安全;3.解決了armv8平臺下的兩層語義隔離,即hypervisor隔離和vm隔離。附圖說明圖1為本發(fā)明提供的一種增強arm平臺虛擬機自省安全的方法流程圖。圖2為本發(fā)明提供的一種增強arm平臺虛擬機自省安全的裝置示意圖。圖3為本發(fā)明提供的安全增強接口前端的運行流程圖。圖4為本發(fā)明使用的armv8運行時服務(wù)框架實例化示意圖。圖5為本發(fā)明提供的安全增強接口初始化過程示意圖。圖6為本發(fā)明提供的核心代碼整體算法設(shè)計圖。圖7為aarch64linux地址格式4k頁翻譯流程示意圖。圖8為本發(fā)明提供的核心代碼流程示意圖。圖9為本發(fā)明整體框架交互示意圖。具體實施方式為使本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合所附圖作詳細(xì)說明如下。本發(fā)明提供了一種增強arm平臺虛擬機自省安全的方法及裝置,該方法及裝置根據(jù)隔離機制和高特權(quán)級陷入的方式來實現(xiàn)代碼與數(shù)據(jù)的完整性保護和底層數(shù)據(jù)的可信讀取,進而來避免信息泄露、運行時執(zhí)行流和數(shù)據(jù)流的惡意篡改以及底層輸入數(shù)據(jù)的惡意偽造。請參考圖1,該圖為本發(fā)明提供的一種增強arm平臺虛擬機自省安全的方法流程圖。該方法步驟包括:1)將核心代碼部署在硬件隔離環(huán)境trustzone(可信環(huán)境)中;2)當(dāng)特定的觸發(fā)事件發(fā)生時,觸發(fā)基于smc指令構(gòu)造的觸發(fā)機制以陷入到el3層的安全增強接口,并將該觸發(fā)事件中相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞到該安全增強接口。3)安全增強接口記錄和維護上述vm數(shù)據(jù)和hypervisor數(shù)據(jù),并根據(jù)核心代碼的數(shù)據(jù)訪問請求將與該數(shù)據(jù)訪問請求相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞給核心代碼;4)核心代碼根據(jù)所接收的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及自身預(yù)設(shè)的基本配置參數(shù),橋接vm語義隔離和hypervisor語義隔離,推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址,以進行進一步的安全監(jiān)測。請參考圖2,該圖為本發(fā)明提供的一種增強arm平臺虛擬機自省安全的裝置示意圖。該圖以arm下的armv8服務(wù)器作為實驗平臺。所述armv8提供四個特權(quán)級eln(n=0、1、2、3),且n值越大其特權(quán)級越高。其中,el0為用戶層特權(quán)級,其包括qemu;el1為內(nèi)核層特權(quán)級,其包括安全增強接口前端與核心代碼,且el0和el1特權(quán)級在trustzone可信環(huán)境和不可信環(huán)境中均存在;el2為虛擬化層特權(quán)級,負(fù)責(zé)部分虛擬化功能,只存在不可信環(huán)境中;el3為高特權(quán)級,負(fù)責(zé)可信啟動和可信環(huán)境與不可信環(huán)境的切換。不可信環(huán)境的el0和el1部署為host,虛擬化軟件棧由虛擬化層、el1的host各子系統(tǒng)和kvm模塊、位于el0的qemu和其他管理軟件共同構(gòu)成。所述增強arm平臺虛擬機自省安全的裝置包括安全增強接口前端、安全增強接口和核心代碼;所述安全增強接口前端位于不可信環(huán)境虛擬化軟件棧中,用于當(dāng)特定的觸發(fā)事件發(fā)生時,觸發(fā)基于smc指令構(gòu)造的觸發(fā)機制以陷入到el3層的安全增強接口,并將該觸發(fā)事件中相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞到該安全增強接口;所述安全增強接口位于高特權(quán)級,用于記錄和維護上述vm數(shù)據(jù)和hypervisor數(shù)據(jù),并根據(jù)所述核心代碼的數(shù)據(jù)訪問請求將與該數(shù)據(jù)訪問請求相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)傳遞給所述核心代碼;所述核心代碼位于硬件隔離環(huán)境trustzone中,用于根據(jù)所接收的的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及自身預(yù)設(shè)的基本配置參數(shù),橋接vm語義隔離和hypervisor語義隔離,推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址,以進行進一步的安全監(jiān)測。所述基本配置參數(shù)是指現(xiàn)有的通用vmi裝置實現(xiàn)中為每個vm設(shè)置的參數(shù)。例如vm采用的linux版本號、系統(tǒng)符號表地址以及相關(guān)數(shù)據(jù)結(jié)構(gòu)的偏移量等。在本發(fā)明中,所述基本配置參數(shù)實例化為aarch64linux操作系統(tǒng)的相關(guān)數(shù)據(jù)。下面具體闡述本發(fā)明裝置每一部分的具體實現(xiàn)方式,下述實施案例基于armv8架構(gòu),以aarchlinux3.18.0作為宿主機內(nèi)核。所述安全增強接口前端包括兩個功能,一是構(gòu)建專用的觸發(fā)機制;二是定義相應(yīng)的觸發(fā)事件。所述觸發(fā)機制的基礎(chǔ)是armv8架構(gòu)的smc指令。該指令可以實現(xiàn)從不可信環(huán)境到高特權(quán)級el3層的陷入,并通過八個通用寄存器reg0-reg7傳遞參數(shù)。在安全增強接口前端中利用smc指令實現(xiàn)陷入功能的同時,需要根據(jù)實際應(yīng)用需求設(shè)置參數(shù)格式,本實施例的參數(shù)格式如表1所示。表1:參數(shù)格式寄存器意義reg0smcidreg1觸發(fā)事件類型reg2-7執(zhí)行上下文所述觸發(fā)事件的定義則依賴對aarch64linux源碼的解讀,并對運行在不可信環(huán)境虛擬化軟件棧中的hypervisor或者vm特定事件進行簡單設(shè)置,以觸發(fā)陷入條件。請參考圖3,該圖為本發(fā)明提供的安全增強接口前端的運行流程圖,其具體流程為:1.設(shè)置hypervisor、vm特定事件(如kvm_init,vm_create,vm_destroy),當(dāng)特定事件發(fā)生時進入本發(fā)明的的觸發(fā)機制;2.觸發(fā)機制按照定義的格式進行參數(shù)格式化一致性處理;3.執(zhí)行smc指令陷入到高特權(quán)級el3層;4.el3層執(zhí)行進一步具體的操作;5.執(zhí)行返回。所述安全增強接口利用armv8平臺特性,在硬件隔離的armtrustedfirmware(el3)層部署實現(xiàn)。安全增強接口的生命周期主要包括安全增強接口注冊、初始化以及核心代碼實現(xiàn)。所述安全增強接口實現(xiàn)為armv8runtimeserviceframework(運行時服務(wù)框架)中的一種服務(wù),從而集成到可信固件armtrustedfirmware中。在具體的實現(xiàn)中利用declare_rt_svc()宏進行注冊以聲明服務(wù)名稱、oens范圍、服務(wù)類型以及指定初始化和處理函數(shù)指針;其中oens中的s的取值范圍為0≤s≤127。請參考圖4,該圖為本發(fā)明使用的armv8運行時服務(wù)框架實例化示意圖。其中rt_svc_descs_indices[128]是armv8架構(gòu)為了優(yōu)化參數(shù)檢查而設(shè)置的oen數(shù)組,且當(dāng)oen值為-1時,oen值無效。安全增強接口通過declare_rt_svc()將其相應(yīng)的結(jié)構(gòu)體注冊到rt_svc_descs[]數(shù)組中。所述安全增強接口注冊的一個實例如表2所示。表2:安全增強接口注冊的實例所述安全增強接口的oens范圍設(shè)置如表3所示。表3:oens范圍設(shè)置oens范圍值oen_tap_start48oen_tap_end49oen_tap_interface48所述安全增強接口作為運行時服務(wù)框架的一部分,同樣位于可信固件armtrustedfirmware中,因而在arm可信啟動的bl31階段進行初始化。本發(fā)明提供的安全增強接口初始化過程示意圖如圖5所示,由bl31_main調(diào)用runtime_svc_init函數(shù)對rt_svc_descs[]數(shù)組中的各元素進行初始化和相關(guān)的驗證工作,當(dāng)執(zhí)行到安全增強接口時,除了基本的驗證之外,還可以根據(jù)之前注冊的函數(shù)指針來進行進一步的初始化。所述核心代碼實現(xiàn)部分根據(jù)安全增強接口接收到的數(shù)據(jù)處理請求類型,相應(yīng)設(shè)置處理函數(shù)。vmi_smc_handler是所有交互請求的總?cè)肟?,?fù)責(zé)請求方識別(判斷來自不可信環(huán)境的安全增強接口前端或者可信環(huán)境中的核心代碼)、請求上下文保存和恢復(fù)以及分配下一級處理函數(shù)。所述安全增強接口目前提供了多種數(shù)據(jù)維護操作,如表4所示:表4:安全增強接口的數(shù)據(jù)維護操作類型具體操作driver_init調(diào)用driver_init進行初始化vm_create添加特定的vm信息到hashtable和數(shù)組中vm_run_change改變相關(guān)vm信息vm_migration對特定vm信息進行刪除或更進一步的操作vm_destroy刪除特定vm信息vmi_fast_runtime_entry負(fù)責(zé)分發(fā)以及處理來自安全增強接口前端的driver_init和vm_destroy操作;vmi_std_init_entry負(fù)責(zé)處理來自安全增強接口前端的vm_create、vm_run_change以及vm_migration操作;vmi_get_information負(fù)責(zé)處理來自核心代碼的數(shù)據(jù)訪問請求。為實現(xiàn)數(shù)據(jù)的快速查找和可靠存儲,本發(fā)明在安全增強接口中采用了哈希表和數(shù)組,在實際應(yīng)用中也可采用其它數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)。所述核心代碼部署在硬件隔離環(huán)境trustzone中,主要用來解決語義隔離問題。在本發(fā)明中,因為是從宿主機物理地址讀取的vm數(shù)據(jù),因而比起傳統(tǒng)的vmi技術(shù),除了vm語義隔離外,還有一層新的語義隔離問題需要解決,即hypervisor語義隔離。所述核心代碼整體算法設(shè)計如圖6所示,包括一次查找和兩次地址翻譯。其中,一次查找是指根據(jù)安全增強接口維護的vm數(shù)據(jù)和hypervisor數(shù)據(jù)以及核心代碼預(yù)設(shè)的基本配置參數(shù)來定位特定系統(tǒng)符號gva;第一次地址翻譯是指根據(jù)預(yù)知的vm操作系統(tǒng)信息橋接vm語義隔離,將gva翻譯成gpa;第二次地址翻譯是指根據(jù)預(yù)知的hypervisor信息和定位的vm關(guān)鍵數(shù)據(jù)以及hypervisor關(guān)鍵數(shù)據(jù)橋接hypervisor語義隔離,將gpa翻譯成hpa。通過這三個步驟,所述核心代碼最終得以實現(xiàn)對目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址的定位。下面分為兩個關(guān)鍵技術(shù)點對核心代碼的實現(xiàn)進行說明。1.兩層語義隔離問題。vm語義隔離是指如何將讀取到的vm二進制數(shù)據(jù)轉(zhuǎn)換成含有操作系統(tǒng)語義的信息之間的隔離。解決vm語義隔離的思路是利用一些預(yù)知的vm操作系統(tǒng)信息,從而進一步推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址。所述預(yù)知的vm操作系統(tǒng)信息包括系統(tǒng)符號表、操作系統(tǒng)版本以及關(guān)鍵結(jié)構(gòu)體的偏移值。此外,還需要定位某個vm關(guān)鍵結(jié)構(gòu)體的地址,因此需要實現(xiàn)gva到gpa之間的轉(zhuǎn)化。在具體的實現(xiàn)中,安全增強接口提供了一些基本的接口來實現(xiàn)地址和符號之間的轉(zhuǎn)換,如表5所示。表5:安全增強接口提供的接口本發(fā)明實現(xiàn)一個更底層的vm數(shù)據(jù)訪問方式,即通過vm數(shù)據(jù)映射到hpa來訪問。hypervisor語義隔離是指如何定位vm關(guān)鍵數(shù)據(jù)和hypervisor關(guān)鍵數(shù)據(jù),將gpa翻譯成hpa這一問題。解決這一問題的思路是利用安全增強接口前端從觸發(fā)事件中獲取預(yù)知的vm關(guān)鍵數(shù)據(jù)和hypervisor關(guān)鍵數(shù)據(jù),如kvm結(jié)構(gòu)體、stage2表基地址、ttbr2值等,來進一步推導(dǎo)和定位出目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址。2.兩次地址翻譯。在實現(xiàn)vm數(shù)據(jù)的訪問時需要解決兩次地址翻譯問題。解決地址翻譯的思路是依賴aarch64虛擬地址格式進行。請參考圖7,該圖為aarch64linux地址格式4k頁翻譯流程示意圖。1)pgd基地址加上虛擬地址[38:30]中的pgd偏移量獲取對應(yīng)的pgd地址;2)讀取pgd地址中的數(shù)據(jù)獲取pmd基地址,將虛擬地址中[29:21]與pmd基地址相累加,獲得對應(yīng)的pmd地址;3)讀取pmd地址中的數(shù)據(jù)獲取pte基地址,將之與虛擬地址中的[20:12]累加,獲得對應(yīng)的pte地址;4)讀取pte地址中的頁地址與虛擬地址中的[11:0]累加,最終獲取目標(biāo)數(shù)據(jù)地址(target地址)。64k頁的地址翻譯過程與之類似,只是偏移量位數(shù)有所不同。所述翻譯過程需要兩次,一是將gva翻譯成gpa,一是將gpa翻譯成hpa。在地址翻譯過程中pgd的地址可以通過上述語義隔離問題的解決方案來定位。當(dāng)實現(xiàn)第一次地址翻譯時pgd可通過系統(tǒng)符號表獲取,第二次地址翻譯過程中的pgd是指安全增強接口前端記錄的stage2表基地址。另外,hypervisor維護的stage2表以及其他關(guān)鍵數(shù)據(jù)存在內(nèi)核空間,其映射關(guān)系比較單一,直接減去特定的偏移值即可。請參考圖8,所述核心代碼執(zhí)行的流程包括以下步驟:1)先通過configurefile(配置文件)和安全增強接口獲取預(yù)知的vm操作系統(tǒng)信息以及相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù);2)定位特定系統(tǒng)符號gva;3)通過第一次地址翻譯實現(xiàn)gva->gpa的地址轉(zhuǎn)換,獲取gpa(gpa就是ipa,也就是hva);4)再通過第二次地址翻譯實現(xiàn)gpa->hpa的地址轉(zhuǎn)換,獲取hpa,最終獲取目標(biāo)vm數(shù)據(jù)地址和目標(biāo)hypervisor數(shù)據(jù)地址;5)如果核心代碼的數(shù)據(jù)訪問請求未結(jié)束,則轉(zhuǎn)步驟2);否則,結(jié)束運行。在實際的代碼執(zhí)行過程中,兩次地址翻譯是依次進行的,推導(dǎo)和定位存在整個執(zhí)行流中。請參考圖9,該圖為本發(fā)明整體框架交互示意圖。該圖中各部件之間的交互存在兩種,一是安全增強接口前端與安全增強接口之間的交互,這種交互發(fā)生在hypervisor或者虛擬機運行周期中,當(dāng)預(yù)先定義的觸發(fā)事件發(fā)生時,就會觸發(fā)該觸發(fā)機制,陷入到el3層的安全增強接口中,對該觸發(fā)事件進行相應(yīng)的處理。二是安全增強接口與核心代碼之間的交互,發(fā)生在本發(fā)明核心代碼試圖獲取vm和hypervisor某方面的數(shù)據(jù)時。安全增強接口根據(jù)核心代碼的數(shù)據(jù)訪問請求將與該數(shù)據(jù)訪問請求相關(guān)的vm數(shù)據(jù)和hypervisor數(shù)據(jù)返回給核心代碼以進行下一步的處理。以上實施僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。當(dāng)前第1頁12當(dāng)前第1頁12