一種虛擬機的度量方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機安全領(lǐng)域,特別涉及一種虛擬機的度量方法及裝置。
【背景技術(shù)】
[0002]隨著計算機技術(shù)的不斷發(fā)展與壯大,服務(wù)器的應(yīng)用范圍越來越廣泛,服務(wù)器一般通過虛擬化技術(shù),在一個服務(wù)器主機上構(gòu)建多個虛擬機,多個虛擬機公用服務(wù)器主機上的物理設(shè)備,供多個用戶進行使用,用戶通過虛擬機進行相應(yīng)的數(shù)據(jù)計算及處理。由于虛擬機具有安全威脅多樣化、遭受攻擊頻率高以及難以檢測與預防等特點,所以虛擬機的安全性是亟待解決的一個技術(shù)問題。
[0003]目前,針對虛擬機的度量方法,主要是通過在虛擬機創(chuàng)建過程中對虛擬機鏡像文件進行度量,保證虛擬機鏡像文件未被篡改。
[0004]針對于現(xiàn)有技術(shù)對虛擬機進行度量的方法,僅在虛擬機運行前對其完整性進行度量,這樣只能保證虛擬機的正常啟動,但是在虛擬機啟動后,在運行過程中,虛擬機中運行軟件的種類及各個軟件的運行狀況不受控制,惡意軟件很可能對虛擬機進行破壞,或盜取用戶的關(guān)鍵信息,因此,虛擬機的安全性較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種虛擬機的度量方法及裝置,能夠提高虛擬機的安全性。
[0006]本發(fā)明實施例提供了一種虛擬機的度量方法,該方法包括:
[0007]配置待度量文件及白名單;
[0008]構(gòu)建位于所述白名單中的各個白名單軟件對應(yīng)的行為信息基;
[0009]通過在虛擬機啟動過程中對其內(nèi)核文件及所述待度量文件進行度量,判斷所述內(nèi)核文件及待度量文件是否可信;
[0010]每隔設(shè)定的第一間隔時間,獲取所述虛擬機中當前處于運行狀態(tài)的進程及內(nèi)存信息;
[0011]根據(jù)所述當前處于運行狀態(tài)的進程及內(nèi)存信息,判斷所述虛擬機上是否有位于所述白名單之外的軟件運行;
[0012]每隔設(shè)定的第二間隔時間,獲取處于運行狀態(tài)的各個所述白名單軟件的軟件行為,通過與對應(yīng)的行為信息基進行比對,判斷所述各個白名單軟件是否運行正常。
[0013]優(yōu)選地,所述構(gòu)建位于所述白名單內(nèi)的中個白名單軟件對應(yīng)的行為信息基包括:
[0014]通過收集所述各個白名單軟件的行為信息,構(gòu)建位于所述白名單中的各個白名單軟件對應(yīng)的行為信息基,其中,所述行為信息基包括軟件行為標識、行為主機、行為客體、行為輸入輸出中的任意一個或多個。
[0015]優(yōu)選地,所述通過在虛擬機啟動過程中對其內(nèi)核文件及所述待度量文件進行度量,判斷所述內(nèi)核文件及待度量文件是否可信包括:
[0016]在所述虛擬機啟動過程中,對所述虛擬機的內(nèi)核文件及所述待度量文件進行哈希計算,將計算結(jié)果與各自對應(yīng)的基線值進行比對,如果所述計算結(jié)果與對應(yīng)的基線值相同,則所述內(nèi)核文件及待度量文件是可信的,否則不可信。
[0017]優(yōu)選地,所述獲取所述虛擬機中當前處于運行狀態(tài)的進程及內(nèi)存信息包括:
[0018]通過虛擬機自省技術(shù)VMI的程序庫LibVMI,利用系統(tǒng)的system, map文件找到所述虛擬機的內(nèi)核虛擬地址,內(nèi)核頁目錄映射到正確的頁表Page Table,Page Table映射到正確的數(shù)據(jù)頁地址Date Page,虛擬機VMM組件將數(shù)據(jù)頁返回給LibVMI,最后由LibVMI將數(shù)據(jù)表指針及偏移量返回給VMI組件,獲取到所述虛擬機中當前運行的進程及內(nèi)存信息。
[0019]優(yōu)選地,所述根據(jù)所述當前處于運行狀態(tài)的進程及內(nèi)存信息,判斷所述虛擬機上是否有位于所述白名單之外的軟件運行包括:
[0020]通過對所述虛擬機當前運行的各個進程及內(nèi)存信息進行哈希計算,獲取各個進程及內(nèi)存信息對應(yīng)的當前計算結(jié)果,分別將各個所述當前計算結(jié)果與獲取的所述各個白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值進行對比,如果至少存在一個所述當前計算結(jié)果,與任意一個所述白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值均不相同,則所述虛擬機上有位于所述白名單之外的軟件運行,否則所述虛擬機上沒有位于所述白名單之外的軟件運行。
[0021]優(yōu)選地,
[0022]所述配置待度量文件及白名單包括:在遠程證明服務(wù)器上配置所述待度量文件及所述白名單;
[0023]所述構(gòu)建位于所述白名單中的各個白名單軟件對應(yīng)的行為信息基包括:在所述遠程證明服務(wù)器上構(gòu)建所述白名單中的各個白名單軟件對應(yīng)的行為信息基;
[0024]所述分別將各個所述當前計算結(jié)果與構(gòu)建的所述各個白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值進行對比包括:將所述當前計算結(jié)果發(fā)送至所述遠程證明服務(wù)器上,分別與在所述遠程證明服務(wù)器上預先計算獲取的所述各個白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值進行對比。
[0025]本發(fā)明實施例還提供了一種虛擬機的度量裝置,該裝置包括:
[0026]配置單元,用于配置待度量文件及白名單;
[0027]構(gòu)建單元,用于構(gòu)建位于所述配置單元配置的白名單中的各個白名單軟件對應(yīng)的行為信息基;
[0028]第一度量單元,用于通過在虛擬機啟動過程中對其內(nèi)核文件及所述配置單元配置的待度量文件進行度量,判斷所述內(nèi)核文件及待度量文件是否可信;
[0029]獲取單元,用于每隔設(shè)定的第一間隔時間,獲取所述虛擬機中當前處于運行狀態(tài)的進程及內(nèi)存信息;
[0030]第二度量單元,用于根據(jù)所述獲取單元獲取的當前處于運行狀態(tài)的進程及內(nèi)存信息,判斷所述虛擬機上是否有位于所述配置單元配置的白名單之外的軟件運行;
[0031]第三度量單元,用于每隔設(shè)定的第二間隔時間,獲取處于運行狀態(tài)的各個所述白名單軟件的軟件行為,通過與對應(yīng)的行為信息基進行比對,判斷所述各個白名單軟件是否運行正常。
[0032]優(yōu)選地,所述構(gòu)建單元,用于通過收集所述各個白名單軟件的行為信息,構(gòu)建位于所述白名單中的各個白名單軟件對應(yīng)的行為信息基,其中,所述行為信息基包括軟件行為標識、行為主機、行為客體、行為輸入輸出中的任意一個或多個。
[0033]優(yōu)選地,所述第一度量單元,用于在所述虛擬機啟動過程中,對所述虛擬機的內(nèi)核文件及所述待度量文件進行哈希計算,將計算結(jié)果與各自對應(yīng)的基線值進行比對,如果所述計算結(jié)果與對應(yīng)的基線值相同,則所述內(nèi)核文件及待度量文件是可信的,否則不可信。
[0034]優(yōu)選地,所述獲取單元,用于通過虛擬機自省技術(shù)VMI的程序庫LibVMI,利用系統(tǒng)的system, map文件找到所述虛擬機的內(nèi)核虛擬地址,內(nèi)核頁目錄映射到正確的頁表PageTable,Page Table映射到正確的數(shù)據(jù)頁地址Date Page,虛擬機VMM組件將數(shù)據(jù)頁返回給LibVMI,最后由LibVMI將數(shù)據(jù)表指針及偏移量返回給VMI組件,獲取到所述虛擬機中當前運行的進程及內(nèi)存信息。
[0035]優(yōu)選地,所述第二度量單元,用于通過對所述虛擬機當前運行的各個進程及內(nèi)存信息進行哈希計算,獲取各個進程及內(nèi)存信息對應(yīng)的當前計算結(jié)果,分別將各個所述當前計算結(jié)果與獲取的所述各個白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值進行對比,如果至少存在一個所述當前計算結(jié)果,與任意一個所述白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值均不相同,則所述虛擬機上有位于所述白名單之外的軟件運行,否則所述虛擬機上沒有位于所述白名單之外的軟件運行。
[0036]優(yōu)選地,所述配置單元,用于在遠程證明服務(wù)器上配置所述待度量文件及所述白名單;
[0037]所述構(gòu)建單元,用于在所述遠程證明服務(wù)器上構(gòu)建所述白名單中的各個白名單軟件對應(yīng)的行為信息基;
[0038]所述第二度量單元,用于將所述當前計算結(jié)果發(fā)送至所述遠程證明服務(wù)器上,分別與在所述遠程證明服務(wù)器上預先計算獲取的所述各個白名單軟件對應(yīng)的進程及內(nèi)存信息的哈希計算基線值進行對比。
[0039]本發(fā)明實施例提供了一種虛擬機的度量方法及裝置,通過配置待度量文件和白名單,在虛擬器啟動過程中,對虛擬機的內(nèi)核文件及待度量文件進行度量,判斷虛擬機的內(nèi)核文件及待度量文件是否可信;在虛擬機運行過程中,每隔一個設(shè)定的第一間隔時間,獲取虛擬機中當前處于運行狀態(tài)的進程及內(nèi)存信息,通過獲取的進程及內(nèi)存信息,判斷虛擬機上是否存在位于白名單之外的軟件運行;在虛擬機運行過程中,每隔一個設(shè)定的第二間隔時間,獲取處于運行狀態(tài)的各個白名單軟件的軟件行為,通過與各白名單軟件對應(yīng)的行為信息基比對,判斷各個白名單軟件是否運行正常。這樣,在虛擬機啟動過程中不僅對其內(nèi)核文件進行度量,還對一些重要的文件進行度量,確保其是可信的,在虛擬機運行過程中定時判斷是否存在白名單以外的軟件運行,并監(jiān)控白名單內(nèi)的軟件是否運行正常,不僅實現(xiàn)了虛擬機的靜態(tài)度量,還實現(xiàn)了虛擬機的動態(tài)度量,提高了虛擬機的安全性。
【附圖說明】
[0040]圖1是本發(fā)明一個實施例提供的一種虛擬機的度量方法流程圖;
[0041]圖2是本發(fā)明另一個實施例提供的一種虛擬機的度量方法流程圖;