基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)_第1頁(yè)
基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)_第2頁(yè)
基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)_第3頁(yè)
基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)_第4頁(yè)
基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)_第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)介

基于n-gram模型的惡意代碼檢測(cè)系統(tǒng)

0檢測(cè)方法設(shè)計(jì)隨著越來(lái)越多人使用互聯(lián)網(wǎng)服務(wù),網(wǎng)絡(luò)已成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。不同于早期只能進(jìn)行簡(jiǎn)單通信交流的網(wǎng)絡(luò),如今的Internet上可以進(jìn)行各類(lèi)交互活動(dòng),其中就包括電子商務(wù)。正因?yàn)榫W(wǎng)上商品流通以及網(wǎng)上銀行的存在,許多惡意攻擊者就利用惡意軟件來(lái)達(dá)到他們獲取經(jīng)濟(jì)利益的目的。Christodorescu等人分析惡意代碼的方法一般可分為靜態(tài)分析方法與動(dòng)態(tài)分析方法,兩者的區(qū)別在于被分析的這段程序、軟件是否需要執(zhí)行。顧名思義,靜態(tài)分析指的是不需要執(zhí)行程序這類(lèi)情況。如采用反匯編等不執(zhí)行惡意代碼的分析方法對(duì)惡意代碼進(jìn)行分析,常用的如IDA動(dòng)態(tài)分析,指的是執(zhí)行一個(gè)程序并對(duì)其運(yùn)行過(guò)程中的活動(dòng)進(jìn)行分析。動(dòng)態(tài)分析的方法有函數(shù)調(diào)用監(jiān)控、函數(shù)參數(shù)分析、信息流追蹤、指令追蹤等多種方法本文的主要貢獻(xiàn)如下:(1)提出了一種改進(jìn)的N-gram算法,通過(guò)添加特征值的出現(xiàn)頻次信息,能提取出更加有效的N-gram特征;(2)提出了惡意代碼動(dòng)態(tài)行為特征分析檢測(cè)的基礎(chǔ)框架,包括虛擬安全環(huán)境的搭建、惡意樣本的獲取及其動(dòng)態(tài)特征提取模塊、特征模型的建立及分析模塊;(3)利用多種機(jī)器學(xué)習(xí)方法對(duì)得到的n-gram特征進(jìn)行了分析檢測(cè),得出了準(zhǔn)確率達(dá)90%的檢測(cè)效果。1相關(guān)工作惡意軟件檢測(cè)方面已經(jīng)有多種研究技術(shù)。Chess等盡管傳統(tǒng)的基于簽名的惡意軟件檢測(cè)方法在一些研究工作Canali等2提高算法2.1模型的n-gram一個(gè)n-gram指的就是一串標(biāo)記中的一段子串,該子串含有n個(gè)連續(xù)的標(biāo)記,此處的標(biāo)記在不同的應(yīng)用場(chǎng)景下有不同的意義。n-gram已經(jīng)被應(yīng)用到眾多領(lǐng)域,最早應(yīng)該是應(yīng)用于文本分析中,文獻(xiàn)將一串?dāng)?shù)據(jù)轉(zhuǎn)化為n-gram,這樣可以將這串?dāng)?shù)據(jù)表示為向量形式,從而能更好地與其他數(shù)據(jù)串進(jìn)行比較。另外,我們也可以將兩組數(shù)據(jù)的n-gram分布進(jìn)行比較從而判斷這兩組數(shù)據(jù)的相似度。一組數(shù)據(jù)的n-gram分布指的是這組數(shù)據(jù)中所有n-gram的各自個(gè)數(shù)。在文獻(xiàn)上面所舉的例子n-gram中的n=2,事實(shí)上,n可以有不同的大小,當(dāng)n=1時(shí),指的就是unigram,也即是1-gram,當(dāng)n=2時(shí)指的是bigram,當(dāng)n=3時(shí)指的是trigram,n不小于4時(shí)一般就稱(chēng)為n-gram。n-gram模型在多種領(lǐng)域均有所應(yīng)用,如n-gram用來(lái)對(duì)程序活動(dòng)建模從而檢測(cè)軟件漏洞以及識(shí)別網(wǎng)絡(luò)載荷中的惡意代碼,其他情形還包括對(duì)惡意代碼感染文檔的檢測(cè)以及基于觸發(fā)系統(tǒng)調(diào)用的惡意進(jìn)程的檢測(cè)。本文擬采用的API調(diào)用作為n-gram中的標(biāo)記。程序運(yùn)行時(shí)會(huì)調(diào)用一系列的API調(diào)用,使用窗口大小為n的滑動(dòng)窗口對(duì)單個(gè)程序的API調(diào)用序列進(jìn)行掃描,每次窗口中的長(zhǎng)為n的序列就為一個(gè)n-gram。舉一個(gè)例子來(lái)說(shuō),一個(gè)應(yīng)用程序按以下順序調(diào)用了7個(gè)API調(diào)用:5,7,3,11,5,7,3。如果此處n=3,那么對(duì)于這個(gè)應(yīng)用程序的n-gram模型即為集合M={<5,7,3>,<7,3,11>,<3,11,5>,<11,5,7>,<5,7,3>},以上的數(shù)字代表的是API調(diào)用,相同數(shù)字即表示相同的API調(diào)用,由該程序的3-gram集合可知集合中的元素可以相同,上例中3-gram<5,7,3>即出現(xiàn)了兩次。在獲得了部分惡意程序以及部分良性程序的n-gram模型之后,我們可以將所有的惡意程序的n-gram模型合成為一個(gè)代表惡意的n-gram模型總集MU=M2.2基于api調(diào)用的控制程序設(shè)計(jì)2.1節(jié)介紹了n-gram的基本概念,同時(shí)定義了將API調(diào)用用作標(biāo)記時(shí)的n-gram以及如何獲取代表惡意特征的n-gram。上述方法獲得的n-gram特征主要是從直觀上代表了惡意代碼的惡意性,而且和測(cè)試集合中元素的選取也有關(guān)系,可能得到的結(jié)果中的n-gram并不能代表惡意性,因?yàn)閮H僅只是出現(xiàn)在惡意程序集合而未出現(xiàn)在良性程序集合中不足以視為特征。Hwang等對(duì)于程序單次運(yùn)行所產(chǎn)生的API調(diào)用序列,將其中每一個(gè)API標(biāo)記為類(lèi)似A1、A2、A3等,這些API調(diào)用可以分為以下幾種類(lèi)型:(1)文件管理:涉及文件操作的動(dòng)作,比如創(chuàng)建文件、打開(kāi)文件、搜索文件。(2)進(jìn)程線程:進(jìn)程線程有關(guān)操作,如創(chuàng)建多個(gè)線程。(3)注冊(cè)表:涉及注冊(cè)表操作的動(dòng)作,如創(chuàng)建一個(gè)注冊(cè)表項(xiàng)。(4)網(wǎng)絡(luò)管理:涉及網(wǎng)絡(luò)連接的操作,如訪問(wèn)某個(gè)URL地址。(5)內(nèi)存管理:涉及內(nèi)存操作的動(dòng)作,如為進(jìn)程創(chuàng)建堆,獲取當(dāng)前進(jìn)程的一個(gè)堆。(6)動(dòng)態(tài)鏈接庫(kù):涉及動(dòng)態(tài)鏈接庫(kù)的動(dòng)作,如載入指定的動(dòng)態(tài)鏈接庫(kù)。如2.1節(jié)中介紹的例子,如果窗口大小為3,則第一個(gè)窗口覆蓋了該API調(diào)用序列中位于最前的3個(gè)調(diào)用,即A5、A7、A3,調(diào)用A5引發(fā)了調(diào)用A7、A3,由此即可得到如下的一條改進(jìn)n-gram規(guī)則:上述規(guī)則中的c表示置信度,s表示支持系數(shù),w表示窗口大小,f表示最小出現(xiàn)次數(shù)。對(duì)于規(guī)則式(1),s表示的是API調(diào)用A5出現(xiàn)的概率,c表示的是A7、A3出現(xiàn)在A5后的概率,可以形式化地表示為s=Prob[A5],c=Prob[A5,A7,A3)]/Prob[A5]。支持系數(shù)s表示的是該條規(guī)則在所有監(jiān)測(cè)記錄的API調(diào)用序列中出現(xiàn)的概率,置信系數(shù)c表示的是在規(guī)則左側(cè)出現(xiàn)的前提下該條規(guī)則出現(xiàn)的概率。參數(shù)s、c均有一個(gè)最小的閾值s0、c0,最小出現(xiàn)次數(shù)f表示序列建立成規(guī)則需要出現(xiàn)的最小次數(shù)。下面通過(guò)一個(gè)實(shí)際API調(diào)用序列進(jìn)行說(shuō)明,該例子來(lái)自于Backdoor.Win32.Agent.egt實(shí)際運(yùn)行時(shí)產(chǎn)生的序列。API調(diào)用A5在這里為CreateFileA,而其后的A7、A3分別為WriteFileA、CloseHandle。當(dāng)窗口大小為3時(shí),CreateFileA后緊接著發(fā)生WriteFileA、CloseHandle的置信度為c=0.16,該條規(guī)則的支持系數(shù)為s=0.01。最小出現(xiàn)次數(shù)f=10,表示需要達(dá)到10次該條規(guī)則才能生成,放入規(guī)則庫(kù)。通過(guò)定義聯(lián)合規(guī)則,我們可以獲取一個(gè)API調(diào)用序列內(nèi)部各調(diào)用之間的相互關(guān)系,如下式所示,其中L3檢測(cè)基本架構(gòu)本節(jié)將描述我們?nèi)绾芜M(jìn)行惡意代碼特征提取以及特征建模,并在此基礎(chǔ)上提出了一個(gè)完整的惡意代碼動(dòng)態(tài)行為特征分析檢測(cè)基本體系框架。為了能獲得惡意代碼的動(dòng)態(tài)行為特征,我們使用了虛擬機(jī)環(huán)境,虛擬機(jī)使用的是VirtualBox,虛擬操作系統(tǒng)為WindowsXP,之所以選擇虛擬環(huán)境是因?yàn)樵谶M(jìn)行動(dòng)態(tài)運(yùn)行惡意代碼時(shí)實(shí)際主機(jī)可以避免影響,虛擬機(jī)具有存儲(chǔ)快照的功能。即使在虛擬機(jī)中運(yùn)行的惡意代碼對(duì)操作系統(tǒng)產(chǎn)生了修改甚至是破壞行為,使用快照功能存儲(chǔ)的備份也可以將系統(tǒng)快速恢復(fù)到運(yùn)行惡意代碼前的狀態(tài)。事實(shí)上,虛擬機(jī)的這一功能除了能保護(hù)實(shí)際系統(tǒng)不被修改破壞之外,還可以保證不同惡意代碼運(yùn)行的環(huán)境是完全相同的,從而保證了實(shí)驗(yàn)結(jié)果的可比性。事先通過(guò)OpenMalware由于提取的原始特征含有信息量較大,在進(jìn)行下一步處理之前需要?jiǎng)h除無(wú)用信息,惡意代碼動(dòng)態(tài)行為語(yǔ)義特征主要體現(xiàn)在調(diào)用的API上,故只需提取其中API項(xiàng)即可,且API項(xiàng)中只需API名稱(chēng),不考慮API參數(shù)。圖1所示即為本文提出的惡意代碼動(dòng)態(tài)行為特征分析檢測(cè)基本架構(gòu)。第一步搭建用于動(dòng)態(tài)運(yùn)行惡意代碼的虛擬環(huán)境,前文已經(jīng)敘述虛擬環(huán)境對(duì)于檢測(cè)惡意代碼的作用。第二步于虛擬環(huán)境下執(zhí)行惡意代碼,并提取惡意代碼動(dòng)態(tài)行為語(yǔ)義特征。本文選取惡意代碼執(zhí)行期間調(diào)用的API序列作為語(yǔ)義特征。第三步是使用提取的語(yǔ)義特征進(jìn)行模型建立,即將原始的、未組織的語(yǔ)義信息元素建立為加工過(guò)且結(jié)構(gòu)化的語(yǔ)義模型。本文對(duì)惡意代碼運(yùn)行期間的API調(diào)用序列進(jìn)行加工,抽象為能代表其語(yǔ)義特征的改進(jìn)n-gram。第四步為建立模型庫(kù),進(jìn)行相似性檢測(cè)。可采用的檢測(cè)方法根據(jù)特征不同而有所不同,如使用機(jī)器學(xué)習(xí)(決策樹(shù)、k-近鄰、神經(jīng)網(wǎng)絡(luò)等)方法進(jìn)行檢測(cè)。4結(jié)果分析4.1實(shí)驗(yàn)結(jié)果驗(yàn)證以下實(shí)驗(yàn)采用了數(shù)據(jù)可以分為兩部分,即惡意程序部分及良性程序部分,其中惡意程序共分為6類(lèi),每類(lèi)20個(gè),良性程序共20個(gè)。在惡意程序檢測(cè)研究方面暫時(shí)沒(méi)有標(biāo)準(zhǔn)的數(shù)據(jù)集,實(shí)驗(yàn)中所測(cè)的惡意程序樣本均來(lái)自O(shè)ffensiveComputing由第3節(jié)系統(tǒng)架構(gòu)中描述可知,APIMonitor監(jiān)測(cè)到的原始數(shù)據(jù)項(xiàng)比較多,需要通過(guò)進(jìn)一步的篩選從去除無(wú)關(guān)的特征,得出API數(shù)據(jù)項(xiàng)部分,由于只需要API名稱(chēng),所以也去除了API參數(shù)。N-gram在實(shí)驗(yàn)中n取值為3,所以每一個(gè)特征項(xiàng)為一個(gè)3-gram,即順序相連的三個(gè)API名稱(chēng)。通過(guò)對(duì)以上樣本檢測(cè)結(jié)果的分析,最后得出的特征項(xiàng)共有492個(gè)。K折交叉驗(yàn)證在機(jī)器學(xué)習(xí)中應(yīng)用很多,本實(shí)驗(yàn)也采用該方法來(lái)進(jìn)行實(shí)驗(yàn)結(jié)果驗(yàn)證。這里k取值為10,即所有的數(shù)據(jù)會(huì)被劃分10次,每一次均分為10份,其中9份用作訓(xùn)練集,1份用作測(cè)試集。用來(lái)進(jìn)行分類(lèi)的工具為Weka為了檢測(cè)分類(lèi)器的有效性,我們使用TPR、FPR、Precision、F-Measure幾個(gè)指標(biāo)進(jìn)行衡量。TPR,即TruePositiveRate,本實(shí)驗(yàn)中表示所有惡意代碼能被檢測(cè)出的概率,用公式表示即為T(mén)PR=TP/(TP+FN),其中TP為正確檢測(cè)到的惡意代碼數(shù)量,F(xiàn)N表示被判定為良性程序的惡意代碼數(shù)量。FPR,即FalsePositiveRate,表示所有良性程序被檢測(cè)為惡意程序的概率,用公式表示即FPR=FP/(FP+TN),其中FP為被檢測(cè)未惡意程序的良性程序的數(shù)量,TN為被正確認(rèn)定為良性程序的數(shù)量。Precison,即準(zhǔn)確率,表示被檢測(cè)為惡意程序的程序中真正是惡意程序的程序所占的比例。即Precison=TP/(TP+FP)。F-Measure,用來(lái)綜合衡量Precison和Recall(召回率,與TPR計(jì)算相同),是P和R的加權(quán)調(diào)和平均。用公式來(lái)表示即為F-Measure=[(a^2+1)×P×R]/[a^2×(P+R)],其中P表示準(zhǔn)確率,R表示召回率,參數(shù)a取1時(shí),表示最為常見(jiàn)的F1-Measure,F1=2PR/(P+R)。由表2可知,不同的分類(lèi)器對(duì)于實(shí)驗(yàn)數(shù)據(jù)的檢測(cè)效果相差比較大,根據(jù)最大的F1-Measure值可知,決策樹(shù)J48分類(lèi)器的效果最好,且其TPR接近90%,FPR小于7%,準(zhǔn)確率也超過(guò)了91%。K-近鄰分類(lèi)器中K=1時(shí),檢測(cè)效果最好,K=3時(shí)次之,K=2,4,5,6,7時(shí)均全部檢測(cè)出了惡意程序,不過(guò)僅檢測(cè)出了25%的良性程序,K=8,9,10時(shí),所有程序均被認(rèn)定為惡意程序。支持向量機(jī)中LinearKernel的效果最好。4.2實(shí)驗(yàn)結(jié)果及分析不同的分類(lèi)器在可處理的數(shù)據(jù)類(lèi)型、建模機(jī)制等方面存在區(qū)別,所以需要使用一些評(píng)定指標(biāo)來(lái)比較不同分類(lèi)器的性能,4.1節(jié)已經(jīng)對(duì)分類(lèi)器的準(zhǔn)確率等可反映檢測(cè)效果的指標(biāo)進(jìn)行了數(shù)據(jù)比較。本節(jié)將在使用不同分類(lèi)器的情況下對(duì)建模時(shí)間進(jìn)行測(cè)試,使用的實(shí)驗(yàn)數(shù)據(jù)及分類(lèi)器仍然與4.1節(jié)相同。實(shí)驗(yàn)所用計(jì)算機(jī)的相關(guān)配置如下,處理器型號(hào)為IntelCorei5-2400CPU,主頻為3.10GHz,記錄建模時(shí)間的工具為Weka。基于改進(jìn)n-gram模型特征的各分類(lèi)器建模時(shí)間如表3所示,對(duì)每一個(gè)分類(lèi)器分別做10次建模,記錄其所用建模時(shí)間,記錄的精度為0.01秒,取平均值后即得表3中的平均建模時(shí)間。由表3可知,建模時(shí)間較久的一個(gè)是貝葉斯網(wǎng)絡(luò),主要是采用HillClimber和TAN的貝葉斯網(wǎng)絡(luò),建模時(shí)間分別為0.781秒、1.392秒。K近鄰的建模時(shí)間用時(shí)最少,在實(shí)驗(yàn)精度(0.01秒)下用時(shí)不足0.01秒,故表3中記錄為0,實(shí)驗(yàn)對(duì)K近鄰方法從K=1到K=10均進(jìn)行了測(cè)試,由于建模時(shí)間均不足0.01秒,故表3只使用了一行記錄KNN分類(lèi)器的建模時(shí)間。決策樹(shù)和支持向量機(jī)的建模時(shí)間基本上在幾十毫秒的量級(jí),兩者之間決策樹(shù)的建模速度要稍快于支持向量機(jī)。綜合檢測(cè)效果以及建模時(shí)間來(lái)看,貝葉斯網(wǎng)絡(luò)由于建模時(shí)間較長(zhǎng),且檢測(cè)效果并不明顯具有優(yōu)勢(shì),所以性能最差。決策樹(shù):J48和支持向量機(jī):LinearKernel的效果最好,尤其是決策樹(shù):J48,表2中FPR接近最優(yōu),其他三項(xiàng)參數(shù)也均為最優(yōu),同時(shí)該方法的建模時(shí)間耗時(shí)較少,在實(shí)驗(yàn)樣本特征數(shù)量前提下為10毫秒級(jí)別,與其他幾個(gè)分類(lèi)器相比,在時(shí)間可接受的情況下獲得了較好的檢測(cè)效果。4.3提取特征信息并進(jìn)行交叉驗(yàn)證AlazabM等本文同樣是先獲取了惡意樣本及良性樣本的API調(diào)用特征,并根據(jù)調(diào)用特征得出了各樣本的3-gram特征及其相關(guān)聯(lián)的概率、頻次信息,概率、頻次信息可以反映連續(xù)gram之間的上下文語(yǔ)義,從而增強(qiáng)了特征,為檢測(cè)時(shí)提供了更多的信息。之后對(duì)得到的特征信息分別采用了四大類(lèi)分類(lèi)器進(jìn)行建模,并進(jìn)行了交叉驗(yàn)證。表4為本文部分實(shí)驗(yàn)結(jié)果與文獻(xiàn)由表4可知本文使用的決策樹(shù)在準(zhǔn)確度上較Alazab.M等KolbitschC等由本文與文獻(xiàn)5動(dòng)態(tài)特征分析檢測(cè)惡意軟件已經(jīng)變得越來(lái)越有危害,所以提高反病毒掃描器對(duì)于多態(tài)、變形等惡意代碼的檢測(cè)能力是極其重要的。然而目前商用的反病毒掃描器一般

溫馨提示

  • 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)論