基礎(chǔ)信息
權(quán)利要求
說明書
PDF全文
法律信息
引證文獻(xiàn)
著錄項信息
專利名稱 | 一種分層協(xié)同的網(wǎng)絡(luò)病毒和惡意代碼識別方法 |
申請?zhí)?/td> | CN200310106551.8 | 申請日期 | 2003-12-05 |
法律狀態(tài) | 權(quán)利終止 | 申報國家 | 中國 |
公開/公告日 | 2005-06-08 | 公開/公告號 | CN1625121 |
優(yōu)先權(quán) | 暫無 | 優(yōu)先權(quán)號 | 暫無 |
主分類號 | H04L12/24 | IPC分類號 | H;0;4;L;1;2;/;2;4;;;H;0;4;L;2;9;/;0;0查看分類表>
|
申請人 | 中國科學(xué)技術(shù)大學(xué) | 申請人地址 | 安徽省合肥市金寨路96號
變更
專利地址、主體等相關(guān)變化,請及時變更,防止失效 |
權(quán)利人 | 中國科學(xué)技術(shù)大學(xué) | 當(dāng)前權(quán)利人 | 中國科學(xué)技術(shù)大學(xué) |
發(fā)明人 | 王煦法;曹先彬;羅文堅;馬建輝;張四海 |
代理機(jī)構(gòu) | 合肥華信專利商標(biāo)事務(wù)所 | 代理人 | 余成俊 |
摘要
本發(fā)明分層協(xié)同的網(wǎng)絡(luò)病毒和惡意代碼識別方法,特征是借鑒生物免疫強(qiáng)大的自我保護(hù)機(jī)制,將網(wǎng)絡(luò)病毒和惡意代碼識別技術(shù)和生物免疫系統(tǒng)的多層保護(hù)機(jī)制對應(yīng)起來,通過統(tǒng)計分析關(guān)鍵詞詞頻判斷待檢測腳本的危險度,基于注冊表操作“自我集”的角度來分析判斷注冊表寫入表項路徑的異常行為,以及對應(yīng)用程序編程接口執(zhí)行序列進(jìn)行非我識別,最終將異常行為信息通過網(wǎng)絡(luò)發(fā)送到網(wǎng)絡(luò)控制臺,較好地解決了未知網(wǎng)絡(luò)病毒和惡意代碼的異常行為識別問題,對未知網(wǎng)絡(luò)病毒和惡意代碼的具較好的識別能力,實現(xiàn)了對單個系統(tǒng)及整個子網(wǎng)中的網(wǎng)絡(luò)病毒和惡意代碼異常行為的監(jiān)控和管理。
技術(shù)領(lǐng)域:\n本發(fā)明屬于計算機(jī)網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別是涉及網(wǎng)絡(luò)病毒和惡意代碼的識別技術(shù)。\n背景技術(shù):\n根據(jù)在美國出版的電氣和電子工程師協(xié)會《潛力》雜志(IEEE?POTENTIALS,2001年 10月第四期第16-19頁)介紹,現(xiàn)有的計算機(jī)反病毒識別技術(shù)大致可以分為以下幾種:(1) 基于特征碼的掃描,主要針對已知病毒。(2)虛擬機(jī)技術(shù),其基本思想是將可疑程序置于虛 擬機(jī)環(huán)境下執(zhí)行用于判斷是否為病毒,但目前仍然面臨虛擬機(jī)的效果以及如何保證虛擬機(jī)的 自身安全性等諸多問題。(3)啟發(fā)式方法,其基本思想是試圖通過泛化的特征碼來檢測家族 病毒以及檢測未知病毒。該方法常常依賴于特征碼技術(shù)和虛擬機(jī)技術(shù),目前對未知病毒的識 別效果也有待改進(jìn)。(4)行為分析法,即利用監(jiān)視病毒的特有行為來檢測病毒的方法。這種 方法要求首先歸納出病毒的一般行為模式,然后設(shè)計一個有限狀態(tài)機(jī)對應(yīng)該行為模式,狀態(tài) 遷移對應(yīng)于程序的行為,接受狀態(tài)為檢測到病毒。這種方法的問題是對層出不窮的新病毒, 很難歸納出一個一般的行為模式。(5)校驗和法。這種方法在機(jī)器的初始狀態(tài)生成一個校驗 信息并保存,然后在校驗信息發(fā)生異常變化時(校驗失敗)報警,這種方法的主要問題是實 現(xiàn)起來開銷太大,同時也面臨新應(yīng)用程序的安裝和版本升級等問題??偟膩碚f,在現(xiàn)有的計 算機(jī)反病毒技術(shù)中,特征碼掃描技術(shù)主要用于識別已知病毒,其余各種針對未知病毒而提出 的識別技術(shù)都還有各自的缺點和局限性。\n由于網(wǎng)絡(luò)病毒和惡意代碼是在近年來才開始流行并帶來嚴(yán)重危害的網(wǎng)絡(luò)安全事件,中國 專利申請?zhí)?6114050提出的一種可防止計算機(jī)病毒感染的方法只能防范部分早期的計算機(jī) 病毒,目前這種防毒卡已經(jīng)徹底淡出市場;中國專利申請?zhí)?6109573提出的防火墻系統(tǒng)是 對進(jìn)、出內(nèi)部網(wǎng)絡(luò)的連接或信息進(jìn)行安全檢查,基本不具有識別網(wǎng)絡(luò)病毒和惡意代碼的能力。 因此,這些技術(shù)不適用于網(wǎng)絡(luò)病毒和惡意代碼的識別。\n發(fā)明內(nèi)容:\n針對現(xiàn)有網(wǎng)絡(luò)病毒和惡意代碼識別技術(shù)的不足,本發(fā)明提出一種分層協(xié)同的網(wǎng)絡(luò)病毒和 惡意代碼識別方法,以解決未知網(wǎng)絡(luò)病毒和惡意代碼的異常行為識別問題,實現(xiàn)對單個系統(tǒng) 及整個子網(wǎng)中的未知網(wǎng)絡(luò)病毒和惡意代碼異常行為的監(jiān)控。\n本發(fā)明分層協(xié)同的網(wǎng)絡(luò)病毒和惡意代碼識別方法,包括:從腳本文件中分離出關(guān)鍵詞, 通過注入動態(tài)鏈接庫(Dynamic?Linked?Library:簡稱DLL)的方法獲得應(yīng)用程序編程接口 (Application?Programming?Interface:簡稱API)執(zhí)行序列和注冊表寫入表項路徑,將注冊表 寫入表項路徑和API序列保存在硬盤或內(nèi)存中;其特征在于:\n對腳本的關(guān)鍵詞詞頻統(tǒng)計分析并作出異常判斷;\n對注冊表寫入表項路徑進(jìn)行自我識別并作出異常判斷;\n對API序列進(jìn)行非我識別并作出異常判斷;\n將異常行為信息發(fā)送到網(wǎng)絡(luò)控制臺;\n所述腳本文件是指用Javascript語言寫的腳本文件、用VBScript語言寫的腳本文件以及 嵌入了Javascript或VBScript代碼的腳本文件;\n所述注入DLL獲得API執(zhí)行序列和注冊表寫入表項路徑是指,通過將DLL作為遠(yuǎn)程線 程注入到目標(biāo)程序(即待監(jiān)控程序)中,然后采用替換輸入地址表(Import?Address?Table: IAT)的方法截取目標(biāo)程序的API執(zhí)行序列,并從注冊表API函數(shù)的參數(shù)獲得注冊表寫入表 項路徑;\n所述對腳本的關(guān)鍵詞統(tǒng)計分析并作出異常判斷是指從腳本文件中分離出29個關(guān)鍵詞 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,并進(jìn)行如下步驟:\n(1)將29個關(guān)鍵詞分為三組,第一組為創(chuàng)建對象關(guān)鍵詞:Createobject;第二組為本身 無危險操作關(guān)鍵詞:Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、startup、 execute、.add、buildpath、fileexists、folderexists、getfile、getfolder、getparentfolder、.run、 document.write;第三組為具有可能進(jìn)行破壞操作的關(guān)鍵詞:copyfile、Delete、FolderDelete、 RegWrite、.save、copyfolder、createfolder、createtextfile、deletefile、format、do?copy;\n(2)統(tǒng)計正常腳本中這29個關(guān)鍵詞出現(xiàn)的詞頻的期望值fi,1≤i≤29,統(tǒng)計異常腳本 中這29個關(guān)鍵詞出現(xiàn)的詞頻的期望值fi′,1≤i≤29,計算29個關(guān)鍵詞在正常和異常腳本中 的歸一化詞頻差 1≤i≤29;\n(3)統(tǒng)計在當(dāng)前待檢測腳本中關(guān)鍵詞出現(xiàn)的詞頻mi,1≤i≤29,計算待檢測腳本的危 險度Risk,\n\n其中P(i)、F(i)和G分別為:\n?(1≤i≤29)\n ?(1≤i≤29)\n\n(4)將危險度閾值TH定義為:\n\n當(dāng)危險度Risk超過閾值TH時,發(fā)送預(yù)警信息至網(wǎng)絡(luò)控制臺;\n所述對注冊表寫入表項路徑進(jìn)行自我識別并作出異常判斷采取如下步驟:\n(1)收集正常狀態(tài)下目標(biāo)程序(待監(jiān)控程序)的正常注冊表寫入表項路徑,并存入數(shù) 據(jù)庫中,每個正常注冊表寫入表項路徑稱為“自我”,其集合稱為“自我集”;\n(2)讀取當(dāng)前注冊表寫入表項路徑,與數(shù)據(jù)庫中原有的“自我”操作相比較,如果不 在“自我集”中,則發(fā)送異常行為信息至網(wǎng)絡(luò)控制臺;\n所述對API序列進(jìn)行非我識別并作出異常判斷采取如下步驟:\n(1)API選取操作:\n(a)截取正常狀態(tài)下目標(biāo)程序的API序列,并以滑動步長為W0的方式將之截成長度為 L0的串集S0;\n(b)截取帶毒運(yùn)行狀態(tài)下目標(biāo)程序的API序列,并以滑動步長為W0的方式將之截成長 度為L0的串集R0;\n(c)比較串集S0和R0中不同的序列,抽取出構(gòu)成這些序列的API函數(shù),將這些API 函數(shù)作為待監(jiān)視的API函數(shù)集;\n(2)根據(jù)選定的API函數(shù),截取正常狀態(tài)下目標(biāo)程序的API序列,并以滑動步長為W 將之截成長度為L的串,生成自我集S;\n(3)獲取目標(biāo)程序的當(dāng)前API執(zhí)行序列,并以滑動步長為W將之截成長度為L的串, 每次讀取N個API序列進(jìn)行如下檢測過程:\n(a)產(chǎn)生初始檢測器集D0:根據(jù)選定的API函數(shù)隨機(jī)產(chǎn)生預(yù)檢測器,過濾自我(即把 與自我匹配的API序列刪除),進(jìn)而獲得初始檢測器集;這里的匹配策略是部分匹配策略, 即兩個序列匹配當(dāng)且僅當(dāng)這兩個字符串在連續(xù)r個位置一致;\n(b)比較當(dāng)前AP執(zhí)行序列和檢測器集中的任一檢測器:如果發(fā)現(xiàn)匹配則標(biāo)記該序列 并將總匹配數(shù)目加1,當(dāng)實時獲取的待檢測API序列總匹配數(shù)目達(dá)到閾值Gn時,向網(wǎng)絡(luò)控 制臺發(fā)異常行為信息;\n(c)如果進(jìn)化代數(shù)t超過閾值Ge或全部API序列已被標(biāo)記,繼續(xù)讀取下一批API序列 并進(jìn)行檢測;否則,對于不匹配的API序列,則依據(jù)親合度變異、基因庫進(jìn)化、隨機(jī)產(chǎn)生的 三個子集DA、DG、DR和記憶集DM共同組成下一代檢測器集Di=DA+DG+DR+DM,且 DA、DG、DR子集滿足 \n通過親合度變異產(chǎn)生檢測器子集DA,親合度變異是指當(dāng)API序列與檢測器集中的任一 檢測器的匹配程度超過親合度閾值Gf時,通過變異產(chǎn)生Nc(Nc≥1)個子代個體;\n通過基因庫進(jìn)化產(chǎn)生檢測器子集DG,基因庫進(jìn)化是指提高組成有效檢測器的API的選 擇概率,即Papi=Papi+ΔP;并在實際生成檢測器時,依據(jù)API選擇概率通過賭輪法生成預(yù) 檢測器,最后過濾自我生成檢測器子集DG;\n通過隨機(jī)產(chǎn)生檢測器子集DR;\n將已有的能夠匹配異常序列的檢測器組成記憶集DM;\n所述網(wǎng)絡(luò)控制臺是指用來接收對腳本、注冊表寫入表項路徑以及API序列進(jìn)行分析處理 所獲得的異常信息的網(wǎng)絡(luò)程序。\n與現(xiàn)有技術(shù)相比較,本發(fā)明的優(yōu)點在于:\n1、本發(fā)明通過統(tǒng)計正常腳本和異常腳本中選定的29個關(guān)鍵詞詞頻來獲得歸一化詞頻, 并以此為基礎(chǔ)給出危險度和危險度閾值計算方法來判斷待檢測腳本的危險度,解決了惡意腳 本的識別問題。\n2、本發(fā)明基于注冊表操作“自我集”的角度來判斷分析注冊表寫入表項路徑的異常行 為,適用于各種目標(biāo)程序。\n3、本發(fā)明將包括基因庫進(jìn)化、隨機(jī)產(chǎn)生、親合度變異和記憶集在內(nèi)的四個學(xué)習(xí)與記憶 模塊和API執(zhí)行序列的異常檢測結(jié)合起來,使得對API序列進(jìn)行非我識別的異常檢測效果較 好,且適用于各種目標(biāo)程序。\n4、本發(fā)明借鑒生物免疫強(qiáng)大的自我保護(hù)機(jī)制,首次將對腳本進(jìn)行關(guān)鍵詞統(tǒng)計分析、對 注冊表寫入表項路徑進(jìn)行自我識別、對API執(zhí)行序列進(jìn)行非我識別這三個方面統(tǒng)一起來對目 標(biāo)程序的異常行為進(jìn)行監(jiān)視,使得對未知網(wǎng)絡(luò)病毒和惡意代碼的識別效果更好。\n5、采用本發(fā)明可以自動詳實地記錄程序的注冊表寫入表項路徑和API執(zhí)行序列,為進(jìn) 一步分析網(wǎng)絡(luò)病毒和惡意代碼提供了第一手資料。\n綜上所述,本發(fā)明借鑒生物免疫強(qiáng)大的自我保護(hù)機(jī)制,將網(wǎng)絡(luò)病毒和惡意代碼識別技術(shù) 和生物免疫系統(tǒng)的多層保護(hù)機(jī)制對應(yīng)起來,分別從對腳本進(jìn)行關(guān)鍵詞統(tǒng)計分析、對注冊表寫 入表項路徑進(jìn)行自我識別、對API執(zhí)行序列進(jìn)行非我識別這三個方面來較好地解決了未知網(wǎng) 絡(luò)病毒和惡意代碼的異常行為識別問題,進(jìn)而解決了現(xiàn)有技術(shù)對病毒變種和未知病毒難于識 別的問題,不僅實現(xiàn)了對單個系統(tǒng)中網(wǎng)絡(luò)病毒和惡意代碼異常行為的監(jiān)控,而且使得管理員 能夠通過網(wǎng)絡(luò)控制臺對整個子網(wǎng)的安全情況實時監(jiān)控和管理。\n附圖說明:\n圖1是本發(fā)明進(jìn)行分層協(xié)同的網(wǎng)絡(luò)病毒和惡意代碼識別的工作流程圖。\n具體實施方式:\n下面結(jié)合附圖和實例對本發(fā)明方法作進(jìn)一步具體的描述。\n實施例1:\n1、利用幾臺通用微型個人計算機(jī),通過交換機(jī)連成一個網(wǎng)絡(luò)環(huán)境\n本實施例中具體采用的是三臺奔騰IV微機(jī),和一臺Dell筆記本,以及一臺企業(yè)服務(wù)器, 外加一個長城24端口10M/100M自適應(yīng)以太網(wǎng)交換機(jī)GES-1125交換機(jī),通過交換機(jī)將幾臺 微機(jī)三臺奔騰IV微機(jī)、一臺Dell筆記本和一臺企業(yè)服務(wù)器連成一個網(wǎng)絡(luò)。\n圖1給出了本實施例進(jìn)行分層協(xié)同的網(wǎng)絡(luò)病毒和惡意代碼識別的工作流程。箭頭方向指 示了工作流向順序,箭頭尾部是下一步的輸入,箭頭端是下一步進(jìn)行的操作。其中一臺奔騰 序列微機(jī)用于運(yùn)行網(wǎng)絡(luò)控制臺1,其余的兩臺奔騰IV微機(jī)、一臺Dell筆記本和一臺企業(yè)服 務(wù)器都用于執(zhí)行對腳本進(jìn)行關(guān)鍵詞詞頻統(tǒng)計分析2、對注冊表寫入表項路徑進(jìn)行自我識別3 和對API執(zhí)行序列進(jìn)行非我識別4,并將這三個方面的分析結(jié)果都發(fā)送到網(wǎng)絡(luò)控制臺1。\n2、對腳本的關(guān)鍵詞統(tǒng)計分析并作出惡意代碼異常判斷\n如圖1中的對腳本進(jìn)行關(guān)鍵詞詞頻統(tǒng)計分析2,具體采取如下操作步驟:\n(1)收集大量的正常腳本文件和惡意腳本文件,建議正常腳本文件和惡意腳本文件均 不少于50個,從腳本文件中分離出29個關(guān)鍵詞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:\n(2)將29個關(guān)鍵詞分為三組,第一組為創(chuàng)建對象關(guān)鍵詞:Createobject,第二組為本身 無危險操作關(guān)鍵詞:Virus、.Write、GetSpecialFolder、keys、opentextfile、readall、startup、 execute、.add、buildpath、fileexists、folderexists、getfile、getfolder、getparentfolder、.run、 document.write,第三組為具有可能進(jìn)行破壞操作的關(guān)鍵詞:copyfile、Delete、FolderDelete、 RegWrite、.save、copyfolder、createfolder、createtextfile、deletefile、format、do?copy;\n(3)如圖1中的正常腳本關(guān)鍵詞詞頻統(tǒng)計A1:統(tǒng)計正常腳本中這29個關(guān)鍵詞出現(xiàn)的詞 頻的期望值fi(1≤i≤29);\n(4)如圖1中的異常腳本關(guān)鍵詞詞頻統(tǒng)計A2:統(tǒng)計惡意腳本中這29個關(guān)鍵詞出現(xiàn)的詞 頻的期望值fi′(1≤i≤29);\n(5)如圖1中的計算歸一化詞頻A3:計算29個關(guān)鍵詞在正常和異常腳本中的歸一化詞 頻差 (1≤i≤29);\n(6)如圖1中的分析待檢測腳本A4:從硬盤中讀取指定的腳本文件或從瀏覽器(如 IExplore.exe)的臨時文件目錄中讀取瀏覽器正在訪問的腳本文件,統(tǒng)計在該腳本中這29個 關(guān)鍵詞出現(xiàn)的詞頻mi;\n(7)如圖1中的危險度計算A5:計算待檢測腳本的危險度Risk,\n\n其中P(i)、F(i)和G分別為:\n?(1≤i≤29)\n\n\n(8)計算危險度閾值,危險度閾值TH的計算方法為:\n\n(9)如圖1中的發(fā)送預(yù)警信息A6:當(dāng)危險度Risk超過閾值TH時,通過網(wǎng)絡(luò)將預(yù)警信 息發(fā)送至網(wǎng)絡(luò)控制臺1(根據(jù)Windows操作系統(tǒng)的Socket編制相應(yīng)的發(fā)送接收程序)。\n3、如圖1中的對注冊表寫入表項路徑進(jìn)行自我識別3,對注冊表寫入表項路徑進(jìn)行自我 識別并作出異常判斷可采取如下實施步驟:\n(1)如圖1中的截取注冊表寫入表項路徑B1:注入截取注冊表API函數(shù)的DLL至目 標(biāo)程序中,如IExplore.exe和Outlook.exe,獲得注冊表API函數(shù)執(zhí)行情況和參數(shù),并從注冊 表API函數(shù)的參數(shù)獲得注冊表寫入表項路徑。注入DLL的方法可以用遠(yuǎn)程線程注入方法, 遠(yuǎn)程線程函數(shù)可參見MSDN中的CreateRemoteThread,在注入DLL中采用替換IAT(Import Address?Table:輸入地址表)的方法可截取目標(biāo)程序的API執(zhí)行序列,注意要對 GetProcAddress和LoadLibraryA、LoadLibraryExA、LoadLibraryW、LoadLibraryExW做特殊 處理,具體可參見微軟公司出版、杰弗里·里克特(Jeffrey?Ritcher)著的《窗口操作系統(tǒng)核 心編程》(Programming?Applications?for?Windows);\n(2)如圖1中的收集自我B2:在正常狀態(tài)下運(yùn)行目標(biāo)程序,如用IExplore.exe訪問不 含惡意代碼的網(wǎng)頁或用Outlook.exe收取不含網(wǎng)絡(luò)病毒和惡意代碼的信件等,收集正常狀態(tài) 下目標(biāo)程序(在此是IExplore.exe或Outlook.exe)的正常注冊表寫入表項路徑,并存入數(shù)據(jù) 庫中,每個正常注冊表寫入表項路徑稱為“自我”,其集合稱為“自我集”;\n(3)如圖1中的收集當(dāng)前待檢測的注冊表寫入表項路徑B3:在目標(biāo)程序運(yùn)行過程中, 通過注入的DLL實時獲取目標(biāo)程序的注冊表寫入表項路徑,如IExplore.exe或Outlook.exe 的注冊表寫操作,并將注冊表寫入表項路徑保存在共享內(nèi)存中;與此同時,注冊表檢測模塊 從共享內(nèi)存中讀取當(dāng)前注冊表寫入表項路徑,與數(shù)據(jù)庫中原有的“自我”操作相比較,如圖 1中的自我識別B4;如果不在“自我集”中,則發(fā)送異常行為信息至網(wǎng)絡(luò)控制臺,如圖1中 的發(fā)送異常行為信息B5。\n4、如圖1中的對API執(zhí)行序列進(jìn)行非我識別4,對API序列進(jìn)行非我識別并作出異常 判斷可采取如下實施步驟。\n需要說明的是:如果不考慮速度的話,可以不運(yùn)行第(1)步和第(2)步,直接使用全 體API函數(shù);或者不運(yùn)行第(1)步,直接在全體API函數(shù)中進(jìn)行選取。\n(1)首先對全部API函數(shù)進(jìn)行重新編號,并確定目標(biāo)程序使用的API函數(shù)總集,如圖 1中的使用的API集合C1:\n(a)由于全部API函數(shù)過多,約3000個,可以將API函數(shù)分為20組,每組約150個, 并針對各組API函數(shù)生成相應(yīng)的注入DLL;\n(b)將這些DLL分別注入目標(biāo)程序,如IExplore.exe或Outlook.exe,在正常和帶毒情 況下運(yùn)行目標(biāo)程序,并從記錄的文件中獲得目標(biāo)程序使用的API函數(shù)列表;\n(2)API選取操作,如圖1中的API選取C2:\n(a)截取正常狀態(tài)下目標(biāo)程序的API序列,并以滑動步長為W0的方式將之截成長度為 L0的串集S0,其中W0的取值可以為1至L0間的任意整數(shù),建議取L0/2;L0的取值可以 為大于8的整數(shù),建議取8、16、32或64;\n(b)截取帶毒運(yùn)行狀態(tài)下目標(biāo)程序的API序列,并以滑動步長為W0的方式將之截成長 度為L0的串集R0;\n(c)比較串集S0和R0中不同的序列,抽取出構(gòu)成這些序列的API函數(shù),將這些API 函數(shù)作為待監(jiān)視的API函數(shù)集;\n(3)如圖1中的API重新編號C3:對選定的API函數(shù)進(jìn)行重新編號,以便于表示API 序列;\n(4)如圖1中的收集自我C4:根據(jù)選定的API函數(shù),截取正常狀態(tài)下目標(biāo)程序的API 序列,并以滑動步長W將之截成長度為L的串,生成自我集S,其中W0的取值可以為1至 L0間的任意整數(shù),建議取L0/2;L0的取值可以為大于8的整數(shù),建議取8、16、32或64;\n(5)獲取目標(biāo)程序的當(dāng)前API執(zhí)行序列,每次讀取N個API序列進(jìn)行如下檢測過程, 如IExplore.exe或Outlook.exe,建議N取值為128,如圖1中的獲取目標(biāo)程序的當(dāng)前API執(zhí) 行序列C5:\n(a)如圖1中的啟動檢測并判斷結(jié)束條件是否滿足C7,產(chǎn)生初始檢測器集D0:根據(jù)選 定的API函數(shù)隨機(jī)產(chǎn)生預(yù)檢測器,過濾自我(即把與自我匹配的API序列刪除),進(jìn)而獲得 初始檢測器集;這里的匹配策略是部分匹配策略,即兩個序列匹配當(dāng)且僅當(dāng)這兩個字符串在 連續(xù)r個位置一致;\n(b)如圖1中的匹配C6,比較當(dāng)前API執(zhí)行序列和檢測器集中的任一檢測器:如果發(fā) 現(xiàn)匹配則標(biāo)記該序列并將總匹配數(shù)目加1,當(dāng)實時獲取的待檢測API序列總匹配數(shù)目達(dá)到閾 值Gn時,向網(wǎng)絡(luò)控制臺發(fā)異常行為信息,如圖1中的發(fā)送異常行為信息C8;\n(c)如圖1中的啟動檢測并判斷結(jié)束條件是否滿足C7,如果進(jìn)化代數(shù)t超過閾值Ge或 全部API序列已被標(biāo)記,繼續(xù)對下一批API序列進(jìn)行檢測;\n(d)對于不匹配的API序列,則依據(jù)親合度變異、基因庫進(jìn)化、隨機(jī)產(chǎn)生的三個子集DA、 DG、DR和記憶集DM共同組成下一代檢測器集Di=DA+DG+DR+DM,且DA、DG、DR 子集滿足 \n(e)如圖1中的親合度變異C9,檢測器子集DA由親合度變異產(chǎn)生,親合度變異是指當(dāng) API序列與檢測器集中的任一檢測器的匹配程度超過親合度閾值Gf時,通過變異產(chǎn)生 Nc(Nc≥1)個子代個體;\n一種建議采用的具體變異方法可以為:如果當(dāng)前API執(zhí)行序列與任一檢測器匹配位數(shù)超 過親和度變異閾值,隨機(jī)生成一個[1,L]的數(shù)a,對此檢測器第a位發(fā)生變異,得到一個子 代檢測器;如此循環(huán)4次,對每個需要變異的檢測器生成4個子代檢測器。\n(f)如圖1中的基因庫進(jìn)化C10:檢測器子集DG由基因庫進(jìn)化產(chǎn)生,基因庫進(jìn)化是指 提高組成有效檢測器的API的選擇概率,使得在通過賭輪法生成預(yù)檢測器時,該API具有較 高的選擇概率,即Papi=Papi+ΔP。需要指出的是,所有API的選擇概率在開始時是一致的, 具有相同的被選擇概率Papi;而且為避免局部最優(yōu),每一次基因庫進(jìn)化的步長是很小的,即 API選擇概率的遞增量ΔP很小,且對于所有的API,這里ΔP是相同的;\n基因庫進(jìn)化中API選擇概率提升部分的代碼可以簡寫為:\nfor(有效檢測器的每一個基因Gene)\nBegin\n該基因Gene的選擇概率P[Gene]=P[Gene]+ΔP。\nEnd\n其中ΔP是一個較小的常常數(shù)。如果對于任意Gene,初始P[Gene]為100,ΔP可設(shè)為0.1 或0.01。\n(g)如圖1中的隨機(jī)產(chǎn)生C11,檢測器子集DR由隨機(jī)產(chǎn)生,隨機(jī)產(chǎn)生檢測器是指在每 一代檢測器集中保持一定比例的檢測器來自于隨機(jī)產(chǎn)生的方式,這是為了維持檢測器的多樣 性;\n(h)如圖1中的記憶集C12:記憶集DM由能夠匹配異常序列的檢測器組成,它既可以 在開始實時檢測前通過離線生成,也可以在實際監(jiān)測過程中將能檢測到異常序列的檢測器加 入到記憶集中;\n5、網(wǎng)絡(luò)控制臺1是具有網(wǎng)絡(luò)數(shù)據(jù)報接收功能的程序,可以用可視化編程工具編寫,如 VC++或Delphi編寫,具有可視化界面并能夠接收網(wǎng)絡(luò)數(shù)據(jù)報和讀寫數(shù)據(jù)庫;數(shù)據(jù)庫可以使 用Microsoft?SQL?Server數(shù)據(jù)庫。管理員可以通過網(wǎng)絡(luò)控制臺獲取對腳本、注冊表寫入表項 路徑以及API序列進(jìn)行分析處理獲得的異常行為信息。\n6、按照上述方法,包括對腳本進(jìn)行關(guān)鍵詞詞頻統(tǒng)計分析2、對注冊表寫入表項路徑進(jìn)行 自我識別3和對API執(zhí)行序列進(jìn)行非我識別4,下面列出了針對75種Email病毒、Email蠕 蟲病毒和惡意代碼的檢測結(jié)果,結(jié)果表明本發(fā)明對網(wǎng)絡(luò)病毒和惡意代碼具有很好的效果。 ??序號 ????名稱 ??種類 是否報病毒 ????1 ????Bloodhound.vbs.worm ??Email,worm ????是 ????2 ????Bloodhound.vbs.worm變種 ??Email,worm ????是 ????3 ????vbs.mesut ??email ????是 ????4 ????Jesus ??Email,worm ????是 ????5 ????Vbs.jadra ??email ????是 ????6 ????Vbs.infi ??email ????是 ????7 ????Vbs.hatred.b ??email ????是 ????8 ????Vbs.godog ??email ????是 ????9 ????Vbs.hard ??Email,worm ????是 ????10 ????Vbs.gascript ??Email,Trojan ????是 ????11 ????I-Worm.CIAN ??email ????是 ????12 ????Vbs.vbswg.qen ??Email,worm ????是 ????13 ????I-Worm.doublet ??Email,worm ????是 ????14 ????White?house ??Email,worm ????是 ????15 ????I-Worm.chu ??email ????是 ????16 ????Loveletter ??Email,worm ????是 ????17 ????freelink ??Email,worm ????是 ????18 ????Mbop.d ??Email,worm ????是 ????19 ????Kounikewa ??Email,worm ????是 ????20 ????json888 ??惡意代碼 ????是 ????21 ????gator[1] ??惡意代媽 ????是 ????22 ????overkill2 ??惡意代碼 ????是 ????23 ????redlof ??惡意代碼 ????是 ??24 ??script.unrealer ??惡意代碼 ??是 ??25 ??vbs.both ??惡意代碼 ??是 ??26 ??VBS.kremp ??惡意代碼 ??是 ??27 ??script.exploit ??惡意代碼 ??否 ??28 ??script.happytime ??惡意代碼 ??是 ??29 ??vbs.godog ??惡意代碼 ??是 ??30 ??I-worm.doublet ??惡意代碼 ??是 ??31 ??I-worm.chu ??惡意代碼 ??是 ??32 ??vbs.baby ??惡意代碼 ??是 ??33 ??vbs.gascript ??惡意代碼 ??是 ??34 ??vbs.jesus ??惡意代碼 ??是 ??35 ??vbs.mbop.d ??惡意代碼 ??是 ??36 ??vbs.fasan ??惡意代碼 ??是 ??37 ??vbs.hard.vbs ??惡意代碼 ??是 ??38 ??vbs.infi ??惡意代碼 ??是 ??39 ??vbs.jadra ??惡意代碼 ??是 ??40 ??LOVE-LETTER-FOR-YOU ??惡意代碼 ??是 ??41 ??vbs.mesut ??惡意代碼 ??是 ??42 ??JS.Exception.Exploit1 ??惡意代碼 ??是 ??43 ??JS.Exception.Exploit2 ??惡意代碼 ??是 ??44 ??自編Writefile ??惡意代碼 ??是 ??45 ??Writefile變種 ??惡意代碼 ??是 ??46 ??IRC.salim ??惡意代碼 ??是 ??47 ??Vbs.vbswg.qen ??惡意代碼 ??是 ??48 ??Bloodhound.vbs.3 ??惡意代碼 ??是 ??49 ??Bloodhound.vbs.3變種1 ??惡意代碼 ??是 ??50 ??Bloodhound.vbs.3變種2 ??惡意代碼 ??是 ??51 ??Bloodhound.vbs.3變種3 ??惡意代碼 ??是 ??52 ??Bloodhound.vbs.3變種4 ??惡意代碼 ??是 ??53 ??Bloodhound.vbs.3變種5 ??惡意代碼 ??是 ??54 ??Bloodhound.vbs.3變種6 ??惡意代碼 ??是 ??55 ??Bloodhound.vbs.3變種7 ??惡意代碼 ??是 ??56 ??Bloodhound.vbs.3變種8 ??惡意代碼 ??是 ??57 ??Bloodhound.vbs.3變種9 ??惡意代碼 ??是 ??58 ??Vbs.bound ??惡意代碼 ??是 ??59 ??Vbs.charl ??惡意代碼 ??是 ??60 ??VBS.Phram.D(vbs.cheese) ??惡意代碼 ??是 ??61 ??Vbs.entice ??惡意代碼 ??是 ??62 ??Vbs.ave.a ??惡意代碼 ??是 ??63 ??Vbs.exposed ??惡意代碼 ??是 ??64 ??Vbs.annod(vbs.jadra) ??惡意代碼 ??是 ??65 ??Vbs.nomekop ??惡意代碼 ??是 ??66 ??Html.reality(vbs.reality) ??惡意代碼 ??是 ??67 ??Bloodhound.vbs.3 ??惡意代碼 ??是 ??68 ??Bloodhound.vbs.3變種1 ??惡意代碼 ??是 ??69 ??Bloodhound.vbs.3變種2 ??惡意代碼 ??是 ??70 ??Bloodhound.vbs.3變種3 ??惡意代碼 ??是 ??71 ??Bloodhound.vbs.3變種4 ??惡意代碼 ??是 ??72 ??Bloodhound.vbs.3變種5 ??惡意代碼 ??是 ??73 ??Bloodhound.vbs.3變種6 ??惡意代碼 ??是 ??74 ??Bloodhound.vbs.3變種7 ??惡意代碼 ??是 ??75 ??Bloodhound.vbs.3變種8 ??惡意代碼 ??是
法律信息
- 2010-02-03
專利權(quán)的終止(未繳年費專利權(quán)終止)
專利權(quán)的終止(未繳年費專利權(quán)終止)授權(quán)公告日:2007.2.14
- 2007-02-14
- 2005-08-10
- 2005-06-08
引用專利(該專利引用了哪些專利)
序號 | 公開(公告)號 | 公開(公告)日 | 申請日 | 專利名稱 | 申請人 |
1
| |
2003-08-27
|
2001-10-31
| | |
被引用專利(該專利被哪些專利引用)
序號 | 公開(公告)號 | 公開(公告)日 | 申請日 | 專利名稱 | 申請人 | 該專利沒有被任何外部專利所引用! |