999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于高斯混合模型的增量聚類方法識別惡意軟件家族

2019-07-11 03:55:08胡建偉車欣周漫崔艷鵬
通信學報 2019年6期
關鍵詞:特征檢測方法

胡建偉,車欣,周漫,崔艷鵬

(1. 西安電子科技大學網絡與信息安全學院,陜西 西安 710071;2. 華中科技大學網絡空間安全學院,湖北 武漢 430074)

1 引言

近年來,利用惡意軟件進行網絡攻擊的行為越來越多[1]。惡意軟件利用欺騙技術可以在發動攻擊的同時逃避反病毒檢測,具有多態性、隱蔽性、易感染性等特性,嚴重影響網絡數據或程序的安全性、使用性與整合性,給互聯網和用戶帶來巨大威脅,造成嚴重的損失,因此,惡意軟件檢測技術已經成為目前信息安全人員的研究熱點之一。

然而,當前的惡意軟件檢測技術存在高誤報率和高漏報率的不足[2],難以檢測出采用了欺騙技術的惡意軟件。值得注意的是,目前流行的惡意軟件都具有很強的目的性,惡意代碼編寫者依據已有的惡意軟件不斷開發出行為目的相似但代碼結構又不完全相同的惡意軟件,從而形成惡意軟件家族。據研究結果證實[3],超過98%的新惡意軟件樣本實際上是來自現有惡意軟件系列的“衍生物”,新的惡意軟件繼承了原始惡意軟件的部分功能。為了躲避檢測并快速地部署惡意軟件,黑客通常不會重新開發新的惡意軟件,而是改進惡意軟件現有的行為邏輯或者在現有的惡意軟件中添加新的惡意行為邏輯,即新的惡意軟件具有繼承性與多態性。本文將具有相似行為邏輯或者相同行為目的的惡意軟件集合稱為惡意軟件家族。

為了提高惡意軟件檢測的準確率與檢測效率,本文提出了基于高斯混合模型(GMM, Gaussian mixture model)的增量聚類方法來識別惡意軟件家族。本文的主要工作如下。

1) 依據屬于同一個家族的惡意軟件的行為特征具有邏輯相似性這一特點,本文從行為檢測的角度分析并識別惡意軟件家族。

2) 為了構建惡意行為特征的分析框架,本文利用靜態分析與動態分析相結合的方法來提取API函數調用的抽象特征,通過分析API函數調用的參數依賴關系來構建惡意軟件行為邏輯圖。

3) 為了找到擁有整個軟件家族惡意行為特征的惡意軟件群UM與擁有軟件家族成員共有的惡意行為特征的惡意軟件群CM,本文依據惡意軟件家族行為的繼承性與多樣性,為特定目的的惡意軟件家族構建4個行為傳遞閉包,并建立特征行為與惡意軟件的一對一映射關系。

4) 針對傳統聚類方法不能利用上一次聚類結果,從而導致耗時、資源浪費等問題,本文采用基于高斯混合模型的增量聚類方法來識別惡意軟件家族,創建并動態調整與惡意軟件家族的進化史相一致的高斯混合模型樹,并引入增量學習,同時進行惡意軟件家族的識別與惡意樣本的聚類。

2 研究背景和相關工作

隨著當前惡意軟件的欺騙技術越來越成熟,以及各類病毒數量的急劇增加,導致傳統的惡意軟件檢測技術不再有效。因此,出現了各種基于行為的惡意軟件檢測技術。Pektas等[4]通過API調用序列挖掘和搜索n-gram從而收集代表惡意軟件行為特征的集合。針對目前惡意軟件識別率下降的現狀,Han等[5]指出造成這種困境的原因是越來越多的目的性惡意軟件攻擊已經出現,與傳統惡意軟件幾乎沒有共同特征。Han等基于可判定理論,證明了任何軟件執行的任務都是遞歸的和可確定的,并通過建立從軟件到任務的多對一的映射,證明了包括惡意軟件在內的各類軟件也是遞歸的,并且可以由相應的任務來確定。

為了提高檢測惡意軟件的準確率,Kolosnjaji等[6]提出首先在沙箱中執行惡意軟件樣本以收集系統調用,然后使用深度神經網絡對惡意軟件的系統調用序列進行建模以用于惡意軟件分類。Cho等[7]利用動態行為分析工具將API序列提取為惡意軟件行為報告,然后使用Malheur進行聚類和分類分析。

近年來,基于機器學習和數據挖掘算法的惡意軟件行為特征的分析方法逐漸受到研究人員的重視。Santos等[8]提出使用可執行文件的操作碼序列頻率來檢測和分類惡意軟件,通過這種方式來訓練機器學習算法從而檢測未知的惡意軟件變種。Arp等[9]將針對API函數的靜態分析與機器學習算法相結合,以檢測惡意軟件。他們在向量空間中嵌入了特征,從向量空間中發現了惡意軟件模型,并使用這些模型構建了機器學習檢測系統。

傳統的聚類方法主要是利用批處理模型來發現固定特征數據庫的數據集群,但是目前出現了越來越多的動態數據集,數據點以流形方式輸入。在這種情況下,增量聚類可以有效地處理這樣的數據集[10]。當不斷輸入數據點時,增量聚類逐步更新聚類結果,使當前的所有數據存在一個最新的聚類。為了對流數據進行數據聚類,Wan等[11]提出了一種基于高斯混合模型的新型增量聚類方法,稱為ICGT(incremental clustering of GMM tree)。ICGT創建并動態調整與數據流順序一致的GMM樹,樹中的每個葉子節點對應于密集高斯分布,每個非葉子節點對應于GMM。為了更新GMM樹以插入新輸入的數據點,Wan等引入了節點連接和連接子集的定義,并提出了樹更新算法,實驗結果證實所提方法是有效的。

3 惡意軟件家族識別

基于軟件家族惡意行為的依賴性與繼承性[12],人們能為每個惡意軟件家族建立一個特征庫,并挑選出具有代表性的惡意軟件集合。當出現未知的惡意軟件時,人們可以提取它的特征,并與最具代表性的惡意軟件集合的特征進行比對,如果具有該家族的惡意簽名或特征,則此未知的惡意軟件屬于該惡意軟件家族;否則,需要分析軟件的行為特征,將分析出來的有意義的特征加入特征庫中再進行聚類[13]。本文將新樣本劃分到一個已知的惡意軟件家族的過程定義為聚類過程,并將依據新樣本的行為特征更新已知的惡意軟件特征庫,直到最后發現新的家族并更新已知家族成員的過程定義為惡意軟件家族識別。同時執行惡意軟件識別與惡意聚類,提高惡意軟件的檢測效率。

3.1 惡意行為的繼承性與邏輯性

若追根溯源,每一個惡意軟件家族一定會有“祖先”[3]。隨著時間推移,惡意代碼需要不斷“衍生”,不斷更新技術以滿足功能需求,逃避惡意軟件檢測,但“衍生”的惡意軟件與其祖先的行為特征相似,這體現了惡意軟件家族的繼承性。為了躲避檢測并快速地部署惡意軟件,惡意代碼創建者通常不會重新開發新的惡意軟件,而是在已有的惡意代碼的基礎上運用欺騙技術,改進惡意軟件現有的行為邏輯或者添加新的惡意行為邏輯。欺騙技術包括靜態欺騙技術與動態欺騙技術兩方面[14]。靜態欺騙技術包括:1) 代碼混淆,一種在不改變程序功能的前提下,將正常源代碼轉換成更難以閱讀和理解的形式的技術;2) 加殼,一種為了保護目標程序,而在運行時先于目標程序運行的一段代碼,常見的壓縮殼有UPX、Aspack等,常見的加密殼有 ASProtect、Armadillo等;3) 自修改代碼(SMC, self modifying code),一種對程序核心代碼和數據進行加密,且在被加密代碼執行前,才進行解密的一種技術。動態欺騙技術包括:1) 反調試技術,當惡意代碼檢測到程序正在一個調試器上運行時,它會修改自身代碼來躲避調試;2) 反虛擬機技術,惡意代碼在運行前會檢測自己是否運行在虛擬機中,如果檢測到正在虛擬機中運行,惡意代碼會執行與其本身行為不同的行為,其中最簡單的行為是停止運行。

巴西惡意代碼進化史大致可分為3個階段:1)初級階段,在這個階段,惡意代碼就是一段開源的鍵盤記錄器代碼,沒有使用任何反分析機制;2)中級階段,惡意代碼開發者開發出鼠標記錄器和釣魚木馬,并且為了釣魚木馬不輕易被識別出來,開發者修改host文件,將銀行網站的域名解析到一個硬編碼的服務器上;3)高級階段,惡意代碼開發者使用Internet explorer自動化來操作轉賬頁面內容,同時為了延長惡意代碼的生存周期,惡意代碼開發者采用代碼混淆、反調試技術、反虛擬機技術等來躲避反病毒軟件的檢測。每個階段的代碼實現方式及采用的惡意欺騙手段如表1所示。

表1 巴西惡意代碼進化史

當前的惡意軟件有很強的目的性,它們通過已有的惡意代碼不斷開發出行為目的相似但代碼結構不完全相同的惡意軟件,從而形成惡意軟件家族。依據惡意軟件行為的目的性,本文從行為檢測的角度分析并識別惡意軟件家族,將惡意軟件家族分為8類,分類框架如表2所示。該檢測方法的優勢在于不管惡意軟件的結構如何復雜、數量如何龐大,其根本的行為特征都具有相似的邏輯性,從而使基于行為的檢測方法可以有效地對已知和未知的惡意代碼進行鑒別和檢測。這種方法一方面可以提高檢測效率和檢測成本,另一方面可以避免傳統的病毒檢測技術,只有等到計算機被感染時才能實現檢測的弊端,實現病毒快速、準確的防御。

表2 基于惡意目的的惡意軟件分類框架

3.2 惡意軟件家族的行為特征

基于惡意軟件行為的檢測方法分為基于行為的精確匹配和模糊匹配,其中精確匹配方法對目前的惡意軟件幾乎不起作用,因為當前的惡意代碼大多利用惡意欺騙技術來偽裝自己以逃避防火墻和反病毒軟件的檢測,它們會經過一層層封裝后再執行,因此模糊匹配成為主要的判別方法,其中利用API函數調用來識別惡意行為是比較常用的方法[15]。惡意程序會以異常的頻率調用實現特定功能的或者罕見的API函數序列,或者在正常軟件中不常使用的API函數。因此,分析樣本軟件在運行時API的調用情況可以有效地鑒別樣本軟件。

提取API調用序列可以通過2種途徑,靜態分析與動態分析。靜態分析是指不運行可執行文件,而是通過反匯編目標文件來提取有用的低級行為特征,如字節序列、操作碼等。高級行為特征可以通過分析API調用序列、函數功能、控制流程圖來提取。但是靜態分析會受到代碼混淆、加密和加殼等欺騙技術的影響。動態分析是指在惡意代碼運行時提取行為特征,提供更有效的結果。通過在虛擬機中運行可執行文件樣本,跟蹤程序的執行過程并分析其惡意性,能夠有效地檢測出使用欺騙技術的惡意軟件。此外,還可以利用沙箱技術在線分析病毒,檢測軟件惡意行為,已知的沙箱 Cuckoo可以有效地分析和處理未知的惡意軟件[16]。但是動態分析僅著眼于惡意代碼在當前實驗環境中的行為,忽略了惡意代碼程序本身的代碼,因此會受實驗環境的限制,進而有可能無法得出樣本真實的惡意行為特征。因此,本文采用靜態分析與動態調試聯合分析的方法,具體如圖1所示。

本文將靜態分析與動態分析相結合來分析惡意軟件并提取其特征。在靜態分析部分,本文首先對樣本進行預處理,然后利用Python的pefile模塊來提取樣本導入的API。具體操作是:首先,解析樣本 PE文件;然后,通過屬性 DIRECTORY_ENTRY_IMPORT遍歷樣本文件所有導入的dll;最后,通過屬性 imports遍歷所有的導入函數。但是單純通過分析樣本文件導入表中的API函數來判斷樣本的行為是不準確的,因為惡意軟件的開發者可通過函數 LoadLibrary和 GetProcAddress來動態加載所需要的API函數,所以還需繼續進行動態分析。

在動態分析部分,本文利用一個動態API函數調用跟蹤器Drltrace來提取樣本的動態API調用序列、參數和返回值。Drltrace是基于 DBI[17]的、主要用于Windows和Linux的惡意代碼分析,其優點是運行、分析惡意代碼足夠快,能夠有效對抗基于時間的反調試技術,并且支持所有類型的庫連接,能有效對抗多種反分析機制。獲取API調用序列后,本文使用污點傳播分析技術來提取樣本的動態行為特征。首先標記污染源,然后根據API函數調用流程,跟蹤被標記為污點的數據在整個程序中的傳播路徑。使用污點傳播分析技術,可以清晰地觀察到污點在整個程序中的傳播路徑,其本質是可以反映參數變量在程序中的傳播過程。

以3個階段的巴西惡意代碼為例,本文首先利用靜態分析得到部分的API函數,然后再結合動態分析得到惡意代碼完整的API調用序列、參數及返回值,最后得到 3個階段的巴西惡意代碼的部分API調用序列及其參數依賴性,如圖2所示。圖2中加粗顯示的函數是實現竊取用戶信息的主要功能函數,相同的參數是通過追蹤器Drltrace與污點傳播技術分析后得到的。

圖1 惡意軟件分析框架

同一惡意軟件家族具有相似的行為邏輯,而惡意軟件API函數的調用也具有強邏輯性。表3展示了惡意代碼家族Wannacry、NotPetya和Kuzzle的API調用邏輯規則。結合圖2的分析可以得到,API調用存在參數依賴性,函數調用在時序上有特定的邏輯,因此,本文通過分析惡意軟件API調用的邏輯規則來提取行為特征。

圖2 API調用序列及參數

表3 惡意代碼家族的API調用邏輯規則

3.3 惡意軟件行為特征的量化

本文從行為檢測的角度分析并識別惡意軟件家族,依據惡意軟件家族的目的將其分為8類,任意軟件均可以依據其行為目的、技術手段與危害性得到量化后的行為特征軌跡。本文構建一個四維空間來表示惡意軟件所使用的不同惡意技術,即將軟件行為(獲取、創建、跟蹤、破壞)量化為一個四元組b=(f(a),f(c),f(t),f(d))。并依據其目的,將整個空間劃分為8個小空間,不同目的的惡意行為屬于不同的小空間。為了簡化計算,本文設置具有不同目的的軟件(如間諜軟件、蠕蟲、木馬、后門、Rootkit、病毒、勒索軟件、惡意挖礦軟件等)行為特征,其四元組分量的取值范圍分別為[0,1)、[1,2)、[2,3)、[3,4)、[4,5)、[5,6)、[6,7)、[7,8),即不同目的的軟件的特征節點位于不同的空間。空間中的節點是軟件的特征節點,代表軟件的行為,特征節點的位置取決于軟件行為量化后四元組的值。軟件行為的危害性越大,則軟件行為特征的四元組取值越大,表現為特征節點的半徑越大。集合軟件所有的特征節點能得到軟件的行為軌跡。

圖 3為間諜軟件類部分惡意軟件經量化后得到的行為特征,坐標軸為量化的四元組。間諜軟件類軟件行為特征的四元組分量取值為[0,1),取值越大,表示其危害性越大。圖3中的3條曲線分別表示表1中巴西惡意軟件3個階段的行為特征軌跡。圖3中初級階段的惡意軟件行為特征可用4個四元組來表示:{[0.12,0.08, 0.16, 0.09],[0.24,0.12,0.09,0.13],[0.13,0.17,0.23, 0.36],[0.15,0.32,0.31,0.36]}。

圖3 間諜軟件特征的量化空間

為了量化軟件行為特征,本文利用靜態分析與動態分析相結合的方法來分析惡意軟件行為,然后提取軟件的L個行為,構成L個四元組。軟件的特征軌跡一定屬于8個小空間中的一個,體現了惡意軟件家族的目的性;在同一個家族中具有“衍生”關系的軟件的行為特征軌跡會有交集,揭示了惡意軟件家族的繼承性;繼承了“祖先”部分代碼并“衍生”出新的惡意技術的后代軟件具有更嚴重的危害性,其特征節點半徑更大,體現了惡意軟件的多樣性。

3.4 構建惡意軟件家族的傳遞閉包關系

為了能夠有效地度量具有繼承性與多樣性的惡意軟件的相似性,本文將惡意軟件的“繼承”與“衍生”過程定義為一種傳遞閉包關系,并找到能代表所屬的惡意軟件家族的惡意軟件集合。對于任意關系R,R的傳遞閉包總是存在的,具有傳遞關系的任意家族的交集也是傳遞的。具體的惡意軟件家族的傳遞閉包關系定義過程如下。

惡意軟件的行為(獲取、創建、跟蹤、破壞)用四元組b=(f(a),f(c),f(t),f(d))來表示。若惡意軟件家族初始的“族長”R0的惡意行為特征為(f(a0),f(c0),f(t0),f(d0)),且由R0派生的惡意軟件為R11與R12,其惡意行為特征為(f(a101),f(c101),f(t101),f(d101))與(f(a102),f(c102),f(t102),f(d102))。則(f(a0),f(a101))、(f(c0),f(c101))、(f(t0),f(t101))、(f(d0),f(d101))、(f(a0),f(a102))、(f(c0),f(c102))、(f(t0),f(t102))與(f(d0),f(d102))為傳遞關系,且針對四元組b=(f(a),f(c),f(t),f(d)),具有特定目的的惡意軟件家族的行為特征可以構成4個傳遞閉包關系:T(f(aij),f(ai+1jm))、T(f(cik), f(ci+1kn))、T(f(tiy),f(ti+1yp))與T(f(diz),f(di+1zq))。若“衍生”N代,則i∈(0,N)。m、n、p、q分別是行為特征為f(aij)、f(cik)、f(tiy)、f(diz)的樣本的第m、n、p、q個衍生對象,j、k、y、z分別是惡意行為特征f(ai+1jm)、f(ci+1kn)、f(ti+1yp)、f(di+1zq)的派生史。

其中,T1表示某個惡意家族的惡意行為特征的集合,T2表示該惡意家族成員共有的惡意行為特征的集合,并且(f(aNew),f(cNhx),f(tNrg),f(dNsl))屬于(f(a),f(c),f(t),f(d))的第N代衍生對象中的任意一個。由Han等[5]的研究可知,?e,h,r,s,w,x,g,l,必有一個或多個惡意軟件與惡意行為特征(f(aNew),f(cNhx),f(tNrg),f(dNsl))相對應,即可以建立行為與惡意軟件的一對多的映射關系。在T1中,對?e,h,r,s,w,x,g,l,在(f(aNew),f(cNhx),f(tNrg),f(dNsl))所對應的多個惡意軟件中任意選取一個,并建立一一映射關系,如式(2)所示。

然后,由T1中所有的惡意行為特征所對應的惡意軟件來構成集合UM,則集合UM可以代表整個惡意軟件家族,如式(3)所示。

所以新的不定性的軟件只需要與UM進行相似性比較,而不需要與整個惡意軟件家族進行相似性比較。

同理,由T2中所有的惡意行為特征對應的惡意軟件構成的集合為CM,CM所包含的行為特征是整個惡意軟件家族成員共有的。

如圖3所示,將惡意軟件行為特征量化后可得到特征軌跡,依據軌跡曲線可以發現具有“衍生”關系的軟件的軌跡曲線會有交集,并且后代軟件的特征節點的半徑更大,即四元組分量的取值更大。因此,可以依據惡意軟件家族內特征軌跡的重疊面積或交集數目、特征節點的半徑或取值來生成家族的傳遞閉包關系,從而找到擁有整個軟件家族惡意行為特征的惡意軟件群UM與擁有軟件家族成員共有的惡意行為特征的惡意軟件群CM。

4 基于高斯混合模型的增量聚類方法

4.1 傳統的GMM

基于模型的聚類方法試圖優化給定數據和擬合某些數學模型。傳統的基于模型的聚類方法GMM 能夠平滑地近似任意形狀的密度分布[18]。GMM 使用無監督學習方法將數據劃分為多個集群,每個數據簇由高斯分布近似,稱為混合分量,具有自己的均值和協方差。假設一個n維樣本空間中有隨機向量x,若x服從多元高斯分布,則其概率密度函數為

其中,μ是n維均值向量,Σ是n×n的協方差矩陣。高斯混合分布被定義為k個高斯分布的凸組合,如式(5)所示。

其中,k為混合成分的數量,μj、Σj分別為第j個高斯成分的均值向量和協方差矩陣,jλ為混合系數,滿足

求解GMM時,需要使用最大似然估計來迭代更新GMM的參數,并計算該參數屬于不同簇的概率,具體的求解步驟詳見文獻[19]。

傳統的GMM通過假設待估計的分布來自固定成分數量的高斯混合分布,把密度估計問題轉變為一個求解最大似然估計的問題,這樣的假設大大減少了模型的參數,降低了空間復雜度。GMM 的學習過程從參數的初始估計開始,然后使用期望最大化(EM, expectation maximization)算法進行估計并最大化后驗估計[20]。然而,GMM對選定的初始參數估計過于敏感,并且可能會收斂到參數的邊界,導致估計不準確。因此,在傳統的高斯混合模型的基礎上[21],本文引入增量學習,構建基于增量的高斯混合模型來識別惡意軟件家族。增量學習是指在學得模型后,接收到訓練樣本時,僅需根據新樣例對模型進行更新,不必重新訓練整個模型,不需要每次對所有數據進行重新聚類,這種學習方法很適合用來識別惡意軟件家族。因為當需要檢測一個未知的惡意樣本時,只需要利用上一次聚類的結果,即已有的惡意軟件家族,每次將一個數據樣本劃分到已有簇中或新增一個簇,這樣新增的數據樣本也不會影響原有劃分。

4.2 基于高斯混合模型的增量構建

本文利用改進的高斯混合模型的樹結構來刻畫惡意軟件家族內的傳遞閉包關系。一方面,傳遞閉包關系是依據惡意軟件家族的進化史構建的,一個顯著的特點是后代軟件功能的強化與多樣化;另一方面,GMM 樹結構構建的依據是軟件行為特征的一致多樣性,根節點具有軟件家族中最普遍的特征,葉子節點的特征最能代表整個軟件家族的特征,而普通成員的特征需要與葉子節點的特征相似且比根節點的特征更具多樣性。而軟件的功能是軟件外在行為的表現,軟件的特征是對軟件行為的標識,兩者都是對軟件行為的刻畫。因此,本文提出的高斯混合模型的樹結構能有效地揭示惡意軟件家族的進化史及惡意軟件行為的目的性、繼承性與多樣性。

Wan等[11]提出的ICGT算法首先并未考慮節點的繼承性與多樣性,只是簡單地將新的節點插入GMM 樹中,而且新的節點需要與所有的葉子節點進行簡單的距離比較,簡單的距離比較也不能反映節點的相似性。其次,當GMM樹更新時,需要更新葉子節點的所有祖先節點的GMM參數,因此,ICGT算法不僅不能揭示節點間的內在關系,而且數據的插入與更新速率太慢,影響聚類效率。本文依據惡意軟件家族的目的性、繼承性與多樣性,提出了適用于惡意軟件聚類的基于高斯混合模型的增量聚類方法,稱為ICGM(incremental clustering of GMM model)。ICGM創建并動態調整與惡意軟件家族的進化史相一致的GMM樹,每一個GMM樹代表一個有相同目的的惡意軟件家族,由樣本點生成的所有的GMM樹就構成了GMM森林。GMM樹的定義為TG=(NR,NM,NL),其中,NR是根節點,由式(3)中CM包含的數據樣本構成,代表了家族成員共有的行為特征;NM是成員節點,是由NR派生得到的;NL是葉子節點,葉子節點中的部分節點由式(3)中的UM構成,代表惡意軟件家族的惡意行為特征,本文將這群葉子節點記為NLR。

相對熵(KL, kullback leibler)可以用來度量2個概率分布之間的差異,當待比較的2個統計模型服從高斯分布時,KLD(kullback-leibler divergence)有閉式解[22],如式(6)所示。其中,KLD(gi,gj)是指高斯分布gi到gj間的KL距離,n是特征向量的維數。但由于KL不滿足對稱性,本文采用式(7)定義的距離度量方法來比較形如式(5)的高斯分布之間的相似性。

由于GMM樹的節點均是GMM,當輸入新的數據點時,需要度量數據點與GMM之間的相似性。本文給出的方法是,對于新的數據點也創建相應的高斯分布,其平均向量是數據向量,并賦予協方差很小的值,這樣能使高斯分布被協方差約束在一個小的范圍內。若新的節點對應的高斯分布為gnew,則gnew與擁有k個高斯分布的GMM之間的相似性度量如式(8)所示,其中,lλ為高斯分布的混合系數,gl為GMM的第l個高斯分布。

基于高斯混合模型的增量構建算法如算法 1所示。

算法1基于高斯混合模型的增量構建算法

輸入已知惡意軟件家族數量N,樣本數量M,樣本,閾值其中,im表示第i個GMM樹的節點數

輸出插入M個樣本點后的GMM樹

初始化GMM 樹的根節點:k=1,S=0

1) 構建每個GMM樹的根節點,根節點由CM中的數據點組成

3) 根據式(8)計算 GMM 樹中數據點Xk和之間的相似性

6) 從根節點開始,數據點按照從上到下的順序插入第i個GMM樹

17) 否則,將生成一個新的葉子節點。該葉子節點僅有一個數據點Xk,并且葉子節點的父節點是當前節點。令k=k+1

算法1采用基于高斯混合模型的方法,在構建增量的同時進行惡意樣本聚類,最終通過惡意軟件家族邏輯行為的相似性識別出M個惡意軟件樣本。當輸入新的樣本數據Xk時,僅需要與GMM樹的NLR進行相似性比較,若相似性滿足閾值條件,則從根節點開始將新樣本數據與GMM樹的節點進行相似性比較,然后插入最優的節點中。否則,尋找下一個GMM樹。當數據點Xk插入相應的GMM樹后,需要更新GMM樹。依據條件1~條件3,本文分4種情況討論GMM樹的更新方法,即update函數的實現。

下面,從惡意軟件的繼承性與多樣性角度來分析GMM樹更新的4種情況。

1) 若數據點Xk同時滿足條件1~條件3,首先,數據點Xk繼承了第i個惡意軟件家族的目的性特征,則數據點Xk屬于GMMi。并且數據點Xk需要插入GMMi的新葉子節點中,則將該葉子節點的高斯分布的平均向量賦值為,并且協方差被賦予非常小的值。

2) 若數據點Xk滿足條件1和條件2,但不滿足條件3,則數據點Xk屬于GMMi,且數據點Xk需要插入GMMi的已有葉子節點中,此時依據式(9)調整該葉子節點的混合高斯分布的參數即可。

3) 若數據點Xk不滿足條件1,說明Xk不屬于當前任意一個惡意軟件家族。此時,將節點的平均向量賦值為,并且協方差被賦予非常小的值。令N=N+1,找到一類新的惡意軟件家族。

4) 當數據點Xk滿足條件1但不滿足條件2,即數據點Xk需要插入GMMi的jmax節點中作為成員節點,說明數據點Xk不僅繼承了第i個惡意軟件家族的目的性特征,而且改進了家族的行為邏輯或者添加了新的惡意行為邏輯。此時,應依據式(9)調整節點jmax的混合高斯分布的參數。并且,依據家族的繼承性可知,當前節點參數的變化會影響節點派生的子節點,而派生的子節點應當擁有當前節點的所有行為特征,所以再根據式(9),從節點jmax開始向下調整由jmax派生出的子節點的混合高斯分布的參數。調整完時,再依據式(1)重新確立第i個GMM樹的NRLi,從而保證聚類的有效性。同時,因為不需要對整個GMM樹進行調整,提高了惡意行為的識別效率。

其中,n表示在插入新數據點之前,當前節點中數據點的數量;x表示插入的數據點向量;μ、Σ表示插入的數據點的平均向量與協方差矩陣;xn與表示插入前后的數據點向量nΣ、Σn+1分別表示插入新數據點前后節點的混合系數、平均向量和協方差矩陣。

傳統聚類方法不能利用上一次的聚類結果,從而導致耗時、資源浪費等問題,而本文提出的ICGM算法引入增量學習,在接收到訓練樣本時,僅需根據新樣本對模型進行更新,不必重新訓練整個模型。當比較相似性時,新的樣本點僅需要與惡意軟件家族的部分葉子節點進行比較,并且當新的樣本點插入GMM樹后,僅需更新被插入節點的后代節點的高斯分布混合參數。因此,本文提出的ICGM方法適用于具有目的性、繼承性與多樣性的惡意軟件家族的聚類。

5 實驗分析

本文實驗平臺的具體配置如下,CPU是Intel(R)Core(TM) i5 2.50 GHz,內存是8 GB,操作系統是Windows10。為了獲取樣本的動態API函數調用序列,所有樣本運行在一臺主機上,具體配置如下,CPU是Intel(R) Core(TM) i5 2.50 GHz,內存是1 GB,操作系統是Windows XP Professional。實驗框架如圖4所示,共分為三大模塊:惡意軟件行為分析模塊、惡意軟件家族傳遞閉包關系構建模塊和惡意軟件識別算法模塊。

在惡意軟件分析模塊,本文將分別提取樣本的靜態特征和動態特征,最后組成混合行為特征。提取樣本的靜態特征時,首先對樣本進行靜態分析,然后提取樣本導入表中的API函數,以此作為靜態特征;提取樣本的動態特征時,首先通過動態分析,提取樣本的API調用序列、參數和返回值;同時利用污點傳播分析技術,對污染源進行標記,標記污點,并記錄污點的傳播路徑,以此作為動態特征。然后將靜態特征和動態特征進行組合,最后得到樣本的混合行為特征。

圖4 實驗框架

在惡意軟件家族傳遞閉包關系構建模塊,首先依據每個樣本的混合行為特征構建L個四元組,并做出軟件在目的空間內的行為特征軌跡圖。然后依據特征軌跡圖的重疊面積或交集數目、特征節點的半徑或取值來生成家族的傳遞閉包關系,從而找到擁有整個軟件家族惡意行為特征的惡意軟件群UM與擁有軟件家族成員共有的惡意行為特征的惡意軟件群CM。最后利用算法1同時進行惡意軟件家族的識別與惡意樣本的聚類。首先判斷是否為惡意軟件,若不是,則標記為正常軟件;若是,則進一步識別樣本是否屬于已知的惡意家族,若屬于,則將其插入相應惡意家族的節點中,否則生成新的惡意家族GMM樹。

5.1 實驗準備

實驗使用的數據集[23]如表4所示,包含了來自8個家族共計10 826個惡意軟件樣本。將每個家族的樣本分為兩部分,一部分用作訓練,另一部分用作測試。訓練集包括1 600個惡意樣本和2 800個良性樣本,測試集包括9 226個惡意樣本和10 000個良性樣本。

表4 實驗數據集描述

在實驗過程中,未知樣本點通過本文提出的ICGM法將被識別為良性樣本、已知家族中的惡意樣本、未知家族的惡意樣本。并通過以下參數來評價該方法的有效性:召回率或真陽性率(TPR, true positive rate)、誤報率(FNR, false negative rate)、精確度和靈敏度的調和平均(F1)、準確度(ACC, accuracy)。其中,TPN(false negative number)表示被正確判定為良性的樣本點,TNN(true negative number)表示被正確判定為惡意的樣本點(包括已知家族的惡意樣本點與未知家族的惡意樣本點),FPN(false positive number)表示3種類型的樣本點:被錯誤判定為良性的惡意樣本點、未知家族中被判定為已知家族的惡意樣本點、已知家族中被判定為未知家族的惡意樣本點,FNN(false negative number)表示被判定為惡意的良性樣本點。則TPR、TNR、F1、ACC的定義分別為

本實驗中需要確定的參數有四元組的長度L和取值為(0,1)范圍的閾值參數θ、ψ。依據樣本中多數惡意軟件的行為,本文將L設置為8。閾值參數的取值取決于參數對惡意檢測誤報率與漏報率的影響。圖5仿真了閾值參數θ、ψ在(0,1)內取值時對惡意檢測效率的影響,當θ取值范圍為(0,0.4]時,漏報率低但誤報率高;當θ取值范圍為(0.4,1)時,誤報率低但漏報率高。為了綜合考慮惡意檢測的漏報率與誤報率,本文設置閾值θ=0.4。同理,設置閾值ψ=0.6。

圖5 閾值參數的選擇

5.2 對比實驗

結合長短期記憶(LSTM, long short term memory)深度學習模型[24]和隨機森林模型,Lu等[25]提出了一種基于API調用統計特征的惡意軟件檢測體系結構(ASSCA, API-based sequence and statistics feature combined malware detection architecture),將傳統的機器學習與遞歸神經網絡結合以獲得更好的分類性能。Santos等[8]提出了一種表示依賴于操作碼序列的惡意軟件的方法(OSDM, opcode sequence as representation of executable for data-mining-based unknown malware detection),使用靜態檢測方來提取可執行文件的操作碼序列頻率從而檢測和分類惡意軟件。Kolosnjaji等[6]構建了一個基于卷積和循環網絡層的神經網絡(NCLN, neural network based on convolutional and recurrent network layer),并通過動態特征提取的方式得到了一種分層特征提取架構,將基于n-gram的卷積與完整的順序建模相結合來檢測惡意軟件。

表 5將本文提出的方法 ICGM與 ASSCA、OSDM 和 NCLN就真陽性率(TPR)與誤報率(FNR)進行比較。由表5可知,ICGM與ASSCA方法的 TPR幾乎相同,這說明基于軟件的 API調用序列可以表示惡意軟件家族的行為特征,從而識別惡意軟件家族成員。此外,OSDM、NCLN的誤報率遠高于ICGM的誤報率,說明采用靜態與動態檢測相結合的方式能更好地區分良性樣本與惡意樣本。

表5 ICGM與ASSCA、OSDM和NCLN方法的性能比較

表6將ICGM與ASSCA就精確度和靈敏度的調和平均(F1)與準確度(ACC)進行比較。從表6可以看出,ICGM 的整體性能高于 ASSCA,因為ASSCA方法對于API調用序列的提取僅關注惡意軟件自身行為方面,忽略了惡意軟件家族的繼承性,但是ICGM方法可以有效利用同一惡意軟件家族行為的相似性來識別惡意軟件家族成員。ICGM方法用傳遞閉包關系來刻畫軟件家族的惡意行為的繼承性與衍生性,得到了4個由具有特定目的的惡意軟件家族的行為構成的傳遞閉包關系,然后定義并找到了惡意軟件家族中代表性的特征集合與惡意軟件集合,并將代表性的惡意軟件集合作為GMM 樹的葉子節點。當需要辨別新樣本點時,僅需要將新樣本點與惡意軟件家族的部分葉子節點進行相似性比較,并且當樣本點插入GMM樹后,僅需更新被插入節點的后代節點的高斯分布混合參數。因此,采用ICGM方法可以提高惡意軟件家族的檢測效率。

表6 ICGM方法與ASSCA方法的F1與ACC值的比較

Ahmed等[26]同樣提出過利用污點傳播技術來跟蹤分析 Windows操作系統運行時 API的調用序列,并且運用機器學習算法來提高惡意軟件檢測的準確性,該惡意軟件檢測方法稱為 STAM(spatio-temporal information in API calls with machine learning algorithm)。表 7列舉了 ICGM 與STAM 的檢測時間(T)與存儲空間(S)。從表 7可以看出,ICGM方法的存儲成本明顯低于STAM方法的存儲成本。因為STAM方法需要存儲來自同一個惡意軟件家族的所有訓練樣本的 API調用序列,而ICGM只需要存儲惡意軟件家族葉子節點中訓練樣本的API調用序列。檢測時間包括生成API調用序列的時間成本與樣本訓練的時間成本。STAM方法的檢測時間約為ICGM方法的1.3倍,因為在檢測惡意軟件時,ICGM方法只需要利用上一次聚類的結果,每次將一個數據樣本劃分到已有GMM樹中或新增GMM樹,這樣新增的數據樣本也不會影響原有劃分,并且樣本只需要與NLR進行相似性比較,而不需要與整個惡意軟件家族進行對比。因此ICGM方法不僅能節省存儲空間,還能減少檢測時間。

綜上,本文提出的基于高斯混合模型的增量聚類算法不僅能節省惡意軟件檢測的存儲空間,還能提高惡意軟件的檢測準確率與識別效率。

表7 ICGM與STAM方法的檢測時間與存儲空間的比較

6 結束語

為了提高惡意軟件的檢測準確率與識別效率,本文在高斯混合模型中引入增量機制,提出了基于高斯混合模型的增量聚類算法來識別惡意軟件家族,同時執行家族識別與惡意軟件聚類。首先,依據惡意軟件的目的性與繼承性,本文從行為檢測的角度通過追蹤API函數調用的邏輯規則來提取惡意軟件的特征。然后,從惡意行為的角度為每個惡意軟件家族構建4個行為傳遞閉包關系,并建立特征行為與惡意軟件的一對一映射關系。最后,本文創建并動態調整與惡意軟件家族的進化史相一致的GMM 樹,采用基于高斯混合模型的增量聚類方法來識別惡意軟件家族。

猜你喜歡
特征檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 波多野结衣爽到高潮漏水大喷| 久久精品中文字幕免费| 99re在线免费视频| 88av在线| 久久黄色影院| 激情国产精品一区| 午夜少妇精品视频小电影| 欧洲高清无码在线| 午夜老司机永久免费看片| 成年av福利永久免费观看| 日韩av无码精品专区| 最新加勒比隔壁人妻| 在线国产91| 欧美精品伊人久久| 亚洲精品自拍区在线观看| 亚洲无码在线午夜电影| 成人另类稀缺在线观看| 亚洲无卡视频| 热九九精品| 日韩在线视频网| 国产成人免费手机在线观看视频| 日韩a级片视频| 欧美日韩亚洲国产| 久久综合色视频| 国产欧美日韩综合一区在线播放| 中文字幕2区| 中文字幕在线播放不卡| 国产麻豆91网在线看| 凹凸国产分类在线观看| 国产亚洲精品97在线观看 | 欧美黄色a| 亚洲不卡av中文在线| 丁香六月激情综合| 少妇精品在线| 露脸真实国语乱在线观看| 午夜毛片福利| 91在线一9|永久视频在线| 国产全黄a一级毛片| 成人综合在线观看| 片在线无码观看| 日韩高清在线观看不卡一区二区| 欧美综合区自拍亚洲综合天堂| 精品1区2区3区| 福利在线不卡| 国内丰满少妇猛烈精品播 | 99精品国产电影| 国产浮力第一页永久地址| 激情成人综合网| 伊人色综合久久天天| 人妻91无码色偷偷色噜噜噜| 欧美日韩专区| 色综合天天操| 精品国产免费观看一区| 好紧好深好大乳无码中文字幕| 男女男精品视频| 国产精品免费福利久久播放| 极品尤物av美乳在线观看| 国产成人一区二区| 色悠久久久| 欧美日韩另类国产| 欧美一区二区三区不卡免费| 一本大道视频精品人妻| 久久中文电影| 国产精品主播| 日韩一区二区三免费高清| 99re热精品视频国产免费| 精品1区2区3区| 国产欧美日韩在线一区| 国产精品分类视频分类一区| 亚洲爱婷婷色69堂| 久久青草精品一区二区三区| 综合亚洲色图| 狠狠色狠狠色综合久久第一次| 免费一级毛片完整版在线看| 欧美一区精品| AV不卡无码免费一区二区三区| 国产一区在线观看无码| 中文字幕日韩丝袜一区| 精品久久人人爽人人玩人人妻| 欧美成人怡春院在线激情| 欧美国产三级| 一级爱做片免费观看久久|