專利名稱:一種分層協同的網絡病毒和惡意代碼識別方法
技術領域:
本發明屬于計算機網絡安全技術領域,特別是涉及網絡病毒和惡意代碼的識別技術。
背景技術:
根據在美國出版的電氣和電子工程師協會《潛力》雜志(IEEE POTENTIALS,2001年10月第四期第16-19頁)介紹,現有的計算機反病毒識別技術大致可以分為以下幾種(1)基于特征碼的掃描,主要針對已知病毒。(2)虛擬機技術,其基本思想是將可疑程序置于虛擬機環境下執行用于判斷是否為病毒,但目前仍然面臨虛擬機的效果以及如何保證虛擬機的自身安全性等諸多問題。(3)啟發式方法,其基本思想是試圖通過泛化的特征碼來檢測家族病毒以及檢測未知病毒。該方法常常依賴于特征碼技術和虛擬機技術,目前對未知病毒的識別效果也有待改進。(4)行為分析法,即利用監視病毒的特有行為來檢測病毒的方法。這種方法要求首先歸納出病毒的一般行為模式,然后設計一個有限狀態機對應該行為模式,狀態遷移對應于程序的行為,接受狀態為檢測到病毒。這種方法的問題是對層出不窮的新病毒,很難歸納出一個一般的行為模式。(5)校驗和法。這種方法在機器的初始狀態生成一個校驗信息并保存,然后在校驗信息發生異常變化時(校驗失敗)報警,這種方法的主要問題是實現起來開銷太大,同時也面臨新應用程序的安裝和版本升級等問題。總的來說,在現有的計算機反病毒技術中,特征碼掃描技術主要用于識別已知病毒,其余各種針對未知病毒而提出的識別技術都還有各自的缺點和局限性。
由于網絡病毒和惡意代碼是在近年來才開始流行并帶來嚴重危害的網絡安全事件,中國專利申請號96114050提出的一種可防止計算機病毒感染的方法只能防范部分早期的計算機病毒,目前這種防毒卡已經徹底淡出市場;中國專利申請號96109573提出的防火墻系統是對進、出內部網絡的連接或信息進行安全檢查,基本不具有識別網絡病毒和惡意代碼的能力。因此,這些技術不適用于網絡病毒和惡意代碼的識別。
發明內容
針對現有網絡病毒和惡意代碼識別技術的不足,本發明提出一種分層協同的網絡病毒和惡意代碼識別方法,以解決未知網絡病毒和惡意代碼的異常行為識別問題,實現對單個系統及整個子網中的未知網絡病毒和惡意代碼異常行為的監控。
本發明分層協同的網絡病毒和惡意代碼識別方法,包括從腳本文件中分離出關鍵詞,通過注入動態鏈接庫(Dynamic Linked Library簡稱DLL)的方法獲得應用程序編程接口(Application Programming Interface簡稱API)執行序列和注冊表寫入表項路徑,將注冊表寫入表項路徑和API序列保存在硬盤或內存中;其特征在于對腳本的關鍵詞詞頻統計分析并作出異常判斷;對注冊表寫入表項路徑進行自我識別并作出異常判斷;對API序列進行非我識別并作出異常判斷;將異常行為信息發送到網絡控制臺;所述腳本文件是指用Javascript語言寫的腳本文件、用VBScript語言寫的腳本文件以及嵌入了Javascript或VBScript代碼的腳本文件;所述注入DLL獲得API執行序列和注冊表寫入表項路徑是指,通過將DLL作為遠程線程注入到目標程序(即待監控程序)中,然后采用替換輸入地址表(Import Address TableIAT)的方法截取目標程序的API執行序列,并從注冊表API函數的參數獲得注冊表寫入表項路徑;所述對腳本的關鍵詞統計分析并作出異常判斷是指從腳本文件中分離出29個關鍵詞copyfile、Createobject、Delete、FolderDelete、RegWrite、Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、.save、startup、execute、.add、buildpath、copyfolder、createfolder、createtextfile、deletefile、fileexists、folderexists、getfile、getfolder、getparentfolder、format、.run、do copy、document.write,并進行如下步驟(1)將29個關鍵詞分為三組,第一組為創建對象關鍵詞Createobject;第二組為本身無危險操作關鍵詞Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、startup、execute、.add、buildpath、fileexists、folderexists、getfile、getfolder、getparentfolder、.run、document.write;第三組為具有可能進行破壞操作的關鍵詞copyfile、Delete、FolderDelete、RegWrite、.save、copyfolder、createfolder、createtextfile、deletefile、format、do copy;(2)統計正常腳本中這29個關鍵詞出現的詞頻的期望值fi,1≤i≤29,統計異常腳本中這29個關鍵詞出現的詞頻的期望值fi′,1≤i≤29,計算29個關鍵詞在正常和異常腳本中的歸一化詞頻差ei=(fi-fi′)/Σi=129(fi-fi′),1≤i≤29;]]>(3)統計在當前待檢測腳本中關鍵詞出現的詞頻mi,1≤i≤29,計算待檢測腳本的危險度Risk,Risk=GΣi=129P(i)F(i)]]>其中P(i)、F(i)和G分別為 (4)將危險度閾值TH定義為TH=Σi=029P(i)/29]]>當危險度Risk超過閾值TH時,發送預警信息至網絡控制臺;所述對注冊表寫入表項路徑進行自我識別并作出異常判斷采取如下步驟(1)收集正常狀態下目標程序(待監控程序)的正常注冊表寫入表項路徑,并存入數據庫中,每個正常注冊表寫入表項路徑稱為“自我”,其集合稱為“自我集”;(2)讀取當前注冊表寫入表項路徑,與數據庫中原有的“自我”操作相比較,如果不在“自我集”中,則發送異常行為信息至網絡控制臺;所述對API序列進行非我識別并作出異常判斷采取如下步驟(1)API選取操作(a)截取正常狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集S0;
(b)截取帶毒運行狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集R0;(c)比較串集S0和R0中不同的序列,抽取出構成這些序列的API函數,將這些API函數作為待監視的API函數集;(2)根據選定的API函數,截取正常狀態下目標程序的API序列,并以滑動步長為W將之截成長度為L的串,生成自我集S;(3)獲取目標程序的當前API執行序列,并以滑動步長為W將之截成長度為L的串,每次讀取N個API序列進行如下檢測過程(a)產生初始檢測器集D0根據選定的API函數隨機產生預檢測器,過濾自我(即把與自我匹配的API序列刪除),進而獲得初始檢測器集;這里的匹配策略是部分匹配策略,即兩個序列匹配當且僅當這兩個字符串在連續r個位置一致;(b)比較當前AP執行序列和檢測器集中的任一檢測器如果發現匹配則標記該序列并將總匹配數目加1,當實時獲取的待檢測API序列總匹配數目達到閾值Gn時,向網絡控制臺發異常行為信息;(c)如果進化代數t超過閾值Ge或全部API序列已被標記,繼續讀取下一批API序列并進行檢測;否則,對于不匹配的API序列,則依據親合度變異、基因庫進化、隨機產生的三個子集DA、DG、DR和記憶集DM共同組成下一代檢測器集Dt=DA+DG+DR+DM,且DA、DG、DR子集滿足DA1≈DG2≈DM1;]]>通過親合度變異產生檢測器子集DA,親合度變異是指當API序列與檢測器集中的任一檢測器的匹配程度超過親合度閾值Gf時,通過變異產生Nc(Nc≥1)個子代個體;通過基因庫進化產生檢測器子集DG,基因庫進化是指提高組成有效檢測器的API的選擇概率,即Papi=Papi+ΔP;并在實際生成檢測器時,依據API選擇概率通過賭輪法生成預檢測器,最后過濾自我生成檢測器子集DG;通過隨機產生檢測器子集DR;
將已有的能夠匹配異常序列的檢測器組成記憶集DM;所述網絡控制臺是指用來接收對腳本、注冊表寫入表項路徑以及API序列進行分析處理所獲得的異常信息的網絡程序。
與現有技術相比較,本發明的優點在于1、本發明通過統計正常腳本和異常腳本中選定的29個關鍵詞詞頻來獲得歸一化詞頻,并以此為基礎給出危險度和危險度閾值計算方法來判斷待檢測腳本的危險度,解決了惡意腳本的識別問題。
2、本發明基于注冊表操作“自我集”的角度來判斷分析注冊表寫入表項路徑的異常行為,適用于各種目標程序。
3、本發明將包括基因庫進化、隨機產生、親合度變異和記憶集在內的四個學習與記憶模塊和API執行序列的異常檢測結合起來,使得對API序列進行非我識別的異常檢測效果較好,且適用于各種目標程序。
4、本發明借鑒生物免疫強大的自我保護機制,首次將對腳本進行關鍵詞統計分析、對注冊表寫入表項路徑進行自我識別、對API執行序列進行非我識別這三個方面統一起來對目標程序的異常行為進行監視,使得對未知網絡病毒和惡意代碼的識別效果更好。
5、采用本發明可以自動詳實地記錄程序的注冊表寫入表項路徑和API執行序列,為進一步分析網絡病毒和惡意代碼提供了第一手資料。
綜上所述,本發明借鑒生物免疫強大的自我保護機制,將網絡病毒和惡意代碼識別技術和生物免疫系統的多層保護機制對應起來,分別從對腳本進行關鍵詞統計分析、對注冊表寫入表項路徑進行自我識別、對API執行序列進行非我識別這三個方面來較好地解決了未知網絡病毒和惡意代碼的異常行為識別問題,進而解決了現有技術對病毒變種和未知病毒難于識別的問題,不僅實現了對單個系統中網絡病毒和惡意代碼異常行為的監控,而且使得管理員能夠通過網絡控制臺對整個子網的安全情況實時監控和管理。
圖1是本發明進行分層協同的網絡病毒和惡意代碼識別的工作流程圖。
具體實施例方式下面結合附圖和實例對本發明方法作進一步具體的描述。
實施例1
1、利用幾臺通用微型個人計算機,通過交換機連成一個網絡環境本實施例中具體采用的是三臺奔騰IV微機,和一臺Dell筆記本,以及一臺企業服務器,外加一個長城24端口10M/100M自適應以太網交換機GES-1125交換機,通過交換機將幾臺微機三臺奔騰IV微機、一臺Dell筆記本和一臺企業服務器連成一個網絡。
圖1給出了本實施例進行分層協同的網絡病毒和惡意代碼識別的工作流程。箭頭方向指示了工作流向順序,箭頭尾部是下一步的輸入,箭頭端是下一步進行的操作。其中一臺奔騰序列微機用于運行網絡控制臺1,其余的兩臺奔騰IV微機、一臺Dell筆記本和一臺企業服務器都用于執行對腳本進行關鍵詞詞頻統計分析2、對注冊表寫入表項路徑進行自我識別3和對API執行序列進行非我識別4,并將這三個方面的分析結果都發送到網絡控制臺1。
2、對腳本的關鍵詞統計分析并作出惡意代碼異常判斷如圖1中的對腳本進行關鍵詞詞頻統計分析2,具體采取如下操作步驟(1)收集大量的正常腳本文件和惡意腳本文件,建議正常腳本文件和惡意腳本文件均不少于50個,從腳本文件中分離出29個關鍵詞copyfile、Createobject、Delete、FolderDelete、RegWrite、Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、.save、startup、execute、.add、buildpath、copyfolder、createfolder、createtextfile、deletefile、fileexists、folderexists、getfile、getfolder、getparentfolder、format、.run、do copy、document.write(2)將29個關鍵詞分為三組,第一組為創建對象關鍵詞Createobject,第二組為本身無危險操作關鍵詞Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、startup、execute、.add、buildpath、fileexists、folderexists、getfile、getfolder、getparentfolder、.run、document.write,第三組為具有可能進行破壞操作的關鍵詞copyfile、Delete、FolderDelete、RegWrite、.save、copyfolder、createfolder、createtextfile、deletefile、format、do copy;(3)如圖1中的正常腳本關鍵詞詞頻統計A1統計正常腳本中這29個關鍵詞出現的詞頻的期望值fi(1≤i≤29);(4)如圖1中的異常腳本關鍵詞詞頻統計A2統計惡意腳本中這29個關鍵詞出現的詞頻的期望值fi′(1≤i≤29);(5)如圖1中的計算歸一化詞頻A3計算29個關鍵詞在正常和異常腳本中的歸一化詞頻差ei=(fi-fi′)/Σi=129(fi-fi′)(1≤i≤29);]]>(6)如圖1中的分析待檢測腳本A4從硬盤中讀取指定的腳本文件或從瀏覽器(如IExplore.exe)的臨時文件目錄中讀取瀏覽器正在訪問的腳本文件,統計在該腳本中這29個關鍵詞出現的詞頻mi;(7)如圖1中的危險度計算A5計算待檢測腳本的危險度Risk,Risk=GΣi=029P(i)F(i)]]>其中P(i)、F(i)和G分別為 (8)計算危險度閾值,危險度閾值TH的計算方法為TH=Σi=029P(i)/29]]>(9)如圖1中的發送預警信息A6當危險度Risk超過閾值TH時,通過網絡將預警信息發送至網絡控制臺1(根據Windows操作系統的Socket編制相應的發送接收程序)。
3、如圖1中的對注冊表寫入表項路徑進行自我識別3,對注冊表寫入表項路徑進行自我識別并作出異常判斷可采取如下實施步驟(1)如圖1中的截取注冊表寫入表項路徑B1注入截取注冊表API函數的DLL至目標程序中,如IExplore.exe和Outlook.exe,獲得注冊表API函數執行情況和參數,并從注冊表API函數的參數獲得注冊表寫入表項路徑。注入DLL的方法可以用遠程線程注入方法,遠程線程函數可參見MSDN中的CreateRemoteThread,在注入DLL中采用替換IAT(ImportAddress Table輸入地址表)的方法可截取目標程序的API執行序列,注意要對GetProcAddress和LoadLibraryA、LoadLibraryExA、LoadLibraryW、LoadLibraryExW做特殊處理,具體可參見微軟公司出版、杰弗里·里克特(Jeffrey Ritcher)著的《窗口操作系統核心編程》(Programming Applications for Windows);(2)如圖1中的收集自我B2在正常狀態下運行目標程序,如用IExplore.exe訪問不含惡意代碼的網頁或用Outlook.exe收取不含網絡病毒和惡意代碼的信件等,收集正常狀態下目標程序(在此是IExplore.exe或Outlook.exe)的正常注冊表寫入表項路徑,并存入數據庫中,每個正常注冊表寫入表項路徑稱為“自我”,其集合稱為“自我集”;(3)如圖1中的收集當前待檢測的注冊表寫入表項路徑B3在目標程序運行過程中,通過注入的DLL實時獲取目標程序的注冊表寫入表項路徑,如IExplore.exe或Outlook.exe的注冊表寫操作,并將注冊表寫入表項路徑保存在共享內存中;與此同時,注冊表檢測模塊從共享內存中讀取當前注冊表寫入表項路徑,與數據庫中原有的“自我”操作相比較,如圖1中的自我識別B4;如果不在“自我集”中,則發送異常行為信息至網絡控制臺,如圖1中的發送異常行為信息B5。
4、如圖1中的對API執行序列進行非我識別4,對API序列進行非我識別并作出異常判斷可采取如下實施步驟。
需要說明的是如果不考慮速度的話,可以不運行第(1)步和第(2)步,直接使用全體API函數;或者不運行第(1)步,直接在全體API函數中進行選取。
(1)首先對全部API函數進行重新編號,并確定目標程序使用的API函數總集,如圖1中的使用的API集合C1(a)由于全部API函數過多,約3000個,可以將API函數分為20組,每組約150個,并針對各組API函數生成相應的注入DLL;(b)將這些DLL分別注入目標程序,如IExplore.exe或Outlook.exe,在正常和帶毒情況下運行目標程序,并從記錄的文件中獲得目標程序使用的API函數列表;(2)API選取操作,如圖1中的API選取C2(a)截取正常狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集S0,其中W0的取值可以為1至L0間的任意整數,建議取 L0的取值可以為大于8的整數,建議取8、16、32或64;(b)截取帶毒運行狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集R0;(c)比較串集S0和R0中不同的序列,抽取出構成這些序列的API函數,將這些API函數作為待監視的API函數集;(3)如圖1中的API重新編號C3對選定的API函數進行重新編號,以便于表示API序列;(4)如圖1中的收集自我C4根據選定的API函數,截取正常狀態下目標程序的API序列,并以滑動步長W將之截成長度為L的串,生成自我集S,其中W0的取值可以為1至L0間的任意整數,建議取 L0的取值可以為大于8的整數,建議取8、16、32或64;(5)獲取目標程序的當前API執行序列,每次讀取N個API序列進行如下檢測過程,如IExplore.exe或Outlook.exe,建議N取值為128,如圖1中的獲取目標程序的當前API執行序列C5(a)如圖1中的啟動檢測并判斷結束條件是否滿足C7,產生初始檢測器集D0根據選定的API函數隨機產生預檢測器,過濾自我(即把與自我匹配的API序列刪除),進而獲得初始檢測器集;這里的匹配策略是部分匹配策略,即兩個序列匹配當且僅當這兩個字符串在連續r個位置一致;(b)如圖1中的匹配C6,比較當前API執行序列和檢測器集中的任一檢測器如果發現匹配則標記該序列并將總匹配數目加1,當實時獲取的待檢測API序列總匹配數目達到閾值Gn時,向網絡控制臺發異常行為信息,如圖1中的發送異常行為信息C8;(c)如圖1中的啟動檢測并判斷結束條件是否滿足C7,如果進化代數t超過閾值Ge或全部API序列已被標記,繼續對下一批API序列進行檢測;(d)對于不匹配的API序列,則依據親合度變異、基因庫進化、隨機產生的三個子集DA、DG、DR和記憶集DM共同組成下一代檢測器集Dt=DA+DG+DR+DM,且DA、DG、DR子集滿足DA1≈DG2≈DM1;]]>(e)如圖1中的親合度變異C9,檢測器子集DA由親合度變異產生,親合度變異是指當API序列與檢測器集中的任一檢測器的匹配程度超過親合度閾值Gf時,通過變異產生Nc(Nc≥1)個子代個體;一種建議采用的具體變異方法可以為如果當前API執行序列與任一檢測器匹配位數超過親和度變異閾值,隨機生成一個[1,L]的數a,對此檢測器第a位發生變異,得到一個子代檢測器;如此循環4次,對每個需要變異的檢測器生成4個子代檢測器。
(f)如圖1中的基因庫進化C10檢測器子集DG由基因庫進化產生,基因庫進化是指提高組成有效檢測器的API的選擇概率,使得在通過賭輪法生成預檢測器時,該API具有較高的選擇概率,即Papi=Papi+ΔP。需要指出的是,所有API的選擇概率在開始時是一致的,具有相同的被選擇概率Papi;而且為避免局部最優,每一次基因庫進化的步長是很小的,即API選擇概率的遞增量ΔP很小,且對于所有的API,這里ΔP是相同的;基因庫進化中API選擇概率提升部分的代碼可以簡寫為for(有效檢測器的每一個基因Gene)Begin該基因Gene的選擇概率P[Gene]=P[Gene]+ΔP。
End其中ΔP是一個較小的常常數。如果對于任意Gene,初始P[Gene]為100,ΔP可設為0.1或0.01。
(g)如圖1中的隨機產生C11,檢測器子集DR由隨機產生,隨機產生檢測器是指在每一代檢測器集中保持一定比例的檢測器來自于隨機產生的方式,這是為了維持檢測器的多樣性;(h)如圖1中的記憶集C12記憶集DM由能夠匹配異常序列的檢測器組成,它既可以在開始實時檢測前通過離線生成,也可以在實際監測過程中將能檢測到異常序列的檢測器加入到記憶集中;5、網絡控制臺1是具有網絡數據報接收功能的程序,可以用可視化編程工具編寫,如VC++或Delphi編寫,具有可視化界面并能夠接收網絡數據報和讀寫數據庫;數據庫可以使用Microsoft SQL Server數據庫。管理員可以通過網絡控制臺獲取對腳本、注冊表寫入表項路徑以及API序列進行分析處理獲得的異常行為信息。
6、按照上述方法,包括對腳本進行關鍵詞詞頻統計分析2、對注冊表寫入表項路徑進行自我識別3和對API執行序列進行非我識別4,下面列出了針對75種Email病毒、Email蠕蟲病毒和惡意代碼的檢測結果,結果表明本發明對網絡病毒和惡意代碼具有很好的效果。
權利要求
1.一種分層協同的網絡病毒和惡意代碼識別方法,包括從腳本文件中分離出關鍵詞,通過注入動態鏈接庫(簡稱DLL)的方法獲得應用程序編程接口(簡稱API)執行序列和注冊表寫入表項路徑,將注冊表寫入表項路徑和API序列保存在硬盤或內存中;其特征在于對腳本的關鍵詞詞頻統計分析并作出異常判斷;對注冊表寫入表項路徑進行自我識別并作出異常判斷;對API序列進行非我識別并作出異常判斷;將異常行為信息發送到網絡控制臺;所述腳本文件是指用Javascript語言寫的腳本文件、用VBScript語言寫的腳本文件以及嵌入了Javascript或VBScript代碼的腳本文件;所述注入DLL獲得API執行序列和注冊表寫入表項路徑是指,通過將DLL作為遠程線程注入到目標程序中,然后采用替換輸入地址表(簡稱IAT)的方法截取目標程序的API執行序列,并從注冊表API函數的參數獲得注冊表寫入表項路徑;所述對腳本的關鍵詞統計分析并作出異常判斷是指從腳本文件中分離出29個關鍵詞copyfile、Createobject、Delete、FolderDelete、RegWrite、Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、.save、startup、execute、.add、buildpath、copyfolder、createfolder、createtextfile、deletefile、fileexists、folderexists、getfile、getfolder、getparentfolder、format、.run、do copy、document.write,并進行如下步驟(1)將29個關鍵詞分為三組,第一組為創建對象關鍵詞Createobject;第二組為本身無危險操作關鍵詞Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、startup、execute、.add、buildpath、fileexists、folderexists、getfile、getfolder、getparentfolder、.run、document.write;第三組為具有可能進行破壞操作的關鍵詞copyfile、Delete、FolderDelete、RegWrite、.save、copyfolder、createfolder、createtextfile、deletefile、format、do copy;(2)統計正常腳本中這29個關鍵詞出現的詞頻的期望值fi,1≤i≤29,統計異常腳本中這29個關鍵詞出現的詞頻的期望值fi′,1≤i≤29,計算29個關鍵詞在正常和異常腳本中的歸一化詞頻差ei=(fi-fi′)/Σi=129(fi-fi′),]]>1≤i≤29(3)統計在當前待檢測腳本中關鍵詞出現的詞頻mi,1≤i≤29,計算待檢測腳本的危險度Risk,Risk=GΣi=129P(i)F(i)]]>其中P(i)、F(i)和G分別為 (4)將危險度閾值TH定義為TH=Σi=029P(i)/29]]>當危險度Risk超過閾值TH時,發送預警信息至網絡控制臺;所述對注冊表寫入表項路徑進行自我識別并作出異常判斷采取如下步驟(1)收集正常狀態下目標程序的正常注冊表寫入表項路徑,并存入數據庫中,每個正常注冊表寫入表項路徑稱為“自我”,其集合稱為“自我集”;(2)讀取當前注冊表寫入表項路徑,與數據庫中原有的“自我”操作相比較,如果不在“自我集”中,則發送異常行為信息至網絡控制臺;所述對API序列進行非我識別并作出異常判斷采取如下步驟(1)API選取操作(a)截取正常狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集S0;(b)截取帶毒運行狀態下目標程序的API序列,并以滑動步長為W0的方式將之截成長度為L0的串集R0;(c)比較串集S0和R0中不同的序列,抽取出構成這些序列的API函數,將這些API函數作為待監視的API函數集;(2)根據選定的API函數,截取正常狀態下目標程序的API序列,并以滑動步長為W將之截成長度為L的串,生成自我集S;(3)獲取目標程序的當前API執行序列,并以滑動步長為W將之截成長度為L的串,每次讀取N個API序列進行如下檢測過程(a)產生初始檢測器集D0根據選定的API函數隨機產生預檢測器,過濾自我,進而獲得初始檢測器集;這里的匹配策略是部分匹配策略,即兩個序列匹配當且僅當這兩個字符串在連續r個位置一致;(b)比較當前AP執行序列和檢測器集中的任一檢測器如果發現匹配則標記該序列并將總匹配數目加1,當實時獲取的待檢測API序列總匹配數目達到閾值Gn時,向網絡控制臺發異常行為信息;(c)如果進化代數t超過閾值Ge或全部API序列已被標記,繼續讀取下一批API序列并進行檢測;否則,對于不匹配的API序列,則依據親合度變異、基因庫進化、隨機產生的三個子集DA、DG、DR和記憶集DM共同組成下一代檢測器集Di=DA+DG+DR+DM,且DA、DG、DR子集滿足DA1≈DG2≈DM1;]]>通過親合度變異產生檢測器子集DA,親合度變異是指當API序列與檢測器集中的任一檢測器的匹配程度超過親合度閾值Gf時,通過變異產生Nc(Nc≥1)個子代個體;通過基因庫進化產生檢測器子集DG,基因庫進化是指提高組成有效檢測器的API的選擇概率,即Papi=Papi+ΔP;并在實際生成檢測器時,依據API選擇概率通過賭輪法生成預檢測器,最后過濾自我生成檢測器子集DG;通過隨機產生檢測器子集DR;將已有的能夠匹配異常序列的檢測器組成記憶集DM;所述網絡控制臺是指用來接收對腳本、注冊表寫入表項路徑以及API序列進行分析處理所獲得的異常信息的網絡程序。
全文摘要
本發明分層協同的網絡病毒和惡意代碼識別方法,特征是借鑒生物免疫強大的自我保護機制,將網絡病毒和惡意代碼識別技術和生物免疫系統的多層保護機制對應起來,通過統計分析關鍵詞詞頻判斷待檢測腳本的危險度,基于注冊表操作“自我集”的角度來分析判斷注冊表寫入表項路徑的異常行為,以及對應用程序編程接口執行序列進行非我識別,最終將全部異常行為信息通過網絡發送到網絡控制臺,較好地解決了未知網絡病毒和惡意代碼的異常行為識別問題,對未知網絡病毒和惡意代碼的具較好的識別能力,實現了對單個系統及整個子網中的網絡病毒和惡意代碼異常行為的監控和管理。
文檔編號H04L12/24GK1625121SQ20031010655
公開日2005年6月8日 申請日期2003年12月5日 優先權日2003年12月5日
發明者王煦法, 曹先彬, 羅文堅, 馬建輝, 張四海 申請人:中國科學技術大學