用于病毒鑒定的訓練方法和病毒鑒定方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種用于病毒鑒定的訓練方法和計算機病毒鑒定方法及相應裝置,所述用于病毒鑒定的訓練方法包括:提取純黑樣本中的一個程序的特征;根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求,如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征;如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。能夠快速掃描病毒。
【專利說明】用于病毒鑒定的訓練方法和病毒鑒定方法及裝置
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,具體涉及一種用于病毒鑒定的訓練方法和病毒鑒定方法及裝置。
【背景技術】
[0002]互聯(lián)網(wǎng)技術的快速發(fā)展,為病毒的快速傳播也提供了便利的途徑,為了能夠及時發(fā)現(xiàn)病毒,避免病毒對用戶設備的攻擊?,F(xiàn)有技術中對計算機病毒掃描的方法主要分為兩種:
[0003]一種是采用人工提取特征的掃描方法。該技術是在人為發(fā)現(xiàn)新病毒后,對其進行分析,根據(jù)其特點提取特征碼,加入到數(shù)據(jù)庫中。在執(zhí)行查毒程序時,通過對比文件與病毒數(shù)據(jù)庫中的病毒特征碼,檢查文件是否含有病毒。對傳統(tǒng)病毒來說,病毒碼掃描技術速度快,誤報率低,是檢測已知病毒的最簡單、開銷小的方法。目前的大多數(shù)殺毒軟件產(chǎn)品都配備了這種掃描引擎。
[0004]但是,這種方法不能識別未知的病毒,而且隨著病毒種類的增多,特別是變形病毒和隱藏性的病毒的發(fā)展,病毒特征數(shù)據(jù)庫越來越龐大,給特征掃描方法帶來了嚴峻挑戰(zhàn)。
[0005]另一種是行為啟發(fā)式掃描方法,該技術主要是通過獲取計算機病毒在運行狀態(tài)的行為數(shù)據(jù),通過人工或特定的程序對行為數(shù)據(jù)進行歸納和總結,制定出規(guī)則來檢測計算機病毒。這種方法能檢測出已知病毒的變種和一些未知的病毒。但由于在很多情況下,要準確的歸納和總結出病毒的有害行為是件相當困難的事。所以這種方法經(jīng)常產(chǎn)生誤報,把一些正常的計算機程序誤報成有危險。另外有一點就是這種方法首先要獲取到計算機病毒運行狀態(tài)的行為,在這個獲取計算機病毒行為的過程和技術是相當復雜而且非常耗時。對大批量的樣本進行鑒定所帶來的巨大時間開銷也是很多用戶無法忍受的。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供了一種用于病毒鑒定的訓練方法和病毒鑒定方法及裝置,能夠可以現(xiàn)有技術中病毒特征數(shù)據(jù)庫越來越龐大,給特征掃描方法帶來了嚴峻挑戰(zhàn)的問題。
[0007]本發(fā)明實施例提供了一種用于病毒鑒定的訓練方法,所述方法包括:
[0008]提取純黑樣本中的一個程序的特征;
[0009]根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0010]判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求,
[0011]如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征;
[0012]如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。
[0013]本發(fā)明實施例還提供了一種計算機病毒鑒定方法,所述方法還包括:
[0014]提取輸入的程序的特征;
[0015]根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0016]判斷所述數(shù)學特征是否符合如權利要求1所述訓練后的病毒的數(shù)學特征的要求;
[0017]如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱。
[0018]本發(fā)明實施例還提供了一種神經(jīng)網(wǎng)絡的訓練裝置,所述裝置包括:所述裝置包括:第一特征單元,第一數(shù)學特征單元,第一判斷特征單元,第一獲取共性單元,和第一紀錄特征單元;
[0019]所述第一特征單元,用于提取純黑樣本中的一個程序的特征;
[0020]所述第一數(shù)學特征單元,用于根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0021]所述第一判斷特征單元,用于判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求,
[0022]所述第一獲取共性單元,用于如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征;
[0023]所述第一紀錄特征單元,用于如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。
[0024]本發(fā)明實施例還提供了一種計算機病毒鑒定裝置,所述裝置包括:第二特征單元,第二數(shù)學特征單元,第二判斷特征單元,和第一輸出單元;
[0025]所述第二特征單元,用于提取輸入的程序的特征;
[0026]所述第二數(shù)學特征單元,用于根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0027]所述第二判斷特征單元,用于判斷所述數(shù)學特征是否符合如權利要求1所述訓練后的病毒的數(shù)學特征的要求;
[0028]所述第一輸出單元,用于如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱。
[0029]從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:將用數(shù)學特征表達的程序與預置的病毒程序的數(shù)學特征進行對比,當發(fā)現(xiàn)該程序的數(shù)學特征與病毒數(shù)學特征要求的表達相同或者相近似,就理解該程序為已知的病毒,若不相似,則該程序是新種類的病毒,將其記錄,從而實現(xiàn)了自動形成病毒庫,不需要人為提取病毒,創(chuàng)建病毒庫。大大提升了自動化程度。能識別已知的各種已知的計算機病毒變種和部分未知病毒,并且大大提高了鑒定病毒的準確性高,降低了誤報率。
【專利附圖】
【附圖說明】
[0030]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1是本發(fā)明實施例提供的一種用于病毒鑒定的訓練方法示意簡圖;
[0032]圖2是本發(fā)明實施例提供的一種計算機病毒鑒定方法流程示意簡圖;
[0033]圖3是本發(fā)明實施例一提供的一種用于病毒鑒定的訓練方法流程示意簡圖;
[0034]圖4是本發(fā)明實施例提供的ART神經(jīng)元網(wǎng)絡示意簡圖;
[0035]圖5是本發(fā)明實施例二提供的一種計算機病毒鑒定方法流程示意簡圖;
[0036]圖6是本發(fā)明實施例三提供的一種用于病毒鑒定的訓練裝置示意簡圖;
[0037]圖7是本發(fā)明實施例四提供的一種計算機病毒鑒定裝置示意簡圖;
[0038]圖8是本發(fā)明實施例所涉及的計算機示意圖;
[0039]圖9是本發(fā)明實施例所涉及的另一種計算機示意圖。
【具體實施方式】
[0040]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0041]如圖1所示,本發(fā)明實施例提供的一種用于病毒鑒定的訓練方法,所述方法包括:
[0042]步驟Al,提取純黑樣本中的一個程序的特征;
[0043]其中,在該訓練方法其處理的對象可以是純黑樣本,在純黑樣本中有當前技術人員已知的各種病毒的樣本,將該純黑樣本中的程序作為輸入,提取純黑樣本的程序的特征。程序的特征可以包括:程序入口點地址(Address ofEntry Point),程序的代碼段大小(Size of Code),該程序的可執(zhí)行映像的地址空間大小(Size of Image),導入表大小(Import Table Size),導入函數(shù)個數(shù)(TotalFuncCnt),程序入口點起始處16個指令操作碼(Opencode),和代碼段開始處16個指令操作碼(Opencode)。需要理解的是,上述程序的7個特征可以對每個程序進行一定的描述,后續(xù)操作是基于該特征判斷該程序是否屬于病毒。此處對程序特征例舉出7個特征,并非對特征的窮舉,僅是當前計算機領域常用的7個識別程序的特征。并非對本發(fā)明實施例的限制。
[0044]步驟A2,根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0045]其中,將提取出的特征轉換為特征向量,根據(jù)特征向量進行相關設計的計算,將步驟Al中的程序用數(shù)學特征表達,該數(shù)學特征可以是如下述式(I)中的表達方法,也不限制其它數(shù)學表達方式;其中,特征向量可以用浮點型數(shù)值表示,也可以是其它類型數(shù)值表示。在本發(fā)明實施例中以浮點型數(shù)值表示特征向量,不應該理解為對本發(fā)明實施例的限制。
[0046]步驟A3,判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求,
[0047]步驟A4,如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征;
[0048]步驟A5,如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。
[0049]通過上述步驟A3至A5的操作,將用數(shù)學特征表達的程序與預置的病毒程序的數(shù)學特征進行對比,當發(fā)現(xiàn)該程序的數(shù)學特征與病毒數(shù)學特征要求的表達相同或者相近似,就理解該程序為已知的病毒,若不相似,則該程序是新種類的病毒,將其記錄,從而實現(xiàn)了自動形成病毒庫,不需要人為提取病毒,創(chuàng)建病毒庫。大大提升了自動化程度。
[0050]如圖2所示,本發(fā)明實施例提供的一種計算機病毒鑒定方法,所述方法包括:
[0051]步驟BI,提取輸入的程序的特征;
[0052]當前提取的程序是未知其是否為病毒的程序,程序的特征可以包括:程序入口點地址(Address of Entry Point),程序的代碼段大小(Size of Code),該程序的可執(zhí)行映像的地址空間大小(Size of Image),導入表大小(ImportTable Size),導入函數(shù)個數(shù)(TotalFuncCnt),程序入口點起始處16個指令操作碼(Opencode),和代碼段開始處16個指令操作碼(Opencode)。需要理解的是,上述程序的7個特征可以對每個程序進行一定的描述,后續(xù)操作是基于該特征判斷該程序是否屬于病毒。此處對程序特征例舉出7個特征,并非對特征的窮舉,僅是當前計算機領域常用的7個識別程序的特征。并非對本發(fā)明實施例的限制。
[0053]上述前5個程序特征可以是從PE的頭結構中獲取的。
[0054]步驟B2,根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;
[0055]其中,將提取出的特征轉換為特征向量,根據(jù)特征向量進行相關設計的計算,將步驟BI中的程序用數(shù)學特征表達,該數(shù)學特征可以是如下述式(I)中的表達方法,也不限制其它數(shù)學表達方式;其中,特征向量可以用浮點型數(shù)值表示,也可以是其它類型數(shù)值表示。在本發(fā)明實施例中以浮點型數(shù)值表示特征向量,不應該理解為對本發(fā)明實施例的限制。
[0056]步驟B3,判斷所述數(shù)學特征是否符合訓練后的病毒的數(shù)學特征的要求;
[0057]步驟B4,如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱。
[0058]通過執(zhí)行上述將用數(shù)學特征表達的程序與訓練后的病毒程序的數(shù)學特征進行對t匕,當發(fā)現(xiàn)該程序的數(shù)學特征與病毒數(shù)學特征要求的表達相同或者相近似,就理解該程序為已知的病毒,告知用戶,即鑒別出該病毒。
[0059]優(yōu)選的,步驟B4輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱之后,所述方法還包括:
[0060]步驟B5,獲取所述程序的數(shù)學特征與所述訓練后的病毒的數(shù)學特征的共同特征。
[0061]其中,步驟B5的具體實現(xiàn)方法,依據(jù)不同的數(shù)學表達方式會有不同(一種優(yōu)選的表達方式如下述實施例中式子(2)和(3)),但其用途都是為了更加容易識別變形后的程序,同時,不會產(chǎn)生大量的病毒數(shù)據(jù)存儲在病毒數(shù)據(jù)庫中,減輕了數(shù)據(jù)庫的壓力,節(jié)省了資源。
[0062]若該鑒定的程序是病毒程序,可以獲取該程序與訓練的病毒他們共同的數(shù)學特征,使得該方法更容易識別變形后的病毒程序。
[0063]在對本發(fā)明技術優(yōu)選的實施例做說明之前,首先需要了解的是自適應共振理論(Adaptive Resonance Theory,簡稱 ART),它是由 S.Grossberg 和 A.Carpentent 等人于1986年提出來的。ART神經(jīng)網(wǎng)絡是一種自組織神經(jīng)網(wǎng)絡結構,是無監(jiān)督的學習網(wǎng)絡。當在神經(jīng)網(wǎng)絡和環(huán)境有交互作用時,對環(huán)境信息的編碼會自發(fā)地在神經(jīng)網(wǎng)中產(chǎn)生,則認為神經(jīng)網(wǎng)絡在進行自組織活動。ART就是這樣一種能自組織地產(chǎn)生對環(huán)境認識編碼的神經(jīng)網(wǎng)絡理論模型。
[0064]本發(fā)明實施例優(yōu)選提供一種計算機病毒鑒定方法,是基于ART神經(jīng)網(wǎng)絡的計算機病毒的特征啟發(fā)式鑒定方案。該方案是預先建立一個改進型ART神經(jīng)網(wǎng)絡。然后對已知的病毒進行特征提取,獲取病毒的樣本特征信息,根據(jù)這些樣本特征信息轉換為樣本特征向量。再將這些特征向量輸入到ART神經(jīng)網(wǎng)絡。然后,利用改進型ART神經(jīng)網(wǎng)絡的自動聚類特性進行病毒判別訓練。然后對已經(jīng)訓練好的ART神經(jīng)網(wǎng)絡去識別新的病毒和木馬。該技術方案具有掃描速度快,而且,由于采用ART神經(jīng)網(wǎng)絡來記憶病毒特征,不同于現(xiàn)有技術中采用病毒特征庫存儲病毒特征數(shù)據(jù),因此,存儲病毒數(shù)據(jù)量可控。能識別已知的各種已知的計算機病毒變種和部分未知病毒,并且大大提高了鑒定病毒的準確性高,降低了誤報率。
[0065]下面結合具體的實施例對該本發(fā)明實施例提供的優(yōu)選的技術方案進行說明。
[0066]實施例一
[0067]本發(fā)明實施例提供了一種用于病毒鑒定的訓練方法,在該訓練方法其處理的對象可以是純黑樣本,在純黑樣本中有當前技術人員已知的各種病毒的樣本,將該純黑樣本中的程序作為輸入,提取純黑樣本的程序的特征,并將該特征轉換為特征向量作為ART神經(jīng)網(wǎng)絡的輸入,經(jīng)由ART神經(jīng)網(wǎng)絡的自學該病毒的特征,從而實現(xiàn)ART神經(jīng)網(wǎng)絡的訓練過程。
[0068]如圖3所示,該方法包括:
[0069]步驟101,提取純黑樣本中的一個程序的特征,
[0070]需要說明的,這里所說的純黑樣本中的程序,是指該樣本中的所有的程序都是病毒程序,這些病毒程序用戶對設計的ART神經(jīng)網(wǎng)絡進行訓練,使得ART神經(jīng)網(wǎng)絡根據(jù)輸入的這些病毒程序的特征,能夠學習識別這些病毒。后續(xù)再完成訓練ART神經(jīng)網(wǎng)絡操作后,可以參照已經(jīng)學習的病毒程序,判斷需要檢測的程序是否為病毒或者木馬。
[0071]進一步,程序的特征可以包括:程序入口點地址(Address of Entry Point),程序的代碼段大小(Size of Code),該程序的可執(zhí)行映像的地址空間大小(Sizeof Image),導入表大小(Import Table Size),導入函數(shù)個數(shù)(TotalFuncCnt),程序入口點起始處16個指令操作碼(Opencode),和代碼段開始處16個指令操作碼(Opencode)。需要理解的是,上述程序的7個特征可以對每個程序進行一定的描述,后續(xù)操作是基于該特征判斷該程序是否屬于病毒。此處對程序特征例舉出7個特征,并非對特征的窮舉,僅是當前計算機領域常用的7個識別程序的特征。并非對本發(fā)明實施例的限制。
[0072]上述前5個程序特征可以是從可執(zhí)行體(例如:PE)的頭結構中獲取的。
[0073] 步驟102,將提取出的特征轉換為特征向量;其中,特征向量可以用浮點型數(shù)值表示,也可以是其它類型數(shù)值表示。在本發(fā)明實施例中以浮點型數(shù)值表示特征向量,不應該理解為對本發(fā)明實施例的限制。
[0074]在上述步驟101中若提取的程序特征包括7項,其中上述說明的前5項分別可以轉換為對應的浮點型數(shù)值,即由5個數(shù)值,程序的后2項特征每項用16個浮點數(shù)值表示,則提取的程序特征轉換為特征向量,該向量用37個浮點數(shù)值表示。轉換為向量的形式是為了ART網(wǎng)絡對數(shù)據(jù)處理。
[0075]在本發(fā)明實施中程序入口點地址(AddressOfEntryPoint)的值可能比較大,在轉換為浮點型數(shù)據(jù)時,可以采取將小數(shù)點向左移五個位。此處僅是便于理解的說明,并非對實施例的限制。
[0076]步驟103,根據(jù)ART神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元記憶的特征權值w和輸入的特征向量,獲取所述輸出層的每一個神經(jīng)元的相似度差值I ;
[0077]其中,步驟103中獲取每個神經(jīng)元的相似度差值y具體可以參考如式(I):
[0078]y= (xl_wl)2+(x2_w2)2+…+ (x37_w37)2式(I)
[0079]其中,X為步驟102中獲取的特征向量,y為每個神經(jīng)元的輸出值,w⑴對應輸出層的每個神經(jīng)元中包括的37個特征權值,其中,i屬于[1,37]。
[0080]步驟104,判斷獲取的所有相似度差值y中最小的y是否大于閥值H,如果最小的相似度差I值大于閥值H,則執(zhí)行步驟105,在該ART神經(jīng)網(wǎng)絡中記錄該特征向量作為輸出層的新的神經(jīng)元。由于該特征是純黑樣本中的程序的特征,此處計算出相似度差值y大于閥值H,表示當前的神經(jīng)元中沒有記錄該病毒樣本,在步驟104中記錄該病毒程序樣本。因此,輸出層新增加的神經(jīng)元中記錄該特征向量。
[0081]步驟106,如果最小的相似度差值y不大于閥值H,根據(jù)該特征向量和相似度差值y最小的神經(jīng)元當前記憶的特征權值《,調(diào)整該相似度差值y最小的神經(jīng)元的記憶的特征權值W ;
[0082]其中,在步驟106中調(diào)整記憶的特征權值w的具體操作可以參照如下公式(2)(3):
[0083]Wj[i] =IearnRate* (x [i] -W^1 [i])式(2)
[0084]式(3)
[0085]其中,X為步驟102中當前獲取的特征向量,IearnRate為學習率,可以是常數(shù),Wj^ti]是神經(jīng)元內(nèi)當前的特征權值,Wj[i]是調(diào)整后的特征權值,w[i]為歸一化處理后的特征權值。
[0086]通過調(diào)整記憶的特征權值W,可以使得訓練好的ART神經(jīng)網(wǎng)絡能夠識別出各種病毒的變形,更準確的識別出病毒程序。提高鑒定病毒的能力。
[0087]對于上述說明的神經(jīng)元,為了更加清楚的理解,參見附圖4中說明的ART神經(jīng)元網(wǎng)絡示意簡圖,其中該ART神經(jīng)元網(wǎng)絡包括有兩個神經(jīng)元層,處于下方的37個神經(jīng)元(即輸入層的神經(jīng)元)負責將提取的特征向量傳輸?shù)缴蠈拥纳窠?jīng)元層中(即輸出層)的每個神經(jīng)元內(nèi)。處于上方的神經(jīng)元層中神經(jīng)元的數(shù)量是逐漸增加的,通過對純黑樣本的訓練,假設可以得到η個神經(jīng)元。其中,ART神經(jīng)元網(wǎng)絡中還包括有控制器,其用途包括:
[0088]1、從輸出層神經(jīng)元中挑選出與輸入向量相似度最高的神經(jīng)元作為網(wǎng)絡最終輸出值,并讓該神經(jīng)元調(diào)整記憶的特征權值w ;
[0089]2、控制輸入層神經(jīng)元傳送輸入向量的開關,將輸入向量包括的37個浮點型數(shù)值全部輸入到一個神經(jīng)元,直到所有的神經(jīng)元內(nèi)都獲取到了 37個浮點型數(shù)值的輸入向量,并在各神經(jīng)元內(nèi)進行上述公式(I)計算;
[0090]3、當輸出層未找到與輸入向量有相似的神經(jīng)元時,控制輸出層產(chǎn)生新的神經(jīng)元來記憶新的輸入向量。
[0091]重復執(zhí)行上述步驟101至106的操作,直到純黑樣本中的所有程序都經(jīng)歷了上述操作,至此對ART神經(jīng)網(wǎng)絡的訓練完成,當開發(fā)人員新發(fā)現(xiàn)有新的病毒或者木馬時,可以搜集新的純黑樣本,在通過新搜集的純黑樣本再對ART神經(jīng)網(wǎng)絡進行訓練,從而對ART神經(jīng)網(wǎng)絡訓練改進。
[0092]本發(fā)明實施例提供的一種用于病毒鑒定的訓練方法,通過對已知的病毒進行特征提取,獲取病毒的樣本特征信息,根據(jù)這些樣本特征信息轉換為樣本特征向量。再將這些特征向量輸入到ART神經(jīng)網(wǎng)絡。然后,利用改進型ART神經(jīng)網(wǎng)絡的自動聚類特性進行病毒判別訓練。使得后續(xù)利用該已經(jīng)訓練好的ART神經(jīng)網(wǎng)絡去識別新的病毒和木馬。該ART神經(jīng)網(wǎng)絡的訓練方法使得后續(xù)能夠快速掃描病毒,而且,由于采用ART神經(jīng)網(wǎng)絡來記憶病毒特征,不同于現(xiàn)有技術中采用病毒特征庫存儲病毒特征數(shù)據(jù),因此,存儲病毒數(shù)據(jù)量可控。能識別已知的各種已知的計算機病毒變種和部分未知病毒,并且大大提高了鑒定病毒的準確性高,降低了誤報率。
[0093]實施例二
[0094]本發(fā)明實施例提供了一種計算機病毒鑒定方法,該方法是基于上述實施例一中訓練完成的ART神經(jīng)網(wǎng)絡,可以判斷各種輸入的程序是否是危險程序。參見圖5所示,該方法包括:
[0095]步驟201,提取輸入的程序的特征;
[0096]當前提取的程序的特征與上述步驟101相似,區(qū)別在于步驟101中程序都是病毒程序,作為訓練ART神經(jīng)網(wǎng)絡中使用,而當前步驟201中操作的對象是未知安全與否的程序,需要經(jīng)由訓練好的ART神經(jīng)網(wǎng)絡鑒定后,才可以判斷安全與否的程序。
[0097]程序的特征可以包括:程序入口點地址(Address of Entry Point),程序的代碼段大小(Size of Code),該程序的可執(zhí)行映像的地址空間大小(Size of Image),導入表大小(Import Table Size),導入函數(shù)個數(shù)(TotalFuncCnt),程序入口點起始處16個指令操作碼(Opencode),和代碼段開始處16個指令操作碼(Opencode)。需要理解的是,上述程序的7個特征可以對每個程序進行一定的描述,后續(xù)操作是基于該特征判斷該程序是否屬于病毒。此處對程序特征例舉出7個特征,并非對特征的窮舉,僅是當前計算機領域常用的7個識別程序的特征。并非對本發(fā)明實施例的限制。
[0098]上述前5個程序特征可以是從PE的頭結構中獲取的。
[0099]步驟202,將輸入的程序的特征轉換為輸入特征向量;其中,輸入特征向量可以用浮點型數(shù)值表示,也可以是其它類型數(shù)值表示。在本發(fā)明實施例中以浮點型數(shù)值表示特征向量。
[0100]在上述步驟201中若提取的程序特征包括7項,其中上述說明的前5項分別可以轉換為對應的浮點型數(shù)值,即由5個數(shù)值,程序的后2項特征每項用16個浮點數(shù)值表示,則提取的程序特征轉換為特征向量,該向量用37個浮點數(shù)值表示。轉換為向量的形式是為了ART網(wǎng)絡對數(shù)據(jù)處理。
[0101]在本發(fā)明實施中程序入口點地址(AddressOfEntryPoint)的值可能比較大,在轉換為浮點型數(shù)據(jù)時,可以采取將小數(shù)點向左移五個位。此處僅是便于理解的說明,并非對實施例的限制。
[0102]步驟203,根據(jù)訓練完成的ART神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元記憶的特征權值w和輸入特征向量,獲取輸出層的每個神經(jīng)元的相似度差值y ;
[0103]其中,步驟203中獲取每個神經(jīng)元的相似度差值I具體與步驟103相同,即也是可以參考如式(I)。
[0104]步驟204,判斷獲取的所有的相似度差值y中最小的y是否大于閥值H,如果最小的相似度差值I大于閥值H ;可以不做任何操作,結束。即判斷該程序不是病毒或者木馬,即該程序對計算機系統(tǒng)無害。
[0105]步驟205,當判斷最小的相似度差值y不大于預置H時,輸出該最小相似度差值y。
[0106]通過輸出該最小相似度差值的y可以理解為用戶提示該程序有危險。
[0107]優(yōu)選的,步驟205中的輸出,還可以進一步包括:輸出該最小相似度差值y對應的神經(jīng)元中對應的危險程序名稱。
[0108]優(yōu)選的,輸出該最小相似度差值y之后,該方法還可以包括:
[0109]步驟206,根據(jù)該特征向量X和相似度差值y最小的神經(jīng)元當前記憶的特征權值W,調(diào)整該最小相似度差值I對應的神經(jīng)元的記憶的特征權值W。其中,調(diào)整特征權值w的操控可以參加上述公式(2)和(3)。此處不重述。
[0110]本發(fā)明實施例提供的一種計算機病毒的鑒定方法,通過利用ART神經(jīng)網(wǎng)絡的訓練方法使得后續(xù)能夠快速掃描病毒,而且,由于采用ART神經(jīng)網(wǎng)絡來記憶病毒特征,不同于現(xiàn)有技術中采用病毒特征庫存儲病毒特征數(shù)據(jù),因此,存儲病毒數(shù)據(jù)量可控。能識別已知的各種已知的計算機病毒變種和部分未知病毒,并且大大提高了鑒定病毒的準確性高,降低了誤報率。
[0111]若下表1所示,本發(fā)明實施例提供的病毒鑒定方法,與現(xiàn)有技術中病毒鑒定方法的實際測試結果。
【權利要求】
1.一種用于病毒鑒定的訓練方法,其特征在于,所述方法包括: 提取純黑樣本中的一個程序的特征; 根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征; 判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求, 如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征; 如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求,如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征;如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征,具體包括: 將所述提取的程序的特征轉換為特征向量; 根據(jù)神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元中記憶的特征權值w和所述特征向量,獲取所述輸出層的每一個神經(jīng)元的相似度差值y ; 判斷獲取的所有相似度差值I中最小的I是否大于閥值H ; 如果最小的y大于閥值H,記錄所述特征向量作為所述輸出層的新增的神經(jīng)元; 如果最小的y不大于閥值H,根據(jù)所述特征向量和相似度差值y最小的神經(jīng)元當前記憶的特征權值《,調(diào)整所述相似度差值I最小的神經(jīng)元的記憶的特征權值W。
3.根據(jù)權利要求2所述的方法,其特征在于,所述方法還包括: 對所述純黑樣本中剩余的每一程序都執(zhí)行如權利要I所述的方法。
4.根據(jù)權利要求2所述的方法,其特征在于,所述程序特征包括:程序入口點地址,程序的代碼段大小,該程序的可執(zhí)行映像的地址空間大小,導入表大小,導入函數(shù)個數(shù),程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
5.根據(jù)權利要求4所述的方法,其特征在于,所述程序入口點地址,所述程序的代碼段大小,所述程序的可執(zhí)行映像的地址空間大小,所述導入表大小,和所述導入函數(shù)個數(shù)五項特征具體是從可執(zhí)行體的頭結構中提取的。
6.根據(jù)權利要求2所述的方法,其特征在于,所述特征向量由浮點型數(shù)值表示。
7.一種計算機病毒鑒定方法,其特征在于,所述方法還包括: 提取輸入的程序的特征; 根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征; 判斷所述數(shù)學特征是否符合如權利要求1所述訓練后的病毒的數(shù)學特征的要求; 如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱。
8.根據(jù)權利要求7所述的方法,其特征在于,所述根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征;判斷所述數(shù)學特征是否符合如權利要求述訓練后的病毒的數(shù)學特征的要求;如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱,具體包括: 將所述輸入的程序的特征轉換為輸入特征向量; 根據(jù)如權利要求2訓練后的神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元記憶的W,和所述輸入特征向量,獲取所述輸出層的每個神經(jīng)元的相似度差值I ;判斷獲取的所有相似度差值I中最小的I是否大于閥值H ; 如果最小的I都不大于閥值H,輸出該最小相似度差值y。
9.根據(jù)權利要求8所述的方法,其特征在于,如果最小的y都大于閥值H,則結束。
10.根據(jù)權利要求8所述的方法,其特征在于,所述輸出該最小相似度差值y之后,所述方法還包括: 根據(jù)所述輸入特征向量和相似度差值y最小的神經(jīng)元當前記憶的特征權值w,調(diào)整相似度差值I最小的神經(jīng)元的記憶的特征權值W。
11.根據(jù)權利要求8所述的方法,其特征在于,所述程序特征包括:程序入口點地址,程序的代碼段大小,該程序的可執(zhí)行映像的地址空間大小,導入表大小,導入函數(shù)個數(shù),程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
12.根據(jù)權利要求11所述的方法,其特征在于,所述程序入口點地址,所述程序的代碼段大小,所述程序的可執(zhí)行映像的地址空間大小,所述導入表大小,和所述導入函數(shù)個數(shù)五項特征具體是從可執(zhí)行體的頭結構中提取的。
13.根據(jù)權利要求8所述的方法,其特征在于,所述特征向量由浮點型數(shù)值表示。
14.根據(jù)權利要求7所述的方法,其特征在于,所述輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱之后,所述方法還包括: 獲取所述程序的數(shù)學特 征與所述訓練后的病毒的數(shù)學特征的共同特征。
15.一種用于病毒鑒定的訓練裝置,其特征在于,所述裝置包括:第一特征單元,第一數(shù)學特征單元,第一判斷特征單元,第一獲取共性單元,和第一紀錄特征單元; 所述第一特征單元,用于提取純黑樣本中的一個程序的特征; 所述第一數(shù)學特征單元,用于根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征; 所述第一判斷特征單元,用于判斷所述數(shù)學特征是否符合預置的病毒的數(shù)學特征的要求, 所述第一獲取共性單元,用于如果符合,獲取所述程序的數(shù)學特征與所述預置的病毒的數(shù)學特征的共同特征; 所述第一紀錄特征單元,用于如果所述數(shù)學特征不符合所述預置病毒的數(shù)學特征的要求,則記錄所述程序的所述數(shù)學特征,作為新增病毒的數(shù)學特征。
16.根據(jù)權利要求15所述的裝置,其特征在于,所述第一數(shù)學特征單元具體包括:第一轉換單元,第一獲取單元; 所述第一判斷特征單元具體包括:第一判斷單元, 所述第一獲取共性單元具體包括:第一調(diào)整單元, 所述第一紀錄特征單元具體包括:第一紀錄單元; 所述第一提取單元,用于提取純黑樣本中的一個程序的特征; 所述第一轉換單元,用于將所述提取的程序的特征轉換為特征向量; 所述第一獲取單元,用于根據(jù)神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元中記憶的特征權值w和所述特征向量,獲取所述輸出層的每一個神經(jīng)元的相似度差值y ; 所述第一判斷單元,用于判斷獲取的所有相似度差值I中最小的I是否大于閥值H ;所述第一紀錄單元,用于如果最小的y大于閥值H,記錄所述特征向量作為所述輸出層的新增的神經(jīng)元;所述第一調(diào)整單元,用于如果最小的I不大于閥值H,根據(jù)所述特征向量和相似度差值y最小的神經(jīng)元當前記憶的特征權值《,調(diào)整所述相似度差值y最小的神經(jīng)元的記憶的特征權值W。
17.根據(jù)權利要求16所述的裝置,其特征在于,所述程序特征包括:程序入口點地址,程序的代碼段大小,該程序的可執(zhí)行映像的地址空間大小,導入表大小,導入函數(shù)個數(shù),程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
18.根據(jù)權利要求17所述的裝置,其特征在于,所述第一提取單元,具有用于從可執(zhí)行體的頭結構中提取所述程序入口點地址,所述程序的代碼段大小,所述程序的可執(zhí)行映像的地址空間大小,所述導入表大小,和所述導入函數(shù)個數(shù)五項特征,還提取程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
19.根據(jù)權利要求16所述的裝置,其特征在于,所述特征向量由浮點型數(shù)值表示。
20.一種計算機病毒鑒定裝置,其特征在于,所述裝置包括:第二特征單元,第二數(shù)學特征單元,第二判斷特征單元,和第一輸出單元; 所述第二特征單元,用于提取輸入的程序的特征; 所述第二數(shù)學特征單元,用于根據(jù)所述程序的特征,獲取所述程序的數(shù)學特征; 所述第二判斷特征單元,用于判斷所述數(shù)學特征是否符合如權利要求1所述訓練后的病毒的數(shù)學特征的要求; 所述第一輸出單元,用于如果符合,輸出所述數(shù)學特征,或者輸出所述數(shù)學特征對應的病毒名稱。
21.根據(jù)權利要求20所述的裝置,其特征在于,所述第二數(shù)學特征單元具體包括:第二轉換單元,第二獲取單元, 所述第二判斷特征單元具體包括:第二判斷單元, 所述第一輸出單元具體包括:輸出單元; 所述第二轉換單元,用于將所述輸入的程序的特征轉換為輸入特征向量; 所述第二獲取單元,用于根據(jù)訓練后的神經(jīng)網(wǎng)絡中的輸出層的每一個神經(jīng)元記憶的W,和所述輸入特征向量,獲取所述輸出層的每個神經(jīng)元的相似度差值y ; 所述第二判斷單元,用于判斷獲取的所有相似度差值I中最小的I是否大于閥值H ; 所述輸出單元,用于如果最小的y都不大于閥值H,輸出該最小相似度差值y。
22.根據(jù)權利要求21所述的裝置,其特征在于,所述裝置還包括: 第二調(diào)整單元,用于根據(jù)所述輸入特征向量和相似度差值y最小的神經(jīng)元當前記憶的特征權值《,調(diào)整相似度差值I最小的神經(jīng)元的記憶的特征權值W。
23.根據(jù)權利要求21所述的裝置,其特征在于,所述程序特征包括:程序入口點地址,程序的代碼段大小,該程序的可執(zhí)行映像的地址空間大小,導入表大小,導入函數(shù)個數(shù),程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
24.根據(jù)權利要求23所述的裝置,其特征在于,所述第二提取單元,具有用于從可執(zhí)行體的頭結構中提取所述程序入口點地址,所述程序的代碼段大小,所述程序的可執(zhí)行映像的地址空間大小,所述導入表大小,和所述導入函數(shù)個數(shù)五項特征,還提取程序入口點起始處16個指令操作碼,和代碼段開始處16個指令操作碼。
25.根據(jù)權利要求21所述的裝置,其特征在于,所述特征向量由浮點型數(shù)值表示。
【文檔編號】G06F21/56GK104077524SQ201310098003
【公開日】2014年10月1日 申請日期:2013年3月25日 優(yōu)先權日:2013年3月25日
【發(fā)明者】余文鋒 申請人:騰訊科技(深圳)有限公司