本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種基于虛擬化硬件掃描的方法及裝置。
背景技術(shù):
隨著計算機技術(shù)的快速發(fā)展和大數(shù)據(jù)的需求,出現(xiàn)了新的計算機技術(shù)云技術(shù)。云技術(shù)是分布式處理、并行處理和網(wǎng)絡(luò)計算的發(fā)展,它是指在廣域網(wǎng)或者局域網(wǎng)內(nèi)將硬件、軟件和網(wǎng)絡(luò)等系列資源統(tǒng)一起來,實現(xiàn)數(shù)據(jù)的計算、儲存和共享的一種托管技術(shù)。
目前,云技術(shù)已經(jīng)觸及到多個行業(yè)云技術(shù),無論是云存儲、云音樂等服務(wù),還是金融、支付信息等都與云技術(shù)緊密相關(guān),其中虛擬化系統(tǒng)在云技術(shù)中的角色也越來越重要,而虛擬化系統(tǒng)運用的虛擬化技術(shù)的核心是虛擬機監(jiān)視器Hypervisor,它是一種運行在基礎(chǔ)物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可允許多個操作系統(tǒng)和應(yīng)用共享物理硬件。當服務(wù)器啟動并執(zhí)行Hypervisor時,它會加載所有虛擬機客戶端的操作系統(tǒng)同時會為虛擬機模擬虛擬化硬件以及給每一個虛擬機分配物理內(nèi)存等,使每一個虛擬機都是一個獨立的計算機系統(tǒng),彼此相互隔離,互不干擾的在同一個物理機上運行。
由于Hypervisor是通過軟件實現(xiàn)的,因此必然會存在漏洞,然而近年來又不斷爆出高危漏洞,給云安全帶來了巨大的挑戰(zhàn)。因此針對Hypervisor即虛擬化層的漏洞掃描是保證云安全急需解決的問題之一。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于虛擬化硬件掃描的方法及裝置。
為解決上述技術(shù)問題,一方面,本發(fā)明提供了一種基于虛擬化硬件掃描的方法,包括:
探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,所述虛擬化硬件為虛擬機的硬件;
接收所述數(shù)據(jù)交互端口返回的對應(yīng)所述預(yù)設(shè)操作指令的反饋結(jié)果;
根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層;
若能夠透到虛擬化層,則確定所述虛擬化層存在安全漏洞。
另一方面,本發(fā)明提供了一種基于虛擬化硬件掃描的裝置,包括:
操作單元,用于探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,所述虛擬化硬件為虛擬機的硬件;
接收單元,用于接收所述數(shù)據(jù)交互端口返回的對應(yīng)所述預(yù)設(shè)操作指令的反饋結(jié)果;
判斷單元,用于根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層;
第一確定單元,用于若能夠透到虛擬化層,則確定所述虛擬化層存在安全漏洞。
借由上述技術(shù)方案,本發(fā)明提供的基于虛擬化硬件掃描的方法及裝置,能夠首先探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬機的虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作;其次,接收由前述數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果;第三,根據(jù)反饋的結(jié)果判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,若能夠透到虛擬化層則表示虛擬層存在安全漏洞。與現(xiàn)有技術(shù)相比,本發(fā)明能夠通過對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作并根據(jù)數(shù)據(jù)交互端口返回的反饋結(jié)果來判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,并以此來確定虛擬化層是否存在安全漏洞。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種基于虛擬化硬件掃描的方法流程圖;
圖2示出了本發(fā)明實施例提供的另一種基于虛擬化硬件掃描的方法流程圖;
圖3示出了本發(fā)明實施例提供的又一種基于虛擬化硬件掃描的方法流程圖;
圖4示出了本發(fā)明實施例提供的一種基于虛擬化硬件掃描的裝置的組成框圖;
圖5示出了本發(fā)明實施例提供的另一種基于虛擬化硬件掃描的裝置的組成框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
為解決現(xiàn)有虛擬化層存在安全漏洞的問題,本發(fā)明實施例提供了一種基于虛擬化硬件掃描的方法,如圖1所示,該方法包括:
首先需要說明的是,以下實施例的應(yīng)用場景均為掃描虛擬化層即Hypervisor層中的安全漏洞,并且均是通過Hypervisor所在的物理機對應(yīng)的虛擬機作為掃描器,然后利用構(gòu)建的探測數(shù)據(jù)包進行掃描的過程。后續(xù)實施例紅不再重復(fù)說明。
101、探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作。
首先根據(jù)探測數(shù)據(jù)包中包含的預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作。虛擬化硬件包括虛擬顯卡、虛擬網(wǎng)卡等,對應(yīng)的數(shù)據(jù)交互端口主要是指輸入/輸出I/O端口等數(shù)據(jù)交互端口。本實施例中預(yù)設(shè)操作指令都是針對虛擬化硬件對應(yīng)的內(nèi)存的操作,包括讀寫操作等。其中,虛擬化硬件是由Hypervisor為虛擬機模擬的硬件。
另外,不同的虛擬化硬件都會映射出對應(yīng)的內(nèi)存地址,包括虛擬機地址和物理機地址,在虛擬機中可以看到對應(yīng)的內(nèi)存的虛擬機地址,而且也能夠根據(jù)虛擬機地址換算得到對應(yīng)的物理機地址。因此能夠在預(yù)設(shè)操作指令中指定想要進行操作的內(nèi)存地址,并對其進行對應(yīng)的操作。其中虛擬機地址是虛擬機定義的內(nèi)存地址,物理機地址是物理機定義的內(nèi)存地址,兩中地址之間有固定的換算方法。
需要說明的是,本實施例中的探測數(shù)據(jù)包不是網(wǎng)絡(luò)數(shù)據(jù)包。
102、接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果。
由步驟101可以看出,對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,主要是指指定具體的可以操作的內(nèi)存地址進行數(shù)據(jù)的讀取等操作,當預(yù)設(shè)操作指令執(zhí)行后,同一個數(shù)據(jù)交互端口會返回對應(yīng)的反饋結(jié)果。因此需要接收數(shù)據(jù)交互端口返回的反饋結(jié)果,不同的預(yù)設(shè)操作指令對應(yīng)不同的反饋結(jié)果。
103、根據(jù)反饋結(jié)果判斷是否能夠透到虛擬化層。
根據(jù)由步驟102接收到的由數(shù)據(jù)交互端口返回的反饋結(jié)果判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,對于不同的反饋結(jié)果會有不同的判斷方法。判斷探測數(shù)據(jù)包能否透到虛擬化層是為了進一步判斷虛擬化層是否存在安全漏洞的必要條件。
104、若能夠透到虛擬化層,則確定虛擬化層存在安全漏洞。
由于探測數(shù)據(jù)包是由虛擬機發(fā)出的也是對虛擬機對應(yīng)的虛擬硬件對應(yīng)的數(shù)據(jù)交互端口進行的操作,因此正常情況下探測數(shù)據(jù)包是不能透到虛擬化層的,即只能對虛擬機對應(yīng)的內(nèi)存地址進行讀寫等操作,并且返回的反饋結(jié)果也是與虛擬機的內(nèi)存相關(guān)的數(shù)據(jù)。正常情況下不能透到虛擬化層是由虛擬機本身的隔離性決定的,因為每個虛擬機都是獨立的一個計算機系統(tǒng),與物理機或者物理機上其他的虛擬機是互不干擾的運行的。雖然彼此之間可以進行網(wǎng)絡(luò)通信,但是虛擬機不應(yīng)該知道它們是在同一個物理機上運行的,這樣才能保證彼此的安全性。因此對于步驟103的判斷結(jié)果,若探測數(shù)據(jù)包能夠透到虛擬化層,則確定虛擬化層存在安全漏洞。因為若能透到虛擬化層則表明虛擬機知道除虛擬機以外的內(nèi)存,即虛擬機的隔離性不能滿足,而所有的虛擬機的虛擬化硬件以及內(nèi)存的分配都是由虛擬化層即Hypervisor通過軟件實現(xiàn)的,因此根據(jù)虛擬機隔離性不滿足的現(xiàn)象可以證明該虛擬化層存在安全漏洞。這種安全漏洞可能被攻擊者利用去操作虛擬機對應(yīng)的物理機,從而控制物理機上所有的虛擬機,導(dǎo)致所有虛擬機的安全受到危害。
本實施例提供的基于虛擬化硬件掃描的方法,能夠首先探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬機的虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作;其次,接收由前述數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果;第三,根據(jù)反饋的結(jié)果判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,若能夠透到虛擬化層則表示虛擬層存在安全漏洞。與現(xiàn)有技術(shù)相比,本實施例能夠通過對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作并根據(jù)數(shù)據(jù)交互端口返回的反饋結(jié)果來判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,并以此來確定虛擬化層是否存在安全漏洞。
進一步的,作為對圖1所示方法的細化及擴展,本發(fā)明另一實施例還給出了一種基于虛擬化硬件掃描的方法。如圖2所示,該方法包括:
201、向數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù)。
與圖1步驟101相同,本步驟也是向虛擬機的虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行寫操作,具體的是向數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù),其中預(yù)設(shè)數(shù)據(jù)可以任意設(shè)置。虛擬化硬件包括虛擬顯卡、虛擬網(wǎng)卡等,對應(yīng)的數(shù)據(jù)交互端口主要是指輸入/輸出I/O端口等數(shù)據(jù)交互端口。另外向?qū)?yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù)是通過向數(shù)據(jù)交互端口指定對應(yīng)內(nèi)存的虛擬機地址,虛擬機地址是可以在虛擬機中看到的。
另外需要強調(diào)的是數(shù)據(jù)交互端口對應(yīng)的內(nèi)存屬于虛擬機的內(nèi)存,虛擬機的內(nèi)存為Hypervisor為不同的虛擬機分配的內(nèi)存,是虛擬機運行時可以操作或者使用的內(nèi)存區(qū)域。
202、監(jiān)控虛擬機的內(nèi)存之外的第一預(yù)設(shè)內(nèi)存中是否出現(xiàn)預(yù)設(shè)數(shù)據(jù)。
在向數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù)的同時或者寫入預(yù)設(shè)數(shù)據(jù)之后監(jiān)控虛擬機的內(nèi)存之外的第一預(yù)設(shè)內(nèi)存,監(jiān)控的目的為監(jiān)測步驟201中寫入的預(yù)設(shè)數(shù)據(jù)是否會在第一預(yù)設(shè)內(nèi)存中出現(xiàn)。
另外在監(jiān)控虛擬機的內(nèi)存之外的第一內(nèi)存中是否出現(xiàn)預(yù)設(shè)數(shù)據(jù)之前需要確定第一預(yù)設(shè)內(nèi)存的虛擬機地址,將第一預(yù)設(shè)內(nèi)存的虛擬機地址告知數(shù)據(jù)交互端口。第一預(yù)設(shè)內(nèi)存的虛擬機地址可以根據(jù)物理機地址換算得到。
203、接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果。
接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果,具體的本步驟中的預(yù)設(shè)操作指令為上述步驟201與202,因此對應(yīng)的反饋結(jié)果為是否在第一預(yù)設(shè)內(nèi)存中出現(xiàn)寫入的預(yù)設(shè)數(shù)據(jù)。
204、若反饋結(jié)果為第一預(yù)設(shè)內(nèi)存中出現(xiàn)預(yù)設(shè)數(shù)據(jù),則確定能夠透到虛擬化層。
若反饋結(jié)果為第一預(yù)設(shè)內(nèi)存中出現(xiàn)寫入的預(yù)設(shè)數(shù)據(jù),則表示預(yù)設(shè)數(shù)據(jù)寫到了虛擬機對應(yīng)的內(nèi)存之外的內(nèi)存中。產(chǎn)生這種情況的原因可能為:當對應(yīng)數(shù)據(jù)交互端口對應(yīng)的內(nèi)存寫滿時,寫入的預(yù)設(shè)數(shù)據(jù)就會被寫入虛擬機的內(nèi)存之外的內(nèi)存中。
205、若能夠透到虛擬化層,則確定虛擬化層存在安全漏洞。
對于步驟204中可能情況只能在非正常的情況下產(chǎn)生,在沒有漏洞的正常情況下,由于虛擬機的隔離性,是不可能產(chǎn)生的。虛擬機的隔離性是指:每個虛擬機都是獨立的一個計算機系統(tǒng),與物理機或者物理機上其他的虛擬機是互不干擾的運行的。若出現(xiàn)了該種情況即探測數(shù)據(jù)包能夠透到虛擬化層,那么就可以確定虛擬化層存在安全漏洞,比如信息泄露等安全問題。
進一步的,作為對圖1所示方法的細化及擴展,本發(fā)明另一實施例還給出了一種基于虛擬化硬件掃描的方法。如圖3所示,該方法包括:
301、向數(shù)據(jù)交互端口發(fā)起獲取虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求。
與圖1步驟101相同,本步驟也是向虛擬機的虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行讀操作,具體為向數(shù)據(jù)交互端口發(fā)起獲取虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求,其中第二預(yù)設(shè)內(nèi)存可以自由設(shè)定。虛擬機的內(nèi)存為Hypervisor為不同的虛擬機分配的物理內(nèi)存,是虛擬機運行時可以操作或者使用的內(nèi)存區(qū)域。虛擬化硬件包括虛擬顯卡、虛擬網(wǎng)卡等,對應(yīng)的數(shù)據(jù)交互端口主要是指輸入/輸出I/O端口等數(shù)據(jù)交互端口。
另外獲取虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)是通過向數(shù)據(jù)交互端口指定第二預(yù)設(shè)內(nèi)存的虛擬機地址,因此在向數(shù)據(jù)交互端口發(fā)起請求前需要獲取第二預(yù)設(shè)內(nèi)存的虛擬機地址,虛擬機的內(nèi)存地址是將物理機地址根據(jù)固定的換算方法得到的。
302、接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果。
接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果,具體本步驟中預(yù)設(shè)操作指令為上述步驟301,因此對應(yīng)的反饋結(jié)果為:對于發(fā)起的獲取第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求是否能夠接收到對應(yīng)的數(shù)據(jù)。
303、若反饋結(jié)果為能夠接收到第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù),則確定能夠透到虛擬化層。
若反饋結(jié)果為能夠接收到由數(shù)據(jù)交互端口返回的第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù),則表示探測數(shù)據(jù)包能夠跨越到虛擬機的內(nèi)存之外的內(nèi)存中,證明能夠透到虛擬化層。
304、若能夠透到虛擬化層,則確定虛擬化層存在安全漏洞。
對于步驟303中可以讀到第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù)的現(xiàn)象,在正常沒有漏洞的情況下,由于虛擬機的隔離性,是不可能產(chǎn)生的。虛擬機的隔離性是指:每個虛擬機都是獨立的一個計算機系統(tǒng),與物理機或者物理機上其他的虛擬機是互不干擾的運行的。若出現(xiàn)了該種現(xiàn)象即探測數(shù)據(jù)包能夠透到虛擬化層,則證明虛擬化層存在安全漏洞。
進一步的,作為對上述各實施例的實現(xiàn),本發(fā)明實施例的另一實施例還提供了一種基于虛擬化硬件掃描的裝置,用于實現(xiàn)上述圖1、圖2及圖3所述的方法。如圖4所示,該裝置包括:操作單元41、接收單元42、判斷單元43以及第一確定單元44。
操作單元41,用于探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,虛擬化硬件為虛擬機的硬件;
接收單元42,用于接收數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果;
判斷單元43,用于根據(jù)反饋結(jié)果判斷是否能夠透到虛擬化層;
第一確定單元44,用于若能夠透到虛擬化層,則確定虛擬化層存在安全漏洞。
進一步的,如圖5所示,操作單元41,包括:
寫入模塊411,用于向數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù),內(nèi)存屬于虛擬機的內(nèi)存;
監(jiān)控模塊412,用于監(jiān)控虛擬機的內(nèi)存之外的第一預(yù)設(shè)內(nèi)存中是否出現(xiàn)預(yù)設(shè)數(shù)據(jù)。
進一步的,如圖5所示,操作單元41,進一步包括:
發(fā)起模塊413,用于向數(shù)據(jù)交互端口發(fā)起獲取虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求。
進一步的,判斷單元43用于:
若反饋結(jié)果為第一預(yù)設(shè)內(nèi)存中出現(xiàn)預(yù)設(shè)數(shù)據(jù),則確定能夠透到虛擬化層。
進一步的,判斷單元43用于:
若反饋結(jié)果為能夠接收到第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù),則確定能夠透到虛擬化層。
進一步的,如圖5所示,裝置進一步包括:
第二確定單元45,用于確定第一預(yù)設(shè)內(nèi)存或第二預(yù)設(shè)內(nèi)存的虛擬內(nèi)存地址和/或物理內(nèi)存地址。
本實施例提供的基于虛擬化硬件掃描的裝置,能夠首先探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬機的虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作;其次,接收由前述數(shù)據(jù)交互端口返回的對應(yīng)預(yù)設(shè)操作指令的反饋結(jié)果;第三,根據(jù)反饋的結(jié)果判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,若能夠透到虛擬化層則表示虛擬層存在安全漏洞。與現(xiàn)有技術(shù)相比,本實施例能夠通過對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作并根據(jù)數(shù)據(jù)交互端口返回的反饋結(jié)果來判斷探測數(shù)據(jù)包是否能夠透到虛擬化層,并以此來確定虛擬化層是否存在安全漏洞。
本發(fā)明的實施例公開了:
A1、一種基于虛擬化硬件掃描的方法,其特征在于,所述方法包括:
探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,所述虛擬化硬件為虛擬機的硬件;
接收所述數(shù)據(jù)交互端口返回的對應(yīng)所述預(yù)設(shè)操作指令的反饋結(jié)果;
根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層;
若能夠透到虛擬化層,則確定所述虛擬化層存在安全漏洞。
A2、根據(jù)A1所述的方法,其特征在于,所述探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,包括:
向所述數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù),所述內(nèi)存屬于所述虛擬機的內(nèi)存;
監(jiān)控所述虛擬機的內(nèi)存之外的第一預(yù)設(shè)內(nèi)存中是否出現(xiàn)所述預(yù)設(shè)數(shù)據(jù)。
A3、根據(jù)A1所述的方法,其特征在于,所述探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,包括:
向所述數(shù)據(jù)交互端口發(fā)起獲取所述虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求。
A4、根據(jù)A2所述的方法,其特征在于,所述根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層,包括:
若所述反饋結(jié)果為所述第一預(yù)設(shè)內(nèi)存中出現(xiàn)所述預(yù)設(shè)數(shù)據(jù),則確定能夠透到所述虛擬化層。
A5、根據(jù)A3所述的方法,其特征在于,所述根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層,包括:
若所述反饋結(jié)果為能夠接收到所述第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù),則確定能夠透到所述虛擬化層。
A6、根據(jù)A2或A3中任一所述方法,其特征在于所述方法進一步包括:
確定所述第一預(yù)設(shè)內(nèi)存或所述第二預(yù)設(shè)內(nèi)存的虛擬內(nèi)存地址和/或物理內(nèi)存地址。
B7、一種基于虛擬化硬件掃描的裝置,其特征在于,所述裝置包括:
操作單元,用于探測數(shù)據(jù)包根據(jù)預(yù)設(shè)操作指令對虛擬化硬件對應(yīng)的數(shù)據(jù)交互端口進行操作,所述虛擬化硬件為虛擬機的硬件;
接收單元,用于接收所述數(shù)據(jù)交互端口返回的對應(yīng)所述預(yù)設(shè)操作指令的反饋結(jié)果;
判斷單元,用于根據(jù)所述反饋結(jié)果判斷是否能夠透到虛擬化層;
第一確定單元,用于若能夠透到虛擬化層,則確定所述虛擬化層存在安全漏洞。
B8、根據(jù)B7所述的裝置,其特征在于,所述操作單元,包括:
寫入模塊,用于向所述數(shù)據(jù)交互端口對應(yīng)的內(nèi)存中寫入預(yù)設(shè)數(shù)據(jù),所述內(nèi)存屬于所述虛擬機的內(nèi)存;
監(jiān)控模塊,用于監(jiān)控所述虛擬機的內(nèi)存之外的第一預(yù)設(shè)內(nèi)存中是否出現(xiàn)所述預(yù)設(shè)數(shù)據(jù)。
B9、根據(jù)B7所述的裝置,其特征在于,所述操作單元,進一步包括:
發(fā)起模塊,用于向所述數(shù)據(jù)交互端口發(fā)起獲取所述虛擬機的內(nèi)存之外的第二預(yù)設(shè)內(nèi)存中數(shù)據(jù)的請求。
B10、根據(jù)B8所述的裝置,其特征在于,所述判斷單元用于:
若所述反饋結(jié)果為所述第一預(yù)設(shè)內(nèi)存中出現(xiàn)所述預(yù)設(shè)數(shù)據(jù),則確定能夠透到所述虛擬化層。
B11、根據(jù)B9所述的裝置,其特征在于,所述判斷單元用于:
若所述反饋結(jié)果為能夠接收到所述第二預(yù)設(shè)內(nèi)存中的數(shù)據(jù),則確定能夠透到所述虛擬化層。
B12、根據(jù)B8或B9中任一所述裝置,其特征在于所述裝置進一步包括:
第二確定單元,用于確定所述第一預(yù)設(shè)內(nèi)存或所述第二預(yù)設(shè)內(nèi)存的虛擬內(nèi)存地址和/或物理內(nèi)存地址。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的發(fā)明名稱(如基于虛擬化硬件掃描的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。