romanimage)、通用搜索樹(GIST,GeneralizedSearchTrees)方法、局部二值模式 化BP,Localbinarypatterns)方法和傅里葉變換方法等。例如,采用化CM方法提取紋理 特征包括:
[0144] 采用現有方法將紋理段轉換成灰度共生矩陣,并不用于限定本發明的保護范圍。
[0145] 得到紋理段對應的灰度共生矩陣后,獲取能夠反映灰度共生矩陣狀況的參 數,如能量(ASM)、對比度(CON)、相關(C0R)、賭(Entropy)、逆差距(Homogeneity)、反 差(Contrast)、差異性(Dissimilarity)、二階距(AngularSecondMoment)、自相關 (Correlation)等。
[0146] 經實踐驗證,采用能量、對比度、賭、逆差距、相關的均值和標準差作為灰度紋理圖 像的6維紋理特征的效果比其他的參數效果要好。
[0147] 得到6維紋理特征向量后,為了減少某些特征的影響被放大而某些特征的影響被 忽略的情形,需要將紋理特征向量的各維度進行歸一化。可W采用高斯歸一化算法對灰度 圖像紋理特征向量進行歸一化處理,歸一化后的6維紋理特征向量作為待測代碼的紋理指 紋。
[0148] 對于灰度紋理圖像組成的紋理特征向量集,對所有分塊的6個維度中的每一個 特征維度中的n維特征向量vW[V。V,,…,V。],其中,n為灰度紋理圖像的分塊總數,計算 出每一個特征維度中的特征值向量的均值Uk和方差〇k,其中,k=0,l,2,…,6,根據公式 vlfi= 進行歸一化處理,其中i=l,2,…,n,fki表示第i個分塊第k個特征維度的值, -,。占 yk為第k個特征維度的均值,0k為第k個特征維度的方差。
[0149] 經上述轉換后,UW的各元素值歸一化至[-1,1]區間范圍內。其中,上標N代表 歸一化。歸一化后,各個特征維度均轉變成具有N(0,1)分布的U?。用3〇k進行歸一化, 則UW的值落在[-1,1]區間的概率將可達99%W上,當UW中的值大于1時默認為1,小 于-1時默認為-1。
[0150] 步驟103、根據預先建立的Bloom-Filter索引結構對獲得的紋理指紋進行檢測, 并返回第一檢測報告,第一檢測報告至少包括待測代碼是否為惡意代碼的檢測結果。
[0151] 本步驟中,使用Bloom-Filter索引結構進行檢測的過程包括W下步驟:
[0152] 首先,獲取灰度紋理圖像各分塊在惡意代碼樣本數據庫中出現的次數。
[0153] 其中,對于灰度紋理圖像的每一個分塊,使用上述m個相互獨立的hash函數,分塊 的特征向量U對應的m個獨立的哈希值(即位置信息);
[0154] 判斷計算得到的m個獨立的哈希值(位置信息)在Bloom-Filter索引結構中對應 的m個位置是否都大于等于1,如果是則認為U是Bloom-Filter索引結構中的元素,返回 該分塊在惡意代碼樣本數據庫中出現的次數,其中,惡意代碼樣本集中出現的次數是指m 個哈希值對應所有的位圖數組中位置的次數的最小值;否則不是,返回該分塊在惡意代碼 樣本集中出現的次數為0。
[0155] 其次,根據獲得的次數獲取待測代碼的總體匹配度。
[0156] 獲得所有分塊出現的次數Cf后,對待測代碼的檢測結果進行評估,評估過程包括 總體匹配度和惡意代碼家族評估。
[0157] 根據各分塊在惡意代碼樣本集中出現的次數、可信塊評分和塊權重指標,定義待 測代碼的總體匹配度為:
[015 引
[015引其中,Md為總體匹配度,n為總塊數,i為塊編號,化為編號為i的紋理塊可信度 評分,Wi為塊權重指標,即待測代碼的分塊所包含的行數與該待測代碼的總行數的比值。
[0160] 塊的可信度評分化i可通過對惡意代碼樣本數據庫的統計和人工分析來決定。例 女口,可W設定H級塊可信度闊值,分別為高可信度頻率Oh、中可信度頻率化M,一般可信度 頻率化。。可W將Cf> 10的紋理塊設定為高可信度塊,對于5《Cf《10的紋理塊設定為 中度可信度塊,對于1《Cf《5的紋理塊設定為一般可信度塊。高可信度頻率化H記為5 分;中可信度頻率CrM記為3分;一般可信度頻率化e記為1分;若Cf為0,可記紋理塊的化i 為0。
[0161] 最后,根據獲得的總體匹配度判斷待測代碼是否為惡意代碼。
[0162] 其中,判斷待測代碼為惡意代碼的可疑程度可疑預先設置,其通常由專家進行定 義。例如,可W設置為;若待檢測惡意代碼塊可信度總評分(即惡意代碼總體匹配度)Ct> 10 記為確認惡意代碼,5《Ct《10記為疑似惡意代碼,1《Ct《5記為可疑惡意代碼,Ct《1 記為未知。
[0163] 判斷出待測代碼是否為惡意代碼后,還可W對待測代碼所屬惡意代碼家族進行評 估,惡意代碼家族評估方法如下:
[0164] 對于待測代碼,通過紋理分割算法分割后的分塊個數為n,對于分塊町,在 Bloom-Filter索引結構中與該分塊相匹配的分塊的個數為B。個,每個與該分塊相匹配的分 塊對應Mp個惡意代碼,那么,與分塊町相對應的惡意代碼有BgMp個;該BgMp個惡意代碼的 名稱可記為集合Si。惡意代碼的家族為,通過候選惡意代碼集投票來決定待測 代碼的家族。
[0165] 本步驟中,檢測報告包括檢測結果(即確認、疑似、可疑和未知)、家族類別、文件細 節信息(例如包標識、PE文件頭信息、PE文件段信息、PE文件導入信息等)、W及變種集的相 關報告信息。
[0166] 參見圖6,本發明還提出了一種檢測惡意代碼的裝置,至少包括:
[0167] 惡意樣本存儲模塊,用于保存預先建立惡意代碼樣本數據庫,惡意代碼樣本數據 庫包括已知惡意代碼的PE文件的信息摘要;
[016引索引模塊,用于保存預先建立Bloom-Filter索引結構;
[0169] 獲取模塊,用于獲取待測代碼的PE文件的信息摘要;判斷出獲得的信息摘要和惡 意代碼樣本數據庫中的已知惡意代碼的PE文件的信息摘要不匹配,獲取待測代碼的PE文 件的紋理指紋;
[0170] 計算模塊,用于根據預先建立的Bloom-Filter索引結構對獲得的紋理指紋進行 檢測,并返回第一檢測報告,第一檢測報告至少包括所述待測代碼是否為惡意代碼的檢測 結果。
[0171] 本發明的裝置中,獲取模塊,還用于:
[0172] 判斷出獲得的信息摘要和惡意代碼樣本數據庫中的已知惡意代碼的PE文件的信 息摘要相匹配,返回第二檢測報告,第二檢測報告包括確認待測代碼為惡意代碼的檢測結 果。
[0173] 本發明的裝置中,獲取模塊,還用于:
[0174] 接收來自用戶的已確認為惡意代碼的PE文件;獲取接收到的惡意代碼的PE文件 的信息摘要,判斷出獲得的信息摘要和惡意代碼樣本數據庫中的已知惡意代碼的PE文件 的信息摘要不匹配,將接收到的惡意代碼的PE文件保存到惡意代碼樣本數據庫中,并對接 收到的惡意代碼的PE文件進行標注;獲取接收到的惡意代碼的PE文件的紋理指紋;
[0175] 裝置還包括:
[0176] 索引結構建立模塊,用于根據獲得的惡意代碼的陽文件的紋理指紋建立 Bloom-Filter索引結構,并將建立的Bloom-Filter索引結構保存到索引模塊中。
[0177] 本發明的裝置中,獲取模塊,還用于:
[0178] 判斷出獲得的信息摘要和惡意代碼樣本數據庫中的已知惡意代碼的PE文件的信 息摘要相匹配,丟棄接收到的惡意代碼的PE文件。
[0179] 本發明的裝置中,獲取待測代碼的PE文件的紋理指紋包括:
[0180] 將待測代碼的PE文件映射為灰度紋理圖像;
[0181] 采用紋理分割算法對灰度紋理圖像進行分塊;
[0182] 提取各分塊的紋理特征。
[0183] 本發明的裝置中,采用紋理分割算法對灰度紋理圖像進行分塊包括:
[0184] 對灰度紋理圖像按紋理段順序掃描,找到第1個還沒有歸屬的紋理段,標記該紋 理段為當前紋理段;
[0185] 當判斷出當前紋理段滿足退化準則時,將當前紋理段所在分塊的所有紋理段劃分 為一個分塊;
[0186] 當判斷出當前紋理段不滿足退化準則,且當前紋理段與下一紋理段滿足生長準則 時,將當前紋理段和下一紋理段合并為一個分塊,并將下一紋理段標記為當前紋理段,繼續 執行判斷當前紋理段是否滿足退化準則的步驟;
[0187] 讀取灰度紋理圖像的下一紋理段,繼續執行判斷當前紋理段是否滿足退化準則的 步驟;
[018引當判斷出當前紋理段為灰度紋理圖像的最后一紋理段時,返回圖像紋理的分塊結 果。
[0189] 本發明的裝置中,計算模塊,具體用于:
[0190] 獲取灰度紋理圖像各分塊在惡意代碼樣本數據庫中出現的次數;
[0191] 根據獲得的次數獲取待測代碼的總體匹配度;
[0192] 根據獲得的總體匹配度判斷待測代碼是否為惡意代碼。
[01