[發(fā)明專利]虛擬機(jī)內(nèi)核的保護(hù)方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201510980458.2 | 申請(qǐng)日: | 2015-12-23 |
| 公開(kāi)(公告)號(hào): | CN106909437B | 公開(kāi)(公告)日: | 2021-01-29 |
| 發(fā)明(設(shè)計(jì))人: | 萬(wàn)榮飛;陳興蜀 | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F9/455 | 分類(lèi)號(hào): | G06F9/455 |
| 代理公司: | 北京同立鈞成知識(shí)產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 楊貝貝;黃健 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 虛擬機(jī) 內(nèi)核 保護(hù) 方法 裝置 | ||
本發(fā)明實(shí)施例提供一種虛擬機(jī)內(nèi)核的保護(hù)方法及裝置,該方法包括:截獲應(yīng)用程序發(fā)起的系統(tǒng)調(diào)用函數(shù);根據(jù)虛擬機(jī)原始內(nèi)核基地址與影子內(nèi)核基地址的偏移值,將系統(tǒng)調(diào)用函數(shù)指向影子內(nèi)核,根據(jù)影子內(nèi)核中的影子SSDT確定所述系統(tǒng)調(diào)用函數(shù)在影子內(nèi)核中對(duì)應(yīng)的入口地址;其中,影子內(nèi)核構(gòu)建于虛擬機(jī)原始內(nèi)核的非分頁(yè)池中,所述影子內(nèi)核為根據(jù)虛擬機(jī)原始內(nèi)核的鏡像文件構(gòu)建的可執(zhí)行內(nèi)核代碼。實(shí)現(xiàn)了系統(tǒng)調(diào)用路徑完全在影子內(nèi)核的純凈代碼中執(zhí)行,保證了系統(tǒng)調(diào)用路徑的完整性,從而也保證了整個(gè)內(nèi)核代碼運(yùn)行的完整性。且影子內(nèi)核構(gòu)建在虛擬機(jī)原始內(nèi)核的非分頁(yè)池中構(gòu)建,簡(jiǎn)單易實(shí)現(xiàn),也不會(huì)在注冊(cè)表等其他地方留下痕跡,安全性更高。
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬機(jī)技術(shù),尤其涉及一種虛擬機(jī)內(nèi)核的保護(hù)方法及裝置。
背景技術(shù)
近年來(lái),云計(jì)算技術(shù)得到了快速發(fā)展,不可忽視地,當(dāng)前存在的眾多惡意程序以及內(nèi)核惡意代碼也會(huì)給云平臺(tái)虛擬機(jī)內(nèi)部進(jìn)程帶來(lái)安全威脅。其中,虛擬機(jī)內(nèi)核在虛擬機(jī)中起著核心作用,虛擬機(jī)運(yùn)行過(guò)程中,所有應(yīng)用程序的系統(tǒng)調(diào)用請(qǐng)求、以及內(nèi)部和外部的中斷處理等均會(huì)直接進(jìn)入虛擬機(jī)內(nèi)核,由虛擬機(jī)內(nèi)核來(lái)進(jìn)行必要的處理。具體實(shí)現(xiàn)過(guò)程中,所有進(jìn)入虛擬機(jī)內(nèi)核的接口中,系統(tǒng)調(diào)用接口是應(yīng)用程序與虛擬機(jī)內(nèi)核進(jìn)行交互、進(jìn)而獲取虛擬機(jī)內(nèi)核服務(wù)的一種重要接口,相應(yīng)地,系統(tǒng)調(diào)用執(zhí)行路徑是進(jìn)入虛擬機(jī)內(nèi)核的路徑分支中的一種重點(diǎn)需要防護(hù)的路徑。一旦系統(tǒng)調(diào)用執(zhí)行路徑遭到劫持,惡意代碼就可以在特定進(jìn)程的進(jìn)程環(huán)境下得到執(zhí)行時(shí)機(jī),進(jìn)而在進(jìn)程中利用自己的合法身份讀寫(xiě)進(jìn)程內(nèi)存,以突破進(jìn)程內(nèi)存對(duì)第三方進(jìn)程的讀寫(xiě)限制,從而惡意代碼可以篡改系統(tǒng)調(diào)用執(zhí)行結(jié)果、威脅進(jìn)程數(shù)據(jù)安全、影響進(jìn)程正常運(yùn)行等。
現(xiàn)有技術(shù)中,為了對(duì)系統(tǒng)調(diào)用執(zhí)行路徑進(jìn)行反劫持防護(hù),主要由虛擬機(jī)中的虛擬機(jī)監(jiān)視器(Virtual Machine Monitor,簡(jiǎn)稱VMM)實(shí)時(shí)對(duì)虛擬機(jī)內(nèi)核進(jìn)行透明攔截監(jiān)控,即在避免用戶側(cè)獲知的情況下進(jìn)行攔截監(jiān)控,以實(shí)現(xiàn)實(shí)時(shí)攔截非法操作對(duì)進(jìn)程內(nèi)存的讀寫(xiě),具體地,主要利用硬件輔助虛擬化機(jī)制提供的異常陷入機(jī)制和基于硬件輔助的內(nèi)存虛擬化機(jī)制來(lái)實(shí)現(xiàn),在VMM中,通過(guò)頁(yè)表來(lái)實(shí)施相應(yīng)的內(nèi)存隔離,以捕獲非法操作并及時(shí)處理。
但是,采用現(xiàn)有技術(shù),VMM基于頁(yè)表粒度進(jìn)行攔截,經(jīng)常會(huì)出現(xiàn)遺漏,例如惡意代碼連續(xù)操作特定頁(yè)的情況下,一旦第一次未攔截放行后,后續(xù)難以再次捕獲,即攔截效果較差,且實(shí)時(shí)攔截造成的開(kāi)銷(xiāo)過(guò)大。
發(fā)明內(nèi)容
本發(fā)明提供一種虛擬機(jī)內(nèi)核的保護(hù)方法及裝置,用于解決現(xiàn)有技術(shù)對(duì)惡意代碼攔截效果差,且需要實(shí)時(shí)攔截的問(wèn)題。
本發(fā)明第一方面提供一種虛擬機(jī)內(nèi)核的保護(hù)方法,包括:
截獲應(yīng)用程序發(fā)起的系統(tǒng)調(diào)用函數(shù);
根據(jù)虛擬機(jī)原始內(nèi)核基地址與影子內(nèi)核基地址的偏移值,將所述系統(tǒng)調(diào)用函數(shù)指向影子內(nèi)核,根據(jù)所述影子內(nèi)核中的影子系統(tǒng)服務(wù)描述表SSDT確定所述系統(tǒng)調(diào)用函數(shù)在影子內(nèi)核中對(duì)應(yīng)的入口地址;
其中,所述影子內(nèi)核構(gòu)建于所述虛擬機(jī)原始內(nèi)核的非分頁(yè)池中,所述影子內(nèi)核為根據(jù)所述虛擬機(jī)原始內(nèi)核的鏡像文件構(gòu)建的可執(zhí)行內(nèi)核代碼。
進(jìn)一步地,上述方法中還包括構(gòu)建所述影子內(nèi)核。
其中,構(gòu)建所述影子內(nèi)核可以包括:
根據(jù)所述鏡像文件所映射的地址以及影子內(nèi)核基地址,對(duì)所述影子內(nèi)核初始代碼中的待重定向數(shù)據(jù)進(jìn)行修復(fù),并獲取修復(fù)后的待重定向數(shù)據(jù);
將所述修復(fù)后的待重定向數(shù)據(jù)中SSDT對(duì)應(yīng)的數(shù)據(jù)和影子中斷描述表IDT對(duì)應(yīng)的數(shù)據(jù)進(jìn)行備份,以獲取影子IDT和所述影子SSDT;
將所述修復(fù)后的待重定向數(shù)據(jù)重定向到所述虛擬機(jī)原始內(nèi)核,以獲取目標(biāo)重定向數(shù)據(jù),并將所述目標(biāo)重定向數(shù)據(jù)中的SSDT和IDT替換為所述影子SSDT和所述影子IDT。
可選地,所述將所述虛擬機(jī)原始內(nèi)核的文件進(jìn)行復(fù)制以獲取鏡像文件之前,所述方法還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510980458.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:包裝盒(8)
- 下一篇:蠟印布包裝盒(2016043)
- 一種可信虛擬機(jī)平臺(tái)
- 虛擬機(jī)參數(shù)遷移的方法、設(shè)備和虛擬機(jī)服務(wù)器
- 一種虛擬機(jī)系統(tǒng)及其安全控制方法
- 一種云計(jì)算系統(tǒng)動(dòng)態(tài)分配虛擬機(jī)的方法
- 一種恢復(fù)、升級(jí)虛擬機(jī)的方法及裝置
- 虛擬機(jī)切換系統(tǒng)及切換方法
- 處理虛擬機(jī)集群的方法和計(jì)算機(jī)系統(tǒng)
- 虛擬機(jī)故障檢測(cè)、恢復(fù)系統(tǒng)及虛擬機(jī)檢測(cè)、恢復(fù)、啟動(dòng)方法
- 一種虛擬機(jī)遷移方法和系統(tǒng)
- 一種虛擬機(jī)容錯(cuò)系統(tǒng)及其容錯(cuò)方法
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





