基于行為軌跡的特征碼檢測(cè)方法_第1頁(yè)
基于行為軌跡的特征碼檢測(cè)方法_第2頁(yè)
基于行為軌跡的特征碼檢測(cè)方法_第3頁(yè)
基于行為軌跡的特征碼檢測(cè)方法_第4頁(yè)
基于行為軌跡的特征碼檢測(cè)方法_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于行為軌跡的特征碼檢測(cè)方法

0靜態(tài)行為軌跡檢測(cè)2016年,360互聯(lián)安全中心發(fā)布了2015年中國(guó)互聯(lián)安全報(bào)告。目前惡意代碼的檢測(cè)可以分為靜態(tài)和動(dòng)態(tài)兩種方法動(dòng)態(tài)方法主要通過(guò)跟蹤代碼運(yùn)行時(shí)的行為軌跡來(lái)判斷是否是惡意代碼。王蕊等人針對(duì)上述檢測(cè)方法的不足,本文提出一種基于靜態(tài)行為軌跡的惡意代碼檢測(cè)技術(shù),通過(guò)IDAPro反編譯工具,提取出二進(jìn)制代碼的函數(shù)調(diào)用關(guān)系圖,再利用變長(zhǎng)的n-gram算法對(duì)已經(jīng)獲得的系統(tǒng)調(diào)用序列進(jìn)行分片,從而獲得惡意代碼特征庫(kù),最后利用分片技術(shù)與判決閾值構(gòu)建匹配模型,檢測(cè)惡意樣本。與傳統(tǒng)的方法相比,該方法具有效率高且能夠識(shí)別未知的惡意代碼的優(yōu)點(diǎn)。1反匯編提取特征任何程序的運(yùn)行,在內(nèi)核級(jí)都是通過(guò)系統(tǒng)調(diào)用體現(xiàn)的。程序運(yùn)行后會(huì)留下運(yùn)行的軌跡是時(shí)序關(guān)系的系統(tǒng)調(diào)用序列,即行為軌跡。對(duì)惡意代碼的靜態(tài)檢測(cè)方法大部分是基于字節(jié)序列的特征碼檢測(cè),這種方式數(shù)據(jù)量大,特征復(fù)雜且不確定性很高,在一定程度上會(huì)將正常程序的特征送入特征庫(kù)中。本文利用IDAPro將正常樣本與惡意樣本進(jìn)行反匯編處理,通過(guò)Hex-rays插件對(duì)生成的匯編代碼進(jìn)行反編譯處理,得到每個(gè)樣本的類C代碼,然后通過(guò)Graphviz得到函數(shù)調(diào)用關(guān)系圖(APIgraph),如圖1所示。APIG可以拆分出若干路徑,每一個(gè)路徑實(shí)際上就是程序在實(shí)際運(yùn)行時(shí)一條可能執(zhí)行的軌跡,稱這條軌跡就是一條程序的靜態(tài)行為軌跡。定義1靜態(tài)行為軌跡(staticbehaviortrajectories)。用來(lái)表征程序執(zhí)行過(guò)程的函數(shù)調(diào)用關(guān)系圖中的函數(shù)調(diào)用序列被稱為靜態(tài)行為軌跡。即SBT=(S定義2軌跡段。存在SBT=(S2資源提取定義3特征(staticsignature)。用于表征程序執(zhí)行過(guò)程中特定行為的軌跡段,并且可以判斷程序的行為是否具有惡意性。2.1n-gram算法n-gram是自然語(yǔ)言處理的一種模型,該模型基于這樣一種假設(shè)例如文獻(xiàn)[14],一段二進(jìn)制序列可以由n個(gè)字節(jié)的二進(jìn)制碼組成,即S=(b但是n-gram也有其自身的缺陷,首先n-gram難以獲得不同長(zhǎng)度的序列特征,如果一條APIG中有多個(gè)序列特征但是不等長(zhǎng),或者不是n的整數(shù)倍時(shí),則會(huì)產(chǎn)生錯(cuò)誤的匹配,造成有效的特征片段丟失或出現(xiàn)異常;另外n-gram會(huì)產(chǎn)生龐大的特征庫(kù),造成巨大空間消耗,同時(shí)也降低了匹配效率。本文在提取特征時(shí)以API函數(shù)作為特征的基本組成單元,并將系統(tǒng)的API函數(shù)與整數(shù)一一對(duì)應(yīng),與基于字節(jié)序列的異常檢測(cè)相比,可以極大地減少特征的存儲(chǔ)空間,提高匹配效率。2.2特征序列篩選變長(zhǎng)n-gram與n-gram的區(qū)別在于,它的長(zhǎng)度是可變的,可以提取出一串不定長(zhǎng)且有效的特征序列,在一定程度上避免了若干個(gè)有意義的特征序列被分離的可能。為了尋找有意義的子序列,必須在原始的序列中設(shè)置斷點(diǎn),兩個(gè)相鄰斷點(diǎn)之間的連續(xù)序列就是需要尋找的可能的特征序列。本文則采用Cohen等人專家投票算法有兩個(gè)屬性值。一個(gè)是邊界熵屬性,每一個(gè)單獨(dú)的序列特征都會(huì)按照它的子序列進(jìn)行分配,例如子序列“en”在一段話中出現(xiàn)了7次,而跟在“en”之后的有“c”“t”等分別出現(xiàn)了不同的次數(shù)(<7),此時(shí)就可以算出“en”在這段話中的邊界熵值,xi表示以“en”為開始的所有子序列。如果邊界熵越大,說(shuō)明序列之后是斷點(diǎn)的可能性越大。另一個(gè)是頻率屬性。如果一段話中不同子序列出現(xiàn)的頻率越高,說(shuō)明這個(gè)子序列是一個(gè)單詞(特征)的可能性越大;反之其中包含斷點(diǎn)的可能性則越小。在滑動(dòng)窗口內(nèi)求得每一個(gè)位置的頻率和邊界熵后,將頻率和邊界熵最大的兩個(gè)位置分?jǐn)?shù)加1。最后,根據(jù)每個(gè)位置所得到的分?jǐn)?shù)來(lái)判斷可能的斷點(diǎn),而兩個(gè)相鄰斷點(diǎn)之間的序列就是本文需要提取的特征。2.3子節(jié)點(diǎn)檢出限點(diǎn)的確定構(gòu)造一個(gè)d=n+1的Trie樹實(shí)現(xiàn)專家投票算法,其中d代表樹的深度,以長(zhǎng)度n為窗口依次從左至右讀取子序列,并將讀取的子序列按單元依次插入Trie樹中,如圖2所示。如果單元在Trie樹中不存在,則將其頻率置1;否則頻率加1。本文中取d=4。假設(shè)有一段英文序列“abcabd”,它所生產(chǎn)的Trie樹如圖2所示。在這個(gè)結(jié)構(gòu)中,字母右邊括號(hào)內(nèi)的數(shù)字代表其出現(xiàn)的次數(shù)。例如左邊葉子節(jié)點(diǎn)中的c(1),表示序列“a|b|c|”出現(xiàn)了一次,父節(jié)點(diǎn)b(2)表示序列ab出現(xiàn)了兩次。在尋找斷點(diǎn)時(shí),窗口按順序滑過(guò)序列,首先經(jīng)過(guò)“a|b|c|”,a與b之間為第一個(gè)可能的斷點(diǎn),分別計(jì)算此斷點(diǎn)的頻率和熵。定義4頻率。每個(gè)位置的頻率是該位置在窗口內(nèi)前后兩個(gè)序列的頻率之和,如f(a)=f(a)+f(bs)。其中f(bc)表示序列“bc”出現(xiàn)的頻率。定義5邊界熵。每個(gè)位置的邊界熵是該位置左邊節(jié)點(diǎn)的熵,即其中:p(x)為該位置處右邊兩個(gè)節(jié)點(diǎn)相對(duì)于其父節(jié)點(diǎn)出現(xiàn)的頻率。由于斷點(diǎn)的判定是由頻率和熵共同決定的,所以在將其所得分?jǐn)?shù)相加前,需要對(duì)兩個(gè)屬性作標(biāo)準(zhǔn)化處理,以消除其量綱關(guān)系。窗口中的每一個(gè)可能的斷點(diǎn)計(jì)算完成后,給頻率和熵值最大的位置分?jǐn)?shù)加1,并且滑動(dòng)窗口向后移動(dòng),步長(zhǎng)設(shè)置為1,再重復(fù)上述操作,直到序列結(jié)束。在實(shí)驗(yàn)中需要設(shè)定一個(gè)最小閾值來(lái)判斷是否將一個(gè)分?jǐn)?shù)大于0的位置視為斷點(diǎn)。利用上述方法對(duì)正常程序和惡意程序進(jìn)行特征提取,會(huì)分別得到正常的特征庫(kù)ND和異常的特征庫(kù)SD。而ND的大小對(duì)于后續(xù)檢測(cè)也有一定的影響。若ND偏小,則會(huì)導(dǎo)致SD中混入部分正常的軌跡段使得檢測(cè)結(jié)果誤報(bào)率升高;若ND偏大,則會(huì)導(dǎo)致SD中特征數(shù)量的減少使得檢測(cè)結(jié)果中漏報(bào)率升高。所以在實(shí)際檢測(cè)中,應(yīng)該針對(duì)樣本集的大小選取合適的訓(xùn)練集數(shù)目。2.4確定最大可能斷點(diǎn)整個(gè)特征提取的算法如下所示,其中輸入S、N是惡意程序和正常程序的集合,輸出SD為匹配所需的惡意特征庫(kù)。a)1~4行為初始化部分,將獲取到的APIG分成若干靜態(tài)行為軌跡,并為每一條軌跡生成深度為d+1的Trie樹結(jié)構(gòu)。b)5~8行是對(duì)Trie樹中的每一條路徑計(jì)算其中可能斷點(diǎn)的頻率值和熵值,并作標(biāo)準(zhǔn)化處理以消除量綱關(guān)系。c)9行對(duì)每一個(gè)可能的斷點(diǎn)位置作分?jǐn)?shù)的初始化,使其置為0。d)10~16行是利用長(zhǎng)度為k的滑動(dòng)窗口在靜態(tài)行為軌跡上獲取行為軌跡段。在窗口中存在k個(gè)可能的斷點(diǎn),分別找出頻率值最大和熵值最大的可能斷點(diǎn),并對(duì)該位置的分?jǐn)?shù)加1。在計(jì)算完一個(gè)窗口時(shí),向右滑動(dòng),步長(zhǎng)為1。重復(fù)上述操作,直到該條軌跡結(jié)束。e)17行設(shè)定一個(gè)最小閾值γ,將該值將與斷點(diǎn)處的得分作比較。f)18~22行遍歷每一個(gè)可能的斷點(diǎn),并將其所得分?jǐn)?shù)與最小閾值γ作比較,若大于γ,則將其置入特征庫(kù)中,反之舍棄。3基于相對(duì)熵的特征選擇在生成的特征庫(kù)中依然存在許多冗余的惡意特征,所以本章利用相對(duì)熵進(jìn)一步處理特征庫(kù),挑選出對(duì)于判別惡意代碼貢獻(xiàn)較為突出的特征,進(jìn)而提高檢測(cè)的準(zhǔn)確率。3.1衡量p和q相關(guān)性的特征庫(kù)的構(gòu)建在信息論中,相對(duì)熵(relativeentropy)在本文中利用衡量P和Q的相關(guān)性這一特點(diǎn),進(jìn)一步處理特征庫(kù),優(yōu)化特征質(zhì)量。3.2優(yōu)化資源設(shè)第i個(gè)特征的相對(duì)熵定義如下:其中:x相對(duì)熵KL(x將所求得的KL(x4異常性的判定為了實(shí)現(xiàn)多樣化的功能,程序會(huì)執(zhí)行不同的函數(shù)調(diào)用序列,這些不同的函數(shù)調(diào)用序列將會(huì)組成軌跡段。本文將用這些分割出的軌跡段與特征庫(kù)中的惡意特征進(jìn)行比對(duì)。檢測(cè)流程包括以下幾部分:首先獲取程序的函數(shù)調(diào)用圖APIG,經(jīng)過(guò)處理獲得若干靜態(tài)行為軌跡。設(shè)已獲取的靜態(tài)行為軌跡為SBT將獲得的靜態(tài)行為軌跡拆分成由多個(gè)軌跡段組成的軌跡段序列(trajectoriessequence)。TS將S在求判決閾值時(shí),為了更有效地判定樣本的異常性,本文引入可信度這一概念。軌跡段S=(S其中:confi(S)表示軌跡段S在特征庫(kù)中的可信度;描述了特征庫(kù)中第一個(gè)函數(shù)調(diào)用為s判決值的計(jì)算公式為其中:judg(Sam)表示某個(gè)樣本的判決值;n表示從APIG中拆分出了n條靜態(tài)行為軌跡;k表示某一條靜態(tài)行為軌跡分出的軌跡段序列包含k個(gè)軌跡段。然后根據(jù)判決值judg(Sam)與判決閾值γ的對(duì)比來(lái)判定當(dāng)前檢測(cè)樣本是否具有惡意性。如果judg(Sam)>γ,則判定其為惡意的;如果judg(Sam)<γ,則判定其為正常的。判決閾值γ是用戶根據(jù)不同安全等級(jí)自己定義的門限值,γ越大,匹配的成功率相對(duì)較低,說(shuō)明安全級(jí)別較低;反之γ越小,匹配的成功率相對(duì)較高,說(shuō)明安全級(jí)別較高。5)生成惡意特征庫(kù)本次實(shí)驗(yàn)過(guò)程如圖3所示。首先對(duì)訓(xùn)練集合進(jìn)行特征提取、特征篩選并生成惡意特征庫(kù);然后提取出待測(cè)集合中樣本的特征,并與特征庫(kù)中的惡意特征作比對(duì),依據(jù)設(shè)定的判決值作出判定。根據(jù)不同安全等級(jí),本次實(shí)驗(yàn)分別取判決閾值γ=0.5和γ=0.8。5.1實(shí)驗(yàn)過(guò)程和評(píng)估指標(biāo)實(shí)驗(yàn)主機(jī)的硬件采用主頻為2.7GHz的Intel實(shí)驗(yàn)所用的測(cè)試集惡意代碼樣本分為兩類,第一類用于測(cè)試對(duì)惡意代碼變種的檢測(cè)能力(表1),共1892個(gè),第二類用于測(cè)試模型對(duì)整體惡意代碼的檢測(cè)能力(表2),共930個(gè)。所有樣本來(lái)源于;正常程序600個(gè),來(lái)源于初始Windows7中正常的系統(tǒng)程序。樣本中Trojan-Banker為“銀行家”木馬,當(dāng)計(jì)算機(jī)被感染后,會(huì)不斷地監(jiān)視用戶是否訪問(wèn)銀行等網(wǎng)站,并盜取用戶賬號(hào)信息發(fā)送給黑客。Trojan-Downloader為“下載者”木馬,其通過(guò)用戶的計(jì)算機(jī)從指定的URL地址下載多個(gè)病毒文件并在本地運(yùn)行。Trojan-clicker運(yùn)行后衍生病毒文件到系統(tǒng)目錄下以修改注冊(cè)表,添加啟動(dòng)項(xiàng),以達(dá)到開機(jī)啟動(dòng)的目的,連接網(wǎng)絡(luò)后,會(huì)彈出URL列表中的網(wǎng)址。在構(gòu)建訓(xùn)練集時(shí),在惡意程序和正常程序中各隨機(jī)抽取20%。實(shí)驗(yàn)通過(guò)檢測(cè)率(TPR)、誤報(bào)率(FPR)和漏報(bào)率(FNR)作為評(píng)估指標(biāo)。TPR計(jì)算公式為其中:U其中:N其中:U5.2判決閾值的確定實(shí)驗(yàn)中分別用諾頓、Avast、AVG和360殺毒四款流行殺毒軟件(表3)對(duì)待測(cè)惡意樣本進(jìn)行掃描,并采用3-gram與4-gram直接進(jìn)行特征提取,與本文中變長(zhǎng)n-gram的特征檢測(cè)實(shí)驗(yàn)結(jié)果作對(duì)比,結(jié)果如圖4、5所示。從圖4和5中可以看出,由于病毒變種更新速度過(guò)快,導(dǎo)致病毒庫(kù)更新出現(xiàn)的嚴(yán)重滯后性,諾頓的檢測(cè)率非常低;而Avast、AVG以及360殺毒對(duì)于惡意樣本有著較好的檢測(cè)率,但是由于受到病毒庫(kù)中特征數(shù)量的限制,其結(jié)果也存在明顯的差異,并且漏報(bào)率相對(duì)于本實(shí)驗(yàn)?zāi)P洼^高。對(duì)于測(cè)試集1,因?yàn)榇郎y(cè)的惡意樣本種族特性明顯,具有相似的惡意行為特征,所以本模型對(duì)其檢測(cè)效率較高;而測(cè)試集2中惡意樣本具有離散型,導(dǎo)致模型的檢測(cè)效率有所下降。本文模型的檢測(cè)率受限于判決閾值γ的大小,不同的γ值會(huì)產(chǎn)生不同的安全級(jí)別,γ升高,安全級(jí)別降低,檢測(cè)率下降,誤報(bào)率下降;γ減小,安全級(jí)別升高,檢測(cè)率和誤報(bào)率都會(huì)上升。所以選擇合適的判決閾值對(duì)于檢測(cè)的效果有著不可忽略的影響。相比于3-gram與4-gram的實(shí)驗(yàn)結(jié)果,變長(zhǎng)n-gram的性能要優(yōu)于它們。6基于特征序列庫(kù)的匹配檢測(cè)面對(duì)惡意代碼及其變種爆炸式增長(zhǎng),本文提出基于靜態(tài)行為軌跡的異常特征檢測(cè)模型,在基于IDAPr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論