欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種檢測虛擬機(jī)逃逸的方法及裝置與流程

文檔序號:11831247閱讀:714來源:國知局
一種檢測虛擬機(jī)逃逸的方法及裝置與流程

本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種檢測虛擬機(jī)逃逸的方法及裝置。



背景技術(shù):

虛擬機(jī)是一種特殊的軟件,它可以在計(jì)算機(jī)平臺和終端用戶之間創(chuàng)建一種環(huán)境,而終端用戶則是基于這個(gè)軟件所創(chuàng)建的環(huán)境來操作軟件。在計(jì)算機(jī)科學(xué)中,虛擬機(jī)是可以像真實(shí)機(jī)器一樣運(yùn)行程序的計(jì)算機(jī)的軟件實(shí)現(xiàn)。

虛擬機(jī)能夠分享宿主機(jī)的各種資源并提供隔離,在正常的虛擬機(jī)運(yùn)行環(huán)境中,一個(gè)程序運(yùn)行在虛擬機(jī)里,無法影響其他虛擬機(jī)和宿主機(jī)。但是,由于技術(shù)的限制和虛擬化軟件的一些程序漏洞,在虛擬機(jī)被惡意攻陷后,虛擬機(jī)里運(yùn)行的程序能夠通過這些漏洞繞過底層運(yùn)行環(huán)境,從而利用宿主機(jī)執(zhí)行具有宿主機(jī)特權(quán)的操作,這種技術(shù)叫做虛擬機(jī)逃逸技術(shù)。

當(dāng)宿主機(jī)內(nèi)某個(gè)虛擬機(jī)發(fā)生逃逸后,該逃逸的虛擬機(jī)能夠擁有宿主機(jī)的特權(quán)進(jìn)行各種操作,將使宿主機(jī)和整個(gè)虛擬環(huán)境下所有虛擬機(jī)的安全性受到威脅。因此,如何防止虛擬機(jī)逃逸行為的發(fā)生,并且不會(huì)影響虛擬機(jī)與宿主機(jī)之間正常的共享與交互,成為目前亟待解決的技術(shù)問題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明提出了一種檢測虛擬機(jī)逃逸的方法及裝置,主要目的在于在不影響虛擬機(jī)與宿主機(jī)之間正常的共享與交互的基礎(chǔ)上,能夠有效的檢測出虛擬機(jī)逃逸行為。

依據(jù)本發(fā)明的第一個(gè)方面,本發(fā)明提供了一種檢測虛擬機(jī)逃逸的方法,包括:

獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息;

通過預(yù)設(shè)的行為特征信息庫對所述異常數(shù)據(jù)信息進(jìn)行檢測;

當(dāng)檢測所述異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息時(shí),將所述惡意行為的數(shù)據(jù)信息進(jìn)行攔截;

當(dāng)檢測所述異常數(shù)據(jù)信息為非惡意行為的數(shù)據(jù)信息時(shí),將所述非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī)。

依據(jù)本發(fā)明的第二個(gè)方面,本發(fā)明提供了一種檢測虛擬機(jī)逃逸的裝置,包括:

獲取單元,用于獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息;

檢測單元,用于通過預(yù)設(shè)的行為特征信息庫對所述異常數(shù)據(jù)信息進(jìn)行檢測;

攔截單元,用于當(dāng)檢測所述異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息時(shí),將所述惡意行為的數(shù)據(jù)信息進(jìn)行攔截;

傳遞單元,用于當(dāng)檢測所述異常數(shù)據(jù)信息為非惡意行為的數(shù)據(jù)信息時(shí),將所述非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī)。

借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的方法及裝置,通過將虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息與預(yù)設(shè)的行為特征信息庫進(jìn)行比對,來檢測虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息是否對應(yīng)惡意行為;由于虛擬機(jī)正常情況下只在自己的虛擬環(huán)境下進(jìn)行相關(guān)操作,當(dāng)有數(shù)據(jù)信息從虛擬機(jī)流入宿主機(jī)時(shí),會(huì)存在虛擬機(jī)逃逸行為發(fā)生的可能。因此,當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)惡意行為時(shí),需要將對應(yīng)惡意行為的數(shù)據(jù)信息進(jìn)行攔截,防止其進(jìn)入宿主機(jī)后利用宿主機(jī)的特權(quán)進(jìn)行操作;當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)非惡意行為時(shí),將對應(yīng)非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī),以便實(shí)現(xiàn)虛擬機(jī)和宿主機(jī)之間正常的信息共享和交互。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說明

通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1示出了本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的方法的流程圖;

圖2示出了本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的裝置的組成框圖;

圖3示出了本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的裝置的組成框圖。

具體實(shí)施方式

下面將參照附圖更加詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

虛擬化指的是將一個(gè)物理計(jì)算機(jī)劃分為一個(gè)或多個(gè)完全孤立的“虛擬機(jī)”。虛擬機(jī)提供的環(huán)境,看起來就像是獨(dú)立并存的數(shù)個(gè)計(jì)算機(jī),而實(shí)際上是在一個(gè)物理主機(jī)上模擬運(yùn)行的。在理想環(huán)境下,一個(gè)物理機(jī)內(nèi)的虛擬機(jī)之間并不允許互相交流,但是由于技術(shù)的限制和虛擬化軟件的一些程序漏洞,在虛擬機(jī)里運(yùn)行的數(shù)據(jù)信息能夠通過這些漏洞繞過底層,從而流向宿主機(jī)進(jìn)行運(yùn)行,當(dāng)這些逃逸的數(shù)據(jù)信息為對應(yīng)惡意行為的數(shù)據(jù)信息時(shí),會(huì)對宿主機(jī)和其他虛擬機(jī)的運(yùn)行造成危害,但是當(dāng)逃逸的數(shù)據(jù)信息為虛擬機(jī)與宿主機(jī)之間正常的信息共享和交互時(shí),就無需對這些數(shù)據(jù)信息進(jìn)行處理。

基于上述原因,本發(fā)明實(shí)施例提供了一種檢測虛擬機(jī)逃逸的方法,能夠在不影響虛擬機(jī)與宿主機(jī)之間正常的共享與交互的基礎(chǔ)上,有效的檢測出虛擬機(jī)逃逸行為。如圖1所示,該方法包括:

101、獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息。

在宿主機(jī)內(nèi)構(gòu)建虛擬機(jī)時(shí),需要利用宿主機(jī)的各種資源為每個(gè)虛擬機(jī)分配供其單獨(dú)使用的資源,如內(nèi)存資源、中央處理器(Central Processing Unit,簡稱CPU)資源,硬盤資源等。宿主機(jī)內(nèi)構(gòu)建的每個(gè)虛擬機(jī)都可以在自身的運(yùn)行環(huán)境下進(jìn)行數(shù)據(jù)操作。其中,宿主機(jī)擁有最高的權(quán)限,各個(gè)虛擬機(jī)之間的運(yùn)行互不干擾。當(dāng)某個(gè)虛擬機(jī)內(nèi)的數(shù)據(jù)信息逃出該虛擬機(jī)的運(yùn)行環(huán)境流入宿主機(jī)后,這樣的漏洞會(huì)被利用,從而利用宿主機(jī)的特權(quán)執(zhí)行惡意操作,給宿主機(jī)和其他虛擬機(jī)造成危害。因此,當(dāng)出現(xiàn)虛擬機(jī)內(nèi)的數(shù)據(jù)信息流入宿主機(jī)時(shí),這些數(shù)據(jù)信息通常被認(rèn)為具有潛在的危險(xiǎn),很可能是包含某些病毒、木馬等的惡意數(shù)據(jù)信息。本發(fā)明實(shí)施例對從虛擬機(jī)內(nèi)流向宿主機(jī)內(nèi)的數(shù)據(jù)信息統(tǒng)稱為異常數(shù)據(jù)信息,為了判斷虛擬機(jī)運(yùn)行環(huán)境下是否出現(xiàn)真正的虛擬機(jī)逃逸行為,本發(fā)明實(shí)施例需要執(zhí)行步驟101獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息。

102、通過預(yù)設(shè)的行為特征信息庫對所述異常數(shù)據(jù)信息進(jìn)行檢測。

當(dāng)在步驟101中獲取到虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息之后,就需要確定所述異常數(shù)據(jù)信息是否安全,也就是確定其是否為對應(yīng)惡意行為的數(shù)據(jù)信息。當(dāng)某些數(shù)據(jù)信息對應(yīng)的操作為執(zhí)行惡意行為時(shí),其操作結(jié)果或者執(zhí)行的惡意行為都會(huì)具有一些特征,本發(fā)明實(shí)施例稱為行為特征信息,惡意行為產(chǎn)生的行為特征信息與正常行為產(chǎn)生的行為特征信息通常不相同。因此,通過檢測虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息對應(yīng)的操作所產(chǎn)生的行為特征信息是否安全,就可以確定從虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息是否安全。為了檢測所述異常數(shù)據(jù)信息對應(yīng)的操作所產(chǎn)生的行為特征信息是否安全,本發(fā)明實(shí)施例提供了預(yù)設(shè)的行為特征信息庫,該行為特征信息庫中記錄了已知的各種惡意行為產(chǎn)生的行為特征信息,通過將所述異常數(shù)據(jù)信息對應(yīng)的操作產(chǎn)生的行為特征信息在預(yù)設(shè)的行為特征信息庫中進(jìn)行比對,就可以確定所述異常數(shù)據(jù)信息是否為對應(yīng)惡意行為的數(shù)據(jù)信息。

103、當(dāng)檢測所述異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息時(shí),將所述惡意行為的數(shù)據(jù)信息進(jìn)行攔截。

當(dāng)通過步驟102檢測到所述異常數(shù)據(jù)信息為對應(yīng)惡意行為的數(shù)據(jù)信息時(shí),本發(fā)明實(shí)施例需要將對應(yīng)惡意行為的異常數(shù)據(jù)信息進(jìn)行攔截,避免其流入宿主機(jī)后利用宿主機(jī)的特權(quán)執(zhí)行惡意行為,從而危害宿主機(jī)及其他虛擬機(jī)的安全。

104、當(dāng)檢測所述異常數(shù)據(jù)信息為非惡意行為的數(shù)據(jù)信息時(shí),將所述非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī)。

當(dāng)通過步驟102檢測到所述異常數(shù)據(jù)信息為對應(yīng)非惡意行為的數(shù)據(jù)信息時(shí),可以認(rèn)為對應(yīng)非惡意行為的異常數(shù)據(jù)信息是虛擬機(jī)與宿主機(jī)之間正常的信息共享和交互,從而無需對該異常數(shù)據(jù)信息進(jìn)行攔截,可以將獲取的該異常數(shù)據(jù)信息傳遞或放行至宿主機(jī),實(shí)現(xiàn)該虛擬機(jī)與宿主機(jī)之間正常的信息共享和交互。

本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的方法,通過將虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息與預(yù)設(shè)的行為特征信息庫進(jìn)行比對,來檢測虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息是否對應(yīng)惡意行為;由于虛擬機(jī)正常情況下只在自己的虛擬環(huán)境下進(jìn)行相關(guān)操作,當(dāng)有數(shù)據(jù)信息從虛擬機(jī)流入宿主機(jī)時(shí),會(huì)存在虛擬機(jī)逃逸行為發(fā)生的可能。因此,當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)惡意行為時(shí),需要將對應(yīng)惡意行為的數(shù)據(jù)信息進(jìn)行攔截,防止其進(jìn)入宿主機(jī)后利用宿主機(jī)的特權(quán)進(jìn)行操作;當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)非惡意行為時(shí),將對應(yīng)非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī),以便實(shí)現(xiàn)虛擬機(jī)和宿主機(jī)之間正常的信息共享和交互。

為了更好的對上述圖1及圖2所示的方法進(jìn)行理解,作為對上述實(shí)施方式的細(xì)化和擴(kuò)展,本發(fā)明實(shí)施例將以目前主流的基于Linux操作系統(tǒng)內(nèi)核的虛擬機(jī)(Kernel Based Virtual Machine,簡稱KVM)為例,結(jié)合圖1的步驟進(jìn)行詳細(xì)說明。

由于在正常的虛擬環(huán)境下,虛擬機(jī)的運(yùn)行通常被限制在自己的虛擬環(huán)境下,其內(nèi)部運(yùn)行的程序或者數(shù)據(jù)信息不會(huì)流入其他虛擬機(jī)或宿主機(jī)的運(yùn)行環(huán)境。當(dāng)某個(gè)虛擬機(jī)內(nèi)的數(shù)據(jù)信息繞過系統(tǒng)底層進(jìn)入宿主機(jī)后,很可能會(huì)被病毒或木馬利用而出現(xiàn)虛擬機(jī)逃逸行為,給宿主機(jī)和其他虛擬機(jī)造成危害。因此,要確定虛擬環(huán)境下是否發(fā)生真正的虛擬機(jī)逃逸行為,本發(fā)明實(shí)施例需要獲取虛擬機(jī)流向宿主機(jī)的數(shù)據(jù)信息,這些數(shù)據(jù)信息被稱為異常數(shù)據(jù)信息。以KVM虛擬機(jī)為例,當(dāng)虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息為一些執(zhí)行特權(quán)指令或者外部事件的數(shù)據(jù)信息,如I/O訪問、對宿主機(jī)控制寄存器的操作、MSR分區(qū)(Microsoft Reserved Partition,縮寫MSR)的讀寫數(shù)據(jù)包到達(dá)等,都會(huì)導(dǎo)致物理CPU發(fā)生虛擬機(jī)跳出(VMExit),將虛擬機(jī)操作系統(tǒng)保存到虛擬機(jī)控制結(jié)構(gòu)(Virtual Machine Control Structure,簡稱VMCS)中,通過讀取VMCS中的VM_EXIT_REASON字段得到引起VM Exit的原因。其中,VMCS是Intel-x中一個(gè)很重要的數(shù)據(jù)結(jié)構(gòu),它占用一個(gè)page頁面大小,記錄有各種由虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息,如CPU異常、I/O異常,內(nèi)存memory異常等。基于上述原因,本發(fā)明實(shí)施例在獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息時(shí),可以通過訪問虛擬機(jī)控制結(jié)構(gòu)中記錄有異常數(shù)據(jù)信息的頁表來獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息。

對于其他類型的虛擬機(jī)而言,如果虛擬機(jī)發(fā)生逃逸行為,那么該虛擬機(jī)的數(shù)據(jù)信息必須流入到宿主機(jī)時(shí)才能起作用,因此在獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息時(shí),可以在異常數(shù)據(jù)信息到達(dá)宿主機(jī)之前,對其進(jìn)行截獲。而鉤子(Hook)是Windows消息處理機(jī)制的一個(gè)平臺,應(yīng)用程序可以在上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)之前處理它。鉤子機(jī)制允許應(yīng)用程序截獲處理window消息或特定事件。因此,作為另一種可選的實(shí)施方式,本發(fā)明實(shí)施例還可以通過鉤子程序Hook在異常數(shù)據(jù)信息到達(dá)宿主機(jī)之前,截獲虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息。

由于在虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息中,并不完全都是對應(yīng)惡意行為或者具有漏洞、病毒、木馬等的數(shù)據(jù)信息,因此當(dāng)通過上述方式獲取到虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息之后,還需要檢測這些異常數(shù)據(jù)信息是否為對應(yīng)惡意行為的數(shù)據(jù)信息。在對虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息進(jìn)行檢測時(shí),主要是檢測該異常數(shù)據(jù)信息所對應(yīng)的操作是否是惡意操作。在通常情況下,惡意操作產(chǎn)生的結(jié)果與正常操作產(chǎn)生的結(jié)果并不相同,因此在確定惡意操作時(shí)可以根據(jù)其操作結(jié)果所具有的特性進(jìn)行判斷。本發(fā)明實(shí)施例將數(shù)據(jù)信息所對應(yīng)操作的操作結(jié)果所具有的特性稱為行為特征信息,因此,在檢測異常數(shù)據(jù)信息是否為對應(yīng)惡意行為的數(shù)據(jù)信息時(shí),可以通過預(yù)設(shè)的行為特征信息庫對異常數(shù)據(jù)信息進(jìn)行檢測,所述行為特征信息庫中包括目前為止已知的各種惡意行為的操作結(jié)果所產(chǎn)生的行為特征信息。而具體的檢測過程可以通過下述步驟執(zhí)行:

(1)在預(yù)設(shè)地址的空間內(nèi)模擬所述異常數(shù)據(jù)信息對應(yīng)的操作,所述預(yù)設(shè)地址的空間與宿主機(jī)內(nèi)核空間相隔離。

要通過預(yù)設(shè)的行為特征信息庫對異常數(shù)據(jù)信息進(jìn)行檢測,就需要得到該異常數(shù)據(jù)信息對應(yīng)操作的操作結(jié)果的行為特征信息,因此必須執(zhí)行該異常數(shù)據(jù)信息所對應(yīng)的操作。由于無法確定該異常數(shù)據(jù)信息是否對應(yīng)惡意行為,因此,在執(zhí)行該異常數(shù)據(jù)信息所對應(yīng)的操作時(shí),需要將其在與宿主機(jī)相隔離的環(huán)境下進(jìn)行操作?;谏鲜鲈颍景l(fā)明實(shí)施例提供了一種實(shí)施方式,可以在預(yù)設(shè)地址的空間內(nèi)模擬所述異常數(shù)據(jù)信息對應(yīng)的操作,所述預(yù)設(shè)地址的空間與宿主機(jī)內(nèi)核空間相隔離。以KVM虛擬機(jī)為例,當(dāng)獲取到虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息之后,可以將該異常數(shù)據(jù)信息發(fā)送給虛擬操作系統(tǒng)模擬器QEMU進(jìn)行模擬處理,QEMU代碼中包含整套的虛擬機(jī)實(shí)現(xiàn),包括處理器虛擬化、內(nèi)存虛擬化以及KVM需要使用到的虛擬設(shè)備模擬(網(wǎng)卡、顯卡、存儲控制器和硬盤等)。例如,當(dāng)虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息為對應(yīng)I/O操作時(shí),該異常數(shù)據(jù)信息會(huì)被交給QEMU來負(fù)責(zé)解析和模擬操作。由于QEMU與宿主機(jī)內(nèi)核處于隔離狀態(tài),因此在模擬異常數(shù)據(jù)信息對應(yīng)的操作時(shí),不會(huì)對宿主機(jī)的安全性造成影響。

(2)將操作結(jié)果對應(yīng)的行為特征信息在預(yù)設(shè)的行為特征信息庫中進(jìn)行比對,檢測所述異常數(shù)據(jù)信息是否為惡意行為的數(shù)據(jù)信息。

當(dāng)在預(yù)設(shè)地址的空間內(nèi)模擬出所述異常數(shù)據(jù)信息對應(yīng)的操作之后,可以獲取其操作結(jié)果所具有的行為特征信息,并將該行為特征信息在預(yù)設(shè)的行為特征信息庫中進(jìn)行比對,確定該行為特征信息是否對應(yīng)惡意行為。例如,以針對I/O操作為例,其正常執(zhí)行結(jié)果為讀寫一次寄存器,而針對該I/O操作具有某個(gè)特殊漏洞時(shí),其執(zhí)行結(jié)果為多次讀寫寄存器,因此當(dāng)對所述異常數(shù)據(jù)信息進(jìn)行模擬后發(fā)現(xiàn)其行為特征信息符合多次讀寫寄存器的行為特征信息時(shí),就可以確認(rèn)該異常數(shù)據(jù)信息為具有該特殊漏洞的數(shù)據(jù)信息。

具體的,在預(yù)設(shè)地址的空間內(nèi)模擬所述異常數(shù)據(jù)信息對應(yīng)的操作時(shí),需要調(diào)用處理函數(shù)將該異常數(shù)據(jù)信息調(diào)入預(yù)設(shè)地址的空間內(nèi)進(jìn)行處理。并且,在當(dāng)虛擬機(jī)內(nèi)的異常數(shù)據(jù)信息流入到宿主機(jī)時(shí),該異常數(shù)據(jù)信息會(huì)被記錄,并且記錄的內(nèi)容還包括數(shù)據(jù)信息類型、函數(shù)指針及其地址,用于將異常數(shù)據(jù)信息調(diào)入特定地址的函數(shù)指針中執(zhí)行該異常數(shù)據(jù)信息類型對應(yīng)的操作。由于本發(fā)明實(shí)施例需要在預(yù)設(shè)地址的空間內(nèi)模擬異常數(shù)據(jù)信息對應(yīng)的操作,因此需要獲取記錄異常數(shù)據(jù)信息對應(yīng)的函數(shù)指針的地址,通過改變其指針地址來將異常數(shù)據(jù)信息調(diào)入到預(yù)設(shè)地址的空間內(nèi)進(jìn)行執(zhí)行。本發(fā)明實(shí)施例將虛擬機(jī)的數(shù)據(jù)信息流入到宿主機(jī)時(shí)記錄的異常數(shù)據(jù)信息對應(yīng)的函數(shù)指針的地址稱為初始指針地址,將模擬異常數(shù)據(jù)信息對應(yīng)操作的空間的地址稱為檢測指針地址。具體執(zhí)行時(shí),需要讀取所述異常數(shù)據(jù)信息中記錄的數(shù)據(jù)信息類型及初始指針地址,并將所述初始指針地址更改為檢測指針地址,根據(jù)所述檢測指針地址跳轉(zhuǎn)到預(yù)設(shè)地址的空間內(nèi),執(zhí)行所述數(shù)據(jù)信息類型對應(yīng)的操作。例如,以KVM虛擬機(jī)為例,當(dāng)虛擬機(jī)流入宿主機(jī)的異常數(shù)據(jù)信息為寫某個(gè)端口時(shí),記錄的異常數(shù)據(jù)信息中會(huì)產(chǎn)生一條IO instruction,這時(shí)異常數(shù)據(jù)信息從虛擬機(jī)操作系統(tǒng)中退出并進(jìn)入內(nèi)核空間,由內(nèi)核空間調(diào)用kvm_vmx_exit_handlers[exit_reason](vcpu),kvm_vmx_exit_handlers是一個(gè)函數(shù)指針,由于ioport訪問產(chǎn)生的退出,所以選擇handle_io函數(shù)執(zhí)行。本發(fā)明實(shí)施例將kvm_vmx_exit_handlers的指針地址進(jìn)行更改,也就是將其初始指針地址變更為檢測指針地址,讓IO操作在原先的內(nèi)核空間內(nèi)執(zhí)行變?yōu)樵陬A(yù)設(shè)地址的空間內(nèi)進(jìn)行模擬執(zhí)行。由于該預(yù)設(shè)地址的空間與內(nèi)核空間相隔離,因此無論該IO操作是否對應(yīng)惡意行為,都不會(huì)對宿主機(jī)的安全性造成影響。

當(dāng)通過上述方式在預(yù)設(shè)地址的空間內(nèi)模擬出異常數(shù)據(jù)信息對應(yīng)的操作后,就可以獲取其操作結(jié)果所具有的行為特征信息,并將該行為特征信息在預(yù)設(shè)的行為特征信息庫中進(jìn)行比對,確定該行為特征信息是否與行為特征信息庫中記錄的惡意行為的行為特征信息相匹配。若兩者相匹配,則可以確定該異常數(shù)據(jù)信息為對應(yīng)惡意行為的數(shù)據(jù)信息;若兩者不匹配,則可以確定該異常數(shù)據(jù)信息為對應(yīng)非惡意行為的數(shù)據(jù)信息。

當(dāng)確定從虛擬機(jī)流入宿主機(jī)的異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息之后,就需要對該對應(yīng)惡意行為的異常數(shù)據(jù)信息進(jìn)行攔截,防止其進(jìn)入宿主機(jī)后利用宿主機(jī)的特權(quán)執(zhí)行惡意操作。由于流入宿主機(jī)的異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息,可以將其虛擬機(jī)認(rèn)為是發(fā)生逃逸行為的虛擬機(jī),因此,在將對應(yīng)惡意行為的異常數(shù)據(jù)信息進(jìn)行攔截之后,還可以發(fā)出系統(tǒng)警報(bào),報(bào)告發(fā)生逃逸行為的虛擬機(jī)的參數(shù)信息。進(jìn)一步的,可以將攔截的惡意行為的數(shù)據(jù)信息返回給發(fā)生逃逸行為的虛擬機(jī);或者,將攔截的惡意行為的數(shù)據(jù)信息在預(yù)設(shè)地址的空間內(nèi)進(jìn)行銷毀處理,防止惡意行為的數(shù)據(jù)信息發(fā)生擴(kuò)散。

進(jìn)一步的,作為對上述圖1所示方法的實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種檢測虛擬機(jī)逃逸的裝置,如圖2所示,該裝置包括:獲取單元21、檢測單元22、攔截單元23及傳遞單元24,其中,

獲取單元21,用于獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息;

檢測單元22,用于通過預(yù)設(shè)的行為特征信息庫對所述異常數(shù)據(jù)信息進(jìn)行檢測;

攔截單元23,用于當(dāng)檢測所述異常數(shù)據(jù)信息為惡意行為的數(shù)據(jù)信息時(shí),將所述惡意行為的數(shù)據(jù)信息進(jìn)行攔截;

傳遞單元24,用于當(dāng)檢測所述異常數(shù)據(jù)信息為非惡意行為的數(shù)據(jù)信息時(shí),將所述非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī)。

進(jìn)一步的,獲取單元21用于通過鉤子程序Hook截獲虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息;獲取單元21還用于通過訪問虛擬機(jī)控制結(jié)構(gòu)中記錄有異常數(shù)據(jù)信息的頁表來獲取虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息。

進(jìn)一步的,如圖3所示,檢測單元22包括:

模擬模塊221,用于在預(yù)設(shè)地址的空間內(nèi)模擬所述異常數(shù)據(jù)信息對應(yīng)的操作,所述預(yù)設(shè)地址的空間與宿主機(jī)內(nèi)核空間相隔離;

比對模塊222,用于將操作結(jié)果對應(yīng)的行為特征信息在預(yù)設(shè)的行為特征信息庫中進(jìn)行比對,檢測所述異常數(shù)據(jù)信息是否為惡意行為的數(shù)據(jù)信息。

進(jìn)一步的,模擬模塊221用于讀取所述異常數(shù)據(jù)信息中記錄的數(shù)據(jù)信息類型及初始指針地址,還用于將所述初始指針地址更改為檢測指針地址,還用于根據(jù)所述檢測指針地址跳轉(zhuǎn)到預(yù)設(shè)地址的空間內(nèi),執(zhí)行所述數(shù)據(jù)信息類型對應(yīng)的操作。

進(jìn)一步的,如圖3所示,裝置還包括:

銷毀單元25,用于將攔截的惡意行為的數(shù)據(jù)信息在預(yù)設(shè)地址的空間內(nèi)進(jìn)行銷毀處理;

傳遞單元24,用于將攔截的惡意行為的數(shù)據(jù)信息返回給所述虛擬機(jī)。

本發(fā)明實(shí)施例提供的一種檢測虛擬機(jī)逃逸的裝置,通過將虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息與預(yù)設(shè)的行為特征信息庫進(jìn)行比對,來檢測虛擬機(jī)流向宿主機(jī)的異常數(shù)據(jù)信息是否對應(yīng)惡意行為;由于虛擬機(jī)正常情況下只在自己的虛擬環(huán)境下進(jìn)行相關(guān)操作,當(dāng)有數(shù)據(jù)信息從虛擬機(jī)流入宿主機(jī)時(shí),會(huì)存在虛擬機(jī)逃逸行為發(fā)生的可能。因此,當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)惡意行為時(shí),需要將對應(yīng)惡意行為的數(shù)據(jù)信息進(jìn)行攔截,防止其進(jìn)入宿主機(jī)后利用宿主機(jī)的特權(quán)進(jìn)行操作;當(dāng)檢測到所述異常數(shù)據(jù)信息對應(yīng)非惡意行為時(shí),將對應(yīng)非惡意行為的數(shù)據(jù)信息傳遞至宿主機(jī),以便實(shí)現(xiàn)虛擬機(jī)和宿主機(jī)之間正常的信息共享和交互。

在上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。

在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。

類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。

本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。

本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的發(fā)明名稱(如確定網(wǎng)站內(nèi)鏈接等級的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。

應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
楚雄市| 崇信县| 读书| 河曲县| 偏关县| 龙山县| 西华县| 博湖县| 林周县| 利辛县| 新乡县| 阳谷县| 会宁县| 丰镇市| 建宁县| 视频| 南汇区| 深水埗区| 固始县| 扶余县| 松潘县| 灌阳县| 陆河县| 孟津县| 阜南县| 泗阳县| 承德市| 奉新县| 临泽县| 宁晋县| 长垣县| 民县| 葫芦岛市| 慈利县| 错那县| 尼木县| 台南市| 郁南县| 普兰店市| 湟中县| 新宁县|