成都網(wǎng)站服務(wù)網(wǎng)站設(shè)計(jì)與制作教程
論文
摘要
- 惡意軟件家族分類(lèi)是預(yù)測(cè)惡意軟件特征的好方法,因?yàn)閷儆谕患易宓膼阂廛浖邢嗨频男袨樘卣?/li>
- 惡意軟件檢測(cè)或分類(lèi)方法分靜態(tài)分析和動(dòng)態(tài)分析兩種:
- 靜態(tài)分析基于惡意軟件中包含的特定簽名進(jìn)行分析,優(yōu)點(diǎn)是分析的范圍覆蓋了整個(gè)代碼,并且可以在不執(zhí)行惡意軟件的情況進(jìn)行;但惡意軟件設(shè)計(jì)者可以通過(guò)多態(tài)和加密的方法躲避靜態(tài)分析
- 動(dòng)態(tài)分析基于惡意軟件的行為進(jìn)行分析,因此動(dòng)態(tài)分析的結(jié)果可以用于檢測(cè)或分類(lèi)一些經(jīng)過(guò)偽裝的惡意軟件變體??梢岳?strong>API調(diào)用序列來(lái)檢測(cè)或分類(lèi)惡意軟件變體。
- 本文提出了一種利用RNN來(lái)提取惡意軟件家族的API調(diào)用模式,進(jìn)而實(shí)現(xiàn)對(duì)惡意軟件進(jìn)行檢測(cè)與分類(lèi)的方法。對(duì)9個(gè)惡意軟件家族的787個(gè)惡意軟件樣本進(jìn)行了實(shí)驗(yàn),發(fā)現(xiàn)正確分類(lèi)惡意軟件的概率為71%,實(shí)驗(yàn)證明該方法是有效的。
Introduction
- 近年來(lái),新的惡意軟件及惡意軟件的變體不斷增加,而且其設(shè)計(jì)者們通過(guò)加密、多態(tài)等方法修改簽名,盡可能避開(kāi)檢測(cè)。
- 雖然惡意軟件的簽名都不盡相同,但相同家族的惡意軟件都有著相似的行為模式,因此,惡意軟件的家族分類(lèi)就成為了惡意軟件分析的一個(gè)重要的預(yù)處理步驟。我們可以將一個(gè)未知的惡意軟件分類(lèi)到已知的惡意軟件家族中,來(lái)預(yù)測(cè)該惡意軟件的行為,這樣會(huì)極大的縮短該惡意軟件的分析時(shí)間。
- API信息常用于惡意軟件家族分類(lèi),(包括API名,參數(shù),返回值等),本文將API的名字作為序列數(shù)據(jù),用于RNN模型的輸入和輸出。
- API調(diào)用序列是惡意軟件家族分類(lèi)的一個(gè)重要特征,用RNN對(duì)屬于同一家族的惡意軟件的API調(diào)用序列進(jìn)行訓(xùn)練,可以提取出具有代表性的API調(diào)用模式,即針對(duì)每個(gè)惡意軟件家族的整體的API調(diào)用序列。該總體調(diào)用序列(調(diào)用模式)可以作為惡意軟件家族分類(lèi)的特征。
方法
- 提取API調(diào)用序列
- 運(yùn)行Cuckoo Sandbox(惡意軟件動(dòng)態(tài)分析框架),生成分析報(bào)告,提取出惡意軟件運(yùn)行過(guò)程中的API調(diào)用序列,將這些調(diào)用序列作為L(zhǎng)STM網(wǎng)絡(luò)的輸入。
- 訓(xùn)練LSTM網(wǎng)絡(luò)
- LSTM網(wǎng)絡(luò)包括3層,一層LSTM層,一層隱藏層,一層輸出層。輸入API調(diào)用序列,輸出提取出的對(duì)應(yīng)每個(gè)惡意軟件家族的API調(diào)用模式。
實(shí)驗(yàn)
- 實(shí)驗(yàn)選取了來(lái)自VxHeaven的9個(gè)惡意軟件家族共781個(gè)樣本,其中70%是訓(xùn)練集,30%是測(cè)試集。
- 訓(xùn)練時(shí),對(duì)于每個(gè)惡意軟件家族,將該家族所有惡意軟件的API調(diào)用序列concatenate到一起,訓(xùn)練LSTM網(wǎng)絡(luò),來(lái)得到每個(gè)惡意軟件家族的API調(diào)用模式。
- 測(cè)試時(shí),對(duì)于每一個(gè)樣本看它的API調(diào)用序列符合(計(jì)算相似度,選相似度最大的)哪個(gè)家族的API調(diào)用模式,則該樣本就是那個(gè)家族的惡意軟件。
評(píng)估
- 比較測(cè)試集惡意軟件API調(diào)用序列和自己家族、或其他家族的API調(diào)用模式的相似度,發(fā)現(xiàn)相似度均不是太高,但與自己家族的相似度還是明顯高于與其他家族相似度的。
- 比較從每個(gè)惡意軟件家族中提取出的API調(diào)用模式與測(cè)試集惡意軟件的API調(diào)用序列的相似性,選擇與惡意軟件相似度最高的前3個(gè)API調(diào)用模式,并將這三個(gè)惡意軟件家族與正確答案進(jìn)行比較。序列相似性度量采用Jaccard相似系數(shù)。測(cè)試集分類(lèi)準(zhǔn)確度如下。
- 上圖可見(jiàn)平均準(zhǔn)確率達(dá)到了71%,只有一個(gè)家族(Lmir)在50%以下,原因可能是因?yàn)?#xff1a;
- Lmir家族只有27個(gè)獨(dú)特的API調(diào)用,這在計(jì)算Jaccard相似度的時(shí)候會(huì)增大分母,導(dǎo)致無(wú)法正確的進(jìn)行分類(lèi)。
- 本文用的數(shù)據(jù)集的標(biāo)注可能錯(cuò)誤。
- 可見(jiàn),總體來(lái)講,利用家族的API調(diào)用模式和測(cè)試樣本的API調(diào)用序列計(jì)算相似度的方式還是可以對(duì)測(cè)試樣本進(jìn)行分類(lèi)的。
改進(jìn)空間
- 使用比LSTM提取特征能力更強(qiáng)的神經(jīng)網(wǎng)絡(luò)
- 本文使用的數(shù)據(jù)集可能不準(zhǔn)確
- 本文只考慮了API的類(lèi)型和調(diào)用順序,如果考慮API更多的語(yǔ)義信息效果會(huì)更好
結(jié)論
本論文將LSTM/RNN模型應(yīng)用于提取惡意軟件家族的API調(diào)用模式上,利用該調(diào)用模式與新的惡意軟件的API調(diào)用序列計(jì)算相似度的方式可以對(duì)新的惡意軟件分類(lèi)。經(jīng)實(shí)驗(yàn)驗(yàn)證,在VxHeaven上9個(gè)惡意軟件家族共781個(gè)樣本的數(shù)據(jù)集上可以達(dá)到71%的分類(lèi)準(zhǔn)確率。
參考文獻(xiàn)
【1】Kwon I, Im E G. Extracting the representative api call patterns of malware families using recurrent neural network[C]//Proceedings of the International Conference on Research in Adaptive and Convergent Systems. 2017: 202-207.
補(bǔ)充:Jaccard相似系數(shù)(來(lái)自這里)
Jaccard相似系數(shù)用于比較有限樣本集之間的相似性與差異性。Jaccard系數(shù)值越大,樣本相似度越高,公式:
- 假設(shè)arr1 = [11, 2, 3, 8, 10, 0, 2, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0] ,長(zhǎng)度為21
- 假設(shè)arr2 = [9, 4, 4, 6, 6, 1, 3, 1, 0, 0, 4, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0],長(zhǎng)度為21
- 則arr1,arr2的公共部分arr_common = [3,0,0,0,1,0,0,0, 0, 0, 0, 0, 0, 0], 長(zhǎng)度為14,那么arr1,arr2的Jaccard相似度為:14 / (21+21-14) = 0.5