專利名稱:惡意文件識別方法、裝置及存儲介質的制作方法
技術領域:
本發明涉及互聯網技術領域,,特別涉及安全領域,尤其涉及一種惡意文件識別方法、裝置及存儲介質。
背景技術:
隨著互聯網技術的發展,病毒的傳播也在加劇。病毒對用戶信息的安全和用戶財產造成了極大的危害,因此,開發反應迅速、高效、查毒率且正確率高的殺毒引擎已成為當今互聯網信息安全界的重點。傳統的殺毒引擎通常采用的病毒識別技術如下分析人員分析病毒文件、提取病 毒特征、將病毒特征入庫、殺毒引擎根據病毒庫掃描現有文件,如果遇到能夠匹配上的特征則報毒。傳統的病毒識別技術存在以下弊端I、對分析人員的專業技能要求較高,而提取病毒特征的質量決定了誤報率和報出率;2、分析病毒文件以及提取病毒特征十分耗時;3、效率低,隨著病毒庫記錄的增多,為了碰撞每一條記錄,所需要的時間會成幾何倍數增加;4、對病毒的發現不及時,相對于海量的新的病毒種類,由于分析人員的處理能力有限,對于一些病毒的處理,只有等病毒爆發時才會被發現或重視,繼而進行處理,而此時病毒已造成了相當大的危害。
發明內容
本發明的主要目的在于提供一種惡意文件識別方法、裝置及存儲介質,旨在提高惡意文件的檢測效率。為了達到上述目的,本發明提出一種惡意文件識別方法,包括以下步驟采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件;將所述待檢測文件轉化成向量;通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。本發明還提出一種惡意文件識別裝置,包括模型生成模塊,用于采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取模塊,用于讀取學習集以外的待檢測文件;向量轉化模塊,用于將所述待檢測文件轉化成向量;識別模塊,用于通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。
本發明還提出一種計算機可讀取的存儲介質,在其上存儲了使計算機能夠運行的程序,在程序裝入計算機的存儲器內后,采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件;將所述待檢測文件轉化成向量;通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。本發明提出的一種惡意文件識別方法、裝置及存儲介質,通過預先設定的惡意文件和正常文件組成的學習集生成機器學習模型,通過生成的機器學習模型對學習集以外的待檢測文件進行惡意文件識別,可及時、準確并有效的提取病毒特征,對發現的任何惡意文件可立即處理,由此極大的提升了惡意文件的檢測效率。
圖I是本發明惡意文件識別方法較佳實施例的流程示意圖; 圖2是本發明惡意文件識別方法較佳實施例中采用預定的惡意文件和正常文件組成的學習集生成機器學習模型的流程示意圖;圖3是本發明惡意文件識別方法較佳實施例中對學習集中惡意文件和正常文件的向量進行維度合并和篩選的流程示意圖;圖4是本發明惡意文件識別方法較佳實施例中對學習集中惡意文件和正常文件的向量進行維度合并和篩選的一種實例的流程示意圖;圖5是本發明惡意文件識別裝置較佳實施例的結構示意圖;圖6是本發明惡意文件識別裝置較佳實施例中模型生成模塊的結構示意圖;圖7是本發明惡意文件識別裝置較佳實施例中合并及篩選單元的結構示意圖;圖8是本發明惡意文件識別裝置較佳實施例中識別模塊的結構示意圖。為了使本發明的技術方案更加清楚、明了,下面將結合附圖作進一步詳述。
具體實施例方式本發明實施例解決方案主要是采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件,并將所述待檢測文件轉化成向量,通過機器學習模型對轉化成向量的待檢測文件進行惡意文件識別,利用機器學習反應及時、處理速度快的特點,提升惡意文件的檢測效率。本發明中惡意文件可以為病毒文件或其他惡意的文件,以下實施例以惡意文件舉例說明。其中,涉及的技術術語包括黑文件病毒文件黑向量病毒文件轉化成的向量白文件正常的非病毒文件白向量正常的非病毒文件轉化成的向量SVM:支撐向量機PE文件windows系統下的一種可執行文件格式如圖I所示,本發明較佳實施例提出一種惡意文件識別方法,包括步驟S101,采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;以windows系統為例,為了對windows系統下的文件進行查毒,本實施例首先利用已知的病毒文件和非病毒文件(即本實施例所稱惡意文件和正常文件)生成機器學習模型,以便通過該機器學習模型對windows系統下的文件進行病毒識別,解決系統中病毒文件與正常文件的分類問題。上述已知的病毒文件和非病毒文件可由病毒分析師預先收集,并形成一個學習集,通過對學習集中各病毒文件和正常文件進行特征提取、維度合并和篩選后,由分類器對學習集中各病毒文件和正常文件進行向量學習,最終生成機器學習模型。具體地,首先,將學習集中的惡意文件和正常文件分別轉化成向量,即是將學習集中的惡意文件和正常文件分別完成有效樣本特征的提取。對于一個可執行文件(PE文件)來說,對病毒識別有幫助的特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。本實施例將這些特征key和該特征的值value組成一(key value)對,一個文件 (包括惡意文件和正常文件)則變成了一個(key value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。通過特征提取,將文件轉化為一個維數不固定的多維向量。但是,生成機器學習模型的分類器需要的是一個維數固定的向量,而將維度固定的方法是合并所有文件的維度(key),如果單個文件不存在某一維度則將其值設為0 ;對于海量文件則有具有海量的維度,會出現維數災難,因此,需要對這些維度進行合并和篩選;最后通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。步驟S102,讀取學習集以外的待檢測文件;步驟S103,將待檢測文件轉化成向量;步驟S104,通過機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。上述步驟S102至步驟S104中,當學習集外有文件需要檢測時,讀取待檢測文件,將待檢測文件轉化成向量,通過步驟SlOl生成的機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。作為一種優選的實施例,以PC機為例,可以將步驟SlOl生成的機器學習模型應用到PC機前端的查毒引擎,在用戶的PC機上進行查毒,其具體實施過程如下I、讀取PC機上的待檢測文件;2、將讀取的PC機上的待檢測文件轉換成向量。如前所述,分類器對學習集中各病毒文件和正常文件進行向量學習,從而生成機器學習模型,即機器學習模型所處理的文件對象應該是向量,因此,本實施例中,在讀取到PC機系統中待檢測文件時,需要將待檢測文件轉化為向量,即從待檢測文件中提取出有效的樣本特征。該有效的樣本特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。然后,將這些特征key和該特征的值value組成一(key value)對,一個文件(包括惡意文件和正常文件)則變成了一個(key :value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。3、通過機器學習模型對轉化成向量的PC機上的待檢測文件進行惡意文件識別。將轉化為向量的PC機上的待檢測文件置于機器學習模型中進行判斷,從中識別出病毒文件和正常文件。具體為通過機器學習模型對轉化成向量后的待檢測文件進行線性函數計算;根據計算結果判斷惡意文件和正常文件的屬性,從而輸出待檢測文件中的惡意文件和正常文件。具體地,如圖2所示,上述步驟SlOl采用預定的惡意文件和正常文件組成的學習集生成機器學習模型的步驟包括步驟S1011,將學習集中的惡意文件和正常文件分別轉化成向量;將學習集中的惡意文件和正常文件分別轉化成向量,即是將學習集中的惡意文件和正常文件分別完成有效樣本特征的提取。對于一個可執行文件(PE文件)來說,對病毒識別有幫助的特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。 本實施例將這些特征key和該特征的值value組成一(key value)對,一個文件(包括惡意文件和正常文件)則變成了一個(key value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。步驟S1012,對學習集中惡意文件和正常文件的向量進行維度合并和篩選;通過特征提取,將文件轉化為一個維數不固定的多維向量。但是,生成機器學習模型的分類器需要的是一個維數固定的向量,而將維度固定的方法是合并所有文件的維度(key),如果單個文件不存在某一維度則將其值設為0 ;對于海量文件則有具有海量的維度,會出現維數災難,因此,需要對這些維度進行合并和篩選。本實施例具體將維度合并和篩選出K維,其中,K維是指從多個維度中根據一定的規則,經過合并和篩選,選出的前K個維度。后續將結合圖3進行詳細闡述。步驟S1013,通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。本實施例中分類器可以采用線性分類器,所謂線性SVM,是指其核函數為內積函數。本實施例具體采用支持向量機SVM (Support Vector Machine), SVM是一種可訓練的學習機器,屬于一般化線性分類器,這種分類器的特點是能夠最小化經驗誤差和最大化集合邊緣區。將SVM應用到病毒識別,即是要解決病毒文件與正常文件的分類問題。SVM對合并和篩選后的向量進行學習,即生成機器學習模型。當然,在其他實施例中,還可以改用其他機器學習方法進行判別,而無需使用SVM。更為具體地,如圖3所示,若設定所述學習集中的所有惡意文件的向量為黑向量集,所有正常文件的向量為白向量集,則上述步驟S1012對學習集中惡意文件和正常文件的向量進行維度合并和篩選的步驟包括步驟S10,從所述黑向量集中隨機選取兩黑向量,提取兩黑向量的共有維度,作為黑維度集;從所述白向量集中隨機選取兩白向量,提取兩白向量的共有維度,作為白維度集;步驟S11,將所述黑維度集中所有出現在所述白維度集中的維度去掉,形成新的黑維度集,對所述白維度集和新的黑維度集中的每一維度賦予權重;上述步驟SlO及步驟Sll中,為了將維度合并和篩選出K維,采用以下方式將整個黑向量集和白向量集合并和篩選維度的問題,拆分成兩黑向量和兩白向量的子問題;然后解每一個子問題,將兩白向量提取共有維度(取交集),作為子問題白維度集,將兩黑向量提取共有維度作為子問題的黑維度集,并且將黑維度集中所有出現在白維度集中的維度去掉,對選出來的每一黑、白維度賦予權重。
步驟S12,將所述白維度集和新的黑維度集根據權重分別進行維度合并,并將合并后權重低于預定權重閥值的維度丟棄;將所有子問題的解根據維度合并,合并過程中設置一個權重閾值W,如果合并后的維度(合并時維度對應的權重值相加)的權重低于W,則直接丟棄該維度,防止出現維度集無限制增長。步驟S13,分別判斷黑向量集和白向量集中所有的向量是否處理完畢;若是;則進入步驟S14 ;否則,返回步驟SlO ;步驟S14,用合并后的白維度集過濾合并后的黑維度集;步驟S15,對過濾后的黑維度集按照權重大小排序,取出排名最高的前K維的黑維度作為最終維度;
上述步驟S13-步驟S15中,當黑向量集和白向量集中所有的向量學習完畢,用合并后的白維度集過濾黑維度集(即黑維度集=黑維度集-白維度集),對黑維度集根據權重大小進行排名,取出排名最高的前K維的黑維度作為結果。 步驟S16,將所述黑向量集和白向量集中的所有向量轉化成K維向量。將黑白文件中所有的向量轉化成選出的K維向量的標準形式,以便SVM對K維向量進行學習,生成機器學習模型。下面以具體實例對上述合并和篩選學習集中所有病毒文件和正常文件的向量的過程進行詳細闡述。如圖4所示,以FB、FW分別表示黑、白向量總集,以FBL和FWL分別表示黑、白向量的共有維度集,以BI、B2分別表示從黑向量集中隨機選取的兩黑向量的標記,以Wl、W2分別表示從白向量集中隨機選取的兩白向量的標記,對學習集中所有病毒文件和正常文件的向量進行合并和篩選的過程具體為SI,初始化FB、FW,選擇黑白向量集;若選擇黑向量,則進入步驟S2,若選擇白向量,則進入步驟S3;S2,判斷黑向量集中的黑向量是否全部被標記;若是,則進入步驟S4;否則,進入步驟S21 ;S21,隨機選取兩個黑向量B1、B2 ;S22,提取共有維度集FBL并對每一維度賦予權重;進入S23 ;S3,判斷白向量集中的白向量是否全部被標記;若是,則進入步驟S4 ;否則,進入步驟S31 ;S31,隨機選取兩個白向量W1、W2 ;S32,提取共有維度集FWL并對每一維度賦予權重;進入S23 ;S23,將FBL和FWL作差集,作為新的FBL ;S24,將新的FBL和FWL分別合并到總集FB、Fff中,合并時將權集相加;S25,將FB和FW中權重小于w-limit (設定的權重閥值)的維度剔除;分別返回步驟S2和S3。S4,FB和FW作差集作為新的FB ;S5,將FB根據權重排序取出前K維,得到FB最終結果。本實施例通過預先設定的惡意文件和正常文件組成的學習集生成機器學習模型,并通過生成的機器學習模型對學習集以外的待檢測文件進行惡意文件識別,即由機器自動提取病毒等惡意代碼特征,省去了分析人員的參與,而且機器學習反應及時,可準確并有效的提取病毒特征,對發現的任何惡意文件都可立即處理,由此極大的提升了惡意文件的檢測效率。如圖5所示,本發明較佳實施例提出一種惡意文件識別裝置,包括模型生成模塊501、讀取模塊502、向量轉化模塊503以及識別模塊504,其中模型生成模塊501,用于采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取模塊502,用于讀取學習集以外的待檢測文件;向量轉化模塊503,用于將所述待檢測文件轉化成向量;識別模塊504,用于通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。以windows系統為例,為了對windows系統下的文件進行查毒,本實施例首先利用已知的病毒文件和非病毒文件(即本實施例所稱惡意文件和正常文件)生成機器學習模型,以便通過該機器學習模型對windows系統下的文件進行病毒識別,解決系統中病毒文件與正常文件的分類問題。上述已知的病毒文件和非病毒文件可由病毒分析師預先收集,并形成一個學習集,通過模型生成模塊501對學習集中各病毒文件和正常文件進行特征提取、維度合并和篩選后,由分類器對學習集中各病毒文件和正常文件進行向量學習,最終生成機器學習模型。具體地,首先,將學習集中的惡意文件和正常文件分別轉化成向量,即是將學習集中的惡意文件和正常文件分別完成有效樣本特征的提取。對于一個可執行文件(PE文件)來說,對病毒識別有幫助的特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。本實施例將這些特征key和該特征的值value組成一(key :value)對,一個文件(包括惡意文件和正常文件)則變成了一個(key value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。通過特征提取,將文件轉化為一個維數不固定的多維向量。但是,生成機器學習模型的分類器需要的是一個維數固定的向量,而將維度固定的方法是合并所有文件的維度(key),如果單個文件不存在某一維度則將其值設為0 ;對于海量文件則有具有海量的維度,會出現維數災難,因此,需要對這些維度進行合并和篩選;最后通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。當學習集外有文件需要檢測時,讀取待檢測文件,將待檢測文件轉化成向量,通過步驟SlOl生成的機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。作為一種優選的實施例,以PC機為例,可以將模型生成模塊501生成的機器學習模型應用到PC機前端的查毒引擎,在用戶的PC機上進行查毒,其具體實施過程如下I、讀取PC機上的待檢測文件;2、將讀取的PC機上的待檢測文件轉換成向量。如前所述,分類器對學習集中各病毒文件和正常文件進行向量學習,從而生成機、器學習模型,即機器學習模型所處理的文件對象應該是向量,因此,本實施例中,在讀取模塊502讀取到PC機系統中待檢測文件時,向量轉化模塊503需要將待檢測文件轉化為向量,即從待檢測文件中提取出有效的樣本特征。該有效的樣本特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。然后,將這些特征key和該特征的值value組成一(key :value)對,一個文件(包括惡意文件和正常文件)則變成了一個(key :value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。3、通過機器學習模型對轉化成向量的PC機上的待檢測文件進行惡意文件識別。識別模塊504將轉化為向量的PC機上的待檢測文件置于機器學習模型中進行判斷,從中識別出病毒文件和正常文件。具體為通過機器學習模型對轉化成向量后的待檢測文件進行線性函數計算;根據計算結果判斷惡意文件和正常文件的屬性,從而輸出待檢測文件中的惡意文件和正常文件。 具體地,如圖6所示,所述模型生成模塊501包括向量轉化單元5011、合并及篩選單元5012以及生成單元5013,其中向量轉化單元5011,用于將所述學習集中的惡意文件和正常文件分別轉化成向量;合并及篩選單元5012,用于對所述學習集中惡意文件和正常文件的向量進行維度合并和篩選;生成單元5013,用于通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。在本實施例中,將學習集中的惡意文件和正常文件分別轉化成向量,即是將學習集中的惡意文件和正常文件分別完成有效樣本特征的提取。對于一個可執行文件(PE文件)來說,對病毒識別有幫助的特征包括字符串、指令序列、函數過程、導入導出函數以及各個段的屬性等。本實施例將這些特征key和該特征的值value組成一(key value)對,一個文件(包括惡意文件和正常文件)則變成了一個(key value)的集合,如果將每一個key當做一個維度,貝1J一個文件的(key value)的集合可以看做是一個維數不固定的多維向量。通過特征提取,將文件轉化為一個維數不固定的多維向量。但是,生成機器學習模型的分類器需要的是一個維數固定的向量,而將維度固定的方法是合并所有文件的維度(key),如果單個文件不存在某一維度則將其值設為0 ;對于海量文件則有具有海量的維度,會出現維數災難,因此,需要對這些維度進行合并和篩選。本實施例具體將維度合并和篩選出K維,其中,K維是指從多個維度中根據一定的規則,經過合并和篩選,選出的前K個維度。本實施例中分類器可以采用線性分類器,所謂線性SVM,是指其核函數為內積函數。本實施例具體采用支持向量機SVM (Support Vector Machine), SVM是一種可訓練的學習機器,屬于一般化線性分類器,這種分類器的特點是能夠最小化經驗誤差和最大化集合邊緣區。將SVM應用到病毒識別,即是要解決病毒文件與正常文件的分類問題。SVM對合并和篩選后的向量進行學習,即生成機器學習模型。當然,在其他實施例中,還可以改用其他機器學習方法進行判別,而無需使用SVM。
更為具體地,如圖7所示,若設定所述學習集中的所有惡意文件的向量為黑向量集,所有正常文件的向量為白向量集,則所述合并及篩選單元5012包括第一提取子單元50121、篩選子單元50122、合并子單元50123、過濾子單元50124、第二提取子單元50125以及轉化子單元50126,其中第一提取子單元50121,用于從所述黑向量集中隨機選取兩黑向量,提取兩黑向量的共有維度,作為黑維度集;從所述白向量集中隨機選取兩白向量,提取兩白向量的共有維度,作為白維度集;篩選子單元50122,用于將所述黑維度集中所有出現在所述白維度集中的維度去掉,形成新的黑維度集,對所述白維度集和新的黑維度集中的每一維度賦予權重;合并子單元50123,用于將所述白維度集和新的黑維度集根據權重分別進行維度合并,并將合并后權重低于預定權重閥值的維度丟棄; 過濾子單元50124,用于當所述黑向量集和白向量集中所有的向量處理完畢后,用合并后的白維度集過濾合并后的黑維度集;第二提取子單元50125,用于對過濾后的黑維度集按照權重大小排序,取出排名最高的前K維的黑維度作為最終維度;轉化子單元50126,用于將所述黑向量集和白向量集中的所有向量轉化成K維向量。本實施例中,為了將維度合并和篩選出K維,采用以下方式將整個黑向量集和白向量集合并和篩選維度的問題,拆分成兩黑向量和兩白向量的子問題;然后解每一個子問題,將兩白向量提取共有維度(取交集),作為子問題白維度集,將兩黑向量提取共有維度作為子問題的黑維度集,并且將黑維度集中所有出現在白維度集中的維度去掉,對選出來的每一黑、白維度賦予權重。將所有子問題的解根據維度合并,合并過程中設置一個權重閾值W,如果合并后的維度(合并時維度對應的權重值相加)的權重低于W,則直接丟棄該維度,防止出現維度集無限制增長。當黑向量集和白向量集中所有的向量學習完畢,用合并后的白維度集過濾黑維度集(即黑維度集=黑維度集-白維度集),對黑維度集根據權重大小進行排名,取出排名最高的前K維的黑維度作為結果。將黑白文件中所有的向量轉化成選出的K維向量的標準形式,以便SVM對K維向量進行學習,生成機器學習模型。此外,如圖8所示,上述識別模塊504包括計算單元5041以及輸出單元5042,其中計算單元5041,用于對轉化成向量后的待檢測文件通過機器學習模型獲取計算結果;輸出單元5042,用于根據計算結果輸出待檢測文件中的惡意文件和正常文件。本發明實施例惡意文件識別方法、裝置及存儲介質,通過預先設定的惡意文件和正常文件組成的學習集生成機器學習模型,并通過生成的機器學習模型對學習集以外的待檢測文件進行惡意文件識別,即由機器自動提取病毒等惡意代碼特征,省去了分析人員的參與,而且機器學習反應及時,可準確并有效的提取病毒特征,對發現的任何惡意文件都可立即處理,由此極大的提升了惡意文件的檢測效率。此外,本發明還提出一種計算機可讀取的存儲介質,在其上存儲了使計算機能夠運行的程序,在程序裝入計算機的存儲器內后,采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件;將所述待檢測文件轉化成向量;通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。需要說明的是,本發明上述實施例均以windows操作系統舉例說明,但并不限于windows操作系統,其他操作系統也可以參照采用本發明的上述方案進行惡意文件檢測識另IJ,比如mac或者Iinux系統等,其具體原理在此不再贅述。以上所述僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用 本發明說明書及附圖內容所作的等效結構或流程變換,或直接或間接運用在其它相關的技術領域,均同理包括在本發明的專利保護范圍內。
權利要求
1.一種惡意文件識別方法,其特征在于,包括以下步驟 采用預定的惡意文件和正常文件組成的學習集生成機器學習模型; 讀取學習集以外的待檢測文件; 將所述待檢測文件轉化成向量; 通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。
2.根據權利要求I所述的方法,其特征在于,所述采用預定的惡意文件和正常文件組成的學習集生成機器學習模型的步驟包括 將所述學習集中的惡意文件和正常文件分別轉化成向量; 對所述學習集中惡意文件和正常文件的向量進行維度合并和篩選; 通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。
3.根據權利要求2所述的方法,其特征在于,設定所述學習集中的所有惡意文件的向量為黑向量集,所有正常文件的向量為白向量集,所述對學習集中惡意文件和正常文件的向量進行維度合并和篩選的步驟包括 從所述黑向量集中隨機選取兩黑向量,提取兩黑向量的共有維度,作為黑維度集;從所述白向量集中隨機選取兩白向量,提取兩白向量的共有維度,作為白維度集; 將所述黑維度集中所有出現在所述白維度集中的維度去掉,形成新的黑維度集,對所述白維度集和新的黑維度集中的每一維度賦予權重; 將所述白維度集和新的黑維度集根據權重分別進行維度合并,并將合并后權重低于預定權重閥值的維度丟棄;以此循環上述三個步驟,直至所述黑向量集和白向量集中所有的向量處理完畢。
4.根據權利要求3所述的方法,其特征在于,所述對學習集中惡意文件和正常文件的向量進行維度合并和篩選的步驟進一步還包括 當所述黑向量集和白向量集中所有的向量處理完畢后,用合并后的白維度集過濾合并后的黑維度集; 對過濾后的黑維度集按照權重大小排序,取出排名最高的前K維的黑維度作為最終維度; 將所述黑向量集和白向量集中的所有向量轉化成K維向量。
5.根據權利要求1、2、3或4所述的方法,其特征在于,所述通過機器學習模型對轉化成向量的待檢測文件進行惡意文件識別的步驟包括 對轉化成向量后的待檢測文件通過機器學習模型獲取計算結果; 根據計算結果輸出待檢測文件中的惡意文件和正常文件。
6.根據權利要求5所述的方法,其特征在于,所述預定的惡意文件和正常文件是指預先收集的已知的惡意文件和正常文件。
7.—種惡意文件識別裝置,其特征在于,包括 模型生成模塊,用于采用預定的惡意文件和正常文件組成的學習集生成機器學習模型; 讀取模塊,用于讀取學習集以外的待檢測文件; 向量轉化模塊,用于將所述待檢測文件轉化成向量; 識別模塊,用于通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。
8.根據權利要求7所述的裝置,其特征在于,所述模型生成模塊包括 向量轉化單元,用于將所述學習集中的惡意文件和正常文件分別轉化成向量; 合并及篩選單元,用于對所述學習集中惡意文件和正常文件的向量進行維度合并和篩選; 生成單元,用于通過分類器對合并和篩選后的向量進行學習,生成機器學習模型。
9.根據權利要求8所述的裝置,其特征在于,設定所述學習集中的所有惡意文件的向量為黑向量集,所有正常文件的向量為白向量集,所述合并及篩選單元包括· 第一提取子單元,用于從所述黑向量集中隨機選取兩黑向量,提取兩黑向量的共有維度,作為黑維度集;從所述白向量集中隨機選取兩白向量,提取兩白向量的共有維度,作為白維度集; 篩選子單元,用于將所述黑維度集中所有出現在所述白維度集中的維度去掉,形成新的黑維度集,對所述白維度集和新的黑維度集中的每一維度賦予權重; 合并子單元,用于將所述白維度集和新的黑維度集根據權重分別進行維度合并,并將合并后權重低于預定權重閥值的維度丟棄; 過濾子單元,用于當所述黑向量集和白向量集中所有的向量處理完畢后,用合并后的白維度集過濾合并后的黑維度集; 第二提取子單元,用于對過濾后的黑維度集按照權重大小排序,取出排名最高的前K維的黑維度作為最終維度; 轉化子單元,用于將所述黑向量集和白向量集中的所有向量轉化成K維向量。
10.根據權利要求7、8或9所述的裝置,其特征在于,所述識別模塊包括 計算單元,用于對轉化成向量后的待檢測文件通過機器學習模型獲取計算結果; 輸出單元,用于根據計算結果輸出待檢測文件中的惡意文件和正常文件。
11.根據權利要求10所述的裝置,其特征在于,所述預定的惡意文件和正常文件是指預先收集的已知的惡意文件和正常文件。
12.—種計算機可讀取的存儲介質,在其上存儲了使計算機能夠運行的程序,在程序裝入計算機的存儲器內后,采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件;將所述待檢測文件轉化成向量;通過所述機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。
全文摘要
本發明公開一種惡意文件識別方法、裝置及存儲介質,其方法包括采用預定的惡意文件和正常文件組成的學習集生成機器學習模型;讀取學習集以外的待檢測文件;將待檢測文件轉化成向量;通過機器學習模型對轉化成向量的待檢測文件進行惡意文件識別。本發明通過預先設定的惡意文件和正常文件組成的學習集生成機器學習模型,通過生成的機器學習模型對學習集以外的待檢測文件進行惡意文件識別,可及時、準確并有效的提取病毒特征,對發現的任何惡意文件可立即處理,由此極大的提升了惡意文件的檢測效率。
文檔編號G06F21/00GK102737186SQ201210213078
公開日2012年10月17日 申請日期2012年6月26日 優先權日2012年6月26日
發明者于濤, 吳家旭, 崔精兵, 楊宜, 白子潘 申請人:騰訊科技(深圳)有限公司