亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng)和方法與流程

文檔序號(hào):12786276閱讀:303來源:國(guó)知局
一種虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng)和方法與流程

本發(fā)明涉及虛擬機(jī)安全監(jiān)控技術(shù)領(lǐng)域,具體涉及一種虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng)和方法。



背景技術(shù):

虛擬化技術(shù)是云計(jì)算平臺(tái)的核心技術(shù)之一,隨著云計(jì)算服務(wù)的大量應(yīng)用,云計(jì)算平臺(tái)中的安全成為關(guān)注焦點(diǎn)。一般情況下,部署在云上的關(guān)鍵業(yè)務(wù)需要長(zhǎng)時(shí)間運(yùn)行,為用戶提供服務(wù),而業(yè)務(wù)的安全性、穩(wěn)定性和可用性則是保證服務(wù)質(zhì)量的關(guān)鍵需求。一方面,虛擬機(jī)操作系統(tǒng)作為關(guān)鍵業(yè)務(wù)的載體,存在不同程度的安全缺陷,如系統(tǒng)配置、代碼漏洞等;另一方面,關(guān)鍵業(yè)務(wù)自身代碼也存在漏洞等。惡意軟件可以利用操作系統(tǒng)和業(yè)務(wù)系統(tǒng)的漏洞修改關(guān)鍵業(yè)務(wù)代碼,以偽裝自身存在、竊取敏感數(shù)據(jù)等,嚴(yán)重威脅關(guān)鍵業(yè)務(wù)的穩(wěn)定運(yùn)行。因此,盡早發(fā)現(xiàn)針對(duì)關(guān)鍵業(yè)務(wù)的篡改,有必要對(duì)虛擬機(jī)進(jìn)程代碼完整性進(jìn)度量。

現(xiàn)代操作系統(tǒng)一般采用分頁(yè)機(jī)制實(shí)現(xiàn)內(nèi)存管理,為用戶態(tài)進(jìn)程分配連續(xù)的邏輯地址空間,但以物理頁(yè)為單位,采用按需分配的方式動(dòng)態(tài)分配物理內(nèi)存,只加載需要立即訪問的代碼或數(shù)據(jù)。完整性驗(yàn)證流程一般包括度量和驗(yàn)證兩個(gè)部分:度量部分負(fù)責(zé)收集系統(tǒng)內(nèi)部信息并發(fā)送到驗(yàn)證部分;驗(yàn)證部分負(fù)責(zé)保存原始基值,并與接收的度量信息進(jìn)行比較以驗(yàn)證完整性。在云環(huán)境下針對(duì)虛擬機(jī)系統(tǒng)進(jìn)行度量的方法中,根據(jù)度量部分的部署位置,可以分為兩類:一類是將度量部分部署在虛擬機(jī)中;另一類是將度量部分部署在Hypervisor中。

第一類方法可以獲取豐富的虛擬機(jī)系統(tǒng)信息,但存在缺陷:1)依賴目標(biāo)虛擬機(jī)版本,通用性不強(qiáng);2)易受虛擬機(jī)內(nèi)部惡意軟件的攻擊,需要Hypervisor提供額外的防護(hù)措施,增加了系統(tǒng)的復(fù)雜性。第二類方法利用Hypervisor具有的高特權(quán)級(jí)和隔離性,避免度量部分受到來自虛擬機(jī)的惡意攻擊,但同時(shí)也面臨挑戰(zhàn):虛擬機(jī)為內(nèi)部進(jìn)程動(dòng)態(tài)分配物理內(nèi)存并加載代碼或數(shù)據(jù),處于Hypervisor的度量部分難以完整地獲取虛擬機(jī)進(jìn)程代碼或數(shù)據(jù)并對(duì)其進(jìn)行完整性驗(yàn)證。



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

針對(duì)上述問題,本發(fā)明的目的在于提供一種能夠?qū)μ摂M機(jī)進(jìn)程完整性進(jìn)行度量的虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng)和方法,以解決虛擬機(jī)動(dòng)態(tài)分配內(nèi)存方式導(dǎo)致Hypervisor無法度量完整虛擬機(jī)進(jìn)程代碼段的問題。技術(shù)方案如下:

一種虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng),包括捕獲模塊、度量模塊、基值庫(kù)、對(duì)比模塊和日志;

捕獲模塊在Hypervisor層設(shè)置度量點(diǎn),捕獲虛擬機(jī)中發(fā)生的系統(tǒng)事件;捕獲到系統(tǒng)事件后,采用VMI(Virtual Machine Introspection虛擬機(jī)內(nèi)?。┘夹g(shù)進(jìn)行語義重構(gòu),獲取虛擬機(jī)當(dāng)前執(zhí)行進(jìn)程的進(jìn)程信息,并將進(jìn)程信息傳遞到度量模塊;

度量模塊接收捕獲模塊傳遞的虛擬機(jī)進(jìn)程信息,以虛擬機(jī)物理頁(yè)大小為單位,將虛擬機(jī)進(jìn)程代碼段劃分為多個(gè)代碼頁(yè),生成每個(gè)代碼頁(yè)的頁(yè)信息;根據(jù)頁(yè)信息,判斷代碼頁(yè)是否被加載進(jìn)入虛擬機(jī)物理內(nèi)存中:若被加載入虛擬機(jī)物理內(nèi)存中,則度量此代碼頁(yè),生成代碼頁(yè)度量信息;若未被加載入虛擬機(jī)物理內(nèi)存中,則忽略此代碼頁(yè)的度量;并將生成代碼頁(yè)度量信息傳遞到對(duì)比模塊;

基值庫(kù)為存儲(chǔ)所有的虛擬機(jī)進(jìn)程代碼頁(yè)的度量基值信息的列表;

對(duì)比模塊接收度量模塊傳遞的度量信息,讀取基值庫(kù)中的基值信息;將度量信息與基值信息進(jìn)行對(duì)比,并將對(duì)比信息寫入日志中;

日志用于接收并記錄度量對(duì)比傳送的對(duì)比信息。

進(jìn)一步的,所述度量點(diǎn)為觸發(fā)Hypervisor層度量過程的虛擬機(jī)系統(tǒng)事件。

更進(jìn)一步的,所述系統(tǒng)事件為虛擬機(jī)系統(tǒng)中引發(fā)虛擬機(jī)退出事件的系統(tǒng)行為,包括但不限于進(jìn)程系統(tǒng)調(diào)用、進(jìn)程切換、缺頁(yè)異常。

更進(jìn)一步的,所述進(jìn)程信息為Hypervisor度量虛擬機(jī)進(jìn)程代碼所需的基本信息,包括但不限于虛擬機(jī)進(jìn)程名稱、虛擬機(jī)進(jìn)程代碼起始地址、虛擬機(jī)進(jìn)程代碼長(zhǎng)度;所述虛擬機(jī)進(jìn)程代碼起始地址是被度量虛擬機(jī)進(jìn)程代碼的虛擬地址。

更進(jìn)一步的,所述頁(yè)信息為Hypervisor度量虛擬機(jī)進(jìn)程代碼頁(yè)所需的基本信息,包括但不限于虛擬機(jī)進(jìn)程名稱、頁(yè)編號(hào)、頁(yè)起始地址和頁(yè)長(zhǎng)度;所述頁(yè)起始地址是虛擬機(jī)進(jìn)程代碼頁(yè)的虛擬地址。

更進(jìn)一步的,所述度量信息為對(duì)比模塊執(zhí)行對(duì)比過程所需的基本信息,包括但不限于虛擬機(jī)進(jìn)程名稱、代碼頁(yè)編號(hào)、代碼頁(yè)度量值和代碼頁(yè)長(zhǎng)度。

更進(jìn)一步的,所述基值信息為代碼頁(yè)在正常狀態(tài)下的可信度量信息,可信度量信息包括但不限于進(jìn)程名、代碼頁(yè)編號(hào)和代碼頁(yè)度量值。

更進(jìn)一步的,所述對(duì)比信息為虛擬機(jī)進(jìn)程代碼頁(yè)度量值與虛擬機(jī)進(jìn)程代碼頁(yè)基值信息的對(duì)比結(jié)果,包括但不限于進(jìn)程名、代碼頁(yè)編號(hào)、度量值、基值、對(duì)比結(jié)果、對(duì)比時(shí)間。

一種虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量方法,包括以下步驟:

A:在虛擬機(jī)運(yùn)行過程中,進(jìn)程通過系統(tǒng)調(diào)用陷入指令訪問內(nèi)核系統(tǒng)調(diào)用處理程序;

B:虛擬機(jī)在調(diào)用系統(tǒng)調(diào)用陷入指令訪問內(nèi)核系統(tǒng)調(diào)用處理程序時(shí),產(chǎn)生虛擬機(jī)退出事件;

C:捕獲模塊捕獲虛擬機(jī)中產(chǎn)生的虛擬機(jī)退出事件,并通過VMI技術(shù)重構(gòu)虛擬機(jī)進(jìn)程語義信息,再傳遞到度量模塊;

D:度量模塊接收到虛擬機(jī)進(jìn)程信息后,根據(jù)虛擬機(jī)進(jìn)程代碼起始地址和虛擬機(jī)進(jìn)程代碼長(zhǎng)度,以虛擬機(jī)物理頁(yè)大小劃分多個(gè)代碼頁(yè),并生成頁(yè)信息;再根據(jù)頁(yè)信息中的虛擬機(jī)進(jìn)程代碼頁(yè)編號(hào)和虛擬機(jī)進(jìn)程代碼頁(yè)起始地址,訪問虛擬機(jī)物理內(nèi)存判斷代碼頁(yè)是否被加載;若被加載,則對(duì)代碼頁(yè)進(jìn)行度量,生成度量信息傳遞到對(duì)比模塊;若未被加載,則忽略此代碼頁(yè)的度量過程;

E:對(duì)比模塊對(duì)比接收到的度量信息和從基值庫(kù)中讀取的基值信息,并將對(duì)比信息傳遞到日志中;恢復(fù)虛擬機(jī)系統(tǒng)調(diào)用處理程序的執(zhí)行;

F:系統(tǒng)調(diào)用處理程序在虛擬機(jī)內(nèi)核中按照正常流程繼續(xù)執(zhí)行,執(zhí)行完畢后調(diào)用系統(tǒng)調(diào)用退出指令恢復(fù)進(jìn)程的正常運(yùn)行。

本發(fā)明的有益效果是:

(1)本發(fā)明將虛擬機(jī)進(jìn)程代碼劃分為多個(gè)頁(yè),并對(duì)被加載進(jìn)入虛擬機(jī)內(nèi)存的代碼頁(yè)進(jìn)行度量,解決了虛擬機(jī)動(dòng)態(tài)分配內(nèi)存方式導(dǎo)致Hypervisor無法度量完整虛擬機(jī)進(jìn)程代碼的問題;

(2)本發(fā)明將度量流程部署在Hypervisor層,采用無代理的方式透明、動(dòng)態(tài)地度量虛擬機(jī)進(jìn)程代碼,無需修改虛擬機(jī)內(nèi)核;同時(shí),度量流程位于虛擬機(jī)之外,避免了虛擬機(jī)內(nèi)部惡意軟件的攻擊,提升了安全性;

(3)本發(fā)明采用的度量方式,可以用于度量虛擬機(jī)其他信息,包括但不限于虛擬機(jī)內(nèi)核靜態(tài)數(shù)據(jù)、虛擬機(jī)進(jìn)程靜態(tài)數(shù)據(jù)等。

附圖說明

圖1為本發(fā)明非代理虛擬機(jī)進(jìn)程系統(tǒng)調(diào)用行為監(jiān)控方法框圖。

圖2為本發(fā)明透明捕獲虛擬機(jī)系統(tǒng)調(diào)用流程圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步地詳細(xì)描述。本系統(tǒng)的實(shí)現(xiàn)原理如下:

在Hypervisor層設(shè)置度量點(diǎn),攔截虛擬機(jī)進(jìn)程引發(fā)的系統(tǒng)事件,利用VMI技術(shù)讀取虛擬機(jī)進(jìn)程信息。根據(jù)讀取的虛擬機(jī)進(jìn)程信息,以虛擬機(jī)物理頁(yè)為單位,將虛擬機(jī)進(jìn)程代碼劃分為多個(gè)代碼頁(yè),確定每個(gè)代碼頁(yè)的編號(hào)和起始地址。在Hypervisor層根據(jù)每個(gè)代碼頁(yè)的起始地址,判斷每個(gè)代碼頁(yè)是否被加載進(jìn)入虛擬機(jī)物理內(nèi)存中;若代碼頁(yè)被加載進(jìn)入虛擬機(jī)物理內(nèi)存中,則在Hypervisor層度量此代碼頁(yè);若未被加載進(jìn)入虛擬機(jī)物理內(nèi)存中,則忽略對(duì)此代碼頁(yè)的度量。根據(jù)進(jìn)程信息、代碼頁(yè)編號(hào)和度量值,讀取基值庫(kù)中相應(yīng)的基值并進(jìn)行對(duì)比,驗(yàn)證每個(gè)代碼頁(yè)的完整性,并記錄到日志中。

如圖1所示,本實(shí)施例的虛擬機(jī)進(jìn)程代碼的無代理分頁(yè)式度量系統(tǒng)包括捕獲模塊、度量模塊、基值庫(kù)、對(duì)比模塊和日志。

1)捕獲模塊在Hypervisor層設(shè)置度量點(diǎn),捕獲虛擬機(jī)中發(fā)生的系統(tǒng)事件;捕獲到系統(tǒng)事件后,采用VMI技術(shù)進(jìn)行語義重構(gòu),獲取虛擬機(jī)當(dāng)前執(zhí)行進(jìn)程的進(jìn)程信息,并將進(jìn)程信息傳遞到度量模塊。

本實(shí)施例中,度量點(diǎn)為觸發(fā)Hypervisor層度量過程的虛擬機(jī)系統(tǒng)事件。系統(tǒng)事件為虛擬機(jī)系統(tǒng)中引發(fā)虛擬機(jī)退出事件的進(jìn)程行為,包括但不限于進(jìn)程系統(tǒng)調(diào)用、進(jìn)程切換、缺頁(yè)異常等。

所述進(jìn)程信息是Hypervisor度量虛擬機(jī)進(jìn)程代碼所需的基本信息,包括但不限于虛擬機(jī)進(jìn)程名稱、虛擬機(jī)進(jìn)程代碼起始地址、虛擬機(jī)進(jìn)程代碼長(zhǎng)度等。其中,虛擬機(jī)進(jìn)程代碼起始地址是被度量虛擬機(jī)進(jìn)程代碼的虛擬地址。

可采用如下方式定義進(jìn)程信息:

name address size

該信息表明,虛擬機(jī)進(jìn)程名稱為name,虛擬機(jī)進(jìn)程代碼段的起始地址為address,虛擬機(jī)代碼段的長(zhǎng)度為size。

2)度量模塊接收捕獲模塊傳遞的虛擬機(jī)進(jìn)程信息,以虛擬機(jī)物理頁(yè)大小為單位,將虛擬機(jī)進(jìn)程代碼劃分為多個(gè)代碼頁(yè),生成每個(gè)代碼頁(yè)的頁(yè)信息;根據(jù)頁(yè)信息,判斷代碼頁(yè)是否被加載進(jìn)入虛擬機(jī)物理內(nèi)存中:若被加載入虛擬機(jī)物理內(nèi)存中,則度量此代碼頁(yè),生成代碼頁(yè)度量信息;若未被加載入虛擬機(jī)物理內(nèi)存中,則忽略此代碼頁(yè)的度量;并將生成代碼頁(yè)度量信息傳遞到對(duì)比模塊。

所述頁(yè)信息是Hypervisor度量虛擬機(jī)進(jìn)程代碼頁(yè)所需的基本信息集合,包括但不限于虛擬機(jī)進(jìn)程名稱、頁(yè)編號(hào)、頁(yè)起始地址和頁(yè)長(zhǎng)度等。其中,頁(yè)起始地址是虛擬機(jī)進(jìn)程代碼頁(yè)的虛擬地址。

可采用如下方式定義頁(yè)信息:

name number page_address page_size

該信息表明,虛擬機(jī)進(jìn)程名稱為name,虛擬機(jī)進(jìn)程代碼頁(yè)的編號(hào)為number,虛擬機(jī)進(jìn)程代碼頁(yè)的起始地址為page_address,虛擬機(jī)進(jìn)程代碼頁(yè)的長(zhǎng)度為page_size。

所述度量信息是對(duì)比模塊執(zhí)行對(duì)比過程所需的基本信息集合,包括但不限于虛擬機(jī)進(jìn)程名稱、代碼頁(yè)編號(hào)、代碼頁(yè)度量值和代碼頁(yè)度量長(zhǎng)度等。

可采用如下方式定義度量信息:

name number hash(value) page_size

該信息表明,虛擬機(jī)進(jìn)程名稱為name,虛擬機(jī)進(jìn)程代碼頁(yè)的編號(hào)為number,虛擬機(jī)進(jìn)程代碼頁(yè)的度量值為hash(value),虛擬機(jī)進(jìn)程代碼頁(yè)的長(zhǎng)度為page_size。

3)基值庫(kù)為存儲(chǔ)所有的虛擬機(jī)進(jìn)程代碼頁(yè)的度量基值信息的列表。基值庫(kù)包括但不限于文件、數(shù)據(jù)庫(kù)等形式存在,基值信息的獲取方式包括在純凈操作系統(tǒng)中,對(duì)正常狀態(tài)下的進(jìn)程代碼段進(jìn)行分頁(yè)式度量。

所述基值信息為代碼頁(yè)在正常狀態(tài)下的可信度量信息,可信度量信息包括但不限于進(jìn)程名、代碼頁(yè)編號(hào)和代碼頁(yè)度量值等。

4)對(duì)比模塊接收度量模塊傳遞的度量信息,讀取基值庫(kù)中的基值信息;將度量信息與基值信息進(jìn)行對(duì)比,并將對(duì)比信息寫入日志中。

5)日志用于接收并記錄對(duì)比模塊傳送的對(duì)比信息。

所述對(duì)比信息是虛擬機(jī)進(jìn)程代碼頁(yè)度量值與虛擬機(jī)進(jìn)程代碼頁(yè)基值信息的對(duì)比結(jié)果,包括但不限于進(jìn)程名、代碼頁(yè)編號(hào)、度量值、基值、對(duì)比結(jié)果、對(duì)比時(shí)間等。

可采用如下方式定義對(duì)比信息:

name number hash(value) baseline result time

該信息表明,虛擬機(jī)進(jìn)程名稱為name,虛擬機(jī)進(jìn)程代碼頁(yè)的編號(hào)為number,虛擬機(jī)進(jìn)程代碼頁(yè)的度量值為hash(value),虛擬機(jī)進(jìn)程代碼頁(yè)的基值為baseline,對(duì)比結(jié)果為result,對(duì)比時(shí)間為time。

各模塊間的數(shù)據(jù)流轉(zhuǎn)如下:

1)在虛擬機(jī)啟動(dòng)前,捕獲模塊在Hypervisor設(shè)置度量點(diǎn);在虛擬機(jī)運(yùn)行過程中,攔截設(shè)置模塊捕獲虛擬機(jī)中發(fā)生的系統(tǒng)事件,利用VMI讀取虛擬機(jī)當(dāng)前執(zhí)行進(jìn)程的進(jìn)程信息,并傳遞到度量模塊中。

2)度量模塊接收捕獲模塊傳遞的進(jìn)程信息;根據(jù)進(jìn)程信息中的虛擬機(jī)進(jìn)程名稱、虛擬機(jī)代碼段起始地址和虛擬機(jī)代碼段長(zhǎng)度信息,按虛擬機(jī)物理頁(yè)大小進(jìn)行分頁(yè)操作,并生成頁(yè)信息;根據(jù)頁(yè)信息中的虛擬機(jī)代碼頁(yè)編號(hào)和虛擬機(jī)代碼頁(yè)起始地址,分別判定代碼頁(yè)是否被加載進(jìn)入虛擬機(jī)物理內(nèi)存中:若被加載,則讀取代碼頁(yè)并進(jìn)行度量,生成代碼頁(yè)度量信息;若未被加載,則忽略此頁(yè)的度量過程;將生成的代碼頁(yè)度量信息傳遞到對(duì)比模塊。

3)基值庫(kù)為對(duì)比模塊提供虛擬機(jī)進(jìn)程代碼頁(yè)的基值信息。

4)對(duì)比模塊接收度量模塊傳遞的度量信息;根據(jù)度量信息中的虛擬機(jī)進(jìn)程名稱和虛擬機(jī)進(jìn)程代碼頁(yè)編號(hào),基值庫(kù)中索引對(duì)應(yīng)的基值信息;根據(jù)度量信息中的虛擬機(jī)進(jìn)程代碼頁(yè)度量值與基值進(jìn)行對(duì)比;將對(duì)比信息結(jié)果寫入日志。

5)日志接收對(duì)比模塊傳遞的對(duì)比信息。

基于上述度量系統(tǒng),本實(shí)施例公開的虛擬機(jī)進(jìn)程代碼的分頁(yè)式度量方法如圖2的流程圖所示,步驟如下:

A:在虛擬機(jī)運(yùn)行過程中,進(jìn)程通過系統(tǒng)調(diào)用陷入指令訪問內(nèi)核系統(tǒng)調(diào)用處理程序;

B:虛擬機(jī)在調(diào)用系統(tǒng)調(diào)用陷入指令訪問內(nèi)核系統(tǒng)調(diào)用處理程序時(shí),產(chǎn)生虛擬機(jī)退出事件;

C:捕獲模塊捕獲虛擬機(jī)中產(chǎn)生的虛擬機(jī)退出事件,并通過VMI技術(shù)重構(gòu)虛擬機(jī)進(jìn)程語義信息,再傳遞到度量模塊;

D:度量模塊接收到虛擬機(jī)進(jìn)程信息后,根據(jù)虛擬機(jī)進(jìn)程代碼起始地址和虛擬機(jī)進(jìn)程代碼長(zhǎng)度,以虛擬機(jī)物理頁(yè)大小劃分多個(gè)代碼頁(yè),并生成頁(yè)信息;再根據(jù)頁(yè)信息中的虛擬機(jī)進(jìn)程代碼頁(yè)編號(hào)和虛擬機(jī)進(jìn)程代碼頁(yè)起始地址,訪問虛擬機(jī)物理內(nèi)存判斷代碼頁(yè)是否被加載;若被加載,則對(duì)代碼頁(yè)進(jìn)行度量,生成度量信息傳遞到對(duì)比模塊;若未被加載,則忽略此代碼頁(yè)的度量過程;

E:對(duì)比模塊對(duì)比接收到的度量信息和從基值庫(kù)中讀取的基值信息,并將對(duì)比信息傳遞到日志中;恢復(fù)虛擬機(jī)系統(tǒng)調(diào)用處理程序的執(zhí)行;

F:系統(tǒng)調(diào)用處理程序在虛擬機(jī)內(nèi)核中按照正常流程繼續(xù)執(zhí)行,執(zhí)行完畢后調(diào)用系統(tǒng)調(diào)用退出指令恢復(fù)進(jìn)程的正常運(yùn)行。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1