[發(fā)明專(zhuān)利]基于硬件輔助虛擬化技術(shù)的進(jìn)程內(nèi)存保護(hù)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410215459.3 | 申請(qǐng)日: | 2014-05-21 |
| 公開(kāi)(公告)號(hào): | CN103955438B | 公開(kāi)(公告)日: | 2016-11-23 |
| 發(fā)明(設(shè)計(jì))人: | 黃皓;李佳瑤 | 申請(qǐng)(專(zhuān)利權(quán))人: | 南京大學(xué) |
| 主分類(lèi)號(hào): | G06F12/14 | 分類(lèi)號(hào): | G06F12/14 |
| 代理公司: | 南京君陶專(zhuān)利商標(biāo)代理有限公司 32215 | 代理人: | 沈根水 |
| 地址: | 210093*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 硬件 輔助 虛擬 技術(shù) 進(jìn)程 內(nèi)存 保護(hù) 方法 | ||
1.基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是該方法包括以下步驟:
步驟1:加載進(jìn)程內(nèi)存監(jiān)控模塊,使其運(yùn)行于根模式(Root),并將操作系統(tǒng)作為客戶(hù)機(jī)系統(tǒng)置于非根模式(Non-Root),設(shè)置VMCS控制域,使監(jiān)控模塊能夠捕獲到CR3寄存器的改寫(xiě)和頁(yè)錯(cuò)誤異常;
步驟2:受保護(hù)進(jìn)程在啟動(dòng)時(shí)通知監(jiān)控模塊,監(jiān)控模塊驗(yàn)證發(fā)送通知的進(jìn)程是否為受保護(hù)的進(jìn)程;
步驟3:為受保護(hù)進(jìn)程的受保護(hù)內(nèi)存空間創(chuàng)建加密拷貝,并為受保護(hù)進(jìn)程創(chuàng)建一份用戶(hù)模式影子頁(yè)表和一份內(nèi)核模式影子頁(yè)表,分別指向受保護(hù)內(nèi)存的明文和密文;
步驟4:利用影子頁(yè)表機(jī)制實(shí)現(xiàn)對(duì)虛擬機(jī)系統(tǒng)的內(nèi)存虛擬,設(shè)置系統(tǒng)中所有進(jìn)程的影子頁(yè)表中頁(yè)目錄項(xiàng)的只讀屬性,并將受保護(hù)進(jìn)程用戶(hù)模式影子頁(yè)表中指向數(shù)據(jù)頁(yè)的頁(yè)表項(xiàng)的不可執(zhí)行屬性設(shè)置為1,即該數(shù)據(jù)頁(yè)不可被執(zhí)行;
步驟5:捕獲CR3寄存器改寫(xiě)操作和頁(yè)錯(cuò)誤異常,通過(guò)捕獲CR3寄存器的改寫(xiě),判斷要寫(xiě)入的值是否為受保護(hù)進(jìn)程頁(yè)目錄基地址,是則向CR3寄存器寫(xiě)入受保護(hù)進(jìn)程內(nèi)核模式影子頁(yè)表的頁(yè)目錄基地址,通過(guò)捕獲頁(yè)錯(cuò)誤異常,監(jiān)控受保護(hù)進(jìn)程用戶(hù)模式與內(nèi)核模式的切換以及其他進(jìn)程的頁(yè)表改寫(xiě)操作。
2.根據(jù)權(quán)利要求1所述的基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是所述的步驟1中,進(jìn)程內(nèi)存監(jiān)控模塊以驅(qū)動(dòng)程序的形式安裝于操作系統(tǒng)中,該驅(qū)動(dòng)程序可以動(dòng)態(tài)加載,加載后將CPU的虛擬化功能開(kāi)啟,并準(zhǔn)備好虛擬化運(yùn)行時(shí)必須的一些控制結(jié)構(gòu),然后使CPU運(yùn)行于非根模式,該驅(qū)動(dòng)程序的處理流程為:
1)分配和初始化VMXON控制域;
2)開(kāi)啟VMX操作模式;
3)分配和初始化VMCS控制域;
4)進(jìn)入VMX非根模式;
在初始化VMCS控制域時(shí),通過(guò)設(shè)置其中的VM-Execution控制域,使改寫(xiě)CR3寄存器和頁(yè)錯(cuò)誤異常發(fā)生時(shí)產(chǎn)生VMEXIT事件,以捕獲任何寫(xiě)CR3寄存器的操作和頁(yè)錯(cuò)誤異常。
3.根據(jù)權(quán)利要求1所述的基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是所述的步驟2中,受保護(hù)進(jìn)程通過(guò)調(diào)用VMCALL指令將自身的名稱(chēng)和PID傳遞給進(jìn)程內(nèi)存監(jiān)控模塊,使監(jiān)控模塊獲得其加載通知,監(jiān)控模塊收到進(jìn)程加載消息后對(duì)該進(jìn)程做哈希運(yùn)算,將運(yùn)算結(jié)果與已計(jì)算的哈希值進(jìn)行比對(duì),驗(yàn)證受保護(hù)進(jìn)程的完整性。
4.根據(jù)權(quán)利要求1所述的基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是所述的步驟3為受保護(hù)進(jìn)程的受保護(hù)內(nèi)存空間創(chuàng)建加密拷貝,是利用物理頁(yè)幀加密技術(shù)為受保護(hù)進(jìn)程的受保護(hù)內(nèi)存空間創(chuàng)建加密拷貝,并實(shí)現(xiàn)了針對(duì)受保護(hù)進(jìn)程的兩套地址映射關(guān)系,其中,用戶(hù)模式影子頁(yè)表指向受保護(hù)內(nèi)存的明文,而內(nèi)核模式影子頁(yè)表指向受保護(hù)內(nèi)存的密文,結(jié)合對(duì)受保護(hù)進(jìn)程模式切換的監(jiān)控,使提供給受保護(hù)進(jìn)程自身使用的是指向真實(shí)物理內(nèi)存的用戶(hù)模式影子頁(yè)表,而提供給內(nèi)核態(tài)代碼使用的是指向受保護(hù)內(nèi)存加密拷貝的內(nèi)核模式影子頁(yè)表。
5.根據(jù)權(quán)利要求1所述的基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是所述的步驟4利用影子頁(yè)表機(jī)制實(shí)現(xiàn)對(duì)虛擬機(jī)系統(tǒng)的內(nèi)存虛擬,將系統(tǒng)中各進(jìn)程影子頁(yè)表中的頁(yè)目錄項(xiàng)的可寫(xiě)位置為0,即該頁(yè)目錄項(xiàng)指向的頁(yè)表頁(yè)不可寫(xiě),以此監(jiān)控客戶(hù)機(jī)頁(yè)表頁(yè)的修改操作,并通過(guò)設(shè)置受保護(hù)進(jìn)程用戶(hù)模式影子頁(yè)表中頁(yè)表項(xiàng)的不可執(zhí)行屬性,使受保護(hù)進(jìn)程數(shù)據(jù)區(qū)頁(yè)面不可被執(zhí)行,則非法注入到受保護(hù)進(jìn)程用戶(hù)態(tài)的惡意程序無(wú)法得到執(zhí)行,防止了用戶(hù)態(tài)代碼注入攻擊。
6.根據(jù)權(quán)利要求1所述的基于硬件輔助虛擬化的進(jìn)程內(nèi)存安全保護(hù)方法,其特征是所述的步驟5捕獲CR3寄存器改寫(xiě)操作和頁(yè)錯(cuò)誤異常,對(duì)于CR3寄存器改寫(xiě)事件,判斷寫(xiě)入CR3寄存器的值是否為受保護(hù)進(jìn)程的頁(yè)目錄基地址,是則向CR3寄存器寫(xiě)入受保護(hù)進(jìn)程內(nèi)核模式影子頁(yè)表的物理頁(yè)基地址;
通過(guò)對(duì)頁(yè)錯(cuò)誤異常的捕獲,監(jiān)控受保護(hù)進(jìn)程的模式切換,以及其他進(jìn)程的頁(yè)表修改操作;
針對(duì)用戶(hù)模式切換到內(nèi)核模式的處理過(guò)程為:
1)將受保護(hù)進(jìn)程的用戶(hù)模式影子頁(yè)表中對(duì)應(yīng)于內(nèi)核態(tài)代碼的PTE的屬性設(shè)置為不可執(zhí)行;
2)當(dāng)CPU從用戶(hù)模式進(jìn)入到內(nèi)核模式時(shí),產(chǎn)生頁(yè)錯(cuò)誤異常,監(jiān)控模塊捕獲到進(jìn)入內(nèi)核模式;
3)將CR3寄存器修改為指向受保護(hù)進(jìn)程的內(nèi)核模式影子頁(yè)表;
針對(duì)內(nèi)核模式切換到用戶(hù)模式的處理過(guò)程為:
1)將受保護(hù)進(jìn)程的內(nèi)核模式影子頁(yè)表中對(duì)應(yīng)于內(nèi)核態(tài)代碼的PTE的屬性設(shè)置為不可執(zhí)行;
2)當(dāng)CPU從內(nèi)核模式進(jìn)入到用戶(hù)模式時(shí),產(chǎn)生頁(yè)錯(cuò)誤異常,監(jiān)控模塊捕獲到進(jìn)入用戶(hù)模式;
3)將CR3寄存器修改為指向受保護(hù)進(jìn)程的用戶(hù)模式影子頁(yè)表;
通過(guò)上述設(shè)置和處理,利用攔截系統(tǒng)調(diào)用注入到內(nèi)核態(tài)的代碼無(wú)法訪(fǎng)問(wèn)到受保護(hù)的內(nèi)存空間;
非受保護(hù)進(jìn)程運(yùn)行時(shí),若客戶(hù)機(jī)頁(yè)表中的映射關(guān)系在影子頁(yè)表中不存在,則會(huì)產(chǎn)生影子錯(cuò)誤,此時(shí)檢查該頁(yè)表項(xiàng)中的物理頁(yè)幀號(hào)與為受保護(hù)物理內(nèi)存頁(yè)的物理頁(yè)幀號(hào)相同,若相同則將該物理頁(yè)幀號(hào)修改為對(duì)應(yīng)的加密物理頁(yè)面的頁(yè)幀號(hào),當(dāng)非受保護(hù)進(jìn)程修改自身頁(yè)表時(shí)將觸發(fā)頁(yè)錯(cuò)誤異常,此時(shí)判斷是否要將受保護(hù)內(nèi)存的物理頁(yè)幀號(hào)寫(xiě)入某個(gè)頁(yè)表項(xiàng),若是,則寫(xiě)入對(duì)應(yīng)的加密物理頁(yè)面的物理頁(yè)幀號(hào),以禁止其他進(jìn)程通過(guò)修改自身頁(yè)表訪(fǎng)問(wèn)受保護(hù)內(nèi)存空間。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410215459.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 上一篇:一種無(wú)滾板式鏈條
- 下一篇:橡膠減振器
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F12-00 在存儲(chǔ)器系統(tǒng)或體系結(jié)構(gòu)內(nèi)的存取、尋址或分配
G06F12-02 .尋址或地址分配;地址的重新分配
G06F12-14 .阻止存儲(chǔ)器越權(quán)使用的保護(hù)
G06F12-16 .阻止存儲(chǔ)物丟失的保護(hù)
G06F12-04 ..字長(zhǎng)可變的字或字的一部分的尋址
G06F12-06 ..物理存儲(chǔ)塊定位的尋址,例如,基地址尋址、模塊尋址、專(zhuān)用存儲(chǔ)區(qū)尋址
- 確定吸收制品功效
- 一種虛擬機(jī)的安全訪(fǎng)問(wèn)方法及虛擬機(jī)系統(tǒng)
- 一種虛擬桌面的解鎖方法及裝置
- 一種實(shí)時(shí)處理虛擬交換機(jī)網(wǎng)絡(luò)流量的虛擬化平臺(tái)
- 虛擬智能家居實(shí)訓(xùn)系統(tǒng)及其虛擬實(shí)訓(xùn)方法
- 虛擬機(jī)的磁盤(pán)資源的管理方法和裝置
- 一種基于KVM的虛擬網(wǎng)卡管理方法
- 虛擬資源數(shù)據(jù)處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 基于虛擬環(huán)境的道具使用方法、裝置、設(shè)備及介質(zhì)
- 虛擬道具的獲取方法、裝置、設(shè)備及介質(zhì)





