本發(fā)明涉及系統(tǒng)安全與網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其是涉及一種惡意程序檢測(cè)方法及裝置。
背景技術(shù):
惡意程序通常是指帶有攻擊意圖的一段程序,是編寫者在計(jì)算機(jī)程序中插入的破壞計(jì)算機(jī)功能或者破壞數(shù)據(jù),影響計(jì)算機(jī)使用并且能夠自我復(fù)制的一組計(jì)算機(jī)指令或者程序代碼,包括但不限于蠕蟲、病毒和木馬?,F(xiàn)在計(jì)算機(jī)和通信基礎(chǔ)設(shè)施非常容易遭受惡意程序的攻擊,網(wǎng)絡(luò)連接的高速發(fā)展使得惡意程序以更快的速度傳播并感染主機(jī),進(jìn)而損害個(gè)人、商業(yè)公司和政府的利益。
傳統(tǒng)的惡意程序檢測(cè)方法主要采用基于簽名的方式,具體的檢測(cè)過(guò)程如下:選取已知的惡意文件,從惡意文件中提取簽名,其中,該簽名為一些短小且唯一的字符串,然后將提取出的簽名作為特征組成特征庫(kù);檢測(cè)未知文件時(shí),若未知文件包含特征庫(kù)中的特征,則判定該未知文件為惡意程序;若未知文件不包含特征庫(kù)中的特征,則判定該未知文件為正常程序。
傳統(tǒng)的惡意程序檢測(cè)方法主要是通過(guò)檢測(cè)未知文件中是否包含特征庫(kù)中的特征來(lái)確定該未知文件是否為惡意程序,由于特征庫(kù)中只存儲(chǔ)有已知的惡意文件的特征,因此現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種惡意程序檢測(cè)方法及裝置,以解決現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序的技術(shù)問(wèn)題。
第一方面,本發(fā)明實(shí)施例提供了一種惡意程序檢測(cè)方法,包括:獲取待檢測(cè)程序,提取所述待檢測(cè)程序的特征;根據(jù)所述待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定所述待檢測(cè)程序?qū)?yīng)的特征向量;利用訓(xùn)練好的分類器對(duì)所述特征向量進(jìn)行檢測(cè),以確定所述待檢測(cè)程序是否為惡意程序。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中,提取所述待檢測(cè)程序的特征,包括:提取所述待檢測(cè)程序的操作碼,根據(jù)所述操作碼確定所述待檢測(cè)程序的特征。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中,根據(jù)所述待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定所述待檢測(cè)程序?qū)?yīng)的特征向量,包括:在所述待檢測(cè)程序的多個(gè)特征中,逐一查找所述特征庫(kù)中的每個(gè)特征;當(dāng)查找到所述特征庫(kù)中的特征時(shí),將所述特征庫(kù)中被查找到的特征標(biāo)記為第一預(yù)設(shè)值,否則,將所述特征庫(kù)中未被查找到的特征標(biāo)記為第二預(yù)設(shè)值;根據(jù)所述特征庫(kù)中各個(gè)特征的標(biāo)記結(jié)果和各個(gè)特征的排列順序,確定所述待檢測(cè)程序?qū)?yīng)的特征向量。
結(jié)合第一方面、第一方面的第一種、第一方面的第二種中任一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中,所述特征庫(kù)通過(guò)以下方法獲得:獲取滿足預(yù)設(shè)樣本要求的程序樣本,提取所述程序樣本的特征,其中,所述程序樣本包括正常樣本和惡意樣本;對(duì)所述程序樣本的特征進(jìn)行篩選,得到分類效果滿足預(yù)設(shè)分類要求的特征;將所述分類效果滿足預(yù)設(shè)分類要求的特征進(jìn)行組合,得到所述特征庫(kù)。
結(jié)合第一方面的第三種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中,所述分類器通過(guò)以下方式訓(xùn)練:根據(jù)所述程序樣本的特征和所述特征庫(kù),確定所述程序樣本對(duì)應(yīng)的特征向量;根據(jù)所述程序樣本對(duì)應(yīng)的特征向量對(duì)所述分類器進(jìn)行訓(xùn)練。
第二方面,本發(fā)明實(shí)施例還提供一種惡意程序檢測(cè)裝置,包括:特征提取模塊,用于獲取待檢測(cè)程序,提取所述待檢測(cè)程序的特征;特征向量確定模塊,用于根據(jù)所述待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定所述待檢測(cè)程序?qū)?yīng)的特征向量;檢測(cè)模塊,用于利用訓(xùn)練好的分類器對(duì)所述特征向量進(jìn)行檢測(cè),以確定所述待檢測(cè)程序是否為惡意程序。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,其中,所述特征提取模塊具體用于:提取所述待檢測(cè)程序的操作碼,根據(jù)所述操作碼確定所述待檢測(cè)程序的特征。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中,所述特征向量確定模塊包括:特征查找單元,用于在所述待檢測(cè)程序的多個(gè)特征中,逐一查找所述特征庫(kù)中的每個(gè)特征;標(biāo)記單元,用于當(dāng)所述特征查找單元查找到所述特征庫(kù)中的特征時(shí),將所述特征庫(kù)中被查找到的特征標(biāo)記為第一預(yù)設(shè)值,否則,將所述特征庫(kù)中未被查找到的特征標(biāo)記為第二預(yù)設(shè)值;第一確定單元,用于根據(jù)所述特征庫(kù)中各個(gè)特征的標(biāo)記結(jié)果和各個(gè)特征的排列順序,確定所述待檢測(cè)程序?qū)?yīng)的特征向量。
結(jié)合第二方面、第二方面的第一種、第二方面的第二種中任一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第三種可能的實(shí)施方式,其中,所述裝置還包括特征庫(kù)建立模塊,所述特征庫(kù)建立模塊包括:
特征提取單元,用于獲取滿足預(yù)設(shè)樣本要求的程序樣本,提取所述程序樣本的特征,其中,所述程序樣本包括正常樣本和惡意樣本;特征篩選單元,用于對(duì)所述程序樣本的特征進(jìn)行篩選,得到分類效果滿足預(yù)設(shè)分類要求的特征;特征庫(kù)建立單元,用于將所述分類效果滿足預(yù)設(shè)分類要求的特征進(jìn)行組合,得到所述特征庫(kù)。
結(jié)合第二方面的第三種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第四種可能的實(shí)施方式,其中,所述裝置還包括訓(xùn)練模塊,所述訓(xùn)練模塊包括:
第二確定單元,用于根據(jù)所述程序樣本的特征和所述特征庫(kù),確定所述程序樣本對(duì)應(yīng)的特征向量;訓(xùn)練單元,用于根據(jù)所述程序樣本對(duì)應(yīng)的特征向量對(duì)所述分類器進(jìn)行訓(xùn)練。
本發(fā)明實(shí)施例帶來(lái)了以下有益效果:
在本發(fā)明實(shí)施例中,獲取待檢測(cè)程序,提取待檢測(cè)程序的特征,根據(jù)待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定待檢測(cè)程序?qū)?yīng)的特征向量,利用訓(xùn)練好的分類器對(duì)該特征向量進(jìn)行檢測(cè),以確定該待檢測(cè)程序是否為惡意程序。由于已知的惡意程序和未知的惡意程序具有共同的行為模式,訓(xùn)練好的分類器可以根據(jù)待檢測(cè)程序?qū)?yīng)的特征向量,來(lái)識(shí)別該待檢測(cè)程序是否具有惡意程序的共同的行為模式,從而確定該待檢測(cè)程序是否為惡意程序,因此通過(guò)本發(fā)明實(shí)施例提供的惡意程序檢測(cè)方法及裝置,不僅可以準(zhǔn)確地識(shí)別已知的惡意程序,也可以有效地識(shí)別新型的惡意程序,從而解決現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序的技術(shù)問(wèn)題。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見,或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)在說(shuō)明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明具體實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)具體實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明第一實(shí)施例提供的惡意程序檢測(cè)方法的流程示意圖;
圖2為本發(fā)明第一實(shí)施例提供的惡意程序檢測(cè)方法中確定特征向量的流程示意圖;
圖3為本發(fā)明第一實(shí)施例提供的建立特征庫(kù)的流程示意圖;
圖4為本發(fā)明第一實(shí)施例提供的訓(xùn)練分類器的流程示意圖;
圖5a為本發(fā)明第一實(shí)施例提供的不同惡意樣本占比對(duì)應(yīng)的準(zhǔn)確度的實(shí)驗(yàn)結(jié)果示意圖;
圖5b為本發(fā)明第一實(shí)施例提供的不同惡意樣本占比對(duì)應(yīng)的召回率的實(shí)驗(yàn)結(jié)果示意圖;
圖5c為本發(fā)明第一實(shí)施例提供的不同惡意樣本占比對(duì)應(yīng)的漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖;
圖6a為本發(fā)明第一實(shí)施例提供的不同程序樣本數(shù)量對(duì)應(yīng)的準(zhǔn)確度的實(shí)驗(yàn)結(jié)果示意圖;
圖6b為本發(fā)明第一實(shí)施例提供的不同程序樣本數(shù)量對(duì)應(yīng)的召回率的實(shí)驗(yàn)結(jié)果示意圖;
圖6c為本發(fā)明第一實(shí)施例提供的不同程序樣本數(shù)量對(duì)應(yīng)的漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖;
圖7a為本發(fā)明第一實(shí)施例提供的不同特征篩選算法對(duì)應(yīng)的準(zhǔn)確度的實(shí)驗(yàn)結(jié)果示意圖;
圖7b為本發(fā)明第一實(shí)施例提供的不同特征篩選算法對(duì)應(yīng)的召回率的實(shí)驗(yàn)結(jié)果示意圖;
圖7c為本發(fā)明第一實(shí)施例提供的不同特征篩選算法對(duì)應(yīng)的漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖;
圖8為本發(fā)明第二實(shí)施例提供的惡意程序檢測(cè)裝置的模塊組成示意圖;
圖9為本發(fā)明第二實(shí)施例提供的惡意程序檢測(cè)裝置中特征向量確定模塊的單元組成示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
目前傳統(tǒng)的惡意程序檢測(cè)方法主要是通過(guò)檢測(cè)未知文件中是否包含特征庫(kù)中的特征來(lái)確定該未知文件是否為惡意程序,由于特征庫(kù)中只存儲(chǔ)有已知的惡意文件的特征,因此現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序?;诖耍景l(fā)明實(shí)施例提供的一種惡意程序檢測(cè)方法及裝置,可以解決現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序的技術(shù)問(wèn)題。
為便于對(duì)本實(shí)施例進(jìn)行理解,首先對(duì)本發(fā)明實(shí)施例所公開的一種惡意程序檢測(cè)方法進(jìn)行詳細(xì)介紹。
實(shí)施例一:
圖1為本發(fā)明第一實(shí)施例提供的惡意程序檢測(cè)方法的流程示意圖,如圖1所示,該方法包括以下步驟:
步驟S110,獲取待檢測(cè)程序,提取待檢測(cè)程序的特征。
獲取需要進(jìn)行惡意程序檢測(cè)的待檢測(cè)程序,提取該待檢測(cè)程序的操作碼,根據(jù)該操作碼確定該待檢測(cè)程序的特征。
具體地,對(duì)待檢測(cè)程序進(jìn)行反匯編,可以利用OD、IDA Pro、radare2、DEBUG、C32等反匯編工具。根據(jù)反匯編的結(jié)果對(duì)該待檢測(cè)程序進(jìn)行操作碼的提取和解析,即提取出操作碼后,將提取出的操作碼映射成操作碼數(shù)字,多個(gè)操作碼數(shù)字組合形成操作碼數(shù)字序列。例如:編寫JAVA程序進(jìn)行操作碼的提取,再根據(jù)預(yù)設(shè)的操作碼和數(shù)字對(duì)應(yīng)關(guān)系進(jìn)行操作碼的解析,若預(yù)設(shè)的操作碼和數(shù)字對(duì)應(yīng)關(guān)系為MOV對(duì)應(yīng)數(shù)字1,PUSH對(duì)應(yīng)數(shù)字2,POP對(duì)應(yīng)數(shù)字3,XCHG對(duì)應(yīng)數(shù)字4,XLAT對(duì)應(yīng)數(shù)字5,待檢測(cè)程序包含的操作碼依次為MOV、PUSH、POP、XCHG和XLAT,則待檢測(cè)程序?qū)?yīng)的操作碼數(shù)字序列為1.2.3.4.5。
根據(jù)上述獲得的操作碼數(shù)字序列,可以采用N-Gram算法對(duì)待檢測(cè)程序進(jìn)行特征的快速提取。優(yōu)選地,N-Gram算法中,元操作碼N的取值為1至15,該N值表示提取出的每個(gè)特征所包括的操作碼數(shù)字的個(gè)數(shù)。例如:N取值為3,待檢測(cè)程序?qū)?yīng)的操作碼數(shù)字序列為1.2.3.4.5,則提取出的特征為1.2.3,2.3.4,3.4.5。
步驟S120,根據(jù)待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定該待檢測(cè)程序?qū)?yīng)的特征向量。
圖2為本發(fā)明第一實(shí)施例提供的惡意程序檢測(cè)方法中確定特征向量的流程示意圖,如圖2所示,步驟S120具體包括以下三個(gè)步驟:
步驟S121,在待檢測(cè)程序的多個(gè)特征中,逐一查找特征庫(kù)中的每個(gè)特征。
步驟S122,當(dāng)查找到特征庫(kù)中的特征時(shí),將特征庫(kù)中被查找到的特征標(biāo)記為第一預(yù)設(shè)值,否則,將特征庫(kù)中未被查找到的特征標(biāo)記為第二預(yù)設(shè)值。
步驟S123,根據(jù)特征庫(kù)中各個(gè)特征的標(biāo)記結(jié)果和各個(gè)特征的排列順序,確定待檢測(cè)程序?qū)?yīng)的特征向量。
具體地,特征庫(kù)中包括按照一定順序排列的多個(gè)特征,本實(shí)施例中,在待檢測(cè)程序的多個(gè)特征中,逐一查找特征庫(kù)中的每個(gè)特征,根據(jù)查找結(jié)果對(duì)特征庫(kù)中的每個(gè)特征的值進(jìn)行標(biāo)記,由于特征庫(kù)中的多個(gè)特征按照一定順序排列,因此標(biāo)記結(jié)束后,能夠根據(jù)特征庫(kù)中各個(gè)特征的值,得到一個(gè)向量,該向量即為待檢測(cè)程序?qū)?yīng)的特征向量,顯然該特征向量的維度與特征庫(kù)中包含的特征個(gè)數(shù)相同。
例如,特征庫(kù)中包含依次排列的5個(gè)特征,第一預(yù)設(shè)值為1,第二預(yù)設(shè)值為0,其中,特征庫(kù)中的第一個(gè)和第三個(gè)特征在該待檢測(cè)程序的多個(gè)特征中被查找到,其他特征未被查找到,則該待檢測(cè)程序?qū)?yīng)的特征向量為(1,0,1,0,0)。
步驟S130,利用訓(xùn)練好的分類器對(duì)上述特征向量進(jìn)行檢測(cè),以確定待檢測(cè)程序是否為惡意程序。
具體地,利用訓(xùn)練好的分類器對(duì)上述特征向量進(jìn)行檢測(cè),可以得到待檢測(cè)程序是否為惡意程序的檢測(cè)結(jié)果,分類器的準(zhǔn)確度、召回率和漏報(bào)率可以為檢測(cè)結(jié)果的可靠性提供參考。
基于上述分析可知,本發(fā)明實(shí)施例提供的惡意程序檢測(cè)方法具有以下有益效果:
在本發(fā)明實(shí)施例中,獲取待檢測(cè)程序,提取待檢測(cè)程序的特征,根據(jù)待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定待檢測(cè)程序?qū)?yīng)的特征向量,利用訓(xùn)練好的分類器對(duì)該特征向量進(jìn)行檢測(cè),以確定該待檢測(cè)程序是否為惡意程序。由于已知的惡意程序和未知的惡意程序具有共同的行為模式,訓(xùn)練好的分類器可以根據(jù)待檢測(cè)程序?qū)?yīng)的特征向量,來(lái)識(shí)別該待檢測(cè)程序是否具有惡意程序的共同的行為模式,從而確定該待檢測(cè)程序是否為惡意程序,因此通過(guò)本發(fā)明實(shí)施例提供的惡意程序檢測(cè)方法,不僅可以準(zhǔn)確地識(shí)別已知的惡意程序,也可以有效地識(shí)別新型的惡意程序,從而解決現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序的技術(shù)問(wèn)題。
圖3為本發(fā)明第一實(shí)施例提供的建立特征庫(kù)的流程示意圖,如圖3所示,上述特征庫(kù)可以通過(guò)步驟S210、S220和S230建立:
步驟S210,獲取滿足預(yù)設(shè)樣本要求的程序樣本,提取該程序樣本的特征,其中,該程序樣本包括正常樣本和惡意樣本。
具體地,程序樣本的獲取包括但不限于以下方式:從已有的病毒庫(kù)中下載多個(gè)病毒程序作為惡意樣本,從Windows XP系統(tǒng)內(nèi)下載多個(gè)系統(tǒng)程序作為正常樣本。利用靜態(tài)分析軟件進(jìn)行樣本預(yù)處理。對(duì)獲取的程序樣本進(jìn)行批量查殼,可以采用PEiD、Detect it Easy或者Fast Scanner等查殼工具。對(duì)獲取的程序樣本進(jìn)行查殼后,從該程序樣本中篩選滿足預(yù)設(shè)樣本要求的程序樣本,其中,滿足預(yù)設(shè)樣本要求的程序樣本為無(wú)殼樣本,無(wú)殼樣本包括不帶殼樣本,還可以包括脫殼后樣本。為方便處理,優(yōu)選地,滿足預(yù)設(shè)樣本要求的程序樣本為不帶殼樣本。
提取上述滿足預(yù)設(shè)樣本要求的程序樣本的特征,提取特征的具體過(guò)程與步驟S110相同,此處不再贅述。
步驟S220,對(duì)上述程序樣本的特征進(jìn)行篩選,得到分類效果滿足預(yù)設(shè)分類要求的特征。
具體地,可以采用但不限于信息增益算法,對(duì)上述程序樣本的特征進(jìn)行篩選。一個(gè)特征的信息增益越大,分類效果越好,根據(jù)基于信息增益的特征篩選算法,可以得到按分類效果由好到差排序的多個(gè)特征,在該程序樣本的多個(gè)特征中選取分類效果滿足預(yù)設(shè)分類要求的特征,例如選取前50個(gè)分類效果較好的特征。
步驟S230,將分類效果滿足預(yù)設(shè)分類要求的特征進(jìn)行組合,得到特征庫(kù)。
具體地,可以但不限于按照分類效果的排序,將滿足預(yù)設(shè)分類要求的特征組成特征庫(kù),例如,按照分類效果由好到差的順序,將滿足預(yù)設(shè)分類要求的特征排序,得到特征庫(kù)。
圖4為本發(fā)明第一實(shí)施例提供的訓(xùn)練分類器的流程示意圖,如圖4所示,上述訓(xùn)練好的分類器可以通過(guò)以下步驟進(jìn)行訓(xùn)練:
步驟S310,根據(jù)上述程序樣本的特征和特征庫(kù),確定該程序樣本對(duì)應(yīng)的特征向量。
根據(jù)步驟S210得到的程序樣本的特征和步驟S230得到的特征庫(kù),將程序樣本中的正常樣本和惡意樣本轉(zhuǎn)化成分類器可以識(shí)別的向量形式,確定該程序樣本對(duì)應(yīng)的特征向量,具體過(guò)程與步驟S120相同,此處不再贅述。
步驟S320,根據(jù)該程序樣本對(duì)應(yīng)的特征向量對(duì)分類器進(jìn)行訓(xùn)練。
具體地,將步驟S310得到的該程序樣本對(duì)應(yīng)的特征向量輸入分類器中,可以采用基于網(wǎng)格搜索法的支持向量機(jī)分類算法對(duì)分類器進(jìn)行參數(shù)調(diào)優(yōu),使得分類器獲得較好的分類效果。
訓(xùn)練好的分類器可以進(jìn)行周期性的更新,以提高分類器的準(zhǔn)確度和召回率,降低漏報(bào)率。
本發(fā)明實(shí)施例提供了分類器的準(zhǔn)確度、召回率和漏報(bào)率分別與N-Gram算法中元操作碼N取值的關(guān)系的實(shí)驗(yàn)結(jié)果。
圖5a、圖5b和圖5c分別為不同惡意樣本占比對(duì)應(yīng)的準(zhǔn)確度、召回率和漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖,其中,惡意樣本占比包括30%、40%、50%、60%和70%,訓(xùn)練分類器的程序樣本數(shù)量為800,采用信息增益算法。
從圖5a的準(zhǔn)確度的實(shí)驗(yàn)結(jié)果示意圖中可以看出:惡意樣本占比為50%或者60%時(shí),準(zhǔn)確度均明顯高于其他占比情況的準(zhǔn)確度,其中,當(dāng)N取值為1至7中任一值時(shí),準(zhǔn)確度較高,為0.98左右,當(dāng)N大于7時(shí),準(zhǔn)確度逐漸降低至0.88左右。惡意樣本占比為30%時(shí),整體的準(zhǔn)確度較低。
從圖5b的召回率的實(shí)驗(yàn)結(jié)果示意圖中可以看出:惡意樣本占比為50%、60%或者70%時(shí),召回率均明顯高于其他占比情況的召回率,其中,當(dāng)N取值為1至8中任一值時(shí),召回率較高,為0.99左右,當(dāng)N大于8時(shí),召回率稍微降低至0.96左右。
從圖5c的漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖中可以看出:惡意樣本占比為30%、40%、50%以及60%時(shí),漏報(bào)率均明顯低于占比為70%的漏報(bào)率,其中當(dāng)N取值為1至7時(shí),漏報(bào)率較低,為0.02左右,當(dāng)N大于7時(shí),漏報(bào)率隨N的增大而升高至0.18左右。
因此,本實(shí)施例中的最佳惡意樣本占比為50%,N取值為1至7。
圖6a、圖6b和圖6c分別為不同程序樣本數(shù)量對(duì)應(yīng)的準(zhǔn)確度、召回率和漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖,其中,程序樣本數(shù)量包括400、600和800,惡意樣本占比為50%,采用信息增益算法。
從圖6a的準(zhǔn)確度的實(shí)驗(yàn)結(jié)果示意圖中可以看出:程序樣本數(shù)量為800時(shí),準(zhǔn)確度大于其他情況,其中,當(dāng)N取值為1至7中任一值時(shí),準(zhǔn)確度較高,為0.98左右,當(dāng)N大于7時(shí),準(zhǔn)確度逐漸降低至0.88左右。
從圖6b的召回率的實(shí)驗(yàn)結(jié)果示意圖中可以看出:程序樣本數(shù)量為800時(shí),召回率高于其他情況,其中,當(dāng)N取值為1至8中任一值時(shí),召回率較高,為0.99左右,當(dāng)N大于8時(shí),召回率稍微降低至0.96左右。
從圖6c的漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖中可以看出:當(dāng)N取值為1至6中任一值時(shí),不同程序樣本數(shù)量的漏報(bào)率基本一致,為0.01左右。當(dāng)N大于8時(shí),漏報(bào)率顯著升高,可達(dá)0.2。
因此,本實(shí)施例中的最佳程序樣本數(shù)量為800,N取值為1至7。根據(jù)本實(shí)驗(yàn)結(jié)果可以推測(cè),程序樣本數(shù)量越多,訓(xùn)練出的分類器的分類效果越好。
圖7a、圖7b和圖7c分別為不同特征篩選算法對(duì)應(yīng)的準(zhǔn)確度、召回率和漏報(bào)率的實(shí)驗(yàn)結(jié)果示意圖,其中,特征篩選算法包括信息增益算法和絕對(duì)比例區(qū)分算法(CPD),惡意樣本占比為50%,程序樣本數(shù)量為800。
從圖7a、圖7b和圖7c中可以看出,信息增益算法在準(zhǔn)確度、召回率、漏報(bào)率三個(gè)方面均明顯優(yōu)于絕對(duì)比例區(qū)分算法,且當(dāng)N取值為1至7時(shí),效果較好。
綜合上述實(shí)驗(yàn)結(jié)果可知,當(dāng)元操作碼N取值為1至7,惡意樣本占比為50%,程序樣本數(shù)量為800,采用信息增益算法時(shí),獲得的分類器的分類效果較好。
實(shí)施例二:
圖8為本發(fā)明第二實(shí)施例提供的惡意程序檢測(cè)裝置的模塊組成示意圖,如圖8所示,該惡意程序檢測(cè)裝置包括:特征提取模塊10,用于獲取待檢測(cè)程序,提取待檢測(cè)程序的特征;特征向量確定模塊20,用于根據(jù)待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定待檢測(cè)程序?qū)?yīng)的特征向量;檢測(cè)模塊30,用于利用訓(xùn)練好的分類器對(duì)該特征向量進(jìn)行檢測(cè),以確定該待檢測(cè)程序是否為惡意程序。
其中,特征提取模塊10具體用于:提取待檢測(cè)程序的操作碼,根據(jù)該操作碼確定待檢測(cè)程序的特征。
圖9為本發(fā)明第二實(shí)施例提供的惡意程序檢測(cè)裝置中特征向量確定模塊的單元組成示意圖,如圖9所示,特征向量確定模塊20包括:特征查找單元21,用于在待檢測(cè)程序的多個(gè)特征中,逐一查找特征庫(kù)中的每個(gè)特征;標(biāo)記單元22,用于當(dāng)特征查找單元21查找到特征庫(kù)中的特征時(shí),將特征庫(kù)中被查找到的特征標(biāo)記為第一預(yù)設(shè)值,否則,將特征庫(kù)中未被查找到的特征標(biāo)記為第二預(yù)設(shè)值;第一確定單元23,用于根據(jù)特征庫(kù)中各個(gè)特征的標(biāo)記結(jié)果和各個(gè)特征的排列順序,確定待檢測(cè)程序?qū)?yīng)的特征向量。
基于上述分析可知,本發(fā)明實(shí)施例提供的惡意程序檢測(cè)裝置具有以下有益效果:
在本發(fā)明實(shí)施例中,特征提取模塊10獲取待檢測(cè)程序,提取待檢測(cè)程序的特征,特征向量確定模塊20根據(jù)待檢測(cè)程序的特征和預(yù)先獲得的特征庫(kù),確定待檢測(cè)程序?qū)?yīng)的特征向量,檢測(cè)模塊30利用訓(xùn)練好的分類器對(duì)該特征向量進(jìn)行檢測(cè),以確定該待檢測(cè)程序是否為惡意程序。由于已知的惡意程序和未知的惡意程序具有共同的行為模式,訓(xùn)練好的分類器可以根據(jù)待檢測(cè)程序?qū)?yīng)的特征向量,來(lái)識(shí)別該待檢測(cè)程序是否具有惡意程序的共同的行為模式,從而確定該待檢測(cè)程序是否為惡意程序,因此通過(guò)本發(fā)明實(shí)施例提供的惡意程序檢測(cè)裝置,不僅可以準(zhǔn)確地識(shí)別已知的惡意程序,也可以有效地識(shí)別新型的惡意程序,從而解決現(xiàn)有的惡意程序檢測(cè)方法只能識(shí)別已知的惡意程序,無(wú)法有效地識(shí)別新型的惡意程序的技術(shù)問(wèn)題。
本發(fā)明實(shí)施例提供的裝置還包括特征庫(kù)建立模塊,該特征庫(kù)建立模塊包括:特征提取單元,用于獲取滿足預(yù)設(shè)樣本要求的程序樣本,提取該程序樣本的特征,其中,該程序樣本包括正常樣本和惡意樣本;特征篩選單元,用于對(duì)程序樣本的特征進(jìn)行篩選,得到分類效果滿足預(yù)設(shè)分類要求的特征;特征庫(kù)建立單元,用于將分類效果滿足預(yù)設(shè)分類要求的特征進(jìn)行組合,得到特征庫(kù)。
本發(fā)明實(shí)施例提供的裝置還包括訓(xùn)練模塊,該訓(xùn)練模塊包括:第二確定單元,用于根據(jù)程序樣本的特征和特征庫(kù),確定該程序樣本對(duì)應(yīng)的特征向量;訓(xùn)練單元,用于根據(jù)程序樣本對(duì)應(yīng)的特征向量對(duì)分類器進(jìn)行訓(xùn)練。
本發(fā)明實(shí)施例提供的惡意程序檢測(cè)裝置,與上述實(shí)施例提供的惡意程序檢測(cè)方法具有相同的技術(shù)特征,所以也能解決相同的技術(shù)問(wèn)題,達(dá)到相同的技術(shù)效果。
本發(fā)明實(shí)施例所提供的惡意程序檢測(cè)方法及裝置的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的裝置的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
在本發(fā)明的描述中,需要說(shuō)明的是,術(shù)語(yǔ)“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。此外,術(shù)語(yǔ)“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。
最后應(yīng)說(shuō)明的是:以上所述實(shí)施例,僅為本發(fā)明的具體實(shí)施方式,用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。