本發(fā)明涉及惡意代碼檢測分析
技術領域:
,尤其涉及一種基于圖像匹配的惡意代碼檢測方法。
背景技術:
:隨著惡意代碼自動化生成工具的廣泛應用,以及開源代碼在惡意代碼中的應用,惡意代碼的變種與新的惡意代碼家族的數量也迅猛增長,據統計年度檢測出的惡意代碼變種達到4.3億,惡意代碼已經成為網絡空間安全的重大挑戰(zhàn)。傳統的惡意代碼檢測方法主要分為兩種:一種是基于簽名機制的檢測方法,能夠快速地檢測出已知惡意代碼樣本,但是缺點是需要大量的專家經驗和人工參與分析,而且難以應對變形和混淆的惡意代碼樣本;另一種是基于異常行為的檢測方法,可以檢測出零日漏洞和新型家族的惡意代碼樣本,但其誤報率也很高?;谧詣踊治龅膼阂獯a檢測方法可以解決上述問題,該類方法主要是使用機器學習的方法對惡意代碼進行分析,通常分為三個步驟:①提取惡意代碼特征;②選擇適當的模型;③獲得分類結果。現有技術中基于自動化分析的惡意代碼檢測方法,從特征選擇的角度可以分為兩種類型:一種是基于靜態(tài)特征的方法,另一種是基于動態(tài)特征的方法,其中第一種類型方法不需要運行惡意代碼,只需要通過諸如ida、peview和hap-depends等工具獲得惡意代碼的二進制碼或操作碼等,如采用字節(jié)碼n-gram作為惡意代碼的檢測特征,再通過詞頻方法降低特征維度,最終通過svm模型等分類惡意代碼,或采用opcode和字節(jié)碼相結合的特征,再利用集成學習方法進行樣本分類;動態(tài)學習相比于靜態(tài)學習可以準確的獲得惡意代碼的行為信息和目的性,第二種基于動態(tài)特征的方式需要運行程序,獲得程序的動態(tài)行為,最后由特征提取方法提取出的特征便是靜態(tài)特征和動態(tài)特征,如基于api的調用字符串以及參數信息抽取惡意代碼的行為知識,并將這些知識轉化為特征向量。上述基于自動化分析的惡意代碼檢測方法存在以下缺陷:(1)魯棒性差、檢測精度低。該類方法中基于提取的惡意代碼的特征進行分類檢測,不同的特征所獲取的檢測精度可能不同,特征提取的精度、以及特征本身的選取都將直接影響最終檢測分析結果的精度,因而實際檢測的魯棒性差且檢測精度低;(2)檢測效率低。該類方法通常實現較為復雜,通常都需要較長的時間進行模型訓練,使得檢測效率低。技術實現要素:本發(fā)明要解決的技術問題就在于:針對現有技術存在的技術問題,本發(fā)明提供一種實現方法簡單、魯棒性強、檢測準確度以及檢測效果高的基于圖像匹配的惡意代碼檢測方法。為解決上述技術問題,本發(fā)明提出的技術方案為:一種基于圖像匹配的惡意代碼檢測方法,步驟包括:s1.基準樣本選取:獲取對應不同家族類別惡意代碼的訓練樣本,分別將所述訓練樣本轉換為灰度圖像并提取對應的圖像紋理特征;從各個家族類別的訓練樣本中選取第一基準樣本,以及根據所述第一基準樣本、樣本之間圖像紋理特征的差異選取第二基準樣本,將各個家族類別選取的第一基準樣本、第二基準樣本構成對應的基準樣本集;s2.圖像特征提?。簩⒋龣z測惡意代碼轉化為灰度圖像,并提取對應的圖像紋理特征;s3.測試代碼分類:將所述步驟s2提取的圖像紋理特征分別與各家族類別對應的所述基準樣本集進行匹配,根據匹配結果確認待檢測惡意代碼的家族類別。作為本發(fā)明的進一步改進,所述步驟s1中每個家族類別選取第二基準樣本的具體步驟為:s11.候選基準樣本獲取:將選取的各所述第一基準樣本分別與剩余的訓練樣本進行匹配,根據匹配結果查找出每個家族類別中被錯誤分配的訓練樣本并作為候選基準樣本;s12.第二基準樣本確定:分別計算各家族類別中各所述候選基準樣本與其他候選基準樣本之間的差異值,若計算到的所述差異值大于指定閾值,則將對應的候選基準樣本作為對應家族類別的第二基準樣本。作為本發(fā)明的進一步改進,所述步驟s12中具體通過計算各所述候選基準樣本的gabor函數值,以及各所述候選基準樣本與其他訓練樣本之間的距離值,根據所述gabor函數值、所述距離值計算所述候選基準樣本與其他候選基準樣本之間的差異值。作為本發(fā)明的進一步改進,一個候選基準樣本與其他候選基準樣本之間的差異值具體按下式計算得到;pd(esid)=∑j=0,1,......,nd(esid,eshj)其中,esid為第i類第d個候選基準樣本,eshj為第h類第j個候選基準樣本,d(esid,eshj)為樣本esid與樣本eshj之間的距離,h為esid被錯誤分配的家族類別,μ為權衡系數,n為家族類別h所包含的基準樣本的數量,m為基準樣本的數量,l為所述圖像紋理特征的向量長度。作為本發(fā)明的進一步改進:所述圖像紋理特征為信號型靜態(tài)紋理特征。作為本發(fā)明的進一步改進:所述圖像紋理特征具體采用gabor濾波器提取得到。作為本發(fā)明的進一步改進,所述步驟s3中確認待檢測惡意代碼的家族類別的具體步驟為:s31.分別獲取待檢測惡意代碼與各家族類別的所述基準樣本集中所有基準樣本的匹配結果;s32.由各家族類別的所有匹配結果分別得到對應各家族類別的綜合匹配值,根據各家族類別的所述綜合匹配值判斷待檢測惡意代碼是否屬于對應家族類別。作為本發(fā)明的進一步改進:所述綜合匹配值具體按下式計算得到;其中,estest為待檢測惡意代碼,esij為第i類第j個基準樣本,n為家族類別i所包含的基準樣本的數量。作為本發(fā)明的進一步改進:當目標家族類別對應的所述綜合匹配值r滿足r>0時,則判定為待檢測惡意代碼屬于目標家族類別,否則判定為待檢測惡意代碼不屬于目標家族類別。與現有技術相比,本發(fā)明的優(yōu)點在于:1)本發(fā)明基于圖像匹配的惡意代碼檢測方法,通過自動化提取圖像紋理特征,基于特征相似性分析進行圖像匹配,再基于圖像匹配結果實現家族分類判定,能夠實現檢測的自動化,可方便、高效實現大規(guī)模惡意代碼家族檢測分析;2)本發(fā)明基于圖像匹配的惡意代碼檢測方法,在圖像匹配過程中,通過先選取各家族類別的第一基準樣本,再根據第一基準樣本以及樣本之間的圖像紋理特征差異選取第二基準樣本,由第一基準樣本、第二基準樣本構成基準樣本集對待檢測惡意代碼進行圖像匹配,最終確認待檢測惡意代碼的家族類別,無需進行長時間的模型訓練,所選取的基準樣本可靠性高,能夠大大降低由基準樣本選取對檢測結果造成的影響,從而提高檢測精度;3)本發(fā)明基于圖像匹配的惡意代碼檢測方法,進一步先選取第一基準樣本,再基于第一基準樣本選取第二基準樣本,通過與第一基準樣本的匹配狀態(tài)查找出匹配錯誤的樣本作為候選基準樣本,由候選基準樣本計算與當前家族類別的訓練樣本之間的差異值,最后基于差異值確定是否作為新的基準樣本,使得由錯誤分配、同時與其他樣本之間差異較大的樣本也作為基準樣本,實現方法簡單,相比于傳統的圖像匹配直接選取基準樣本,能夠有效增加基準樣本選擇的可靠性,從而進一步提高惡意代碼檢測的精度。附圖說明圖1是本實施例基于圖像匹配的惡意代碼檢測方法的實現流程示意圖。圖2是本實施例基于圖像匹配的惡意代碼檢測方法的實現原理示意圖。圖3是本實施例中灰度圖像轉換的具體實現流程示意圖。圖4是本發(fā)明具體實施例中得到的灰度圖。具體實施方式以下結合說明書附圖和具體優(yōu)選的實施例對本發(fā)明作進一步描述,但并不因此而限制本發(fā)明的保護范圍。如圖1、2所示,本實施例基于圖像匹配的惡意代碼檢測方法,步驟包括:s1.基準樣本選?。韩@取對應不同家族類別惡意代碼的訓練樣本,分別將訓練樣本轉換為灰度圖像并提取對應的圖像紋理特征;從各個家族類別的訓練樣本中選取第一基準樣本,以及根據第一基準樣本、樣本之間圖像紋理特征的差異選取第二基準樣本,將各個家族類別選取的第一基準樣本、第二基準樣本構成對應的基準樣本集;s2.圖像特征提?。簩⒋龣z測惡意代碼轉化為灰度圖像,并提取對應的圖像紋理特征;s3.測試代碼分類:將步驟s2提取的圖像紋理特征分別與各家族類別對應的基準樣本集進行匹配,根據匹配結果確認待檢測惡意代碼的家族類別。圖像的紋理能夠反映圖像中同質現象的視覺特征,同時能夠體現物體表面所具有的緩慢變化的或者周期性變化的表面結構組織排列屬性。本實施例利用上述特性紋理特性,基于圖像匹配的方式實現惡意代碼的檢測,通過自動化提取圖像紋理特征,基于特征相似性分析進行圖像匹配,再基于圖像匹配結果實現家族分類判定,能夠實現檢測的自動化,可方便的應用于pc端、移動客戶端等或大規(guī)模的惡意代碼家族同源性分析的后端分類系統中進行惡意軟件檢測,可以通過在線或離線等方式高效地從海量待檢測樣本中挖掘惡意代碼。本實施例在圖像匹配過程中,通過先選取各家族類別的第一基準樣本,再根據第一基準樣本以及樣本之間的圖像紋理特征差異選取第二基準樣本,由第一基準樣本、第二基準樣本構成基準樣本集對待檢測惡意代碼進行圖像匹配,最終確認待檢測惡意代碼的家族類別,無需進行長時間的模型訓練,檢測效率高,所選取的基準樣本可靠性高,能夠大大降低由基準樣本選取對檢測結果造成的影響,從而提高檢測精度。本實施例中,步驟s1中每個家族類別選取第二基準樣本的具體步驟為:s11.候選基準樣本獲?。簩⑦x取的各第一基準樣本分別與剩余的訓練樣本進行匹配,根據匹配結果查找出每個家族類別中被錯誤分配的訓練樣本并作為候選基準樣本;s12.第二基準樣本確定:分別計算各家族類別中各候選基準樣本與其他候選基準樣本之間的差異值,若計算到的差異值大于指定閾值,則將對應的候選基準樣本作為對應家族類別的第二基準樣本。傳統的圖像匹配中是直接從已知類別的樣本集中選擇一個基準樣本作為本類別的基準樣本,如果待檢測樣本和基準樣本的圖像相匹配,則將該待檢測樣本判定為基準樣本所對應的類別中,則選擇不同樣本的基準圖像所得到的匹配效果可能不同,基準樣本的選取會直接對匹配效果的精度產生影響。本實施例選取基準樣本時,基于第一基準樣本再選取第二基準樣本,第二基準樣本選取過程中,首先通過與第一基準樣本的匹配狀態(tài)查找出匹配錯誤的樣本作為候選基準樣本,再由候選基準樣本計算與其他候選基準樣本之間的差異值,基于差異值確定是否作為新的基準樣本,使得由錯誤分配、同時與其他候選基準樣本之間差異較大的樣本也作為基準樣本,實現方法簡單,相比于傳統的圖像匹配直接選取基準樣本,能夠有效增加基準樣本選擇的可靠性,從而進一步提高惡意代碼檢測的精度。本實施例在步驟s1中對于訓練樣本,首先將樣本進行圖像轉化,將二進的惡意代碼轉化為灰度圖像形式。如圖3所示,本實施例將樣本進行灰度圖像轉化時,由于灰度圖的每一個像素都是用位于[0,255]之間的無符號整型數據表示,先將二進制形式的惡意代碼轉化為無符號整型數據矩陣,且由于8bit的二進制數據轉化為整型是大于0且小于256,二進制文件具體是以連續(xù)的8個bit為單位切割并進行轉化,可以根據轉換需求微調圖像寬度,得到各訓練樣本的灰度圖像。圖像紋理特征主要有統計型紋理特征、模型紋理特征、信號型紋理特征以及結構型紋理特征四種。本實施例中,圖像紋理特征具體為信號型紋理特征,采用信號型紋理處理方法來進行特征提取,圖像紋理特征具體采用gabor濾波器提取得到,本實施例基于靜態(tài)特征,不需要運行惡意代碼,實現簡單。gabor濾波器為用于圖像邊緣特征提取的線性濾波器,可以定義為一個正弦波乘以高斯函數,其中對于二維gabor濾波器則為正弦平面波。由于乘法卷積性質,gabor濾波器的脈沖響應的傅立葉變換是其調和函數的傅立葉變換和高斯函數的傅立葉變換的卷積,則該濾波器由實部和虛步組成且兩者互為正交。本實施例所采用的gabor濾波器具體如下所示,其中復數表達式為:實數部分為:虛部部分為:式中,x′=xcosθ+ysinθ,y′=-xsinθ+ycosθ,λ為波長,以像素為單位;θ表示方向,取值范圍在為0°≤θ≤360°;ψ表示相位偏移,屬于[-180°,180°]區(qū)域范圍內;γ的值決定gabor函數的形狀的橢圓率;σ表示gabor函數的高斯因子的標準差,且隨著帶寬的變化而改變。圖像特征提取時可獲取不同頻率不同方向的gabor函數數組,基于gabor計算紋理特征時,每個樣本的圖像紋理特征可表示為t=([a1,a2],[b1,b2],[c1,c2],[d1,d2]),即圖像紋理特征由a、b、c和d四個特征值構成,每個特征值分別由實部(下標為1)和虛部(下標為2)組成。樣本之間進行匹配時,具體計算樣本之間的圖像紋理特征的差異值,根據差異值大小判斷樣本之間的匹配性,樣本之間圖像紋理特征的差異值越小對應的更為匹配。單個樣本si和sj之間的差異性計算公式為:本實施例中,步驟s12中具體通過計算各候選基準樣本、訓練樣本的gabor函數值,以及各候選基準樣本與其他候選基準樣本之間的距離值,根據gabor函數值、距離值計算得到各候選基準樣本與其他候選基準樣本之間的差異值。本實施例中,一個候選基準樣本esid與其他候選基準樣本之間的差異值具體按下式計算得到;pd(esid)=∑j=0,1,......,nd(esid,eshj)其中,esid為第i類第d個候選基準樣本,eshj為第h類第j個候選基準樣本,d(esid,eshj)為樣本esid與樣本eshj之間的距離,h為esid被錯誤分配的家族類別,μ為權衡系數,n為家族類別h所包含的基準樣本的數量,m為基準樣本的數量,l為g濾波器獲得的圖像紋理特征向量的長度。由各候選基準樣本與當前家族類別的訓練樣本之間的差異值大小,即可確定是否應作為新的基準樣本,以提高基準樣本的可靠性。對于任意n個樣本且包含m個家族類別的樣本集合c,記為c={c1,c2,…,cm},集合c中分別包含n1個訓練樣本和n2個未知樣本,且n=n1+n2,選取候選基準樣本的詳細步驟如下:①隨機從訓練樣本中選擇m個樣本{b11,b21,…,bm1}為基準樣本,其中bij表示來自于家族i的第j個基準樣本,即從每個家族類別的訓練樣本中隨機選擇一個訓練樣本作為初始基準樣本(第一基準樣本);②剩余的訓練樣本分別與初始基準樣本進行匹配,并統計匹配錯誤的樣本,即錯誤分配的樣本,匹配錯誤的樣本相應也為m類,將匹配錯誤的樣本作為候選基準樣本,假設m類匹配錯誤的樣本表示為:es={{es11,es12,...},{es21,es22,...},...,{esn,1,esn,2,...}}③將每一個家族類別的匹配錯誤樣本集合內部進行二次匹配,具體為:家族i的候選基準樣本集表示為{esi1,esi2,…},分別計算各候選基準樣本的gabor函數值{gaborl(esi1),gaborl(esi2),gaborl(esi3),…},再計算不同候選基準樣本之間的差異性,具體按公式(5)計算樣本esid關于家族i的差異值,若候選樣本esid的差異值滿足d(esid)>ρ,則添加esid為家族i的新基準樣本(第二基準樣本)。本實施例對待檢測惡意代碼,首先將待檢測惡意代進行圖像轉化,將二進制的待檢測惡意代碼轉化為灰度圖像形式,再提取圖像紋理特征,具體與上述訓練樣本的處理方法相同。本實施例中,步驟s3中基于提取的圖像紋理特征,確認待檢測惡意代碼的家族類別的具體步驟為:s31.分別獲取待檢測惡意代碼與各家族類別的基準樣本集中各基準樣本的匹配結果;s32.由各家族類別的所有匹配結果分別得到對應各家族類別的綜合匹配值,根據各家族類別的綜合匹配值判斷待檢測惡意代碼是否屬于對應家族類別。本實施例中,綜合匹配值具體按下式計算得到;其中,estest為待檢測惡意代碼,esij為第i類第j個基準樣本,n為家族類別i所包含的基準樣本的數量。本實施例將待檢測惡意代碼estest與基準樣本esij匹配時,若匹配,則匹配結果為1,若不匹配,則匹配結果為-1,當然還可以根據實際需求對匹配結果進行設定;再將每個家族類別得到的所有匹配結果累加,得到最終的綜合匹配值,由綜合匹配值判定所屬的家族類別。本實施例中,當目標家族類別對應的綜合匹配值r滿足r>0時,則判定為待檢測惡意代碼屬于目標家族類別,否則判定為待檢測惡意代碼不屬于目標家族類別。以下以兩個家族類別中10個測試樣本的檢測分類為例進一步說明本發(fā)明。本實施例所采用的訓練樣本如表1所示。表1:訓練樣本表。步驟1:基準樣本選取步驟1.1:訓練樣本圖像紋理特征提取以分別為上述家族(1)中兩個訓練樣本s1(0b06744d7c5822ba585c5992b10adfa0)、s2(0bdaffba037a4880d31c93c0aadcc1fe)、家族(2)中兩個訓練樣本s3(2c69c485a46b03c277b5f88ded0babf0)、s4(2c9f38ef39cfd73aa52e22869e8abd90)為例,首先將上述四個惡意代碼訓練樣本由二進制文件轉化為灰度圖,如一段二進制代碼"01100111"轉化為無符號整型為206,則表明轉化為灰度圖后對應像素點的值為206,灰度圖結果如圖4所示,其中圖(a)為家族(2),分別對應樣本s3和s4;圖(b)為家族(2),分別對應樣本s1和s2;再采用gabor過濾器提取惡意代碼的紋理特征,采用的gabor濾波器的實現方法具體如上述式(1)~(3)所示,計算得到四個樣本的紋理特征分別為:t樣本s1=([3.64589196e-01,1.78531921e-02],[1.11456886e-01,3.62631582e-03],[2.45940133e-01,4.82167451e-03],[3.66851460e-04,1.85390288e-04]);t樣本s2=([3.67820753e-01,2.47166142e-02],[1.12444790e-01,5.22362168e-03],[2.48120037e-01,7.30584538e-03],[3.70103068e-04,3.69625304e-04]);t樣本s3=([3.82683113e-01,1.65478632e-02],[1.16988294e-01,5.31969120e-03],[2.58145706e-01,3.20882018e-03],[3.85057648e-04,4.53992963e-04]);t樣本s4=([3.78114609e-01,2.53183776e-02],[1.15591678e-01,5.70669572e-03],[2.55063941e-01,7.49917029e-03],[3.80460797e-04,3.41053618e-04])。步驟1.2:候選基準樣本選取本實施例家族(1)與家族(2)分別提供如表1所示訓練樣本集1和2,并且每個樣本集中包含10個訓練樣本。采用公式(4)對訓練樣本進行差異性計算以進行匹配,并且假設初始基準樣本為樣本s1與樣本s3,則匹配結果為:訓練樣本集1中,樣本s7與樣本s10被分配錯誤;訓練樣本集2中,樣本s5被分配錯誤;則將這三個樣本添加為候選基準樣本{[c11,c12],[c21]}。步驟1.3:第二基準樣本確定計算候選基準樣本的紋理特征:([3.53133564e-01,2.24345224e-02],[1.07954837e-01,4.99747304e-03],[2.38212532e-01,6.49801062e-03],[3.55324746e-04,4.32171770e-04]),([3.54380214e-01,2.24449735e-02],[1.08335945e-01,5.00705347e-03],[2.39053482e-01,6.41765146e-03],[3.56579131e-04,3.85045161e-04]),([3.66485717e-01,2.55705031e-02],[1.12036663e-01,5.15760513e-03],[2.47219465e-01,8.83855001e-03],[3.68759749e-04,3.02423971e-04])。使用上述公式(5)計算候選基準樣本與其他基準樣本之間的差異值,可得:其中,設置μ=2。本實施例假設閾值ρ=0.45,由于有d(c11)>ρ和d(c12)>ρ,則將候選基準樣本c11與c12添加為新的基準樣本(第二基準樣本),則有家族(1)的基準樣本集為{b11,c11,c12}。同時,由于家族2的候選基準樣本只有1個,直接添加為新的基準樣本(第二基準樣本),得到基準樣本集為{b21,c21}。步驟2:測試樣本圖像紋理特征提取將各測試惡意代碼轉換為灰度圖像,并提取圖像紋理特征,具體方法如上所述。步驟3:檢測分類使用家族(1)的基準樣本集{b11,c11,c12}與家族(2)的基準樣本集{b21,c21}對各測試樣本進行重新匹配測試樣本,其中測試樣本集包含十個測試樣本{s1,s2,s3,s4,s5,s6,s7,s8,s9,s10}。采用上述式(6)得到的各測試樣本的綜合匹配結果具體為:表2:測試匹配結果表。測試樣本s1s2s3s4s5s6s7s8s9s10家族13331300310家族20002022022綜合匹配結果若大于0,則判定為屬于對應的家族類別,否則為不屬于。則根據上述綜合匹配結果得到最終測試結果為{s1,s2,s3,s5,s8}屬于家族(1),{s4,s6,s7,s9,s10}屬于家族(2)。由檢測結果可知,本實施例上述檢測方法能夠準確的劃分惡意代碼家族類別,且檢測效率高。上述只是本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上的限制。雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明。因此,凡是未脫離本發(fā)明技術方案的內容,依據本發(fā)明技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均應落在本發(fā)明技術方案保護的范圍內。當前第1頁12