本發(fā)明涉及病毒查殺方法及裝置,特別是涉及一種基于虛擬化環(huán)境的查殺方法及裝置。
背景技術:
隨著云計算的不斷普及,虛擬化技術的應用越來越廣。Gartner預測,到2016年,企業(yè)數(shù)據(jù)中心50%的安全控制將是虛擬化的。同時,虛擬化環(huán)境下的安全防護問題也日益突顯。因此,針對虛擬化環(huán)境的安全部署方案十分重要。
早期的虛擬機病毒防護采用代理模式和無代理模式防病毒。在無代理模式中,需將一臺虛擬機作為安全虛擬機,管理虛擬化環(huán)境下的其他虛擬機的安全。虛擬機上的文件被訪問時都要先通過安全虛擬機檢查然后再進行文件訪問。這樣雖然保證了文件的安全,但如果反復對同一文件進行檢測,卻導致了文件訪問效率過低。
技術實現(xiàn)要素:
基于此,有必要針對文件訪問效率過低的問題,提供基于虛擬化環(huán)境的查殺方法及裝置。
一種基于虛擬化環(huán)境的查殺方法,包括:
接收文件的訪問請求;
根據(jù)文件的訪問請求獲得文件信息;
根據(jù)所述文件信息,獲取文件標識;
根據(jù)所述文件標識在可信文件記錄中查找對應的可信項;
若未查找到對應的可信項,則將所述文件送往安全虛擬機進行檢測;
接收所述安全虛擬機返回的檢測結果;
若所述檢測結果為文件安全,則將所述文件標識添加到可信文件記錄中,并將所述文件存入可信文件緩存。
一種基于虛擬化環(huán)境的查殺裝置,包括:
訪問請求接收模塊,用于接收文件的訪問請求;
文件信息獲取模塊,用于根據(jù)文件的訪問請求獲得文件信息;
文件標識獲取模塊,用于根據(jù)所述文件信息,獲取文件標識;
可信文件查找模塊,用于根據(jù)所述文件標識在可信文件記錄中查找對應的可信項;
文件傳送模塊,用于若未查找到對應的可信項,則將所述文件送往安全虛擬機進行檢測;
檢測結果接收模塊,用于接收所述安全虛擬機返回的檢測結果;
可信文件記錄更新模塊,用于若所述檢測結果為文件安全,則將所述文件標識添加到可信文件記錄中,并將所述文件存入可信文件緩存。
上述基于虛擬化環(huán)境的查殺方法及裝置,先通過獲取的文件信息獲得文件標識,然后根據(jù)文件標識值從可信文件記錄中查找該文件的信息,當可信文件記錄沒有對應的可信項時,才送往安全虛擬機進行進一步檢測,并非直接送往安全虛擬機檢測。在安全虛擬機返回結果安全時,將文件標識添加到可信文件記錄中,下次查找時即可以找到對應的可信項,確認其為安全文件。同時,將文件存入可信文件緩存,下次訪問該文件時,可直接從緩存中取用文件。該方法和裝置利用可信文件記錄的方法,減少了文件送往安全虛擬機進行檢測的次數(shù),使得可信文件不用每次都經(jīng)過同樣的檢測,并且可以直接從可信文件緩存中取用文件,提高了文件訪問效率。
附圖說明
圖1為一個實施例中的基于虛擬化環(huán)境的查殺方法的流程圖;
圖2為一個實施例中的將多個第一成員與多個所述第二成員按照排列順序一一進行比較的流程示意圖;
圖3為一個實施例中的基于虛擬化環(huán)境的查殺裝置的結構框圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
使用無代理模式的防病毒方法中,物理主機上配置有安全虛擬機及虛擬機客戶端,安全虛擬機對虛擬客戶端進行安全防護。在虛擬機客戶端中將有與PCI(Peripheral Component Interconnection,外圍設備互聯(lián))插槽連接的設備(簡稱PCI設備)。一臺計算機可以連接多個PCI設備,每臺PCI設備需要相應的驅動程序來與計算機進行通訊。其中有一塊特殊的PCI設備用于客戶機與安全虛擬機之間的通信。相應地,此PCI設備具有PCI驅動程序完成這一任務。所述PCI驅動程序能夠捕獲系統(tǒng)內(nèi)對文件的操作(如文件的打開、復制、讀寫等),也可以先將文件和文件的相關信息通過此驅動程序發(fā)送給安全虛擬機,從而進行檢測或其他防病毒相關的工作。
如圖1所示,在一個實施例中,提供了一種基于虛擬化環(huán)境的查殺方法,該方法具體包括以下步驟:
步驟102,接收文件的訪問請求。
在步驟102中,客戶端程序例如文件監(jiān)控程序或者文件掃描程序等捕獲到對文件的訪問請求。
步驟104,根據(jù)文件的訪問請求獲得文件信息。
在步驟104中,對即將訪問的文件進行安全檢測來確定文件是否被病毒感染。進行安全檢測需要文件信息,客戶端程序通過調用線程、函數(shù)或者其他方法獲取所需的文件信息。
步驟106,根據(jù)所述文件信息,獲得文件標識。
在步驟106中,客戶端在獲取到所需的文件信息之后,可通過數(shù)學計算、函數(shù)運算或者其他方式獲得文件標識,作為該文件的唯一標識,用于與其他文件區(qū)分。
步驟108,根據(jù)所述文件標識在可信文件記錄中查找對應的可信項。
在步驟108中,客戶端可通過將該文件標示值與可信文件記錄中的可信項進行一一比對,以在可信文件記錄中查找該文件標識的對應項是否存在,來初步判定所述文件是否安全。
步驟110,接收所述安全虛擬機返回的檢測結果。
在步驟110中,安全虛擬機進行安全檢測后將把結果返回給客戶端,客戶端接收安全虛擬機返回的結果。
步驟112,若未查找到所述對應項,則將所述文件送往安全虛擬機進行檢測。
在步驟112中,若客戶端的查找結果為可信文件記錄中不存在與所述文件標識相應的相應時,則將文件發(fā)送給安全虛擬機,由安全虛擬機進行檢測。安全虛擬機在進行文件檢測后將會返回結果。相應的,若可信文件記錄中存在與該文件標識相對應的對應項,則不需要進行排查,可以直接訪問文件。
步驟114,若所述檢測結果為文件安全,則將所述文件標識添加到可信文件記錄中,并將所述文件存入可信文件緩存。
在步驟114中,客戶端接收所述安全虛擬機返回的檢測結果,若檢測結果為文件安全,則將所述文件標識添加到可信文件記錄中來記錄此文件是安全的,將文件存入可信文件緩存以便下次訪問時取用。此時,安全的文件可以直接進行訪問。
具體的:
在一個實施例中,步驟104所述的文件信息包括但不限于:文件的路徑和文件的大小。文件的路徑通常是字符串的形式表達的文件絕對路徑,文件的大小通常是以KB為單位的數(shù)值。所述文件信息的其他參數(shù)還可以包括文件的類型,創(chuàng)建時間,修改時間等。在本實施例中,僅以文件的路徑和文件的大小作為文件信息。
在一個實施例中,步驟106所述的文件信息通常在消息或參數(shù)中以字符串或者數(shù)值的方式保存?zhèn)鬟f,其也可以被轉換成字符串??梢酝ㄟ^字符串拼接函數(shù)、其他函數(shù)或者其他計算方法將文件信息中所包含的字符拼接成一個字符串。對拼接后形成的字符串,進行哈希運算,即得到所述文件標識。在本實施例中,哈希運算可以是采取任意加密算法的運算或任意其他算法。
在一個實施例中,步驟108中所述的可信文件記錄包括多個可信項,所述可信項按照樹狀結構排列。在本實施例中,可信文件記錄按照紅黑樹結構組織,利于提高查找效率??尚盼募涗浿械拿總€可信項對應紅黑樹中的一個節(jié)點,例如子節(jié)點或葉節(jié)點。
當開始根據(jù)文件標識查找可信文件記錄之前,可先將文件標識進行一次哈希運算,來確定從紅黑樹中的哪一個節(jié)點開始進行查找,以縮小查找范圍、加快查找速度,提高查殺效率。之后,對此節(jié)點所包含的所有子節(jié)點開始進行查找,查找過程如下:
首先,將所述文件標識拆分為多個第一成員,并以相同的拆分方式將可信項拆分為多個第二成員。所述的拆分方法可以是通過現(xiàn)有函數(shù)或者是其他計算方法。本實施例中,為了說明方便,文件標識的拆分結果稱作第一數(shù)值組,可信項拆分后的結果稱作第二數(shù)值組,這兩個均為兩個字符串。本實施例中只用拆分結果為兩個的情況舉例說明。但應注意,本發(fā)明實施時,還會有拆分結果為兩個以上的情況。拆分后的結果可以為非字符串,比如整形、浮點數(shù)、字符或用戶自定義的類型等多種類型。
拆分后的數(shù)值為兩組,即第一數(shù)值組和第二數(shù)值組。每組包含被未拆分前的字符串中的一部分,作為數(shù)值組中的成員,即數(shù)值組中的所有成員按照一定順序排列組合后可以形成未拆分前的字符串。字符串是按順序被拆分,即若原字符串是a0c1e2g,按順序拆分結果為a0c和1e2g兩個字符串。應注意,本發(fā)明實施時,拆分結果還可能會為a0c1和e2g,以及a0、c1和e2g等多種拆分結果
同時,為了比較兩個字符串,所采用的拆分方法必須完全一致。即,所述第一數(shù)值組中的成員個數(shù)應與第二數(shù)值組中的成員個數(shù)是相等的,且每個成員中的字符個數(shù)也應該是分別相等的。比如,若文件標識經(jīng)拆分后得到的第一數(shù)值組中的成員是a0c和1e2g,共兩個,第一成員包含3個字符,第二成員包含4個字符,則可信項經(jīng)拆分后得到的第二數(shù)值組中的成員是h9j和kl8n,共兩個,第一成員包含3個字符,第二成員包含4個字符。數(shù)值組成員個數(shù)與成員中的字符個數(shù)均為對應相等的關系。
然后,將所述多個第一成員與多個所述第二成員按照排列順序一一進行比較。在本實施例中,可先將第一數(shù)值組中的第一成員與第二數(shù)值組中的第一成員相比較,比較方法可以采用比較函數(shù)、其他函數(shù)或者是其他計算方法將文件標識與可信項進行對比。
具體地,如圖2所示,將拆分結果進行比較的步驟還包括下列步驟:
步驟1002:比較第一數(shù)值組中的第一成員與第二數(shù)值組中的第一成員。
步驟1004:若第一數(shù)值組中的第一成員與第二數(shù)值組中的第一成員相等,則繼續(xù)比較第一數(shù)值組中的第二成員與第二數(shù)值組中的第二成員。
步驟1006:若第一數(shù)值組中的第二成員與第二數(shù)值組中的第二成員不相等,則未在可信文件記錄中查找到所述文件標識對應的可信項。
步驟1008:比較第一數(shù)值組中的第二成員與第二數(shù)值組中的第二成員。
步驟1010:若第一數(shù)值組中的第二成員與第二數(shù)值組中的第二成員相等,則在可信文件記錄中查找到所述文件標識對應的可信項。
步驟1012:若第一數(shù)值組中的第二成員與第二數(shù)值組中的第二成員不相等,則未在可信文件記錄中查找到所述文件標識對應的可信項。
上述查找步驟結束之后,若所述多個第一成員組與所述多個第二成員均相同,則在可信文件記錄中查找到對應的可信項。
具體為:第一數(shù)值組第一成員是a0c1,第二數(shù)值組第一成員是a0c1,第一數(shù)值組第二成員是e2g,第二數(shù)值組第二成員e2g,多個第一成員組與所述多個第二成員均相同,則在可信文件記錄中查找到對應的可信項。所述查找到的可信項即為所述文件標識對應的可信項。
在其他實施例中,若數(shù)值組包括兩個以上成員,方法同理。即,依次比較每一數(shù)值組中的相應成員,若某一組成員之間不相等,則判定可信文件記錄中不存在與所述文件標識對應的可信項,否則將一直比較,直到將最后一組成員的比較完成。若所述多個第一成員組與所述多個第二成員均相同,則在可信文件記錄中查找到對應的可信項,否則,則未在可信文件記錄中查找到對應的可信項。
可以理解,上述拆分文件標識的過程只在查找開始時進行一次,而拆分可信項和將拆分結果進行比較過程在每個節(jié)點查找時都執(zhí)行一次,即每次查詢子節(jié)點都需要進行拆分當前被比較的可信項和進行比較的過程,直到查找到所述對應項或者遍歷完全部節(jié)點。
在一個實施例中,步驟110中所述的安全虛擬機返回的結果類型可以是整形數(shù)值(比如0或1),也可以是布爾型變量、字符串或者是任意自定義的數(shù)據(jù)類型。所述返回結果用于表示該文件是否是安全。
在一個實施例中,步驟112所述的更新可信文件緩存可采用最近最少替換策略。即對文件被訪問的時間進行排序,比如升序排序,然后從排序后的結果中查找被訪問次數(shù)最小的一條,刪除此條可信文件記錄,將剛剛判定為安全的這一條可信文件記錄存入其中。
在另外一個實施例中,步驟112中所述的可信文件緩存包括最近N個檢測結果為文件安全的可信文件,其中N為預設閾值。N的取值與實際系統(tǒng)環(huán)境相關,一般為數(shù)千條。上述可信文件緩存中的文件是安全虛擬機檢測結果為安全后的某一版本的內(nèi)容,即使文件在置入緩存后感染病毒,但只要取用的是可信文件緩存中的內(nèi)容,則能夠保證所操作的文件是安全的版本。同時,一旦該文件被感染病毒,將會從可信文件記錄及可信文件緩存中刪除其相應的記錄和信息,保證客戶端將不會因為對感染病毒的文件進行操作而產(chǎn)生問題。
當文件不在可信文件記錄中時,若安全虛擬機檢測結果是其為安全文件,則將所述文件標識添加到可信文件記錄中,并將所述文件存入可信文件緩存。
如圖3所示,在一個實施例中,提供了一種基于虛擬化環(huán)境的查殺裝置200的結構框圖,該裝置包括:
訪問請求接收模塊202,用于接收文件的訪問請求。
文件信息獲取模塊204,用于根據(jù)文件的訪問請求獲得文件信息。所述文件信息獲取模塊用于接收文件訪問請求并根據(jù)文件訪問請求獲得文件信息。
客戶端程序例如文件監(jiān)控程序或者文件掃描程序等捕獲到對文件的訪問請求時,會對即將訪問的文件進行檢測來確定文件是否被病毒感染。進行安全檢測需要文件信息,文件信息獲取模塊202可通過調用線程、函數(shù)或者其他方法獲取所需的文件信息。
文件標識獲取模塊206,用于獲取所述文件標識。
客戶端在獲取到所需的文件信息之后,文件標識獲取模塊206可通過字符串拼接單元2062及哈希值計算單元2064獲得文件標識,作為該文件的唯一標識,用于與其他文件區(qū)分。
可信文件查找模塊208,用于查找可信文件記錄中是否有與所述文件標識對應的可信項。
可信文件查找模塊208通過在可信文件記錄中查找該文件標識的對應項是否存在,來初步判定所述文件是否安全。
文件傳送模塊210,用于在未查找到所述對應項時,將文件送往安全虛擬機進行檢測;
客戶端的查找結果為可信文件記錄中不存在與所述文件標識相應的相應時,文件傳送模塊210則將文件發(fā)送給安全虛擬機,由安全虛擬機進行檢測。安全虛擬機在進行文件檢測后將會返回結果。
檢測結果接收模塊212,用于接收所述安全虛擬機返回的檢測結果。
安全虛擬機進行安全檢測后將把結果返回給客戶端,檢測結果接收模塊212接收安全虛擬機返回的結果。
可信文件記錄更新模塊214,用于接收所述安全虛擬機返回的檢測結果,若檢測結果為文件安全,則將所述文件存入可信文件緩存,并更新所述可信文件記錄。
可信文件記錄更新模塊212接收所述安全虛擬機返回的檢測結果,若檢測結果為文件安全,則對該文件進行訪問,并將文件存入可信文件緩存。同時,可信文件記錄更新模塊212將所述文件標識添加到可信文件記錄中來記錄此文件是安全的。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。