惡意程序識(shí)別及訓(xùn)練模型生成方法和裝置制造方法
【專(zhuān)利摘要】本申請(qǐng)實(shí)施例公開(kāi)了一種基于機(jī)器學(xué)習(xí)的程序識(shí)別方法及裝置,所述方法包括:分析輸入的未知程序,提取所述未知程序的特征;根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行分類(lèi);根據(jù)所述分類(lèi)的結(jié)果,將所述未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;輸出所述未知程序的識(shí)別結(jié)果,所述識(shí)別結(jié)果為惡意程序或非惡意程序。本申請(qǐng)采用機(jī)器學(xué)習(xí)技術(shù),通過(guò)對(duì)大量程序樣本進(jìn)行分析,得到識(shí)別惡意程序的模型,通過(guò)該模型的使用可以節(jié)省大量的人力,提高對(duì)惡意程序的識(shí)別效率;并且,在基于對(duì)海量程序進(jìn)行數(shù)據(jù)挖掘的基礎(chǔ)上,可以發(fā)現(xiàn)程序的內(nèi)在規(guī)律,對(duì)未發(fā)生的惡意程序進(jìn)行預(yù)防,使得惡意程序難以被免殺。
【專(zhuān)利說(shuō)明】惡意程序識(shí)別及訓(xùn)練模型生成方法和裝置
[0001]本發(fā)明專(zhuān)利申請(qǐng)是申請(qǐng)日為2010年11月29日、申請(qǐng)?zhí)枮?01010565513.9、名稱(chēng)
為“基于機(jī)器學(xué)習(xí)的程序識(shí)別方法及裝置”的中國(guó)發(fā)明專(zhuān)利申請(qǐng)的分案申請(qǐng)。
【技術(shù)領(lǐng)域】
[0002]本申請(qǐng)涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種基于機(jī)器學(xué)習(xí)的程序識(shí)別方法及裝置。
【背景技術(shù)】
[0003]惡意程序是一類(lèi)特殊的程序,它們通常在用戶(hù)不知曉也未授權(quán)的情況下潛入到用戶(hù)的計(jì)算機(jī)系統(tǒng)中,對(duì)用戶(hù)系統(tǒng)改進(jìn)型攻擊。惡意程序可以包括病毒、后門(mén)程序、木馬程序、宏病毒、引導(dǎo)區(qū)病毒、腳本病毒等。在查殺惡意病毒之前,首先要對(duì)惡意程序進(jìn)行識(shí)別,以查殺病毒為例,現(xiàn)有技術(shù)中主要通過(guò)字符串特征碼和簡(jiǎn)單的人工總結(jié)進(jìn)行查殺,所查殺的病毒也均是已知的病毒,難以對(duì)新型病毒進(jìn)行查殺。
[0004]發(fā)明人在對(duì)現(xiàn)有技術(shù)的研究過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)基本上采用字符串特征碼和人工規(guī)則的啟發(fā)式通殺,這種識(shí)別惡意程序的方式嚴(yán)重依賴(lài)于病毒分析師的能力,需要分析師針對(duì)已有樣本進(jìn)行人工分析,找出相應(yīng)的特征,因此需要大量經(jīng)驗(yàn)豐富的人員才能滿(mǎn)足解決問(wèn)題的需求,并且由于技術(shù)復(fù)雜,人工處理的結(jié)果將導(dǎo)致效率低效;現(xiàn)有技術(shù)中只能處理已知的問(wèn)題,不能對(duì)可能發(fā)生的問(wèn)題進(jìn)行防范,因此具有一定的滯后性;由于現(xiàn)有技術(shù)基于簡(jiǎn)單的特征或規(guī)則進(jìn)行查殺,因此很容易被病毒作者免殺。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)實(shí)施例提供了一種基于機(jī)器學(xué)習(xí)的程序識(shí)別方法及裝置,以解決現(xiàn)有技術(shù)中在識(shí)別惡意程序時(shí)效率不高,具有滯后性的問(wèn)題。
[0006]為了解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例公開(kāi)了如下技術(shù)方案:
[0007]—種基于機(jī)器學(xué)習(xí)的程序識(shí)別方法,包括:
[0008]分析輸入的未知程序,提取所述未知程序的特征;
[0009]根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi);
[0010]根據(jù)所述粗分類(lèi)的結(jié)果,將所述未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;
[0011]輸出所述未知程序的識(shí)別結(jié)果,所述識(shí)別結(jié)果為惡意程序或非惡意程序。
[0012]當(dāng)包括多個(gè)訓(xùn)練模型時(shí),所述將未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷包括:
[0013]將未知程序分別輸入一個(gè)或多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;
[0014]根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算;[0015]所述輸出未知程序的識(shí)別結(jié)果具體為:根據(jù)所述加權(quán)計(jì)算的結(jié)果輸出對(duì)所述位置程序的識(shí)別結(jié)果。
[0016]還包括:
[0017]輸入提取到的海量程序,所述海量程序中包括惡意程序和非惡意程序;
[0018]從所輸入的每個(gè)程序中提取特征,并對(duì)所提取的特征進(jìn)行分類(lèi);
[0019]根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
[0020]所述從所輸入的每個(gè)程序中提取特征包括:
[0021]分析每個(gè)程序文件,從所述程序文件中抽取預(yù)先定義的特征;
[0022]根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
[0023]所述對(duì)所提取的特征進(jìn)行分類(lèi)具體為:根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。
[0024]所述不同的決策機(jī)使用相同或不同的方式對(duì)特征進(jìn)行訓(xùn)練,包括:使用支持向量機(jī)的決策機(jī)進(jìn)行訓(xùn)練,或使用決策樹(shù)的決策機(jī)進(jìn)行訓(xùn)練。
[0025]所述訓(xùn)練模型為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
[0026]一種基于機(jī)器學(xué)習(xí)的程序識(shí)別裝置,包括:
[0027]提取單元,用于分析輸入的未知程序,提取所述未知程序的特征;
[0028]分類(lèi)單元,用于根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi);
[0029]判斷單元,用于根據(jù)所述粗分類(lèi)的結(jié)果,將所述未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;
[0030]輸出單元,用于輸出所述未知程序的識(shí)別結(jié)果,所述識(shí)別結(jié)果為惡意程序或非惡意程序。
[0031]所述判斷單元包括:
[0032]程序輸入單元,用于當(dāng)包括多個(gè)訓(xùn)練模型時(shí),將未知程序分別輸入多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;
[0033]加權(quán)計(jì)算單元,用于根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算;
[0034]所述輸出單元,具體用于根據(jù)所述加權(quán)計(jì)算的結(jié)果輸出對(duì)所述位置程序的識(shí)別結(jié)
果O
[0035]還包括:
[0036]輸入單元,用于輸入提取到的海量程序,所述海量程序中包括惡意程序和非惡意程序;
[0037]提取單元,用于從所輸入的每個(gè)程序中提取特征;
[0038]分類(lèi)單元,用于對(duì)所提取的特征進(jìn)行分類(lèi);
[0039]生成單元,用于根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
[0040]所述提取單元包括:
[0041]程序文件分析單元,用于分析每個(gè)程序文件,從所述程序文件中抽取預(yù)先定義的特征;[0042]向量屬性生成單元,用于根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
[0043]所述分類(lèi)單元具體用于,根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。
[0044]由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例在識(shí)別未知程序的類(lèi)型時(shí),提取未知程序的特征,并根據(jù)所提取的特征對(duì)未知程序進(jìn)行分類(lèi),根據(jù)分類(lèi)的結(jié)果,將未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷,輸出未知程序的識(shí)別結(jié)果。本申請(qǐng)采用機(jī)器學(xué)習(xí)技術(shù),通過(guò)對(duì)大量程序樣本進(jìn)行分析,得到識(shí)別惡意程序的模型,通過(guò)該模型的使用可以節(jié)省大量的人力,提高對(duì)惡意程序的識(shí)別效率;并且,在基于對(duì)海量程序進(jìn)行數(shù)據(jù)挖掘的基礎(chǔ)上,可以發(fā)現(xiàn)程序的內(nèi)在規(guī)律,對(duì)未發(fā)生的惡意程序進(jìn)行預(yù)防,使得惡意程序難以被免殺。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0045]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0046]圖1為本申請(qǐng)生成識(shí)別程序類(lèi)型的模型的第一實(shí)施例流程圖;
[0047]圖2A為本申請(qǐng)生成識(shí)別程序類(lèi)型的模型的第二實(shí)施例流程圖;
[0048]圖2B為本申請(qǐng)實(shí)施例生成識(shí)別程序類(lèi)型的模型應(yīng)用實(shí)例示意圖;
[0049]圖3為本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別方法的第一實(shí)施例流程圖;
[0050]圖4A為本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別方法的第二實(shí)施例流程圖;
[0051]圖4B為本申請(qǐng)實(shí)施例對(duì)程序類(lèi)型進(jìn)行識(shí)別的應(yīng)用實(shí)例示意圖;
[0052]圖5為本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別裝置實(shí)施例框圖;
[0053]圖6為本申請(qǐng)?jiān)谏勺R(shí)別程序類(lèi)型的模型的裝置實(shí)施例框圖。
【具體實(shí)施方式】
[0054]本申請(qǐng)如下實(shí)施例提供了 一種基于機(jī)器學(xué)習(xí)的程序識(shí)別方法及裝置。本申請(qǐng)采用MLD (Machine Learning Detection機(jī)器學(xué)習(xí)識(shí)別)技術(shù),通過(guò)對(duì)大量程序樣本進(jìn)行分析,得到識(shí)別惡意程序的模型,通過(guò)該模型可以提高對(duì)惡意程序的識(shí)別效率,對(duì)未發(fā)生的惡意程序進(jìn)行預(yù)防,使得惡意程序難以被免殺。
[0055]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請(qǐng)實(shí)施例中的技術(shù)方案,并使本申請(qǐng)實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本申請(qǐng)實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
[0056]參見(jiàn)圖1,為本申請(qǐng)生成識(shí)別程序類(lèi)型的模型的第一實(shí)施例流程圖:
[0057]步驟101:輸入提取到的海量程序,該海量程序中包括惡意程序和非惡意程序。
[0058]步驟102:從所輸入的每個(gè)程序中提取特征,并對(duì)所提取的特征進(jìn)行分類(lèi)。
[0059]具體的,分析每個(gè)程序文件,從程序文件中抽取預(yù)先定義的特征,根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性,根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。[0060]步驟103:根據(jù)分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
[0061]其中,不同的決策機(jī)使用相同或不同的方式對(duì)特征進(jìn)行訓(xùn)練,包括:使用支持向量機(jī)的決策機(jī)進(jìn)行訓(xùn)練,或使用決策樹(shù)的決策機(jī)進(jìn)行訓(xùn)練;訓(xùn)練模型可以為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
[0062]參見(jiàn)圖2A,為本申請(qǐng)生成識(shí)別程序類(lèi)型的模型的第二實(shí)施例流程圖:
[0063]步驟201:輸入提取到的海量程序,海量程序中包括惡意程序和非惡意程序。
[0064]步驟202:分析每個(gè)程序文件,從程序文件中抽取預(yù)先定義的特征。
[0065]步驟203:根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
[0066]不同的特征分類(lèi)中包含不同數(shù)量的具體特征,以特征分類(lèi)是編譯器為例,其中可以具體包括的編譯器特征為:VC4、VC5、VC6、VC7、VC8、Delph1、BC。本申請(qǐng)實(shí)施例中,可以為每一個(gè)特征分類(lèi)分配一個(gè)分類(lèi)標(biāo)識(shí),例如,編譯器的分類(lèi)標(biāo)識(shí)為“ I ”,對(duì)于具體的每個(gè)編譯器特征,可以為其進(jìn)一步分配特征標(biāo)識(shí),例如,VC4的特征標(biāo)識(shí)為“I”、VC5的特征標(biāo)識(shí)為“2”、VC6的特征標(biāo)識(shí)為“3”、VC7的特征標(biāo)識(shí)為“4”、VC8的特征標(biāo)識(shí)為“5”、Delphi的特征標(biāo)識(shí)為“6”、BC的特征標(biāo)識(shí)為“7”。
[0067]則在根據(jù)所抽取的特征生成特征向量時(shí),特征向量中的每一個(gè)特征的數(shù)組都用其分類(lèi)標(biāo)識(shí)和特征標(biāo)識(shí)進(jìn)行表征,例如,所抽取的特征為編譯器特征“VC5”,則其對(duì)應(yīng)的分類(lèi)標(biāo)識(shí)為“ I ”,特征標(biāo)識(shí)為“2”,因此特征向量中對(duì)應(yīng)該“VC5”的信息表示為“1:2”;同理,屬于其它特征分類(lèi)的具體特征也用上述形式表示,如下所示,為從某個(gè)程序中提取到了 4個(gè)特征的特征向量示例:1:02:121100:123456785000:365。
[0068]特征向量的黑白屬性用于表示包`含該特征向量中的特征的程序?qū)儆趷阂獬绦蜻€是非惡意程序,其中屬性為“白”,則對(duì)應(yīng)非惡意程序,屬性為“黑”,則對(duì)應(yīng)惡意程序;進(jìn)一步,可以為白屬性定義標(biāo)識(shí)為“0”,黑屬性定義標(biāo)識(shí)為“I”。則在為每個(gè)程序生成特征向量后,可以根據(jù)特征向量包含的信息為其分配屬性標(biāo)識(shí),例如,為上述特征向量^1:02:121100:123456785000:365”分配屬性標(biāo)識(shí)為白屬性“0”,則相應(yīng)的信息可以表示為“01:02:121100:123456785000:365”。
[0069]上述表示方法也可以直接用數(shù)組表示,在數(shù)組第η個(gè)位置的值即為第η個(gè)特征的值。
[0070]步驟204:根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。
[0071]步驟205:根據(jù)分類(lèi)的結(jié)果,將不同類(lèi)別的向量矩陣使用預(yù)選的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型。
[0072]參見(jiàn)圖2Β,為本申請(qǐng)實(shí)施例生成識(shí)別程序類(lèi)型的模型的應(yīng)用實(shí)例示意圖:
[0073]其中,若干PE文件即為所輸入的海量可執(zhí)行程序文件,包括惡意程序和非惡意程序,根據(jù)特征分類(lèi)的不同包含了 k個(gè)決策機(jī),以及對(duì)應(yīng)k個(gè)決策機(jī)的k個(gè)訓(xùn)練模型。分析可執(zhí)行程序文件后,抽取相應(yīng)的特征,將所抽取的特征放入一個(gè)相應(yīng)的特征向量之內(nèi),根據(jù)已經(jīng)抽取到的特征,進(jìn)行特征分類(lèi),例如,可以依據(jù)加殼的類(lèi)別將特征分成UPX、NSPack,ASPack, UPack, PECompact等,根據(jù)分類(lèi)的結(jié)果,將不同類(lèi)別的程序文件的特征向量和黑白屬性使用不同的決策機(jī)進(jìn)行訓(xùn)練,得到相應(yīng)的訓(xùn)練模型。本實(shí)施例中進(jìn)行分類(lèi)時(shí),根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。該分類(lèi)方法速度較快,經(jīng)過(guò)統(tǒng)計(jì)只需要反匯編16步,即可達(dá)到良好區(qū)分度,并且準(zhǔn)確度較高,通用性好,大多數(shù)情況下不易被混淆;并且可以實(shí)現(xiàn)擴(kuò)展。
[0074]應(yīng)用該實(shí)例生成識(shí)別程序類(lèi)型的模型的詳細(xì)過(guò)程與圖2A所述流程的描述一致,在此不再贅述。
[0075]參見(jiàn)圖3,為本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別方法的第一實(shí)施例流程圖:
[0076]步驟301:分析輸入的未知程序,提取未知程序的特征。
[0077]步驟302:根據(jù)所提取的特征對(duì)未知程序進(jìn)行粗分類(lèi)。
[0078]步驟303:根據(jù)粗分類(lèi)的結(jié)果,將未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷。
[0079]步驟304:輸出未知程序的識(shí)別結(jié)果,該識(shí)別結(jié)果為惡意程序或非惡意程序。
[0080]參見(jiàn)圖4A,為本申請(qǐng)識(shí)別程序類(lèi)型的方法的第二實(shí)施例流程圖,該實(shí)施例示出了當(dāng)有多個(gè)訓(xùn)練模型時(shí)的識(shí)別過(guò)程:
[0081]步驟401:分析輸入的未知程序,提取未知程序的特征。
[0082]步驟402:根據(jù)所提取的特征對(duì)未知程序進(jìn)行粗分類(lèi)。
[0083]步驟403:根據(jù)粗分類(lèi)的結(jié)果,將未知程序分別輸入多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷。
[0084]步驟404:根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算。
[0085]步驟405:根據(jù)加權(quán)計(jì)算的結(jié)果輸出對(duì)位置程序的識(shí)別結(jié)果,該識(shí)別結(jié)果為惡意程序或非惡意程序。
[0086]參見(jiàn)圖4B,為本申請(qǐng)實(shí)施例對(duì)程序類(lèi)型進(jìn)行識(shí)別的應(yīng)用實(shí)例示意圖:
[0087]其中,PE文件即為所輸入的未知程序文件,根據(jù)特征分類(lèi)的不同包含了 k個(gè)決策機(jī),以及對(duì)應(yīng)k個(gè)決策機(jī)的k個(gè)訓(xùn)練模型。分析PE文件后,抽取相應(yīng)的特征,將所抽取的特征放入一個(gè)相應(yīng)的特征向量之內(nèi),根據(jù)已經(jīng)抽取到的特征,進(jìn)行特征分類(lèi),例如,可以依據(jù)加殼的類(lèi)別將特征分成UPX、NSPack, ASPack, UPack, PECompact等,或者,據(jù)編譯器的類(lèi)型可以分為VC4、VC5、VC6、VC7、VC8、Delph1、BC等,根據(jù)分類(lèi)的結(jié)果,使用不同的決策機(jī)和訓(xùn)練模型進(jìn)行相應(yīng)的判斷,根據(jù)相應(yīng)決策機(jī)和模型得出的判斷結(jié)果,依分類(lèi)的權(quán)重加權(quán)得到評(píng)分結(jié)果,由評(píng)分結(jié)果確定該文件是否是惡意程序或正常程序。
[0088]例如,假設(shè)決策機(jī)一共有k個(gè),分類(lèi)一共有m種,分別為分類(lèi)1,2,…,m,第i種分類(lèi)預(yù)先設(shè)定的權(quán)重是(wn,Wi2,…,wik),則相應(yīng)的樣本類(lèi)別i的決策機(jī)判別的結(jié)果是(rn, ri2, ---,Tik),由此得到的綜合結(jié)果為(wn, wi2,…,wik)* (rn, ri2,..., rik)0可以預(yù)先設(shè)置一個(gè)結(jié)果判斷閾值,當(dāng)判斷結(jié)果小于該閾值則確定未知程序?yàn)榉菒阂獬绦?,?dāng)判斷結(jié)果大于該閾值,則確定未知程序?yàn)閻阂獬绦颉?br>
[0089]與本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了基于機(jī)器學(xué)習(xí)的程序識(shí)別裝置的實(shí)施例。
[0090]參見(jiàn)圖5,為本申請(qǐng)基于機(jī)器學(xué)習(xí)的程序識(shí)別裝置的實(shí)施例框圖:
[0091]該裝置包括:提取單元510、分類(lèi)單元520、判斷單元530和輸出單元540。
[0092]其中,提取單元510,用于分析輸入的未知程序,提取所述未知程序的特征;[0093]分類(lèi)單元520,用于根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi);
[0094]判斷單元530,用于根據(jù)所述粗分類(lèi)的結(jié)果,將所述未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;
[0095]輸出單元540,用于輸出所述未知程序的識(shí)別結(jié)果,所述識(shí)別結(jié)果為惡意程序或非惡意程序。
[0096]具體的,判斷單元530可以包括(圖5中未示出):程序輸入單元,用于當(dāng)包括多個(gè)訓(xùn)練模型時(shí),將未知程序分別輸入多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;力口權(quán)計(jì)算單元,用于根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算;所述輸出單元540,具體用于根據(jù)所述加權(quán)計(jì)算的結(jié)果輸出對(duì)所述位置程序的識(shí)別結(jié)果。
[0097]參見(jiàn)圖6,為本申請(qǐng)?jiān)谏勺R(shí)別程序類(lèi)型的模型時(shí)的裝置實(shí)施例框圖:
[0098]該裝置包括:輸入單元610、提取單元620、分類(lèi)單元630和生成單元640。
[0099]其中,輸入單元610,用于輸入提取到的海量程序,所述海量程序中包括惡意程序和非惡意程序;
[0100]提取單元620,用于從所輸入的每個(gè)程序中提取特征;
[0101]分類(lèi)單元630,用于對(duì)所提取的特征進(jìn)行分類(lèi);
[0102]生成單元640,用于根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
[0103]具體的,提取單元620可以包括(圖6中未示出):程序文件分析單元,用于分析每個(gè)程序文件,從所述程序文件中抽取預(yù)先定義的特征;向量屬性生成單元,用于根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
[0104]具體的,分類(lèi)單元630用于根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。
[0105]通過(guò)對(duì)以上實(shí)施方式的描述可知,本申請(qǐng)實(shí)施例在識(shí)別未知程序的類(lèi)型時(shí),提取未知程序的特征,并根據(jù)所提取的特征對(duì)未知程序進(jìn)行分類(lèi),根據(jù)分類(lèi)的結(jié)果,將未知程序輸入已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷,輸出未知程序的識(shí)別結(jié)果。本申請(qǐng)采用機(jī)器學(xué)習(xí)技術(shù),通過(guò)對(duì)大量程序樣本進(jìn)行分析,得到識(shí)別惡意程序的模型,通過(guò)該模型的使用可以節(jié)省大量的人力,提高對(duì)惡意程序的識(shí)別效率;并且,在基于對(duì)海量程序進(jìn)行數(shù)據(jù)挖掘的基礎(chǔ)上,可以發(fā)現(xiàn)程序的內(nèi)在規(guī)律,對(duì)未發(fā)生的惡意程序進(jìn)行預(yù)防,使得惡意程序難以被免殺。
[0106]本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本申請(qǐng)實(shí)施例中的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0107]本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0108]以上所述的本申請(qǐng)實(shí)施方式,并不構(gòu)成對(duì)本申請(qǐng)保護(hù)范圍的限定。任何在本申請(qǐng)的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種惡意程序識(shí)別方法,其包括: 分析未知程序以提取所述未知程序的特征; 根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi); 將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 根據(jù)判斷結(jié)果確定所述未知程序?yàn)閻阂獬绦蚧蚍菒阂獬绦颉?br>
2.根據(jù)權(quán)利要求1所述的方法,其中,將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷進(jìn)一步包括: 將未知程序分別輸入與其粗分類(lèi)相對(duì)應(yīng)的一個(gè)或多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷;` 根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算以得到判斷結(jié)果。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述訓(xùn)練模型通過(guò)下面步驟得到: 提取海量程序,所述海量程序包括惡意程序和非惡意程序; 從每個(gè)程序中提取特征并對(duì)所提取的特征進(jìn)行分類(lèi); 根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述從每個(gè)程序中提取特征包括: 分析每個(gè)程序的程序文件并從所述程序文件中抽取預(yù)先定義的特征; 根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述對(duì)所提取的特征進(jìn)行分類(lèi)具體為:根據(jù)已知編譯器的入口指令序列判定編譯生成相應(yīng)程序的編譯器類(lèi)型。
6.根據(jù)權(quán)利要求3所述的方法,其中,所述決策機(jī)包括:支持向量機(jī)的決策機(jī)或決策樹(shù)的決策機(jī)。
7.根據(jù)權(quán)利要求3所述的方法,其中,所述訓(xùn)練模型為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
8.—種惡意程序識(shí)別裝置,其包括: 提取單元,適于分析未知程序以提取所述未知程序的特征; 粗分組單元,適于根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi); 判斷單元,適于將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 確定單元,適于根據(jù)判斷結(jié)果確定所述未知程序?yàn)閻阂獬绦蚧蚍菒阂獬绦颉?br>
9.根據(jù)權(quán)利要求8所述的裝置,其中,所述判斷單元還包括: 程序輸入單元,適于將未知程序分別輸入與其粗分類(lèi)相對(duì)應(yīng)的一個(gè)或多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 加權(quán)計(jì)算單元,適于根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算以得到判斷結(jié)果。
10.根據(jù)權(quán)利要求8所述的裝置,其中,所述訓(xùn)練模型通過(guò)下面單元得到: 程序提取單元,適于提取海量程序,所述海量程序包括惡意程序和非惡意程序;分類(lèi)單元,適于從每個(gè)程序中提取特征并對(duì)所提取的特征進(jìn)行分類(lèi); 生成單元,適于根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
11.根據(jù)權(quán)利要求10所述的裝置,其中,所述分類(lèi)單元還適于: 分析每個(gè)程序的程序文件并從所述程序文件中抽取預(yù)先定義的特征; 根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
12.根據(jù)權(quán)利要求10所述的裝置,其中,所述決策機(jī)包括:支持向量機(jī)的決策機(jī)或決策樹(shù)的決策機(jī)。
13.根據(jù)權(quán)利要求10所述的裝置,其中,所述訓(xùn)練模型為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
14.一種針對(duì)惡意程序的訓(xùn)練模型生成方法,其包括: 提取海量程序,所述海量程序包括惡意程序和非惡意程序; 從每個(gè)程序中提取特征并對(duì)所提取的特征進(jìn)行分類(lèi); 根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述從每個(gè)程序中提取特征包括:` 分析每個(gè)程序的程序文件并從所述程序文件中抽取預(yù)先定義的特征; 根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
16.根據(jù)權(quán)利要求15所述的方法,其中,所述特征向量包括若干分類(lèi)標(biāo)識(shí)和特征標(biāo)識(shí)對(duì),其中,所述分類(lèi)標(biāo)識(shí)用于表示特征分類(lèi),所述特征標(biāo)識(shí)用于表示特征。
17.根據(jù)權(quán)利要求14所述的方法,其中,所述決策機(jī)包括:支持向量機(jī)的決策機(jī)或決策樹(shù)的決策機(jī)。
18.根據(jù)權(quán)利要求14所述的方法,其中,所述訓(xùn)練模型為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
19.根據(jù)權(quán)利要求14至18中任一項(xiàng)所述的方法,還包括: 分析未知程序以提取所述未知程序的特征; 根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi); 將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的所述訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 根據(jù)判斷結(jié)果確定所述未知程序?yàn)閻阂獬绦蚧蚍菒阂獬绦颉?br>
20.根據(jù)權(quán)利要求19所述的方法,其中,將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷進(jìn)一步包括: 將未知程序分別輸入與其粗分類(lèi)相對(duì)應(yīng)的一個(gè)或多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算以得到判斷結(jié)果。
21.—種針對(duì)惡意程序的訓(xùn)練模型生成裝置,其包括: 程序提取單元,適于提取海量程序,所述海量程序包括惡意程序和非惡意程序; 分類(lèi)單元,適于從每個(gè)程序中提取特征并對(duì)所提取的特征進(jìn)行分類(lèi);生成單元,適于根據(jù)所述分類(lèi)的結(jié)果,將不同類(lèi)別的特征使用不同的決策機(jī)進(jìn)行訓(xùn)練,生成用于識(shí)別惡意程序的訓(xùn)練模型或訓(xùn)練模型集合。
22.根據(jù)權(quán)利要求21所述的裝置,其中,所述分類(lèi)單元還適于: 分析每個(gè)程序的程序文件并從所述程序文件中抽取預(yù)先定義的特征; 根據(jù)所抽取的特征生成特征向量,以及每個(gè)特征向量的黑白屬性。
23.根據(jù)權(quán)利要求22所述的裝置,其中,所述特征向量包括若干分類(lèi)標(biāo)識(shí)和特征標(biāo)識(shí)對(duì),其中,所述分類(lèi)標(biāo)識(shí)用于表示特征分類(lèi),所述特征標(biāo)識(shí)用于表示特征。
24.根據(jù)權(quán)利要求21所述的裝置,其中,所述決策機(jī)包括:支持向量機(jī)的決策機(jī)或決策樹(shù)的決策機(jī)。
25.根據(jù)權(quán)利要求21所述的裝置,其中,所述訓(xùn)練模型為帶編碼的訓(xùn)練模型、或壓縮的訓(xùn)練模型。
26.根據(jù)權(quán)利要求21至25中任一項(xiàng)所述的裝置,還包括: 提取單元,適于分析未知程序以提取所述未知程序的特征; 粗分類(lèi)單元,適于根據(jù)所提取的特征對(duì)所述未知程序進(jìn)行粗分類(lèi); 判斷單元,適于將所述未知程序輸入與其粗分類(lèi)相對(duì)應(yīng)的所述訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 確定單元,適于根據(jù)判斷結(jié)果確定所述未知程序?yàn)閻阂獬绦蚧蚍菒阂獬绦颉?br>
27. 根據(jù)權(quán)利要求26所述的裝置,其中,所述判斷單元還包括: 程序輸入單元,適于將未知程序分別輸入與其粗分類(lèi)相對(duì)應(yīng)的一個(gè)或多個(gè)已生成的訓(xùn)練模型及相應(yīng)的決策機(jī)中進(jìn)行判斷; 加權(quán)計(jì)算單元,適于根據(jù)預(yù)先設(shè)置的每種特征分類(lèi)在每個(gè)訓(xùn)練模型中的權(quán)重,將每個(gè)訓(xùn)練模型及相應(yīng)的決策機(jī)對(duì)所述未知程序進(jìn)行判斷的結(jié)果進(jìn)行加權(quán)計(jì)算以得到判斷結(jié)果。
【文檔編號(hào)】G06F21/56GK103870754SQ201410046717
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2010年11月29日 優(yōu)先權(quán)日:2010年11月29日
【發(fā)明者】周鴻祎, 董毅, 周輝 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司