專利名稱:一種基于虛擬執(zhí)行的病毒檢測系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng)領(lǐng)域,尤其涉及一種基于虛擬執(zhí)行的病毒檢測系統(tǒng)。
背景技術(shù):
當(dāng)前計算機系統(tǒng)的安全防護(hù)很大程度上依賴于商用反病毒產(chǎn)品的病毒庫更新,SP所謂特征碼掃描。這種方法的主要思想是,分析出病毒的特征病毒碼并集中存放于病毒代碼庫文件中,在掃描時將掃描對象與特征代碼庫比較,如果匹配則判斷為染上病毒。該技術(shù)實現(xiàn)簡單有效,安全徹底,但是存在以下問題:(1)查殺病毒總是滯后于病毒的流行;(2)龐大的特征碼庫會造成查毒速度下降。當(dāng)前,智能引擎技術(shù)已經(jīng)解決了查毒速度下降的問題,使得病毒掃描速度不隨病毒庫的增大而減慢,但是查殺病毒滯后的問題仍然無法解決。對未知病毒的查殺是反病毒行業(yè)的持久課題,目前國內(nèi)外多家公司都宣布自己的產(chǎn)品可以對未知病毒進(jìn)行查殺,但事實上,國內(nèi)外的產(chǎn)品中只有少數(shù)可以對未知病毒進(jìn)行預(yù)警,更無法做到徹底清除。為了能趕上病毒編寫者的步伐,反病毒軟件開始依賴于病毒自動分析工具。然而病毒分析面臨一些隱藏技術(shù),例如多態(tài)(polymorphism)和模糊(obfuscation)等時變得束手無策。這些隱藏技術(shù)尤其對字節(jié)級內(nèi)容分析和靜態(tài)病毒分析特別奏效。相對靜態(tài)分析而言,運行時的動態(tài)二進(jìn)制分析可以監(jiān)測病毒的執(zhí)行行為,而這些執(zhí)行行為是無法隱藏的。目前國際上很多研究工作開始向這方面轉(zhuǎn)移。對于動態(tài)分析技術(shù)而言,可疑程序的潛在破壞性是一個令人頭疼的問題,故而迫切需要一種基于虛擬執(zhí)行的病毒檢測系統(tǒng),其既可以執(zhí)行可疑程序,又能保證程序的執(zhí)行不會給系統(tǒng)帶來任何破壞性的后果。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題之一是需要提供一種能夠解決可疑程序的潛在破壞性的病毒檢測系統(tǒng)。為了解決上述技術(shù)問題,本發(fā)明提供了一種基于虛擬執(zhí)行的病毒檢測系統(tǒng),包括:病毒樣本收集器,其收集未知病毒;虛擬機,其執(zhí)行所述未知病毒,并獲取執(zhí)行所述未知病毒時的執(zhí)行行為報告;行為分析器,其根據(jù)已知病毒的病毒行為模式,對執(zhí)行所述未知病毒時的執(zhí)行行為報告進(jìn)行分析,以判斷所述未知病毒是否為病毒。進(jìn)一步,所述病毒樣本收集器還收集已知病毒;所述虛擬機執(zhí)行所述已知病毒,并獲取執(zhí)行所述已知病毒時的執(zhí)行行為報告;所述行為分析器進(jìn)一步包括:特征提取和格式轉(zhuǎn)換模塊,其根據(jù)設(shè)定函數(shù),從執(zhí)行所述已知病毒時的執(zhí)行行為報告中提取出病毒特征向量,并將所述病毒特征向量轉(zhuǎn)換成與所使用的分類器構(gòu)造算法相對應(yīng)的格式;分類器構(gòu)造模塊,其利用分類器構(gòu)造算法,基于轉(zhuǎn)換格式后的病毒特征向量來構(gòu)造出包含病毒行為模式的病毒分類器;
分類器模塊,其包括所述病毒分類器,所述病毒分類器根據(jù)病毒行為模式,對執(zhí)行所述未知病毒時的執(zhí)行行為報告進(jìn)行分析,以判斷未知病毒是否為病毒。
進(jìn)一步,所述虛擬機執(zhí)行預(yù)定義的用戶行為操作,并獲取執(zhí)行所述用戶行為操作時的執(zhí)行行為報告;所述行為分析器各個模塊進(jìn)一步用于:
特征提取和格式轉(zhuǎn)換模塊,其根據(jù)設(shè)定函數(shù),從執(zhí)行所述用戶行為操作時的執(zhí)行行為報告中提取出用戶特征向量,并將所述用戶特征向量轉(zhuǎn)換成與所使用的分類器構(gòu)造算法相對應(yīng)的格式;
分類器構(gòu)造模塊,其利用分類器構(gòu)造算法,基于轉(zhuǎn)換格式后的用戶特征向量來構(gòu)造出包含用戶行為模式的用戶行為分類器;
分類器模塊,其包括所述用戶行為分類器,所述用戶行為分類器根據(jù)用戶行為模式,對實時監(jiān)控得到的用戶操作信息進(jìn)行分析,以判斷所述用戶操作信息是否異常。
進(jìn)一步,所述特征提取和格式轉(zhuǎn)換模塊所利用的設(shè)定函數(shù)如下,嵌入函數(shù)0:0是X到I |f| I維實空間的映射,其中,F(xiàn)表示特征字符串集合,I |f| I是集合F的模,表示特征字符串的個數(shù),X表示執(zhí)行行為報告的集合,對于特征字符串s,s e F,以及執(zhí)行行為報告X,X e X,記映射函數(shù)f (X, s)為s在X中出現(xiàn)的頻率。
進(jìn)一步,所述分類器構(gòu)造模塊所利用的分類器構(gòu)造算法為支持向量機算法。
進(jìn)一步,利用蜜罐作為所述病毒樣本收集器。
進(jìn)一步,所述虛擬機根據(jù)其內(nèi)部設(shè)置的監(jiān)控模塊來獲取執(zhí)行行為報告,所述監(jiān)控模塊獲取關(guān)于注冊表、文件系統(tǒng)、進(jìn)程和網(wǎng)絡(luò)連接的執(zhí)行行為信息來作為執(zhí)行行為報告。
進(jìn)一步,所述監(jiān)控模塊通過API Hooking方法來獲取關(guān)于注冊表、文件系統(tǒng)、進(jìn)程和網(wǎng)絡(luò)連接的執(zhí)行行為信息。
進(jìn)一步,所述虛擬機還包括篩選模塊,其對獲取的執(zhí)行行為信息進(jìn)行篩選,以得到最終的執(zhí)行行為報告。
進(jìn)一步,所述虛擬機采用輕量級虛擬機。
與現(xiàn)有技術(shù)相比,本發(fā)明的一個或多個實施例可以具有如下優(yōu)點:
本發(fā)明通過在當(dāng)前的病毒分析技術(shù)的基礎(chǔ)上,將虛擬執(zhí)行技術(shù)應(yīng)用進(jìn)來,為病毒分析提供病毒執(zhí)行行為信息,既能獲取病毒執(zhí)行行為,又保證不對系統(tǒng)構(gòu)成危害,同時,以針對用戶正常行為模式的主動防御策略來改進(jìn)當(dāng)前的病毒分析和檢測算法。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例共同用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1是根據(jù)本發(fā)明第一實施例的病毒檢測系統(tǒng)的結(jié)構(gòu)示意圖2是根據(jù)本發(fā)明第一實施例的病毒檢測系統(tǒng)中虛擬機20的內(nèi)部結(jié)構(gòu)示意圖3是根據(jù)本發(fā)明第一實施例的病毒檢測系統(tǒng)中行為分析器30的內(nèi)部結(jié)構(gòu)示意圖4 (a)和(b)分別是利用本發(fā)明第一實施例的病毒檢測系統(tǒng)中行為分析器的構(gòu)造和利用行為分析器進(jìn)行病毒檢測的流程圖;圖5是根據(jù)本發(fā)明第二實施例的病毒檢測系統(tǒng)的結(jié)構(gòu)示意圖;圖6是根據(jù)本發(fā)明第二實施例的針對用戶正常行為模式的主動防御策略的示意圖。
具體實施例方式以下將結(jié)合附圖及實施例來詳細(xì)說明本發(fā)明的實施方式,借此對本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達(dá)成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。需要說明的是,只要不構(gòu)成沖突,本發(fā)明中的各個實施例以及各實施例中的各個特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。第一實施例圖1是根據(jù)本發(fā)明第一實施例的病毒檢測系統(tǒng)的結(jié)構(gòu)示意圖,下面參考圖1來詳細(xì)說明本系統(tǒng)各個組成部分和功能。如圖1所示,本系統(tǒng)包括病毒樣本收集器10、虛擬機20和行為分析器30。其中,病毒樣本收集器10的功能是收集病毒樣本(包括訓(xùn)練樣本和測試樣本,即已知病毒和未知病毒);虛擬機20的功能是對收集到的病毒樣本進(jìn)行虛擬執(zhí)行,獲取執(zhí)行該病毒樣本時的執(zhí)行行為信息,并生成執(zhí)行行為報告。行為分析器30的功能包括兩個方面,一是對訓(xùn)練樣本虛擬執(zhí)行后生成的報告進(jìn)行分析,生成分類器,二是對測試樣本虛擬執(zhí)行后生成的報告進(jìn)行分析,生成檢測報告。下面進(jìn)一步詳細(xì)說明對各個部分的設(shè)計和各個部分具體功能的實現(xiàn)。在本實施例中,優(yōu)先利用蜜罐(honeypot)作為病毒收集工具,構(gòu)造一個病毒樣本收集器10。需要說明的是,蜜罐是一種安全資源,其價值在于被掃描、攻擊和攻陷,能夠?qū)崿F(xiàn)對這些攻擊活動進(jìn)行監(jiān)視、檢測和分析,因此它可以用于病毒收集。該病毒樣本收集器10具有兩部分的功能,一方面,收集已知病毒,所謂已知病毒,就是已經(jīng)存在與病毒引擎或商用殺毒軟件的病毒庫中,能為其所識別的病毒。這些已知病毒在收集到之后被貼上所屬病毒家族標(biāo)簽,它們將作為行為分析的訓(xùn)練樣本。另一方面,病毒樣本收集器10還負(fù)責(zé)收集未知病毒,也就是病毒引擎或商用殺毒軟件還未能識別的病毒,不能識別它們的所屬家族,這些未知病毒將用來作為測試樣本。由于惡意程序(即病毒)在其執(zhí)行過程中會表現(xiàn)出與正常程序不同的行為特征,例如:創(chuàng)建或關(guān)閉進(jìn)程、創(chuàng)建、修改、復(fù)制或刪除文件、修改注冊以及網(wǎng)絡(luò)活動等。這些特征行為就是識別它們的根本依據(jù)。動態(tài)分析首先需要通過程序的動態(tài)執(zhí)行獲取其執(zhí)行信息。這個過程可以通過虛擬執(zhí)行技術(shù)來實現(xiàn)。因此,本實施例建立一個虛擬執(zhí)行環(huán)境,在這個環(huán)境中,病毒可以得到執(zhí)行,而且通過一定的手段獲取病毒的執(zhí)行行為信息,而同時又能保證不對系統(tǒng)產(chǎn)生破壞性的后果。
因此,虛擬執(zhí)行環(huán)境包括兩部分,一部分供程序虛擬執(zhí)行的虛擬機20,另一部分是嵌在虛擬機中的獲取程序執(zhí)行行為信息的監(jiān)控模塊。
虛擬機20在不影響宿主機(host)系統(tǒng)的基礎(chǔ)上為用戶模擬一個虛擬機器,讓用戶感覺到為其提供了 CPU、內(nèi)存和IO等硬件支持,而事實上卻不對host產(chǎn)生影響。由于在該病毒檢測系統(tǒng)中,不需要虛擬機提供其它服務(wù),因此,為了降低虛擬執(zhí)行的開銷,本實施例采用輕量級的開源虛擬機作為虛擬執(zhí)行環(huán)境的基礎(chǔ)。
為了能夠獲取虛擬執(zhí)行的程序(上述未知病毒和已知病毒)的執(zhí)行行為信息,系統(tǒng)需要在虛擬機中嵌入程序執(zhí)行行為信息獲取模塊,稱為監(jiān)控模塊。
圖2是根據(jù)本發(fā)明第一實施例的病毒檢測系統(tǒng)中虛擬機20的內(nèi)部結(jié)構(gòu)示意圖,病毒樣本是該虛擬機20的輸入,病毒的執(zhí)行行為報告(也可稱為病毒行為報告)是其輸出,因此,虛擬機20的功能實際上就是將病毒樣本進(jìn)行虛擬執(zhí)行,獲得病毒行為報告。
虛擬機20的內(nèi)部包括進(jìn)程監(jiān)控模塊201、文件系統(tǒng)監(jiān)控模塊202、注冊表監(jiān)控模塊203、網(wǎng)絡(luò)連接監(jiān)控模塊204和篩選模塊205。其中,進(jìn)程監(jiān)控模塊201、文件系統(tǒng)監(jiān)控模塊202、注冊表監(jiān)控模塊203和網(wǎng)絡(luò)連接監(jiān)控模塊204分別實現(xiàn)病毒在虛擬執(zhí)行時對進(jìn)程、文件系統(tǒng)、注冊表和網(wǎng)絡(luò)連接四個方面的系統(tǒng)API調(diào)用情況的監(jiān)控,同時獲取并保存這些信息,而篩選模塊205則是對這些信息進(jìn)行篩選,選出與病毒相關(guān)的部分,形成病毒行為報告。
這些信息是通過API Hooking的方式截獲的,其中,
程序的進(jìn)程相關(guān)操作包括:
打開進(jìn)程(openprocess)、關(guān)閉進(jìn)程(close process)、創(chuàng)建進(jìn)程(createprocess)等。
程序?qū)ξ募到y(tǒng)的執(zhí)行操作包括:
訪問信息(queryinformation)、設(shè)置信息(set information)、打開文件(open)、關(guān)閉文件(close)、讀文件(read)、寫文件(write)。
程序?qū)ψ员淼膱?zhí)行操作包括:
打開注冊表(open key)、關(guān)閉注冊表(close key)、訪問注冊表值(query value)、創(chuàng)建注冊表(create key)、列舉注冊表值(enumerate value)、刪除注冊表值(deletevalue key)、修改注冊表值(set value)。
程序的網(wǎng)絡(luò)連接相關(guān)操作包括:IRC綁定(outbound IRC)、ping掃描(ping scan)坐寸ο
以下表程序行為為例,需要截獲的程序API函數(shù)對應(yīng)為:
權(quán)利要求
1.一種基于虛擬執(zhí)行的病毒檢測系統(tǒng),其特征在于,包括: 病毒樣本收集器,其收集未知病毒; 虛擬機,其執(zhí)行所述未知病毒,并獲取執(zhí)行所述未知病毒時的執(zhí)行行為報告; 行為分析器,其根據(jù)已知病毒的病毒行為模式,對執(zhí)行所述未知病毒時的執(zhí)行行為報告進(jìn)行分析,以判斷所述未知病毒是否為病毒。
2.根據(jù)權(quán)利要求1所述的病毒檢測系統(tǒng),其特征在于, 所述病毒樣本收集器還收集已知病毒; 所述虛擬機執(zhí)行所述已知病毒,并獲取執(zhí)行所述已知病毒時的執(zhí)行行為報告; 所述行為分析器進(jìn)一步包括: 特征提取和格式轉(zhuǎn)換模塊,其根據(jù)設(shè)定函數(shù),從執(zhí)行所述已知病毒時的執(zhí)行行為報告中提取出病毒特征向量,并將所述病毒特征向量轉(zhuǎn)換成與所使用的分類器構(gòu)造算法相對應(yīng)的格式; 分類器構(gòu)造模塊,其利用分類器構(gòu)造算法,基于轉(zhuǎn)換格式后的病毒特征向量來構(gòu)造出包含病毒行為模式的病毒分類器; 分類器模塊,其包括所述病毒分類器,所述病毒分類器根據(jù)病毒行為模式,對執(zhí)行所述未知病毒時的執(zhí)行行為報告進(jìn)行分析,以判斷未知病毒是否為病毒。
3.根據(jù)權(quán)利要求2所述的病毒檢測系統(tǒng),其特征在于,` 所述虛擬機執(zhí)行預(yù)定義的用戶行為操作,并獲取執(zhí)行所述用戶行為操作時的執(zhí)行行為 艮告; 所述行為分析器各個模塊進(jìn)一步用于: 特征提取和格式轉(zhuǎn)換模塊,其根據(jù)設(shè)定函數(shù),從執(zhí)行所述用戶行為操作時的執(zhí)行行為報告中提取出用戶特征向量,并將所述用戶特征向量轉(zhuǎn)換成與所使用的分類器構(gòu)造算法相對應(yīng)的格式; 分類器構(gòu)造模塊,其利用分類器構(gòu)造算法,基于轉(zhuǎn)換格式后的用戶特征向量來構(gòu)造出包含用戶行為模式的用戶行為分類器; 分類器模塊,其包括所述用戶行為分類器,所述用戶行為分類器根據(jù)用戶行為模式,對實時監(jiān)控得到的用戶操作信息進(jìn)行分析,以判斷所述用戶操作信息是否異常。
4.根據(jù)權(quán)利要求2或3所述的病毒檢測系統(tǒng),其特征在于,所述特征提取和格式轉(zhuǎn)換模塊所利用的設(shè)定函數(shù)如下, 嵌入函數(shù)0:0是X到I |f| I維實空間的映射, 其中,F(xiàn)表示特征字符串集合,IlFlI是集合F的模,表示特征字符串的個數(shù),X表示執(zhí)行行為報告的集合,對于特征字符串S,S e F,以及執(zhí)行行為報告X,X e X,記映射函數(shù)f(X, S)為S在X中出現(xiàn)的頻率。
5.根據(jù)權(quán)利要求2或3所述的病毒檢測系統(tǒng),其特征在于, 所述分類器構(gòu)造模塊所利用的分類器構(gòu)造算法為支持向量機算法。
6.根據(jù)權(quán)利要求1所述的病毒檢測系統(tǒng),其特征在于, 利用蜜罐作為所述病毒樣本收集器。
7.根據(jù)權(quán)利要求1至6中任一項所述的病毒檢測系統(tǒng),其特征在于, 所述虛擬機根據(jù)其內(nèi)部設(shè)置的監(jiān)控模塊來獲取執(zhí)行行為報告,所述監(jiān)控模塊獲取關(guān)于注冊表、文件系統(tǒng)、進(jìn)程和網(wǎng)絡(luò)連接的執(zhí)行行為信息來作為執(zhí)行行為報告。
8.根據(jù)權(quán)利要求7所述的病毒檢測系統(tǒng),其特征在于, 所述監(jiān)控模塊通過API Hooking方法來獲取關(guān)于注冊表、文件系統(tǒng)、進(jìn)程和網(wǎng)絡(luò)連接的執(zhí)行行為信息。
9.根據(jù)權(quán)利要求8所述的病毒檢測系統(tǒng),其特征在于,所述虛擬機還包括篩選模塊,其對獲取的執(zhí)行行為信息進(jìn)行篩選,以得到最終的執(zhí)行行為報告。
10.根據(jù)權(quán)利要求1所述的病毒檢測系統(tǒng),其特征在于, 所述虛擬機采用輕 量級虛擬機。
全文摘要
本發(fā)明公開了一種采用虛擬執(zhí)行技術(shù)的病毒檢測系統(tǒng),包括病毒樣本收集器,其收集未知病毒;虛擬機,其執(zhí)行所述未知病毒,并獲取執(zhí)行所述未知病毒時的執(zhí)行行為報告;行為分析器,其根據(jù)已知病毒的病毒行為模式,對執(zhí)行所述未知病毒時的執(zhí)行行為報告進(jìn)行分析,以判斷所述未知病毒是否為病毒。本發(fā)明通過在當(dāng)前的病毒分析技術(shù)的基礎(chǔ)上,將虛擬執(zhí)行技術(shù)應(yīng)用進(jìn)來,為病毒分析提供病毒執(zhí)行行為信息,既能獲取病毒執(zhí)行行為,又保證不對系統(tǒng)構(gòu)成危害,同時,以針對用戶正常行為模式的主動防御策略來改進(jìn)當(dāng)前的病毒分析和檢測算法。
文檔編號G06F9/455GK103150509SQ20131008454
公開日2013年6月12日 申請日期2013年3月15日 優(yōu)先權(quán)日2013年3月15日
發(fā)明者任雙春 申請人:長沙文盾信息技術(shù)有限公司