專利名稱:一種計(jì)算機(jī)惡意代碼處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別是涉及一種計(jì)算機(jī)惡意代碼處理方法和系 統(tǒng),尤其是涉及到一種檢查計(jì)算機(jī)程序文件中是否包含有計(jì)算機(jī)惡意代碼,以 及從包含計(jì)算機(jī)惡意代碼的計(jì)算機(jī)程序文件中提取惡意代碼特征碼的方法和 系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)的普及和互聯(lián)網(wǎng)的飛速發(fā)展,計(jì)算機(jī)惡意代碼(廣義上, 一般 也可以叫計(jì)算機(jī)病毒)的威脅越來(lái)越嚴(yán)重,計(jì)算機(jī)惡意代碼的數(shù)量增長(zhǎng)迅速, 其傳播性、危害性、隱藏性等等也在不斷提高,從而使反計(jì)算機(jī)惡意代碼的工 作面臨著巨大的挑戰(zhàn)?,F(xiàn)有的廣泛應(yīng)用的反計(jì)算機(jī)惡意代碼技術(shù)是靜態(tài)的模式匹配技術(shù),其在可 能包含惡意代碼的計(jì)算機(jī)程序文件出現(xiàn)后進(jìn)行人工分析,確定文件是否包含惡 意代碼,如果包含惡意代碼就從計(jì)算機(jī)程序文件中提取惡意代碼的特征碼,然 后把新的惡意代碼的特征碼升級(jí)給惡意代碼特征碼庫(kù)來(lái)提供給用戶查殺計(jì)算 機(jī)程序中的惡意代碼。這些分析和提取惡意代碼特征碼的工作都要由人工來(lái)完 成。其中,有許多包含惡意代碼的計(jì)算機(jī)程序文件,他們的文件外表是千差萬(wàn) 別的,不能直接看出文件是包含什么惡意代碼的計(jì)算機(jī)程序文件,不得不通過 人工一個(gè)一個(gè)計(jì)算機(jī)程序文件去分析其是否包含惡意代碼,然后基于這個(gè)計(jì)算 機(jī)程序文件提取所包含的惡意代碼,生成惡意代碼特征碼,加入到惡意代碼特 征碼庫(kù)來(lái)提供給用戶査殺計(jì)算機(jī)程序中的惡意代碼。然而,現(xiàn)有的很多計(jì)算機(jī) 惡意代碼具有多種變種,在運(yùn)行時(shí)具有很多相同或者相似的代碼信息。如威金病毒(Viking),灰鴿子后門病毒(Huigezi、 Gpigeon) , Banker盜取銀行密 碼病毒等等,這些數(shù)量眾多的變種惡意代碼運(yùn)行時(shí)具有相同或者相似的代碼信 息。如威金病毒家族,其運(yùn)行時(shí)具有三個(gè)相同或者相似的代碼信息1)都會(huì) 感染W(wǎng)indows程序;2)把原始文件捆綁在惡意代碼的后面;3)從網(wǎng)上下載
數(shù)個(gè)盜取密碼的惡意程序,并通過局域網(wǎng)傳播。盡管威金病毒家族的變種很多, 但基本行為就是這三個(gè)方面,但是而對(duì)于每一個(gè)惡意代碼及其變種,都不得不 通過人工重復(fù)多次進(jìn)行分析,才能得到惡意代碼及其變種的惡意代碼特征碼, 使得工作效率降低,并影響到惡意代碼特征碼庫(kù)的更新速度。中國(guó)專利授權(quán)公告號(hào)為CN1235108C的發(fā)明專利公開了一種計(jì)算機(jī)病毒 檢測(cè)和識(shí)別方法,其通過模擬生物免疫系統(tǒng),將免疫原理應(yīng)用于反計(jì)算機(jī)病毒 的特征代碼法,結(jié)合行為監(jiān)測(cè)法等計(jì)算機(jī)病毒檢測(cè)和識(shí)別方法,通過監(jiān)控計(jì)算 機(jī)系統(tǒng)來(lái)檢測(cè)和發(fā)現(xiàn)計(jì)算機(jī)病毒并獲得病毒樣本,然后在學(xué)習(xí)識(shí)別階段通過使 用變異進(jìn)化以及樣本文本分析來(lái)獲得病毒特征碼。該發(fā)明具有檢測(cè)一些已知惡 意代碼和未知惡意代碼的能力,但該發(fā)明沒有對(duì)監(jiān)測(cè)和發(fā)現(xiàn)計(jì)算機(jī)惡意代碼的 過程中,感染計(jì)算機(jī)惡意代碼的文件運(yùn)行時(shí)的代碼信息進(jìn)行充分的收集并加以 分析和利用,割裂被包含計(jì)算機(jī)惡意代碼的計(jì)算機(jī)程序文件和惡意代碼及其變 種之間的在運(yùn)行過程中的聯(lián)系,其還是一種基于單一文件的惡意代碼特征碼提 取方法,同樣不能提高工作效率,并影響到惡意代碼特征碼庫(kù)的更新速度。同 時(shí),該發(fā)明由于它無(wú)法直接生成準(zhǔn)確的惡意代碼特征碼,需要不斷的變異和進(jìn) 化,這必然導(dǎo)致在生成特征碼時(shí)需要重復(fù)的比對(duì),從而增加了系統(tǒng)的開銷,而 且,其中的自體文件庫(kù),需要囊括所有正常文件的代碼集合,實(shí)現(xiàn)的難度很大, 實(shí)用性很小。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種計(jì)算機(jī)惡意代碼處理方法和系 統(tǒng),以提高惡意代碼分析的工作效率,降低系統(tǒng)開銷和實(shí)現(xiàn)難度。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種計(jì)算機(jī)惡意代碼處理方法,包括下列 步驟步驟A,讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集所述計(jì)算 機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息;步驟B,將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡意代碼 知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。所述的計(jì)算機(jī)惡意代碼處理方法,在步驟A與步驟B之間還可以包括下 列步驟- 隔離所述釆集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境。所述讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,可以是 復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,并運(yùn)行所述計(jì)算機(jī)程序文件。 所述步驟A還可以包括下列步驟將所述代碼信息與所述計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生 成編碼數(shù)據(jù)。所述將代碼信息與計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),可以是根據(jù)所述代碼信息,記錄與所述代碼信息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件 代碼的數(shù)據(jù)地址,并將所述數(shù)據(jù)地址轉(zhuǎn)化為地址文本,建立所述代碼信息與數(shù) 據(jù)地址的關(guān)聯(lián)。所述生成編碼數(shù)據(jù),可以是根據(jù)所述代碼信息,以及與所述代碼信息相對(duì)應(yīng)的地址文本,建立所述代 碼信息與地址文本的數(shù)據(jù)鏈表,生成所述代碼信息的編碼數(shù)據(jù)。 所述步驟A和步驟B之間還可以包括下列步驟傳送所述代碼信息和編碼數(shù)據(jù)給所述分析計(jì)算機(jī)程序文件是否包含惡意 代碼的計(jì)算機(jī)運(yùn)行環(huán)境,以及惡意代碼特征碼提取的計(jì)算機(jī)運(yùn)行環(huán)境。 所述步驟B之后還可以包括下列步驟步驟C,在確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù)所述編碼數(shù)據(jù) 中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生 成惡意代碼特征碼。所述根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,在所述計(jì)算機(jī)程序文件 中提取文件代碼,可以是-根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,由相應(yīng)的惡意代碼的代碼信 息,查找到所述代碼信息對(duì)應(yīng)的地址文本,由所述地址文本得到與所述代碼信 息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址;然后把所述數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的所述計(jì)算機(jī)程序文件的二進(jìn)制 文件代碼提取出來(lái)。所述生成惡意代碼特征碼,可以是把提取出的二進(jìn)制文件代碼,以及所述文件代碼在所述計(jì)算機(jī)程序文件中 的相對(duì)地址位置匯總在一起形成惡意代碼特征碼。 所述步驟C之后還可以包括下列步驟步驟D,在生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述 惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。所述信息組合包括加速符號(hào)串,用于表示采集到的代碼信息并對(duì)代碼信息 進(jìn)行分類。所述惡意代碼知識(shí)為量化的惡意代碼知識(shí),利用加速符號(hào)串進(jìn)行分類。為實(shí)現(xiàn)本發(fā)明的目的還提供一種計(jì)算機(jī)惡意代碼處理系統(tǒng),包括信息采 集模塊,分析模塊,其中信息采集模塊,用于讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,釆 集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息;分析模塊,用于將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡 意代碼知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),還可以包括隔離模塊,用于隔離信息采 集模塊的計(jì)算機(jī)運(yùn)行環(huán)境。所述信息采集模塊可以包括復(fù)制子模塊和信息采集子模塊,其中復(fù)制子模塊,用于復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,并運(yùn)行所述 計(jì)算機(jī)程序文件;信息采集子模塊,用于采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān) 聯(lián)的代碼信息。所述信息采集模塊還可以包括編碼子模塊,用于將所述代碼信息與所述計(jì) 算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生成編碼數(shù)據(jù)。所述信息采集模塊還可以包括傳送子模塊,用于傳送所述代碼信息和編碼 數(shù)據(jù)給分析模塊。所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),還可以包括惡意代碼特征碼生成模塊, 用于在確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù)所述編碼數(shù)據(jù)中代碼信 息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生成惡意代 碼特征碼。所述惡意代碼特征碼生成模塊可以包括査找子模塊和提取子模塊,其中 查找子模塊,用于根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,由相應(yīng)的
惡意代碼的代碼信息,查找到所述代碼信息對(duì)應(yīng)的地址文本,由所述地址文本得到與所述代碼信息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址;提取子模塊,用于把所述數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的所述計(jì)算機(jī)程序文 件的二進(jìn)制文件代碼提取出來(lái)。所述惡意代碼特征碼生成模塊還可以包括匯總子模塊,用于把提取出的二 進(jìn)制文件代碼,以及所述文件代碼在所述計(jì)算機(jī)程序文件中的相對(duì)地址位置匯 總在一起形成惡意代碼特征碼。所述的計(jì)算機(jī)惡意代碼處理系統(tǒng)還可以包括優(yōu)化模塊,用于在生成惡意代 碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述惡意代碼特征碼進(jìn)行優(yōu)化, 再存入惡意代碼特征碼庫(kù)。所述信息組合包括加速符號(hào)串,用于表示采集到的代碼信息并對(duì)代碼信息 進(jìn)行分類。所述惡意代碼知識(shí)為量化的惡意代碼知識(shí),利用加速符號(hào)串進(jìn)行分類。所述所述與惡意代碼相關(guān)聯(lián)的代碼信息是與惡意代碼相關(guān)聯(lián)的文件信息、 進(jìn)程信息、用戶密碼信息、系統(tǒng)服務(wù)信息、網(wǎng)絡(luò)共享和訪問信息、系統(tǒng)的注冊(cè) 信息中的一種或者一種以上的組合。所述采集為動(dòng)態(tài)跟蹤采集和靜態(tài)采集。所述隔離為網(wǎng)絡(luò)隔離或者虛擬機(jī)隔離。本發(fā)明的有益效果是本發(fā)明的計(jì)算機(jī)惡意代碼處理方法和系統(tǒng),通過對(duì) 可能包含惡意代碼的計(jì)算機(jī)程序文件運(yùn)行過程中與惡意代碼相關(guān)聯(lián)的代碼信 息的充分采集,利用與惡意代碼相對(duì)應(yīng)的代碼信息得到計(jì)算機(jī)程序文件的文件 代碼的數(shù)據(jù)地址,然后生成編碼數(shù)據(jù),根據(jù)采集到的代碼信息組合與與已知的 惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí)比較匹配,快速準(zhǔn)確地識(shí)別是否包含惡意代 碼,進(jìn)而從已經(jīng)包含惡意代碼的計(jì)算機(jī)程序文件中提取出惡意代碼特征碼。其 具有識(shí)別未知惡意代碼的能力,尤其對(duì)內(nèi)部信息相似而文件外表不同的包含計(jì) 算機(jī)惡意代碼的計(jì)算機(jī)程序文件,能夠快速準(zhǔn)確地識(shí)別并提取惡意代碼特征 碼,從而能夠迅速更新惡意代碼特征碼庫(kù)。其比由人工的基于單一文件的處理 方法提高了效率,對(duì)于相似的同一家族的惡意代碼的處理更加高效,使惡意代 碼分析人員從重復(fù)的低效率惡意代碼分析工作中擺脫出來(lái)。
圖1是本發(fā)明計(jì)算機(jī)惡意代碼處理方法流程圖;圖2是本發(fā)明的與惡意代碼相關(guān)聯(lián)的代碼信息采集過程示意圖;圖3是本發(fā)明的代碼信息和數(shù)據(jù)地址相對(duì)應(yīng)過程示意圖;圖4是本發(fā)明的代碼信息和地址文本編碼過程示意圖;圖5A是本發(fā)明的網(wǎng)絡(luò)隔離示意圖;圖5B是本發(fā)明的虛擬機(jī)隔離示意圖;圖6是本發(fā)明的惡意代碼分析過程示意圖;圖7是本發(fā)明的惡意代碼特征碼生成并優(yōu)化存入惡意代碼特征碼庫(kù)過程 示意圖;圖8是本發(fā)明計(jì)算機(jī)惡意代碼處理系統(tǒng)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖1 8 及實(shí)施例,對(duì)本發(fā)明的一種計(jì)算機(jī)惡意代碼處理方法和系統(tǒng)進(jìn)行進(jìn)一步詳細(xì)說(shuō) 明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定 本發(fā)明。本發(fā)明的計(jì)算機(jī)惡意代碼處理方法和系統(tǒng),通過讀取可能包含惡意代碼的 計(jì)算機(jī)程序文件并運(yùn)行,采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián) 的代碼信息;然后將所述代碼信息進(jìn)行組合,與己知的惡意代碼知識(shí)庫(kù)中的己 經(jīng)收集惡意代碼知識(shí)信息進(jìn)行比較匹配,分析該計(jì)算機(jī)程序文件中是否包含惡 意代碼。進(jìn)一步地,可以將該代碼信息與計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地 址相對(duì)應(yīng),生成編碼數(shù)據(jù);當(dāng)確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù) 所述編碼數(shù)據(jù)中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文 件代碼,并生成惡意代碼特征碼;在生成惡意代碼特征碼后,利用惡意代碼特 征碼優(yōu)化算法對(duì)惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。其根據(jù) 編碼數(shù)據(jù),從已經(jīng)確定包含惡意代碼的計(jì)算機(jī)程序文件中,提取相應(yīng)的惡意代 碼,準(zhǔn)確自動(dòng)提取惡意代碼的特征碼。如圖l所示,本發(fā)明的計(jì)算機(jī)惡意代碼處理方法包括下列步驟
步驟l:讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集所述計(jì)算 機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息; 進(jìn)一步地,所述步驟1還包括下列步驟將該代碼信息與計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生成代碼 信息與數(shù)據(jù)地址的編碼數(shù)據(jù)。步驟2:隔離所述采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境;將所述代碼信息和編 碼數(shù)據(jù)從采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境傳送給隔離后的所述分析計(jì)算機(jī)程 序文件是否包含惡意代碼的計(jì)算機(jī)運(yùn)行環(huán)境,以及惡意代碼特征碼提取的計(jì)算 機(jī)運(yùn)行環(huán)境。步驟3:將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡意代碼 知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼;步驟4:在確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù)所述編碼數(shù)據(jù) 中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生 成惡意代碼特征碼。步驟5:在生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述 惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。下面詳細(xì)說(shuō)明本發(fā)明的計(jì)算機(jī)惡意代碼處理方法在步驟1中,讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集所述 計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息,將該代碼信息與計(jì)算 機(jī)程序文件的文件代碼數(shù)據(jù)地址相對(duì)應(yīng),生成編碼數(shù)據(jù)。具體而言首先,復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,將該計(jì)算機(jī)程序文件運(yùn) 行在采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境,并采集該文件運(yùn)行時(shí)的與惡意代碼相關(guān) 聯(lián)的代碼信息。通過對(duì)計(jì)算機(jī)系統(tǒng)的監(jiān)測(cè),發(fā)現(xiàn)可能包含惡意代碼的計(jì)算機(jī)程序文件,對(duì) 該計(jì)算機(jī)程序文件進(jìn)行復(fù)制,并運(yùn)行該計(jì)算機(jī)程序文件,在運(yùn)行該文件過程中 采集與惡意代碼相關(guān)聯(lián)的代碼信息。計(jì)算機(jī)運(yùn)行環(huán)境指計(jì)算機(jī)程序文件運(yùn)行所需要的硬件環(huán)境和軟件環(huán)境,硬 件環(huán)境包括但不限于能夠運(yùn)行該計(jì)算機(jī)程序文件的計(jì)算機(jī)主機(jī)及外圍設(shè)備等; 軟件環(huán)境包括但不限于能夠運(yùn)行該計(jì)算機(jī)程序文件的系統(tǒng)軟件、驅(qū)動(dòng)程序軟件
等。根據(jù)計(jì)算機(jī)程序文件提供計(jì)算機(jī)運(yùn)行環(huán)境是本領(lǐng)域的公知常識(shí),本發(fā)明中 不再--贅述。所述的與惡意代碼相關(guān)聯(lián)的代碼信息,具體包括下列與惡意代碼相關(guān)聯(lián)的 代碼信息文件信息,即文件的復(fù)制,文件或文件夾的刪除,文件或文件夾屬性的變化,文件大小的變化,文件創(chuàng)建日期的變化,文件屬主(ower),用戶組(group) 屬性的變化等信息,本發(fā)明實(shí)施例主要是采集惡意代碼對(duì)計(jì)算機(jī)程序文件操作 的代碼信息,如從網(wǎng)上下載廣告,從網(wǎng)上下載別的惡意程序代碼,以及從惡意 代碼內(nèi)部釋放出新的惡意代碼程序(dropper)等等;進(jìn)程信息,包括進(jìn)程或線程的創(chuàng)建、刪除,進(jìn)程的模塊信息等等,本發(fā)明 實(shí)施例主要是采集與惡意代碼相關(guān)的,并與注入技術(shù)和隱藏技術(shù)相關(guān)的信息。用戶和密碼信息,包括計(jì)算機(jī)用戶和工作組的創(chuàng)建,修改和刪除,密碼的 修改信息等,本發(fā)明實(shí)施例主要是采集計(jì)算機(jī)后門相關(guān)的信息。系統(tǒng)服務(wù)信息,包括服務(wù)程序的創(chuàng)建、啟動(dòng)、停止、刪除,服務(wù)所屬的用 戶、服務(wù)的類型、描述、功能信息等等,本發(fā)明實(shí)施例主要是采集惡意代碼對(duì) 計(jì)算機(jī)底層控制的信息。網(wǎng)絡(luò)共享和訪問信息,包括被惡意代碼共享的本地資源,惡意代碼對(duì)網(wǎng)絡(luò) 的訪問,對(duì)網(wǎng)絡(luò)環(huán)境(例如防火墻的應(yīng)用規(guī)則,host文件,IP地址等)的修改 等信息,本發(fā)明實(shí)施例主要是采集惡意代碼的網(wǎng)絡(luò)傳播,網(wǎng)絡(luò)破壞行為的信息。系統(tǒng)的注冊(cè)信息,本發(fā)明實(shí)施例主要是采集惡意代碼對(duì)注冊(cè)表的修改信 息,包括與自啟動(dòng)技術(shù)相關(guān)的信息等。例如,以Banker惡意代碼(即Banker盜取銀行密碼病毒)為例,復(fù)制運(yùn) 行并采集后,能夠得到如下與惡意代碼相關(guān)聯(lián)的代碼信息I) 文件信息,該惡意代碼會(huì)先把自己拷貝到系統(tǒng)目錄下,并刪除自己原 始文件;II) 系統(tǒng)注冊(cè)信息,該惡意代碼會(huì)把自己添加到系統(tǒng)的自啟動(dòng)程序文件中;III) 進(jìn)程信息,記錄用戶的鍵盤輸入。 其他信息沒有。通過對(duì)計(jì)算機(jī)運(yùn)行環(huán)境監(jiān)測(cè),可以發(fā)現(xiàn)可能包含惡意代碼的計(jì)算機(jī)程序文 件,其既可以是人為的手工運(yùn)行計(jì)算機(jī)程序而發(fā)現(xiàn),也可以是專門監(jiān)測(cè)計(jì)算機(jī)
惡意代碼的公司的惡意代碼監(jiān)測(cè)人員發(fā)現(xiàn),也可以是由計(jì)算機(jī)軟件公司生產(chǎn)的計(jì)算機(jī)反惡意代碼監(jiān)測(cè)軟件發(fā)現(xiàn)(如瑞星公司的瑞星殺毒軟件RAV),還有 是通過"蜜罐"系統(tǒng)("蜜罐"系統(tǒng)是惡意程序收集系統(tǒng)的一部分,每個(gè)公司都 有自己的"蜜罐"系統(tǒng))收集的文件,以及用戶惡意代碼上報(bào)系統(tǒng)上報(bào)的文件 等等,也有國(guó)際反病毒組織向各個(gè)反病毒公司提供樣本文件,各個(gè)反病毒公司 之間交換樣本等等。該可能包含惡意代碼的計(jì)算機(jī)程序文件在被發(fā)現(xiàn)后,提供給本發(fā)明的計(jì)算 機(jī)惡意代碼處理系統(tǒng)。該監(jiān)測(cè)發(fā)現(xiàn)可能包含惡意代碼的計(jì)算機(jī)程序文件的過 程,或者是人為的過程,或者是與本發(fā)明無(wú)關(guān)的現(xiàn)有公知技術(shù),與本發(fā)明無(wú)關(guān), 因此在本發(fā)明中不再一一贅述??赡馨瑦阂獯a的計(jì)算機(jī)程序文件,既可以是懷疑帶有已知或者未知惡 意代碼的計(jì)算機(jī)程序文件,也可以是已經(jīng)知道帶有某種未知惡意代碼的計(jì)算機(jī) 程序文件。該惡意代碼可以是計(jì)算機(jī)程序文件的全部代碼(即計(jì)算機(jī)程序文件 本身就是惡意代碼),也可以是該計(jì)算機(jī)程序文件中的一部分代碼。如圖2所示,計(jì)算機(jī)系統(tǒng)通過動(dòng)態(tài)跟蹤采集和靜態(tài)采集,采集與惡意代碼 相關(guān)聯(lián)的代碼信息,如是否產(chǎn)生了新文件和新文件的路徑和地址,是否連接了 惡意的網(wǎng)址和連接了哪個(gè)具體網(wǎng)址等等。動(dòng)態(tài)跟蹤采集主要有中斷跟蹤,其通過反匯編引擎,在可能包括惡意代碼 的計(jì)算機(jī)程序中插入中斷指令,來(lái)達(dá)到控制文件的執(zhí)行,其和計(jì)算機(jī)調(diào)試程序 類似,如011ydebug,Softlce軟件等;另一種是注入技術(shù),通過把一個(gè)監(jiān)控代碼 注入到可能包含惡意代碼的計(jì)算機(jī)程序文件中,通過修改該文件的引入表,把 入口改向監(jiān)控代碼的地址,在該文件執(zhí)行后,監(jiān)控代碼執(zhí)行監(jiān)控后,再進(jìn)入引 入表中文件原始的地址開始執(zhí)行,監(jiān)控代碼監(jiān)控該文件的執(zhí)行。這種方法實(shí)現(xiàn) 比較簡(jiǎn)單,準(zhǔn)確性和效率都很高;另外還有一種方法是通過匯編程序?qū)ο到y(tǒng)底 層進(jìn)行接管。靜態(tài)采集是靜態(tài)地對(duì)可能包含惡意代碼的計(jì)算機(jī)程序文件運(yùn)行前后,根據(jù) 計(jì)算機(jī)系統(tǒng)信息的對(duì)比后得到的代碼信息,其通過計(jì)算機(jī)操作系統(tǒng)提供的函 數(shù),對(duì)系統(tǒng)屬性進(jìn)行訪問,并記錄該文件運(yùn)行前后的信息結(jié)果而得到的代碼信 息。通過惡意程序運(yùn)行前后系統(tǒng)信息的變化,根據(jù)兩次結(jié)果的對(duì)比,得到不同 的代碼信息部分。
靜態(tài)采集與動(dòng)態(tài)跟蹤釆集的代碼信息相似,但因?yàn)閯?dòng)態(tài)跟蹤釆集只是針對(duì)修改行為,以及修改發(fā)生的代碼數(shù)據(jù)地址進(jìn)行有效的信息提取,但修改前的狀 態(tài)信息和修改后的狀態(tài)信息,利用動(dòng)態(tài)跟蹤不能進(jìn)行有效的信息采集,而且對(duì) 被惡意代碼破壞的系統(tǒng)的修復(fù)工作也不能提供有效的參照,因而,通過靜態(tài)的 對(duì)比采集對(duì)動(dòng)態(tài)的不足進(jìn)行補(bǔ)充,對(duì)系統(tǒng)修復(fù)工作提供參照。
動(dòng)態(tài)跟蹤采集主要目的是為代碼信息和計(jì)算機(jī)程序文件的文件代碼的數(shù) 據(jù)地址相關(guān)聯(lián)提供支持,進(jìn)而對(duì)惡意代碼特征碼的快速準(zhǔn)確提取提供支持。靜 態(tài)采集的主要目的是對(duì)動(dòng)態(tài)跟蹤采集進(jìn)行補(bǔ)充,最終形成一個(gè)完整的代碼信息 鏈(破壞前的狀態(tài),破壞行為,破壞后的結(jié)果)。其次,如圖3所示,根據(jù)與惡意代碼相關(guān)聯(lián)的代碼信息,記錄與該代碼信 息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址,并將該數(shù)據(jù)地址轉(zhuǎn)化為地 址文本,建立代碼信息與數(shù)據(jù)地址的關(guān)聯(lián);采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境在采集與惡意代碼相關(guān)聯(lián)的代碼信息的 過程中,記錄產(chǎn)生該代碼信息的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址,即該 計(jì)算機(jī)程序文件的文件代碼存儲(chǔ)在計(jì)算機(jī)內(nèi)存中的相對(duì)數(shù)據(jù)地址位置,然后將 該數(shù)據(jù)地址轉(zhuǎn)化為地址文本,即以文本形式記錄該數(shù)據(jù)地址。這樣,就可以建 立代碼信息與產(chǎn)生該代碼信息的數(shù)據(jù)地址的關(guān)聯(lián)關(guān)系。其后,如圖4所示,根據(jù)采集到的與惡意代碼相關(guān)聯(lián)的代碼信息,以及與 該代碼信息相關(guān)聯(lián)的地址文本,建立該代碼信息和地址文本的數(shù)據(jù)鏈表,生成 編碼數(shù)據(jù)。根據(jù)與惡意代碼相關(guān)聯(lián)的代碼信息,以及地址文本,進(jìn)行規(guī)范化編碼,建 立該代碼信息和地址文本的數(shù)據(jù)鏈表,生成編碼數(shù)據(jù)。本發(fā)明實(shí)施例的規(guī)范化編碼就是用一個(gè)統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)鏈表對(duì)信息進(jìn)行表示。
代碼信息與地址文本的數(shù)據(jù)鏈表具體存儲(chǔ)結(jié)構(gòu)如圖4所示 如圖4所示,該編碼數(shù)據(jù)鏈表結(jié)構(gòu)為首先是一個(gè)是否采集到信息的總體 標(biāo)志結(jié)構(gòu),如果采集到信息的話這個(gè)結(jié)構(gòu)會(huì)指向一個(gè)地址數(shù)組,其中每一個(gè)項(xiàng) 指向一個(gè)信息大類,每一個(gè)大類有一個(gè)信息鏈表表示。因?yàn)槊恳活愋畔⑹遣还?定的,鏈表中的每一項(xiàng)描述一個(gè)信息,每一個(gè)信息包括一個(gè)信息描述和文件關(guān) 聯(lián)。
在歩驟2中,隔離所述采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境;將所述代碼信息 和編碼數(shù)據(jù)從采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境傳送給隔離后的所述分析計(jì)算 機(jī)程序文件是否包含惡意代碼計(jì)算機(jī)運(yùn)行環(huán)境,以及惡意代碼特征碼提取的計(jì) 算機(jī)運(yùn)行環(huán)境。由于惡意代碼的危害性,在計(jì)算機(jī)程序文件計(jì)算機(jī)運(yùn)行環(huán)境中中,應(yīng)當(dāng)采 取有效的方法把計(jì)算機(jī)惡意代碼計(jì)算機(jī)運(yùn)行環(huán)境和惡意代碼分析與提取惡意 代碼特征碼的計(jì)算機(jī)運(yùn)行環(huán)境相隔離,以防止惡意代碼的破壞行為的蔓延,才 能有效防止惡意代碼的破壞行為的蔓延,準(zhǔn)確地進(jìn)行根據(jù)代碼信息和編碼數(shù) 據(jù),進(jìn)行惡意代碼分析,進(jìn)而提取出惡意代碼特征碼。本發(fā)明中的環(huán)境隔離可以是通過網(wǎng)絡(luò)隔離或者虛擬機(jī)隔離。如圖5A所示,網(wǎng)絡(luò)隔離就是把兩個(gè)不同的環(huán)境建立在兩個(gè)不同的計(jì)算機(jī) 系統(tǒng)上,之間用安全的數(shù)據(jù)通道連接在一起;如圖5B所示,虛擬機(jī)隔離是把兩個(gè)環(huán)境建立在一個(gè)計(jì)算機(jī)系統(tǒng)上,通過 虛擬機(jī)技術(shù)又虛擬了一個(gè)計(jì)算機(jī)系統(tǒng),兩個(gè)環(huán)境互不干擾,達(dá)到防止惡意代碼 外泄的目的。然后,將采集到的與惡意代碼相關(guān)聯(lián)的代碼信息,以及編碼數(shù)據(jù)通過安全 的數(shù)據(jù)傳輸通道,例如利用新軟盤拷貝,或者數(shù)據(jù)過濾的網(wǎng)絡(luò)傳輸?shù)?,傳送給 隔離后的惡意代碼分析和惡意代碼特征碼提取的計(jì)算機(jī)運(yùn)行環(huán)境。在步驟3中,將與惡意代碼相關(guān)聯(lián)的代碼信息進(jìn)行組合,與惡意代碼知識(shí) 庫(kù)中的惡意代碼知識(shí)比較匹配,分析該計(jì)算機(jī)程序文件是否包含計(jì)算機(jī)惡意代 碼。惡意代碼知識(shí)庫(kù)是收集所有已知惡意代碼的特征碼及其運(yùn)行時(shí)產(chǎn)生的代 碼信息,并提供惡意代碼解釋的一個(gè)系統(tǒng)。因?yàn)樵跉⒍拒浖岩粋€(gè)計(jì)算機(jī)程序 文件報(bào)告為惡意代碼時(shí),需要?dú)⒍拒浖咎峁┻@樣做的依據(jù)和合理性的解 釋,所以每個(gè)殺毒軟件公司都會(huì)擁有一個(gè)自己的惡意代碼知識(shí)庫(kù),其包括有惡 意代碼特征碼庫(kù)和信息庫(kù)?,F(xiàn)有技術(shù)中,惡意代碼特征碼庫(kù)提供給用戶用于殺 毒,只管根據(jù)惡意代碼特征碼查殺計(jì)算機(jī)程序文件中的惡意代碼,而信息庫(kù)只 用于解釋,只是對(duì)不同的惡意代碼提供惡意代碼運(yùn)行時(shí)產(chǎn)生的代碼信息的描 述,以及對(duì)惡意代碼解釋,即惡意代碼知識(shí),并不作為査殺惡意代碼的工具, 因此,這兩個(gè)部分是兩個(gè)不同的系統(tǒng)。然而,惡意代碼知識(shí)庫(kù)中的惡意代碼特
征碼庫(kù)和信息庫(kù)這兩個(gè)部分在反惡意代碼中是聯(lián)系密切的。本發(fā)明把惡意代碼 特征碼庫(kù)和信息庫(kù)建立緊密的聯(lián)系,互相促進(jìn)作為反惡意代碼的手段,首先將 可能包含惡意代碼的計(jì)算機(jī)程序文件運(yùn)行時(shí)產(chǎn)生的代碼信息,與信息庫(kù)中已知 的惡意代碼知識(shí)進(jìn)行比較匹配,確認(rèn)該代碼信息是否為惡意代碼運(yùn)行時(shí)產(chǎn)生的 代碼信息,從而確認(rèn)該計(jì)算機(jī)程序文件包含有惡意代碼。一般地,惡意代碼知識(shí)庫(kù)使用規(guī)范的語(yǔ)言對(duì)惡意代碼知識(shí)進(jìn)行描述,具體 而言,對(duì)惡意代碼知識(shí),包括但不限于文件信息,進(jìn)程信息,用戶密碼信息, 系統(tǒng)服務(wù)信息,網(wǎng)絡(luò)共享和訪問信息,系統(tǒng)的注冊(cè)信息等,惡意代碼知識(shí)庫(kù)都進(jìn)行規(guī)范化的編輯,例如,XXI惡意代碼程序開了 XI端口 , XX2惡意代碼 程序從http://www.XX2.com下載了 XX2程序。惡意代碼知識(shí)庫(kù)包括對(duì)多個(gè)惡意代碼描述的集合,其中,每一個(gè)描述又是 一個(gè)或者多個(gè)惡意代碼知識(shí),這些惡意代碼知識(shí)是用文本描述的,可以很好地 進(jìn)行量化為需要的代碼信息。由于對(duì)惡意代碼知識(shí)的描述語(yǔ)言是規(guī)范的,例如對(duì)不同的惡意代碼特征碼 在描述相同的惡意代碼知識(shí)時(shí)用的語(yǔ)言是相同的,量化時(shí)就可以把這些相同的 語(yǔ)言符號(hào)化,變成計(jì)算機(jī)能看懂的語(yǔ)言,將文本描述的惡意代碼知識(shí)量化,把 相同的語(yǔ)言符號(hào)化,變成計(jì)算機(jī)能看懂的語(yǔ)言,是本領(lǐng)域的公知常識(shí),本發(fā)明 不再一一贅述。如圖6所示,將所述代碼信息進(jìn)行組合,與預(yù)設(shè)的惡意代碼知識(shí)庫(kù)中量化 的惡意代碼知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。采集到的代碼信息是一個(gè)最大化的結(jié)構(gòu)的代碼信息,包括所有能夠采集 到的那些與惡意代碼相關(guān)聯(lián)的代碼信息,而根據(jù)采集到的代碼信息進(jìn)行組合 而得到的信息組合結(jié)構(gòu)是一個(gè)最小化的信息結(jié)構(gòu),其指出了能確定這個(gè)信息組 合是否為惡意代碼運(yùn)行時(shí)產(chǎn)生的代碼信息量的所需要的最小的信息組合。該信息組合的方式可以是簡(jiǎn)單的排列組合,即將所有采集到的信息一一排 列加在一起,得到一個(gè)信息組合,例如上述Banker惡意代碼的信息組合為文件信息先把自己拷貝到系統(tǒng)目錄下,并刪除自己原始文件;系統(tǒng)注冊(cè)信息把自己添加到系統(tǒng)的自啟動(dòng)程序文件中;進(jìn)程信息記錄用戶的鍵盤輸入。當(dāng)然,該信息組合也可以是本領(lǐng)域技術(shù)人員可以得知的其他組合方式。如
隨機(jī)抽取其中代碼信息的組合方式等。同時(shí),為了加快查找效率,該信息組合還包括加速符號(hào)串,用于表示采集 到的代碼信息并對(duì)代碼信息進(jìn)行分類。在每一種釆集的代碼信息下,設(shè)立一個(gè) 總的加速符,表示是否采集到信息。例如,l表示有,0表示沒有,然后把代 碼信息分成幾個(gè)大類,如文件類,進(jìn)程類等。類信息各有一個(gè)加速符,1表示 這一大類有信息被收集到,(> 表示沒有,然后還可以繼續(xù)把類再分成更小的類。 分類后即可得到一個(gè)整體的加速符號(hào)串。例如,文件信息為第一位,系統(tǒng)注冊(cè) 信息為第二位,進(jìn)程信息為第三位,其它的信息為后面的位,則上述的關(guān)于Banker惡意代碼的例子的代碼信息就會(huì)生成一個(gè)111000……的加速符號(hào)串。 同樣,對(duì)于惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí),也采用加速符號(hào)串進(jìn)行分類。 然后,通過査找與代碼信息的加速符號(hào)串相同的惡意代碼知識(shí)加速符串,再比 較信息組合與惡意代碼知識(shí)中的小類或具體的信息,這樣比直接匹配具體信 息,從而提高了效率。這樣,在進(jìn)行惡意代碼分析的過程中,就會(huì)提高比較匹配的速度。 惡意代碼知識(shí)庫(kù)中量化的惡意代碼知識(shí)與代碼信息的信息組合是包含與 被包含的關(guān)系,兩者間的比較匹配運(yùn)算過程是一個(gè)邏輯"與"運(yùn)算。當(dāng)惡意代 碼知識(shí)與信息組合的運(yùn)算結(jié)果相同就匹配,即如果惡意代碼知識(shí)對(duì)惡意代碼運(yùn) 行時(shí)產(chǎn)生的代碼信息的描述與采集到的代碼信息中的某個(gè)信息組合的代碼信 息描述相同,則匹配,判斷確定產(chǎn)生該信息組合的代碼為惡意代碼,表明該計(jì) 算機(jī)程序文件中包含惡意代碼,即病毒,確認(rèn)該代碼信息是否為惡意代碼產(chǎn)生 的代碼信息;運(yùn)算結(jié)果不同就不匹配,表明該信息組合不是惡意代碼產(chǎn)生的代 碼信息,如果所有可能信息組合都與惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí)不相匹 配,則表明該計(jì)算機(jī)程序文件不包含計(jì)算機(jī)惡意代碼。另外,如果沒有采集到 任何與惡意代碼相關(guān)聯(lián)的代碼信息,則表明計(jì)算機(jī)程序文件中不包含惡意代 碼。較佳地,在比較匹配時(shí),采用匹配優(yōu)先原則,即只要有一個(gè)信息組合匹配就不進(jìn)行后面的匹配,加快査找計(jì)算機(jī)惡意代碼的速度。與運(yùn)算是計(jì)算機(jī)最基本最快的運(yùn)算之一,比加法運(yùn)算要快很多。 如果比較匹配成功,那么從惡意代碼知識(shí)庫(kù)中,就可以得到相應(yīng)的惡意代碼家族名,根據(jù)該惡意代碼運(yùn)行時(shí)產(chǎn)生的代碼信息的描述,由惡意代碼知識(shí)庫(kù) 量化的逆過程,就可以自動(dòng)生成惡意代碼知識(shí)庫(kù)中的對(duì)該惡意代碼描述的惡意 代碼知識(shí),即該惡意代碼運(yùn)行時(shí)產(chǎn)生的代碼信息,惡意代碼名可以根據(jù)家族中的發(fā)現(xiàn)順序進(jìn)行排列,如abcd……aa, ab, ac……。利用這些采集到的代碼信息的信息組合和惡意代碼知識(shí)庫(kù)量化的惡意代 碼知識(shí)進(jìn)行比較匹配時(shí),通過加速符號(hào)串,可以快速地確定査找的惡意代碼, 增強(qiáng)了査找惡意代碼的準(zhǔn)確性。同時(shí),由于代碼信息是文件內(nèi)部運(yùn)行時(shí)產(chǎn)生的 結(jié)果的描述,可以降低了由于文件外部的變化而產(chǎn)生的復(fù)雜度。在步驟4中,在確認(rèn)所述計(jì)算機(jī)程序文件為包含惡意代碼的計(jì)算機(jī)程序文 件后,根據(jù)所述編碼數(shù)據(jù)中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文 件中提取文件代碼,并生成惡意代碼特征碼。具體而言如圖7所示,通過把信息組合與惡意代碼知識(shí)庫(kù)中量化的惡意代碼知識(shí)進(jìn)行比較匹配,確定該計(jì)算機(jī)程序文件包含惡意代碼,即包含病毒后,根據(jù)信息組合就可以由編碼數(shù)據(jù)而得到的產(chǎn)生該信息組合的全部地址文本,進(jìn)而從地址 文本得到與該代碼信息相關(guān)聯(lián)的文件代碼的數(shù)據(jù)地址,通過對(duì)文件代碼的數(shù)據(jù)地址中存儲(chǔ)的計(jì)算機(jī)程序文件的文件代碼的査找、提取與匯總,生成該惡意代 碼的惡意代碼特征碼。這樣,通過信息組合,編碼數(shù)據(jù)以及計(jì)算機(jī)程序文件三 個(gè)資源進(jìn)行査找、提取與匯總,就可以生成惡意代碼特征碼。 把惡意代碼特征碼和惡意代碼進(jìn)行關(guān)聯(lián)的過程包括下列過程 首先,利用信息組合,在編碼數(shù)據(jù)中找到該信息組合的對(duì)應(yīng)的地址文本,由地址文本得到與該信息組合相關(guān)聯(lián)的文件代碼的數(shù)據(jù)地址;然后,把信息組合的文件代碼的數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的二進(jìn)制文件代碼提取出來(lái),可以用十六進(jìn)制表示;最后,把提取出的二進(jìn)制文件代碼和文件代碼在文件中的相對(duì)數(shù)據(jù)地址位 置匯總在一起生成惡意代碼特征碼。這樣,用戶就可以根據(jù)惡意代碼特征碼在計(jì)算機(jī)程序文件中的相應(yīng)位置查 找惡意代碼,找到就報(bào)為惡意代碼,并進(jìn)行相應(yīng)的査殺惡意代碼的處理。本發(fā)明實(shí)施例根據(jù)與該代碼信息匹配的惡意代碼知識(shí),惡意代碼特征碼庫(kù) 得到相應(yīng)的惡意代碼特征碼,然后與已經(jīng)確認(rèn)包含惡意代碼的計(jì)算機(jī)程序文件 相關(guān)聯(lián),根據(jù)編碼數(shù)據(jù),確認(rèn)這個(gè)包含惡意代碼的計(jì)算機(jī)程序文件所包含的是 什么惡意代碼,是已知的惡意代碼變種還是未知的惡意代碼。如果是己知惡意
代碼變種,則査找其變種部分的惡意代碼特征碼并進(jìn)行命名確認(rèn);如果是未知 的惡意代碼,則直接從計(jì)算機(jī)程序文件中提取惡意代碼特征碼并進(jìn)行命名確 認(rèn)。在步驟5中,在生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。具體而言優(yōu)化算法是通過時(shí)間來(lái)?yè)Q空間的算法,未優(yōu)化的惡意代碼特征碼是文件相 對(duì)數(shù)據(jù)地址和惡意代碼的文件代碼數(shù)據(jù)對(duì)的組合,采用優(yōu)化算法后把惡意代碼 特征碼中的文件相對(duì)地址變成一個(gè)范圍,惡意代碼特征碼會(huì)相應(yīng)的變短,這樣 一個(gè)惡意代碼特征碼可以替換掉文件相對(duì)地址在一個(gè)范圍內(nèi)的特征,通過惡意 代碼特征碼優(yōu)化算法優(yōu)化,這樣可以有效減小惡意代碼特征碼庫(kù)的大小。所述的優(yōu)化算法可以是常用的優(yōu)化算法,如約束變尺度法,混合離散綜合 型算法,約束法等。惡意代碼的文件代碼數(shù)據(jù)不同于惡意代碼特征碼,惡意代碼的文件代碼數(shù) 據(jù)是文件中的二進(jìn)制字符串,而惡意代碼特征碼是惡意代碼的文件代碼數(shù)據(jù)和 相對(duì)地址對(duì)的組合體,兩者是包含與被包含的關(guān)系。本發(fā)明的計(jì)算機(jī)惡意代碼處理方法,通過規(guī)范化采集可能包含惡意代碼 (病毒)的計(jì)算機(jī)程序文件運(yùn)行時(shí)產(chǎn)生的與惡意代碼相關(guān)聯(lián)的代碼信息,并將 得到代碼信息與相關(guān)聯(lián)的文件代碼的數(shù)據(jù)地址進(jìn)行編碼,把惡意代碼知識(shí)庫(kù)的 惡意代碼知識(shí)和對(duì)計(jì)算機(jī)程序文件運(yùn)行時(shí)產(chǎn)生的與惡意代碼相關(guān)聯(lián)的代碼信 息比較匹配,判斷該計(jì)算機(jī)程序文件是否包含有惡意代碼(病毒),其通過代 碼信息把惡意代碼知識(shí)庫(kù)中的惡意代碼特征碼庫(kù)和信息庫(kù)聯(lián)系在一起,起到了 一個(gè)紐帶的功能,能夠迅速分析判斷計(jì)算機(jī)程序文件中是否包含惡意代碼,增 強(qiáng)判斷程序文件中惡意代碼的準(zhǔn)確性,快速生成惡意代碼特征碼,提高了工作 的效率,使惡意代碼分析人員從重復(fù)的低效率惡意代碼分析工作中得到擺脫。 同時(shí),本發(fā)明還提供了與該方法相對(duì)應(yīng)的一種計(jì)算機(jī)惡意代碼處理系統(tǒng) 如圖8所示,本發(fā)明的計(jì)算機(jī)惡意代碼處理系統(tǒng)包括信息采集模塊810,隔離模塊820,分析模塊830,惡意代碼特征碼生成模塊840。其中信息采集模塊810,用于讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息。 隔離模塊820,用于隔離信息采集模塊的計(jì)算機(jī)運(yùn)行環(huán)境。
分析模塊830,用于將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中 的惡意代碼知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。惡意代碼特征碼生成模塊840,用于在確認(rèn)所述計(jì)算機(jī)程序文件為包含惡 意代碼的計(jì)算機(jī)程序文件后,根據(jù)所述編碼數(shù)據(jù)中代碼信息與數(shù)據(jù)地址的關(guān) 系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生成惡意代碼特征碼。其中,信息采集模塊810包括復(fù)制子模塊811,信息采集子模塊812,編 碼子模塊813,傳送子模塊814。復(fù)制子模塊811,用于復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,并運(yùn)行 所述計(jì)算機(jī)程序文件。信息采集子模塊812,采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān) 聯(lián)的代碼信息。信息采集子模塊812通過動(dòng)態(tài)跟蹤和靜態(tài)采集與惡意代碼相關(guān)聯(lián)的代碼信息。編碼子模塊813,用于將所述代碼信息與所述計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生成編碼數(shù)據(jù)。傳送子模塊814,用于傳送所述代碼信息和編碼數(shù)據(jù)給分析模塊830。 隔離模塊820通過網(wǎng)絡(luò)隔離或者虛擬機(jī)隔離隔離信息采集模塊810的計(jì)算機(jī)運(yùn)行環(huán)境,防止惡意代碼的破壞行為的蔓延,有效防止惡意代碼的破壞行為的蔓延分析模塊830根據(jù)編碼數(shù)據(jù)中惡意代碼程序文件運(yùn)行時(shí)產(chǎn)生的各個(gè)代碼 信息,與惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí)相比較匹配,確認(rèn)該計(jì)算機(jī)程序文 件中是否包含有惡意代碼。較佳地,利用這些采集到的代碼信息組合和惡意代碼知識(shí)庫(kù)量化的惡意代 碼知識(shí)進(jìn)行比較匹配時(shí),通過加速符號(hào)串,可以快速地確定惡意代碼,而且充 分地把惡意代碼特征碼和惡意代碼知識(shí)的描述相結(jié)合,增強(qiáng)了査找的準(zhǔn)確性。惡意代碼特征碼生成模塊840包括查找子模塊841 ,提取子模塊842和匯 總子模塊843。其中査找子模塊841,用于根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,由相 應(yīng)的惡意代碼的代碼信息,査找到所述代碼信息對(duì)應(yīng)的地址文本,由所述地址 文本得到與所述代碼信息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址; 提取子模塊842,用于把所述數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的所述計(jì)算機(jī)程 序文件的二進(jìn)制文件代碼提取出來(lái)。匯總子模塊843,用于把提取出的二進(jìn)制文件代碼,以及所述文件代碼在 所述計(jì)算機(jī)程序文件中的相對(duì)地址位置匯總在一起形成惡意代碼特征碼。惡意代碼特征碼生成模塊840根據(jù)信息組合由編碼數(shù)據(jù)而得到的產(chǎn)生信 息組合的全部地址文本,進(jìn)而從地址文本得到與該代碼信息相關(guān)聯(lián)的文件代碼 的數(shù)據(jù)地址,通過對(duì)文件代碼的數(shù)據(jù)地址中存儲(chǔ)的文件代碼的查找、提取與匯 總,生成該惡意代碼的特征碼。這樣,通過信息組合,編碼數(shù)據(jù)以及計(jì)算機(jī)程 序文件三個(gè)資源進(jìn)行査找、提取與匯總,就可以生成惡意代碼特征碼較佳地,本發(fā)明的計(jì)算機(jī)惡意代碼處理系統(tǒng)還包括優(yōu)化模塊850,用于在 生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述惡意代碼特征碼 進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。惡意代碼特征生成模塊840在生成惡意代碼特征碼后,在存入惡意代碼特 征碼庫(kù)之前利用惡意代碼特征碼優(yōu)化算法對(duì)惡意代碼特征碼進(jìn)行優(yōu)化。所述的優(yōu)化算法可以是常用的優(yōu)化算法,如約束變尺度法,混合離散綜合 型算法,約束法等。本發(fā)明的計(jì)算機(jī)惡意代碼處理方法和系統(tǒng),把代碼信息與文件代碼的數(shù)據(jù) 地址進(jìn)行對(duì)應(yīng),然后把這些代碼信息和數(shù)據(jù)地址進(jìn)行編碼,通過代碼信息組合 與已知的惡意代碼知識(shí)庫(kù)中的已經(jīng)收集惡意代碼知識(shí)進(jìn)行比較匹配,確定該文 件是否包含惡意代碼,即病毒,再通過已經(jīng)確定的為惡意代碼產(chǎn)生的代碼信息 組合,根據(jù)編碼數(shù)據(jù)的地址,從該文件中査找出相應(yīng)的文件代碼,提取并匯總, 準(zhǔn)確自動(dòng)提取該文件已經(jīng)感染的計(jì)算機(jī)惡意代碼特征碼。其比由人工的基于單 一文件的處理方法提高了效率,對(duì)于相似的同一家族的惡意代碼的處理更加高 效,使惡意代碼分析人員從重復(fù)的低效率惡意代碼單一文件的分析工作中擺脫 出來(lái),快速準(zhǔn)確地提取惡意代碼特征碼,減少了計(jì)算機(jī)系統(tǒng)的開銷,也不需要 建立所有正常文件的自體文件庫(kù),提高反惡意代碼工作的效率。以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述和說(shuō)明,這些實(shí)施例應(yīng)被認(rèn)為其只 是示例性的,并不用于對(duì)本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行 解釋。
權(quán)利要求
1、一種計(jì)算機(jī)惡意代碼處理方法,其特征在于,包括下列步驟步驟A,讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息;步驟B,將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。
2、 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 步驟A與步驟B之間還包括下列步驟隔離所述采集代碼信息的計(jì)算機(jī)運(yùn)行環(huán)境。
3、 根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于, 所述讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,是復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,并運(yùn)行所述計(jì)算機(jī)程序文件。
4、 根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于, 所述步驟A還包括下列步驟將所述代碼信息與所述計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生 成編碼數(shù)據(jù)。
5、 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述將代碼信息與計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),是根據(jù)所述代碼信息,記錄與所述代碼信息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件 代碼的數(shù)據(jù)地址,并將所述數(shù)據(jù)地址轉(zhuǎn)化為地址文本,建立所述代碼信息與數(shù) 據(jù)地址的關(guān)聯(lián)。
6、 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述生成編碼數(shù)據(jù),是根據(jù)所述代碼信息,以及與所述代碼信息相對(duì)應(yīng)的地址文本,建立所述代 碼信息與地址文本的數(shù)據(jù)鏈表,生成所述代碼信息的編碼數(shù)據(jù)。
7、 根據(jù)權(quán)利要求6所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述步驟A和步驟B之間還包括下列步驟傳送所述代碼信息和編碼數(shù)據(jù)給所述分析計(jì)算機(jī)程序文件是否包含惡意 代碼的計(jì)算機(jī)運(yùn)行環(huán)境,以及惡意代碼特征碼提取的計(jì)算機(jī)運(yùn)行環(huán)境。
8、 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 步驟B之后還包括下列步驟-步驟C,在確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù)所述編碼數(shù)據(jù) 中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生 成惡意代碼特征碼。
9、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文 件代碼,是根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,由相應(yīng)的惡意代碼的代碼信 息,査找到所述代碼信息對(duì)應(yīng)的地址文本,由所述地址文本得到與所述代碼信 息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址;然后把所述數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的所述計(jì)算機(jī)程序文件的二進(jìn)制 文件代碼提取出來(lái)。
10、 根據(jù)權(quán)利要求9所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述生成惡意代碼特征碼,是把提取出的二進(jìn)制文件代碼,以及所述文件代碼在所述計(jì)算機(jī)程序文件中 的相對(duì)地址位置匯總在一起形成惡意代碼特征碼。
11、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述步驟C之后還包括下列步驟步驟D,在生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法對(duì)所述惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。
12、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述信息組合包括加速符號(hào)串,用于表示采集到的代碼信息并對(duì)代碼信息進(jìn)行分 類。
13、 根據(jù)權(quán)利要求12所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所 述惡意代碼知識(shí)為量化的惡意代碼知識(shí),利用加速符號(hào)串進(jìn)行分類。
14、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 與惡意代碼相關(guān)聯(lián)的代碼信息是與惡意代碼相關(guān)聯(lián)的文件信息、進(jìn)程信息、用 戶密碼信息、系統(tǒng)服務(wù)信息、網(wǎng)絡(luò)共享和訪問信息、系統(tǒng)的注冊(cè)信息中的一種 或者一種以上的組合。
15、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 采集為動(dòng)態(tài)跟蹤采集和靜態(tài)采集。
16、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所述 隔離為網(wǎng)絡(luò)隔離或者虛擬機(jī)隔離。
17、 一種計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,包括信息采集模塊, 分析模塊,其中信息采集模塊,用于讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采 集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息;分析模塊,用于將所述代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡 意代碼知識(shí)比較匹配,分析所述計(jì)算機(jī)程序文件是否包含惡意代碼。
18、 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,還 包括隔離模塊,用于隔離信息采集模塊的計(jì)算機(jī)運(yùn)行環(huán)境。
19、 根據(jù)權(quán)利要求17或18所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所述信息采集模塊包括復(fù)制子模塊和信息采集子模塊,其中復(fù)制子模塊,用于復(fù)制可能包含惡意代碼的計(jì)算機(jī)程序文件,并運(yùn)行所述計(jì)算機(jī)程序文件;信息采集子模塊,用于采集所述計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān) 聯(lián)的代碼信息。
20、 根據(jù)權(quán)利要求17或18所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于, 所述信息采集模塊還包括編碼子模塊,用于將所述代碼信息與所述計(jì)算機(jī)程序 文件的文件代碼的數(shù)據(jù)地址相對(duì)應(yīng),生成編碼數(shù)據(jù)。
21、 根據(jù)權(quán)利要求20所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所 述信息采集模塊還包括傳送子模塊,用于傳送所述代碼信息和編碼數(shù)據(jù)給分析 模塊。
22、 根據(jù)權(quán)利要求20所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,還 包括惡意代碼特征碼生成模塊,用于在確認(rèn)所述計(jì)算機(jī)程序文件包含惡意代碼 后,根據(jù)所述編碼數(shù)據(jù)中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件 中提取文件代碼,并生成惡意代碼特征碼。
23、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所 述惡意代碼特征碼生成模塊包括査找子模塊和提取子模塊,其中 查找子模塊,用于根據(jù)編碼數(shù)據(jù)中代碼信息與地址文本的關(guān)系,由相應(yīng)的 惡意代碼的代碼信息,查找到所述代碼信息對(duì)應(yīng)的地址文本,由所述地址文本得到與所述代碼信息相對(duì)應(yīng)的計(jì)算機(jī)程序文件的文件代碼的數(shù)據(jù)地址;提取子模塊,用于把所述數(shù)據(jù)地址對(duì)應(yīng)所在位置存儲(chǔ)的所述計(jì)算機(jī)程序文 件的二進(jìn)制文件代碼提取出來(lái)。
24、 根據(jù)權(quán)利要求23所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所 述惡意代碼特征碼生成模塊還包括匯總子模塊,用于把提取出的二進(jìn)制文件代 碼,以及所述文件代碼在所述計(jì)算機(jī)程序文件中的相對(duì)地址位置匯總在一起形 成惡意代碼特征碼。
25、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,還 包括優(yōu)化模塊,用于在生成惡意代碼特征碼后,利用惡意代碼特征碼優(yōu)化算法 對(duì)所述惡意代碼特征碼進(jìn)行優(yōu)化,再存入惡意代碼特征碼庫(kù)。
26、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所 述信息組合包括加速符號(hào)串,用于表示采集到的代碼信息并對(duì)代碼信息進(jìn)行分 類。
27、 根據(jù)權(quán)利要求26所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所 述惡意代碼知識(shí)為量化的惡意代碼知識(shí),利用加速符號(hào)串進(jìn)行分類。
28、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理系統(tǒng),其特征在于,所 述所述與惡意代碼相關(guān)聯(lián)的代碼信息是與惡意代碼相關(guān)聯(lián)的文件信息、進(jìn)程信 息、用戶密碼信息、系統(tǒng)服務(wù)信息、網(wǎng)絡(luò)共享和訪問信息、系統(tǒng)的注冊(cè)信息中 的一種或者一種以上的組合。
29、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所 述采集為動(dòng)態(tài)跟蹤采集和靜態(tài)采集。
30、 根據(jù)權(quán)利要求22所述的計(jì)算機(jī)惡意代碼處理方法,其特征在于,所 述隔離為網(wǎng)絡(luò)隔離或者虛擬機(jī)隔離。
全文摘要
本發(fā)明公開了一種計(jì)算機(jī)惡意代碼處理方法和系統(tǒng)。該方法包括下列步驟讀取可能包含惡意代碼的計(jì)算機(jī)程序文件并運(yùn)行,采集計(jì)算機(jī)程序文件運(yùn)行時(shí)的與惡意代碼相關(guān)聯(lián)的代碼信息;將代碼信息進(jìn)行信息組合,與惡意代碼知識(shí)庫(kù)中的惡意代碼知識(shí)比較匹配,分析計(jì)算機(jī)程序文件是否包含惡意代碼;在確認(rèn)計(jì)算機(jī)程序文件包含惡意代碼后,根據(jù)編碼數(shù)據(jù)中代碼信息與數(shù)據(jù)地址的關(guān)系,在所述計(jì)算機(jī)程序文件中提取文件代碼,并生成惡意代碼特征碼。該方法和系統(tǒng)提高了惡意代碼分析的工作效率,降低系統(tǒng)開銷和實(shí)現(xiàn)難度。
文檔編號(hào)G06F21/00GK101162485SQ20061011366
公開日2008年4月16日 申請(qǐng)日期2006年10月11日 優(yōu)先權(quán)日2006年10月11日
發(fā)明者志 王 申請(qǐng)人:飛塔信息科技(北京)有限公司