[發明專利]一種基于硬件虛擬化技術的應用程序安全保護方法有效
| 申請號: | 201810384703.7 | 申請日: | 2018-04-26 |
| 公開(公告)號: | CN108874500B | 公開(公告)日: | 2022-10-18 |
| 發明(設計)人: | 曾慶凱;梁誠偉 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F21/52 |
| 代理公司: | 南京鐘山專利代理有限公司 32252 | 代理人: | 戴朝榮 |
| 地址: | 210000 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 硬件 虛擬 技術 應用程序 安全 保護 方法 | ||
1.一種基于硬件虛擬化技術的應用程序安全保護方法,涉及的組件包括虛擬機監控器、轉接器、參數緩存和自定義庫,其特征在于,包括以下步驟:
步驟一、虛擬機監控器初始化:在保護方法保護應用程序之前進行虛擬機監控器的初始化,包括配置VMCS、配置EPT頁表、切換EPT;
步驟二、保護應用保護機構初始化:在應用程序成為保護應用之前進行的初始化,包括轉接器與參數緩存地址空間分配、填充轉接器內容、發起hypercall;
步驟三、系統調用的準備:對于保護應用請求的系統調用,在自定義庫中進行系統調用的準備,包括系統調用參數準備、hypercall發起、系統調用結果返回保護應用;
步驟四、系統調用的驗證:對于系統調用的請求,在虛擬機監控器中進行系統調用的安全驗證,包括地址空間切換、rip通用寄存器賦值、將系統調用結果返回給自定義庫;
步驟五、系統調用的實施:經系統調用驗證后,轉接器進行系統調用的實施,包括發起系統調用、發起hypercall將系統調用結果返回虛擬機監控器;
步驟六、中斷事件的截獲處理:在保護應用執行過程中發生的中斷,由虛擬機監控器進行中斷的截獲和處理,包括中斷截獲、rip通用寄存器賦值、從中斷返回到保護應用;
步驟七、中斷返回的轉接:經虛擬機監控器驗證屬于保護應用中發生的中斷事件,由不可信內核的中斷處理結束后,由轉接器進行中斷返回的處理,包括等待中斷返回、發起hypercall陷入虛擬機監控器。
2.如權利要求1所述的一種基于硬件虛擬化技術的應用程序安全保護方法,其特征在于:所述步驟一具體包括:
步驟11、配置VMCS的中斷異常的自動轉發的標志位,允許虛擬機監控器獲得中斷截獲的能力;
步驟12、將VMCS中的Enable EPT位置為1,使得虛擬機監控器以及在其上運行的虛擬機使用EPT頁表;
步驟13、創建兩張EPT,分別放置在KVM中的KVM_MMU結構體的root_hpa和root_hpa_shadow中,保護方案復用了KVM中的創建EPT的函數,創建了兩張EPT頁表,其中root_hpa中存儲指向不可信內核所在地址空間的EPTP,而root_hpa_shadow中存儲指向保護應用所在地址空間的EPTP;
步驟14、選擇當前EPT為root_hpa中的EPT,使得在虛擬機監控器和其中的虛擬機啟動過程中,系統一直使用不可信地址空間的EPT,直到保護應用的開始執行;
步驟15、接收應用程序調用hypercall傳遞的轉接器與參數緩存的地址,通過在VMexit時讀取對應的通用寄存器接收到傳遞來的地址,虛擬機監控器將地址記錄在變量tr與buf中;
步驟16、切換到root_hpa_shadow指向的EPT并返回保護應用,通過將KVM_MMU結構體中的root_hpa備份到root_hpa_second并將root_hpa的值改為root_hpa_shadow來切換到可信地址空間EPT;
步驟17、結束hypercall處理返回虛擬機,通過在hypercall處理流程之后執行vcpu_run函數,保護應用開始在虛擬機的可信地址空間內執行;
步驟18、結束狀態,虛擬機監控器的初始化完成。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810384703.7/1.html,轉載請聲明來源鉆瓜專利網。





