詳細描述。
[0063]圖1是根據(jù)本發(fā)明一個實施例的病毒檢測方法的流程圖。本發(fā)明中的方法主要通過計算機設(shè)備中的操作系統(tǒng)或處理控制器來完成。將操作系統(tǒng)或處理控制器稱為病毒檢測裝置。該計算機設(shè)備包括但不限于以下中的至少一個:用戶設(shè)備、網(wǎng)絡(luò)設(shè)備。用戶設(shè)備包括但不限于計算機、智能手機、PDA等。網(wǎng)絡(luò)設(shè)備包括但不限于單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計算的由大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。
[0064]如圖1中所示為,該病毒檢測方法主要包括如下步驟:
[0065]S100、識別待檢測文件的文件格式,從而確定所述待檢測文件所屬類別;
[0066]S110、提取所述待檢測文件的與所述類別對應(yīng)的特征向量;
[0067]S120、將所述特征向量輸入到對應(yīng)類別的病毒檢測模型中,來檢測所述待檢測文件是否為病毒文件。
[0068]在介紹上述各步驟前,需要說明的是,本申請實施例所述的病毒檢測方法是采用預(yù)先訓(xùn)練的病毒檢測模型來實現(xiàn)的,因此,在執(zhí)行該病毒檢測操作前,需要訓(xùn)練出病毒檢測模型。但由于并不是每次執(zhí)行病毒檢測操作時都需要執(zhí)行該訓(xùn)練操作,因此,該訓(xùn)練病毒檢測模型的操作并不是檢測病毒的必要步驟。下面首先介紹下病毒檢測模型的訓(xùn)練方法。如圖2中所示,為本申請一個實施例提供的病毒檢測模型訓(xùn)練方法的流程圖,該訓(xùn)練方法可包括如下步驟:
[0069]S200、獲取病毒檢測模型訓(xùn)練樣本;
[0070]本申請實施例對獲取該樣本的方法及數(shù)量不做具體限制,且可以理解的是,其獲取的樣本數(shù)量越多,則訓(xùn)練出的病毒檢測模型識別病毒的準(zhǔn)確度越高。
[0071]另外,需要說明的是,本申請實施例提供的訓(xùn)練病毒檢測模型的方法,可以僅基于被病毒感染的病毒樣本來訓(xùn)練,也就是,訓(xùn)練過程僅采用黑文件來完成;也可以基于1:1的病毒樣本和非感染病毒樣本來訓(xùn)練,也就是,訓(xùn)練過程采用黑文件與白文件1:1的比例來完成。此處所述的黑文件即被病毒感染的文件,白文件為未被病毒感染的正常文件。
[0072]本申請實施例是針對不同類別的文件單獨訓(xùn)練對應(yīng)的病毒檢測模型,例如,本申請實施例所述的文件類別包括但不限于以下指定類別中的至少一種:
[0073]自解壓縮包類別、安裝包類別、編譯器類別、殼類別。
[0074]本實施例所述的自解壓縮包即自解壓文件,是采用自解壓方式進行壓縮的一種文件包,其中自解壓(SFX,Self-eXtracting)是壓縮文件的一種,因為它可以不用借助任何壓縮工具,而只需雙擊該文件就可以自動執(zhí)行解壓縮,因此叫做自解壓文件。同壓縮文件相比,自解壓的壓縮文件體積要大于普通的壓縮文件(因為它內(nèi)置了自解壓程序),但它的優(yōu)點就是可以在沒有安裝壓縮軟件的情況下打開壓縮文件,自解壓縮包的文件包括zip、rar和7z三種類型。
[0075]本實施例所述的安裝包即軟件安裝包,其中包括軟件安裝的所有文件,運行這個安裝包(可執(zhí)行文件),可以將此軟件的所有文件釋放到硬盤上,完成修改注冊表、修改系統(tǒng)設(shè)置、創(chuàng)建快捷方式等工作。本實施例所述的安裝包類別包括但不限于:inno、nsis、ms1、cab等類型的文件。
[0076]本實施例所述的編譯器就是將一種語言翻譯為另一種語言的程序。
[0077]其中的殼類別即為加殼的程序,加殼過的程序可以直接運行,但是不能查看原始程序的二進制數(shù)據(jù),要經(jīng)過脫殼才可以查看原始程序的二進制數(shù)據(jù)。加殼,是利用特殊的算法,對EXE、DLL文件里的資源進行壓縮、加密。類似WINZIP的效果,只不過這個壓縮之后的文件,可以獨立運行,解壓過程完全隱蔽,都在內(nèi)存中完成。它們附加在原程序上通過Windows加載器載入內(nèi)存后,先于原始程序執(zhí)行,得到控制權(quán),執(zhí)行過程中對原始程序進行解密、還原,還原完成后再把控制權(quán)交還給原始程序,執(zhí)行原來的代碼部分。加上外殼后,原始程序代碼在磁盤文件中一般是以加密后的形式存在的,只在執(zhí)行時在內(nèi)存中還原,這樣就可以比較有效地防止破解者對程序文件的非法修改,同時也可以防止程序被靜態(tài)反編譯。
[0078]可以理解的是,文件類別并不局限于上述所列舉的幾種,上述指定類別外的類別統(tǒng)稱為其他類別,本申請實施例除針對上述指定類別訓(xùn)練對應(yīng)的病毒檢測模型,還可以針對所述的其他類別單獨訓(xùn)練一個病毒檢測模型。
[0079]本申請實施例針對上述每一指定類別單獨訓(xùn)練對應(yīng)的病毒檢測模型,則在獲取訓(xùn)練樣本時,需要獲取對應(yīng)類別的病毒樣本,例如,針對自解壓縮包類別,獲取被病毒感染的自解壓縮包文件作為病毒樣本,針對安裝包類別,獲取被病毒感染的安裝包文件作為病毒樣本等等。針對其他類別,則獲取除上述指定類別外的其他類別的被病毒感染的文件作為病毒樣本。
[0080]S210、提取各類別樣本對應(yīng)的特征向量;
[0081]本申請實施例針對不同類別的樣本,其獲取與該類別對應(yīng)的特征向量,也就是其獲取不同的特征向量,下面以上述所列舉的指定類別為例,來說明各類別樣本獲取的特征向量不同。
[0082]其中,自解壓縮包類別需要獲取的特征向量可包括以下至少一項:
[0083]目錄結(jié)構(gòu)特征、文件的校驗和特征、文件數(shù)據(jù)內(nèi)容特征、壓縮算法特征、執(zhí)行腳本特征。
[0084]安裝包類別需要獲取的特征向量可包括以下至少一項:
[0085]目錄結(jié)構(gòu)特征、安裝腳本特征、安裝程序版本特征、安裝文件校驗和特征、安裝插件特征、文件數(shù)據(jù)特征、按照界面圖像特征。
[0086]編譯器類別需要獲取的特征向量可包括以下至少一項:
[0087]函數(shù)特征、類特征、變量特征、引用關(guān)系特征、字符串特征、數(shù)據(jù)塊特征、邏輯特征、數(shù)據(jù)內(nèi)容特征。
[0088]殼類別需要獲取的特征向量可包括以下至少一項:
[0089]外殼程序特征、內(nèi)部程序特征、壓縮或加密特征。
[0090]可以理解的是,上述各類別對應(yīng)獲取的特征向量僅為發(fā)明人所列舉的具體實例,實際操作中還可包括對應(yīng)類別的其他特征向量,在此無法窮舉,其均在本申請保護范圍內(nèi)。
[0091]另外,針對上述的其他類別樣本,其需要獲取的特征向量可包括以下至少一項:
[0092]程序結(jié)構(gòu)特征、導(dǎo)入導(dǎo)出數(shù)據(jù)特征、文本字符串特征、數(shù)值特征、入口及函數(shù)特征、版本信息特征、圖標(biāo)圖像特征。
[0093]上述為各類別需要獲取的特征向量,在獲取各特征向量后,本申請實施例還可對上述特征向量進行相應(yīng)處理。所述相應(yīng)處理包括但不限于:
[0094]將非數(shù)值特征進行量化,將高維特征進行特征篩選,以及將所有特征進行歸一化處理等。
[0095]S220、利用預(yù)設(shè)的機器學(xué)習(xí)分類算法進行計算,得到感染型病毒識別模型。
[0096]本步驟是將上述獲取的樣本以及提取的特征向量輸入到機器學(xué)習(xí)的分類算法中,從而得到病毒檢測模型。若上述步驟中,已對獲取的特征向量進行上面所述的相應(yīng)處理,則機器學(xué)習(xí)時使用的特征向量為經(jīng)過上述處理后的特征向量。
[0097]本申請實施例對所采用的分類算法不做具體限制,其可以采用已有的任一種分類算法,例如決策樹算法、SVM(Support Vector Machine,支持向量機)算法等等。
[0098]通過上述訓(xùn)練方法得到了用于檢測指定類別文件病毒的病毒檢測模型,例如,可分別得到用于檢測自解壓縮包類別文件的病毒檢測模型、用于檢測安裝包類別文件的病毒檢測模型、用于檢測編譯器類別文件的病毒檢測模型、用于檢測殼類別文件的病毒檢測模型以及用于檢測非指定類別的其他類別文件的病毒檢測模型。
[0099]下面對上述病毒檢測的各步驟做進一步詳細介紹。
[0100]SlOO是用于識別待檢測文件的文件格式,從而確定所述待檢測文件所屬類別;本步驟也就是根據(jù)待檢測文件的文件格式來確定待檢測文件所屬類別是指定類別中任一種,還是指定類別外的其他類別。
[0101]其中,每種指定類別的文件的識別方法不同,本申請實施例對具體識別方法不做具體限制,其可以采用已有的任一種識別方法來實現(xiàn),例如,針對自解壓縮包類別,可通過判斷附加數(shù)據(jù)的前兩個到四個字節(jié),或者附加數(shù)據(jù)或資源的開始部分的數(shù)據(jù)塊內(nèi)是否有壓縮包的關(guān)鍵詞,來確定該文件是否為自解壓縮包類別文件。又如,針對編譯器類別,可通過入口點的指令調(diào)用特點,和使用的函數(shù)特征進行識別。針對殼類別,可通過入口點的