基于AI恶意软件分类技术(5)
2021年惡意軟件分類綜述:Malware classification and composition analysis: A survey of recent developments 惡意軟件的分類和成分分析:對(duì)最新發(fā)展的調(diào)查
閱讀論文筆記
原文鏈接
1、本調(diào)查的主要貢獻(xiàn)是:
- 提出一種新的分類來(lái)描述和比較惡意軟件和成分分類和主要發(fā)現(xiàn)。
- 設(shè)計(jì)了一個(gè)新的框架來(lái)分析現(xiàn)有的惡意軟件分類和組合分析技術(shù)。
- 識(shí)別和提出與惡意軟件分析相關(guān)的開(kāi)放問(wèn)題和挑戰(zhàn)。
- 確定了關(guān)于該主題的一些趨勢(shì),并提供了關(guān)于如何改進(jìn)現(xiàn)有解決方案以應(yīng)對(duì)新的和持續(xù)的挑戰(zhàn)的指導(dǎo)方針。
2、 相關(guān)研究:
BZ等人將惡意軟件檢測(cè)方法分為三種類型:基于簽名、基于行為和基于啟發(fā)式的方法。此外,他們還基于所提出的基于啟發(fā)式的方法識(shí)別了五類特征:操作碼、API調(diào)用、控制流圖、n-grag和混合特征。
Shabtai等人提出的另一項(xiàng)工作,研究如何使用靜態(tài)特性檢測(cè)惡意軟件。
本文是研究了更多用于惡意軟件分類的特征(靜態(tài)和動(dòng)態(tài)特征)。
Ucci等人調(diào)查了關(guān)于惡意軟件檢測(cè)和分析的機(jī)器學(xué)習(xí)方法的文獻(xiàn)。他們將被調(diào)查的文章分為三類:目標(biāo)(預(yù)期輸出)、特征和所使用的算法。他們還強(qiáng)調(diào)了一系列的問(wèn)題和挑戰(zhàn),并確定了新的研究方向。
同樣Sahu MK提出的調(diào)查也對(duì)基于智能的惡意軟件分類進(jìn)行了比較分析。特別是,他們報(bào)告了與每個(gè)基于機(jī)器學(xué)習(xí)的惡意軟件分類技術(shù)相關(guān)的缺點(diǎn)、優(yōu)點(diǎn)和問(wèn)題。
此外,Basu等人研究了依賴于人工智能惡意軟件分類技術(shù)的不同工作。特別是,它們創(chuàng)造了五種類型的特性:PI調(diào)用圖、字節(jié)序列、PE標(biāo)頭和部分、匯編代碼頻率和系統(tǒng)調(diào)用。
此外,Ye等人的[36]還研究了惡意軟件分類過(guò)程的許多不同方面。更具體地說(shuō),他們發(fā)現(xiàn)了一些問(wèn)題,如漸進(jìn)式學(xué)習(xí)和對(duì)抗性學(xué)習(xí)。
最近,Ori等人的[37]調(diào)查了關(guān)于用于動(dòng)態(tài)惡意軟件分析的技術(shù)的文獻(xiàn),其中包括對(duì)每種技術(shù)的描述。特別是,他們概述了用于提高動(dòng)態(tài)惡意軟件分析能力的機(jī)器學(xué)習(xí)方法。
與上述工作相比,本文確定了惡意軟件分類和成分分析所面臨的主要問(wèn)題和挑戰(zhàn)。此外,我們還確定了在該主題上的一些趨勢(shì),并提供了關(guān)于如何改進(jìn)解決方案以應(yīng)對(duì)新的和持續(xù)的挑戰(zhàn)的指導(dǎo)方針。
3、惡意軟件分類使用到的特征和算法
圖1顯示了分類方法。本節(jié)的其余部分組織如下(根據(jù)建議的分類法)。第3.1節(jié)描述惡意軟件分析使用的特征,第3.2節(jié)討論現(xiàn)有算法。
3.1 Malware analysis features
本小節(jié)介紹了用于分析的樣本的特征。在第3.1.1節(jié)中,我們展示了我們是如何提取特征的,而在第3.1.2節(jié)中,我們展示了考慮到的特征類型。
3.1.1特征提取方法
在本節(jié)中,我們將回顧以下三種特征提取方法:靜態(tài)方法、動(dòng)態(tài)方法和混合方法。
靜態(tài)方法。 靜態(tài)特征提取是一種不運(yùn)行可執(zhí)行文件的內(nèi)容中提取特征的方法。靜態(tài)特性可以使用文件格式來(lái)提取,例如,便攜式可執(zhí)行文件(PE)和公共對(duì)象文件格式(COFF)[12,18,22,25]。靜態(tài)特征也可以在不知道任何格式的情況下被提取出來(lái)。用這種方法提取的特征可以是字節(jié)序列、文件大小、字節(jié)熵等 [12,17,20,25]。靜態(tài)特征提取方法的優(yōu)點(diǎn)是它覆蓋了完整的二進(jìn)制內(nèi)容。但問(wèn)題是,靜態(tài)特性容易發(fā)生打包和多態(tài)性,因?yàn)榇蠖鄶?shù)靜態(tài)提取的特性都來(lái)自加密的內(nèi)容,而不是原始的程序體[40]。
動(dòng)態(tài)方法 。動(dòng)態(tài)特征提取包括通常在隔離環(huán)境中運(yùn)行可執(zhí)行文件,該環(huán)境可以是虛擬機(jī)(VM)或模擬器,然后從可執(zhí)行文件的內(nèi)存映像或其行為中提取特征。由于具有加殼和多態(tài)性的惡意軟件必須展示真正的惡意代碼來(lái)實(shí)現(xiàn)其目標(biāo),因此與靜態(tài)特征提取方法相比,動(dòng)態(tài)特征提取對(duì)這些惡意軟件技術(shù)具有更強(qiáng)的抵抗力[40]。
安德森等人[21,41]使用Xen1和Royal等人[42],Dai等人[19]和Islam等人[22]使用VMWare2創(chuàng)建他們的虛擬機(jī)并執(zhí)行動(dòng)態(tài)分析。[27]等人使用布谷鳥(niǎo)沙箱3,這是一個(gè)開(kāi)源的自動(dòng)惡意軟件分析系統(tǒng)來(lái)提取API調(diào)用。其他為殺病毒引擎工作的研究人員使用虛擬機(jī)作為殺病毒引擎的一部分來(lái)動(dòng)態(tài)提取特征[24,26]。
實(shí)際上,仿真器有兩類:全系統(tǒng)仿真器和應(yīng)用程序級(jí)仿真器。全系統(tǒng)仿真器是一種計(jì)算機(jī)程序,它模擬計(jì)算機(jī)的每個(gè)組件,包括它的內(nèi)存、處理器、顯卡、硬盤等,目的是運(yùn)行一個(gè)未經(jīng)修改的操作系統(tǒng)。Qemu4是一個(gè)由多個(gè)系統(tǒng)[23,40,43]使用的全系統(tǒng)仿真器。考慮到全系統(tǒng)仿真器的耗時(shí),Cesare和Xiang[15]建議使用應(yīng)用程序級(jí)仿真來(lái)更有效地破解惡意軟件,以便只實(shí)現(xiàn)執(zhí)行文件所需的部分,包括指令集、API、虛擬內(nèi)存、線程和進(jìn)程管理,以及特定于操作系統(tǒng)的結(jié)構(gòu)。
動(dòng)態(tài)特征提取方法的一個(gè)問(wèn)題是,它沒(méi)有揭示所有可能的執(zhí)行路徑[40]。惡意軟件可能有檢測(cè)例程來(lái)檢查它是在虛擬機(jī)或模擬器中執(zhí)行的。當(dāng)惡意軟件發(fā)現(xiàn)自己在這樣的環(huán)境中執(zhí)行時(shí),它將停止執(zhí)行,因此動(dòng)態(tài)模型將無(wú)法識(shí)別出它為惡意軟件。檢測(cè)一個(gè)可執(zhí)行文件是否在VM中執(zhí)行的方法可以從幾篇論文[44,45]中找到。動(dòng)態(tài)方法的另一個(gè)問(wèn)題是,它的執(zhí)行時(shí)間比靜態(tài)特征提取要長(zhǎng)得多【40】。
混合方法。 該方法通過(guò)將靜態(tài)特征提取特征與動(dòng)態(tài)特征提取特征相結(jié)合,獲得更高的檢出率[39]。
我們的調(diào)查顯示,大多數(shù)被調(diào)查的論文都是基于動(dòng)態(tài)特征提取方法[21,24,46-63]。而其他方法則采用相同的比例,即單獨(dú)采用靜態(tài)方法[64–83]或混合方法[22、23、41、47、84-86]。
3.1.2 特征類型
在本節(jié)中,我們將對(duì)惡意軟件分析人員使用的特性進(jìn)行分類,并解釋每種類型是如何被實(shí)際提取和表示的。
1、可打印字符串。 可打印的字符串是一個(gè)以空字符結(jié)尾的ASCII字符序列。舒爾茨等人。[12]發(fā)現(xiàn),惡意軟件有一些類似的字符串,區(qū)別于它,好軟件也有一些常見(jiàn)的字符串,區(qū)別于惡意軟件。可打印的字符串表示為二進(jìn)制特性,其中“1”表示在可執(zhí)行文件中存在的字符串,而“0”表示它在所有系統(tǒng)中都不存在 [12,22,24,26]。
Schultz等人[12]從PE文件的頭中提取可打印的字符串。提取是直接的,因?yàn)闃?biāo)題是純文本格式的。
Dahl等人[24]、Huang和Stokes[26]從內(nèi)存[24,26]中的文件圖像中提取空終止對(duì)象作為可打印字符串。他們的方法的覆蓋范圍比從頭[12]提取可打印字符串要好,但它們可能是一些假陽(yáng)性結(jié)果。
Islam等人[22]使用IDAPro5中的字符串工具從整個(gè)文件中提取可打印的字符串。
與其他作品不同,Saxe和Berlin[25]并不將可打印字符串作為二進(jìn)制特征,而是使用它們的哈希值和字符串長(zhǎng)度的對(duì)數(shù)來(lái)創(chuàng)建一個(gè)直方圖,并使用直方圖的每個(gè)箱子中可打印字符串的計(jì)數(shù)作為特征。它們將在ASCII代碼范圍內(nèi)的所有長(zhǎng)度為6或更多的字節(jié)序列作為可打印的字符串,這也與其他作品略有不同。
從本質(zhì)上說(shuō),大多數(shù)惡意軟件的功能并不依賴于可打印的字符串。因此,當(dāng)惡意軟件創(chuàng)建者發(fā)現(xiàn)一些字符串意外地被惡意軟件檢測(cè)器使用時(shí),他們可以消除它們,或者即使可打印的字符串是必要的,他們也可以將它們分解成分布在不同位置的字符。因此,可打印的字符串并不是可靠的特性。
2、字節(jié)序列(字節(jié)代碼)。可執(zhí)行文件由字節(jié)序列(也稱為字節(jié)碼)組成。字節(jié)序列可以屬于可執(zhí)行文件的元數(shù)據(jù)、代碼或數(shù)據(jù)。如前所述,字節(jié)序列是惡意軟件的重要簽名,因?yàn)閻阂廛浖赡芄蚕硪恍┩耆嗤墓残蛄谢蜃裱嗤恼齽t表達(dá)式。因此,字節(jié)序列也適用于惡意軟件分析系統(tǒng)的特性[12,17,25,41]。
Schultz等人[12]以二進(jìn)制特征的形式使用雙字符字節(jié)序列,他們聲稱字節(jié)序列特征是信息最豐富的特征,因?yàn)樗硎究蓤?zhí)行文件中的機(jī)器代碼。事實(shí)上,這并不是完全正確的,因?yàn)橐恍┳止?jié)序列來(lái)自于元數(shù)據(jù)或數(shù)據(jù)部分。即使一個(gè)字節(jié)序列來(lái)自代碼部分,由于在某些架構(gòu)中的指令具有可變的長(zhǎng)度,字節(jié)序列也可能不匹配機(jī)器代碼。它們的字節(jié)序列特性存在維數(shù)爆炸的問(wèn)題,因?yàn)橛刑嗖煌碾p字節(jié)序列,而且它太大,無(wú)法容納內(nèi)存,所以它們只能將字節(jié)序列集分成幾個(gè)集,并將它們提供給多個(gè)本機(jī)貝葉斯模型。
為了解決維度爆炸問(wèn)題,Kolter和Maloof[17]利用信息增益從2.55億個(gè)不同的4克字節(jié)序列中選擇了前500個(gè)信息豐富的4克字節(jié)序列作為二進(jìn)制特征。
與上述兩部作品不同的是,Anderson等人[41]不使用字節(jié)序列本身作為特征,而是將字節(jié)序列匹配到馬爾可夫模型中,因此他們使用的特征是從一個(gè)字節(jié)到另一個(gè)字節(jié)的轉(zhuǎn)移概率。Chen等人的[25]利用每個(gè)1024字節(jié)窗口的字節(jié)熵和每個(gè)字節(jié)的出現(xiàn)情況,形成一個(gè)直方圖,并將每個(gè)軸均勻地分成16個(gè)箱子,形成一個(gè)256個(gè)長(zhǎng)度的特征向量。
Nataraj[20]等人將一個(gè)文件的整個(gè)字節(jié)序列轉(zhuǎn)換為一個(gè)圖像,其中每個(gè)字節(jié)代表一個(gè)像素的灰度。他們發(fā)現(xiàn),屬于同一家族的惡意軟件在布局和圖像上顯得非常相似。用于將一維字節(jié)序列轉(zhuǎn)換為二維矩陣的圖像的寬度由文件的大小決定。利用Oliva和托拉爾巴特[87]提出的算法計(jì)算了惡意軟件圖像的圖像特征。基于圖像的技術(shù)的主要優(yōu)點(diǎn)是它們對(duì)許多類型的混淆[88]具有魯棒性。
字節(jié)序列在大多數(shù)情況下并不可靠。這是由于指令替換和寄存器重新分配等混淆技術(shù)可以分別改變操作碼和操作碼,這意味著機(jī)器代碼被改變了。在所有這些工作中,字節(jié)碼都是靜態(tài)提取的,但通過(guò)加殼和多態(tài)性,用不同的算法或密鑰加密的主程序主體將改變字節(jié)序列。
3、匯編代碼 。機(jī)器碼和裝配碼可以通過(guò)裝配和拆卸相互翻譯。作為惡意軟件分析的一個(gè)特性,匯編代碼比機(jī)器代碼有一些優(yōu)勢(shì)。首先,匯編代碼可以被程序員理解,因此作為一種特性,匯編代碼更方便地進(jìn)行預(yù)處理(例如,根據(jù)功能進(jìn)行分類、過(guò)濾、截?cái)嗟?#xff09;。作為一個(gè)信息更豐富的特性出現(xiàn)。此外,惡意代碼通常通過(guò)加殼或多態(tài)性進(jìn)行加密,因此不可能從原始字節(jié)序列中獲得它,但是,動(dòng)態(tài)提取的匯編代碼已經(jīng)被解密,因此它包含了惡意代碼。
Moskovitch等[18]提出裝配代碼可以比機(jī)器代碼的惡意軟件分析因?yàn)橄嗤膼阂庖婵赡芪挥谖募牟煌恢?#xff0c;因此可能鏈接到不同的地址內(nèi)存甚至擾亂稍微通過(guò)降低機(jī)會(huì)和使用操作碼的魯棒性提高。他們通過(guò)使用IDAPro解析可執(zhí)行文件來(lái)提取匯編代碼。他們嘗試將每個(gè)操作碼n-gram(n=1,2 ,… ,6)的項(xiàng)頻率(TF)和項(xiàng)頻率逆文檔頻率(TF-IDF)作為特征,并使用文檔頻率(DF)、信息增益比或Fisher評(píng)分來(lái)選擇特征。利用操作碼雙字符的TF值作為Fisher分?jǐn)?shù)過(guò)濾的特征,得到了最好的結(jié)果。他們的方法的一個(gè)缺點(diǎn)是,它仍然容易發(fā)生死代碼插入、操作轉(zhuǎn)換、加殼和多態(tài)性。另一個(gè)是刪除操作數(shù)導(dǎo)致信息丟失,從而可能導(dǎo)致精度的損失。
為了對(duì)抗加殼和多態(tài)性,Dai等人的[19]在虛擬機(jī)中運(yùn)行惡意軟件,并記錄正在運(yùn)行的字節(jié)碼的序列,這些字節(jié)碼將被分解成匯編代碼。它們使用三種雙操作碼組合:塊中的無(wú)序操作碼,塊中的有序但不一定是連續(xù)的操作碼,塊中的連續(xù)操作碼。這樣,它們的特性就更能抵抗死代碼的插入和操作的重新排序。他們使用訓(xùn)練數(shù)據(jù)集中一個(gè)特征的頻率與一個(gè)類之間的關(guān)聯(lián)作為標(biāo)準(zhǔn),并應(yīng)用先驗(yàn)[89]的一個(gè)變體來(lái)選擇頂級(jí)𝐿特征。盡管無(wú)序操作碼和塊內(nèi)操作碼有序(但不一定是連續(xù)操作碼)提高了對(duì)死碼插入和操作重排序的抵抗力,但這些特性過(guò)于靈活,因此它們也會(huì)帶來(lái)更多的假陽(yáng)性情況。
Royal等人。[42]是另一項(xiàng)旨在檢測(cè)隱藏且只能動(dòng)態(tài)看到的代碼的工作。他們這樣做的方法是存儲(chǔ)一個(gè)可執(zhí)行文件的靜態(tài)代碼,并檢查所執(zhí)行的每個(gè)操作是否都在所存儲(chǔ)的靜態(tài)代碼區(qū)內(nèi)。如果不是,那么它就是隱藏代碼的一部分。他們聲稱,如果主惡意軟件引擎都存在,隱藏代碼應(yīng)該在隱藏代碼中,實(shí)驗(yàn)結(jié)果也說(shuō)明了隱藏代碼提高了ClamAV6和McAfee防病毒的準(zhǔn)確性。7
Anderson等人。[21,41]使用從一個(gè)操作碼到另一個(gè)操作碼的轉(zhuǎn)換概率作為特征,這與他們?nèi)绾问褂米止?jié)序列特征類似。在他們的論文[21]中,他們只是通過(guò)在虛擬機(jī)中記錄可執(zhí)行文件的執(zhí)行來(lái)提取匯編代碼,這類似于Royal等人.[42]的使用方式。在他們的第二篇論文[21]中,他們還使用IDAPro來(lái)分解可執(zhí)行文件,并且來(lái)自這兩個(gè)來(lái)源的匯編代碼被用作兩個(gè)獨(dú)立的特性集。此外,他們還根據(jù)其第二篇論文[21]中指令的功能將指令分成幾個(gè)粒度的類別,以減少指令替代的影響。在他們的初步實(shí)驗(yàn)中,他們還發(fā)現(xiàn),如果他們使用命令的指令,性能會(huì)更差。
Santos等人的[23]分解可執(zhí)行文件以獲取其匯編代碼,然后使用加權(quán)操作碼n-gram頻率作為其特征之一。權(quán)重是所有操作碼的信息增益乘以n克的歸一化TF的乘積。
4、API/DLL系統(tǒng)調(diào)用。 可執(zhí)行文件所使用的DLL文件和DLL文件的函數(shù)公開(kāi)了它們所使用的系統(tǒng)服務(wù)。可執(zhí)行調(diào)用由它所依賴的DLL文件的函數(shù)顯示。因此,可以推斷出它可能打算做什么行為或它將能夠做什么。
Schultz等人[12]通過(guò)使用的可執(zhí)行文件提取DLL文件、DLL文件中的函數(shù)以及每個(gè)DLL的函數(shù)數(shù)從元數(shù)據(jù)中提取DLL文件,以便了解資源如何影響可執(zhí)行文件的行為以及每個(gè)DLL的使用程度。前兩個(gè)作為二進(jìn)制特征,第三個(gè)是實(shí)值特征。
Bayer等人[40]和Santos等人[23]使用模擬器動(dòng)態(tài)提取對(duì)WindowsAPI函數(shù)的調(diào)用。然后,他們使用這些API函數(shù)在執(zhí)行期間獲取可執(zhí)行文件的操作,包括I/O活動(dòng)、注冊(cè)表修改活動(dòng)、進(jìn)程創(chuàng)建/終止活動(dòng)、可執(zhí)行文件的網(wǎng)絡(luò)連接活動(dòng)、自我保護(hù)行為、系統(tǒng)信息竊取、執(zhí)行導(dǎo)致的錯(cuò)誤以及與Windows服務(wù)管理器的交互。
Fredrikson等人[43]也使用一個(gè)模擬器來(lái)監(jiān)控系統(tǒng)調(diào)用。然后,它們利用系統(tǒng)調(diào)用與其參數(shù)之間的關(guān)系形成一個(gè)依賴圖,其中節(jié)點(diǎn)是系統(tǒng)調(diào)用,邊連接共享某些參數(shù)的系統(tǒng)調(diào)用。它們將一個(gè)行為定義為它的一個(gè)子圖,可以用來(lái)區(qū)分惡意軟件和好軟件的行為將被挖掘并用于檢測(cè)惡意軟件。
安德森等人[41]、Huang和Stokes[26]將系統(tǒng)調(diào)用分組為高級(jí)類別,其中每個(gè)類別表示功能相似的系統(tǒng)調(diào)用組,如在屏幕上繪制或?qū)懭胛募0驳律热?#xff0c;[41]然后將系統(tǒng)調(diào)用組的跟蹤提供給一個(gè)馬爾可夫鏈,以便他們使用系統(tǒng)調(diào)用的轉(zhuǎn)移概率作為特征。Huang和Stokes[26]使用這些高級(jí)API調(diào)用事件作為二進(jìn)制特性。
Islam等人[22]和Dahl等人[24]通過(guò)在虛擬機(jī)中運(yùn)行一個(gè)可執(zhí)行文件來(lái)提取窗口API函數(shù)調(diào)用及其參數(shù)。Islam等人[22]將視窗API函數(shù)和參數(shù)視為單獨(dú)的實(shí)體,并將每個(gè)實(shí)體的出現(xiàn)頻率作為其特征。Dahl等人。[24]使用單個(gè)系統(tǒng)API調(diào)用、一個(gè)輸入?yún)?shù)和由三個(gè)連續(xù)的API函數(shù)調(diào)用組成的API三克的組合,作為二進(jìn)制特征,隨后使用互信息進(jìn)行選擇。
Kolosnjaji[27]等人使用動(dòng)態(tài)惡意軟件分析系統(tǒng)布谷鳥(niǎo)沙箱來(lái)提取由一個(gè)可執(zhí)行文件調(diào)用的Windows系統(tǒng)調(diào)用的序列。他們使用它們的單熱表示,并將系統(tǒng)調(diào)用的順序提供給連續(xù)的深度學(xué)習(xí)模型。
與程序集代碼類似,WindowsAPI調(diào)用序列也可以被混淆。例如,惡意軟件作者可以使一個(gè)可執(zhí)行文件調(diào)用一些無(wú)關(guān)的API調(diào)用,并淹沒(méi)他們使用的API調(diào)用來(lái)實(shí)現(xiàn)他們的目的。因此,這個(gè)特性在大多數(shù)情況下都是不可靠的。
5、控制流程圖 。 控制流圖是表示程序流程的有向圖,其中節(jié)點(diǎn)是指令,而兩個(gè)節(jié)點(diǎn)之間的邊表示兩個(gè)指令執(zhí)行順序的順序。圖中的一個(gè)頂點(diǎn)是一個(gè)基本的塊,在其中間沒(méi)有跳轉(zhuǎn)或分支指令。一個(gè)有向邊表示控制流中的跳躍。在一些論文[15,41]中,控制流圖被用作檢測(cè)惡意軟件的特征或簽名。
Cesare和Xiang[15]表示,類似的惡意軟件通常具有類似的高級(jí)結(jié)構(gòu)化控制流。他們發(fā)現(xiàn)壓縮和加密的數(shù)據(jù)具有相對(duì)較高的熵,所以他們首先使用字節(jié)序列的熵來(lái)檢測(cè)一個(gè)可執(zhí)行文件是否被加殼。如果是這樣,他們將使用一個(gè)應(yīng)用程序級(jí)模擬器來(lái)提取隱藏的代碼。他們?nèi)匀皇褂米止?jié)序列的熵來(lái)檢測(cè)隱藏代碼提取的完成情況。然后使用推測(cè)性分解[90]對(duì)二進(jìn)制文件的內(nèi)存映像進(jìn)行分解。最后,他們使用結(jié)構(gòu)化過(guò)程從過(guò)程的控制流圖中恢復(fù)高級(jí)結(jié)構(gòu)化控制流,并使用字符串表示它們。表示控制流圖的字符串都被保存為簽名。圖2顯示了控制流圖和簽名字符串之間關(guān)系示例。
Anderson等人[41]還發(fā)現(xiàn),多態(tài)病毒在改變其控制流圖以避免檢測(cè)的同時(shí),構(gòu)建語(yǔ)義相似的版本并不容易。因此,他們使用控制流圖作為特征。更具體地說(shuō),它們使用控制流圖中每個(gè)k-graphlet(k個(gè)節(jié)點(diǎn)的子圖)的出現(xiàn)頻率來(lái)表示控制流圖。
為了對(duì)抗使用控制流圖的檢測(cè),惡意軟件作者可以使用控制流扁平化和虛假的控制流模糊技術(shù),在不影響功能的情況下改變控制流,從而損害控制流圖特性的有效性。
6、函數(shù)。一些論文(例如,Islam等人[22]和Chen等[14])使用函數(shù)級(jí)特征進(jìn)行惡意軟件分類。
特別是,Islam等人[22]發(fā)現(xiàn)函數(shù)長(zhǎng)度它包括區(qū)分惡意軟件家族的統(tǒng)計(jì)有用信息。在獲得每個(gè)可執(zhí)行文件的匯編代碼后,他們通過(guò)測(cè)量代碼的字節(jié)數(shù)來(lái)計(jì)算它們的長(zhǎng)度,并使用每個(gè)函數(shù)長(zhǎng)度的出現(xiàn)頻率作為一個(gè)特征。然而,顯然,函數(shù)長(zhǎng)度是對(duì)模糊最不魯棒的特性。函數(shù)長(zhǎng)度可以通過(guò)插入死代碼來(lái)任意增加,或者通過(guò)將它們分割為多個(gè)函數(shù)來(lái)減少。
應(yīng)該注意的是,兩個(gè)語(yǔ)義上彼此相似的函數(shù)被認(rèn)為是彼此的克隆。為此,Chen等人[14]假設(shè)屬于同一惡意軟件家族的一些文件共享一些使用克隆關(guān)系連接的功能。因此,它們將函數(shù)聚類到組中,其中任意兩個(gè)函數(shù)都可以使用克隆關(guān)系直接或間接地連接起來(lái),并從每個(gè)組中選擇一個(gè)函數(shù)作為范例作為簽名。他們使用NiCad[93]來(lái)檢測(cè)這兩個(gè)功能是否相互克隆。然而,使用一個(gè)函數(shù)來(lái)表示一組函數(shù)是有問(wèn)題的。由于相同的函數(shù)代代,最新版本看起來(lái)可能與原始版本完全不同。如果選擇舊版本作為范例,克隆檢測(cè)器可能無(wú)法識(shí)別出一些未知的新一代它。雖然他們的系統(tǒng)可以在安卓APK文件上工作,但該方法可以直接應(yīng)用于可執(zhí)行惡意軟件的分類。
7、其他文件信息。 一些雜項(xiàng)文件屬性可以幫助工程師區(qū)分惡意軟件和固軟件,因?yàn)樗鼈兊钠骄祷虼蠖鄶?shù)值在兩組之間存在顯著差異。這樣,這些屬性也會(huì)被用作特性。它們是文件大小[40,41],退出代碼[40],時(shí)間消耗[40],熵[41,94],打包或不打包[41],靜態(tài)/動(dòng)態(tài)指令的數(shù)量[41],以及控制流圖[41]中的頂點(diǎn)/邊的數(shù)量。這些特性可能很有用,但顯然信息量不夠豐富。
8、結(jié)論性的評(píng)論。 使用上述所有特性的有效性可能會(huì)以某種方式降低,或者它們的信息不足。如此多的論文都使用了多種特性。直覺(jué)是,任何單一的特征源都可以被混淆以逃避檢測(cè),但在不妨礙[22,41]功能的情況下同時(shí)混淆所有特征是極其困難的。
3.2 Malware 分類算法
在上一節(jié)中介紹的提取的特征被輸入惡意軟件檢測(cè)/分類系統(tǒng)。它們可以分為基于簽名的方法和基于人工智能的方法。
3.2.1.基于簽名的方法
基于簽名的檢測(cè)是在大多數(shù)抗病毒引擎中使用的最復(fù)雜的方法。這些簽名是由人類惡意軟件防御者通過(guò)檢查收集到的惡意軟件樣本而創(chuàng)建的。
更具體地說(shuō),防病毒引擎通過(guò)檢查要分析的文件是否包含惡意軟件簽名來(lái)檢測(cè)或分類惡意軟件。惡意軟件的簽名可以采用多種格式,包括文件名、文本字符串或字節(jié)代碼[12,13]的正則表達(dá)式。簽名通常也是對(duì)整個(gè)文件的哈希關(guān)系。應(yīng)該注意的是,基于簽名的技術(shù)只能檢測(cè)來(lái)自已知的惡意軟件。因此,攻擊者可以利用這些技術(shù),通過(guò)使用打包、混淆、多態(tài)性和變質(zhì)性等反分析技術(shù)來(lái)隱藏惡意軟件的惡意行為來(lái)利用這些技術(shù)(第6節(jié)提供了關(guān)于這些技術(shù)的更多細(xì)節(jié))。因此,該代碼看起來(lái)與原始版本非常不同。基于簽名的方法的主要缺點(diǎn)是精度高,但查全率低,二是勞動(dòng)密集型的方法。
一些工作人員[14–16]通過(guò)提出自動(dòng)簽名生成技術(shù)來(lái)解決手工簽名制作的問(wèn)題。簽名的內(nèi)容可以是視窗系統(tǒng)調(diào)用組合、控制流程圖和函數(shù)。
3.2.2.基于人工智能的方法
本節(jié)討論了基于人工智能的惡意軟件分類方法。這些方法可以分為傳統(tǒng)的機(jī)器學(xué)習(xí)模型、深度學(xué)習(xí)模型、關(guān)聯(lián)挖掘、圖挖掘和概念分析,以及簽名創(chuàng)建和搜索方法。現(xiàn)有的基于人工智能的方法也可以根據(jù)所使用的學(xué)習(xí)方法進(jìn)行分類如下:有監(jiān)督、無(wú)監(jiān)督或半監(jiān)督。
在監(jiān)督惡意軟件分類模型[21-25、46、50、54、55、57-65、67、69、71、72、74、76、80-82、85、95-99],分類算法在標(biāo)記的數(shù)據(jù)集上學(xué)習(xí),使算法能夠在訓(xùn)練數(shù)據(jù)上評(píng)估其準(zhǔn)確性。相比之下,一個(gè)無(wú)監(jiān)督的惡意軟件分類模型[47、49、53、62、69、75、83、84、100-102]提供了未標(biāo)記的數(shù)據(jù),算法試圖通過(guò)在沒(méi)有指導(dǎo)的情況下提取模式來(lái)理解這些數(shù)據(jù)。半監(jiān)督的惡意軟件分類模型[68,75,78,103]結(jié)合了已標(biāo)記和未標(biāo)記的數(shù)據(jù)。
傳統(tǒng)的機(jī)器學(xué)習(xí)模型。被調(diào)查論文使用的最流行的傳統(tǒng)機(jī)器學(xué)習(xí)模型是樸素貝葉斯分類器(NBC) [50,58,60,63–65,81]、基于規(guī)則的分類器[46,59,64,81,95,96]、決策樹(shù)(DT) [22,23,50,55,58,60,62,65,72,74,80,82,96]、k -最近鄰(K-NN) [22,50,60,62,71,72,96,97]、貝葉斯網(wǎng)絡(luò)[23,72,85]、神經(jīng)網(wǎng)絡(luò)(NN) [24,25]、隨機(jī)森林(RF)[22,54,58,60,63,67,76,80,98,99]、隱馬爾可夫模型(HMM)[9, 104–106]和支持向量機(jī)(SVM)[21–23,50,54,57,58,60–63,65,69, 71,72,76,81, 96]。那些使用傳統(tǒng)機(jī)器學(xué)習(xí)模型的論文通常會(huì)嘗試多種機(jī)器學(xué)習(xí)模型。
下面,我們將簡(jiǎn)要介紹上述的機(jī)器學(xué)習(xí)模型。
樸素貝葉斯分類器(NBC) 。 一個(gè)NBC[107]使用貝葉斯定理來(lái)確定屬于一個(gè)類的樣本的條件概率,其輸入特征可以用下式形式描述:
其中,𝑥是一個(gè)樣本,𝐶𝑖是該樣本屬于𝑖類的概率。它是基于樸素貝葉斯條件獨(dú)立的假設(shè),即對(duì)于它所屬于的類,所有的特征都是相互獨(dú)立的:
其中,𝑥𝑗是𝑥的一個(gè)特性。雖然這個(gè)假設(shè)不成立,但預(yù)測(cè)結(jié)果在許多情況下都是好的,而且結(jié)果是可以解釋的,這意味著每個(gè)特征的貢獻(xiàn)有多少是可見(jiàn)的。
決策樹(shù)(DT) 。DT分類器[108]使用樹(shù)狀結(jié)構(gòu)來(lái)表示分類過(guò)程。DT的內(nèi)部節(jié)點(diǎn)測(cè)試特征值,邊緣對(duì)應(yīng)于變量值的選擇。葉節(jié)點(diǎn)代表屬于其中的最后一類樣本。樹(shù)狀結(jié)構(gòu)是基于信息增益率和基尼指數(shù)等當(dāng)前選擇條件下的每個(gè)特征的信息量來(lái)構(gòu)建的。一個(gè)DT也是一個(gè)可解釋的分類器,一個(gè)DT可以被翻譯成if-else-then規(guī)則集。
K-最近鄰(KNN)。 KNN[109]是一個(gè)基于實(shí)例的分類器。該模型用一些距離度量(如歐幾里得、余弦)找到給定樣本的K個(gè)最近鄰,并預(yù)測(cè)它是k個(gè)最近鄰類的(加權(quán))多數(shù)投票。
支持向量機(jī)(SVM) 。 SVM[110]是一種二值分類器,它計(jì)算一個(gè)超平面,將樣本從邊界最大的兩個(gè)類中分離出來(lái)。SVM的一個(gè)重要特征是,它可以利用核技巧將樣本從原始特征空間映射到高維(甚至無(wú)限)特征空間,以進(jìn)行非線性分類。
貝葉斯網(wǎng)絡(luò)(BN)。 BN[111]是一種概率圖形模型,它將變量表示為頂點(diǎn),將依賴關(guān)系表示為有向邊。該圖用于推斷任何變量的概率。
基于規(guī)則的分類器。 基于規(guī)則的分類[112]是指允許我們使用IF-THEN規(guī)則進(jìn)行預(yù)測(cè)的任何分類方法。基于規(guī)則的分類的一個(gè)例子是開(kāi)膛手[113],它用于建立一組規(guī)則來(lái)對(duì)樣本進(jìn)行分類,同時(shí)最小化錯(cuò)誤分類的訓(xùn)練樣本數(shù)量的誤差。
神經(jīng)網(wǎng)絡(luò)(NN)。神經(jīng)網(wǎng)絡(luò)[114]是一種受生物啟發(fā)的編程范式,它允許計(jì)算機(jī)從觀測(cè)數(shù)據(jù)中學(xué)習(xí)。它由一個(gè)功能網(wǎng)絡(luò)(即參數(shù))組成,它使計(jì)算機(jī)能夠通過(guò)分析新數(shù)據(jù)來(lái)學(xué)習(xí),并對(duì)自身進(jìn)行微調(diào)。
隨機(jī)森林(RF)。射頻分類器[115]從訓(xùn)練集的子集(隨機(jī)選擇)構(gòu)建一組DTs。然后從樹(shù)中聚合投票,以決定測(cè)試樣本的最后一個(gè)類別。
深度學(xué)習(xí)模型。 深度學(xué)習(xí)模型允許我們自動(dòng)抽象和提取健壯和有用的特征,以實(shí)現(xiàn)高效和可靠的惡意軟件分類。這可以使用多層抽象來(lái)學(xué)習(xí)數(shù)據(jù)[116]的“好”表示。深度學(xué)習(xí)模型的一個(gè)例子是自動(dòng)編碼器[117],堆疊去噪自動(dòng)編碼器[116],受限玻爾茲曼機(jī)(RBM)[118]。
Dahl等人[24]將他們的179,000個(gè)二進(jìn)制特征應(yīng)用于深度學(xué)習(xí)模型。第一層是一個(gè)隨機(jī)投影層,它將輸入特征映射到一個(gè)更低的維空間(4000維)。隨機(jī)投影層與正常全連接層之間的差值是投影矩陣的權(quán)重不更新。它的條目按照-1、0、1的獨(dú)立相同分布進(jìn)行抽樣。最重要的是,他們應(yīng)用了1到3個(gè)完全連接的層與s型激活函數(shù)和一個(gè)136路的softmax層作為輸出。他們還嘗試使用高斯-伯努利限制性玻爾茲曼機(jī)(RBM)來(lái)對(duì)隱藏層進(jìn)行預(yù)訓(xùn)練。不加預(yù)訓(xùn)練的1-隱層模型的效果最好,測(cè)試錯(cuò)誤率為9.53%。他們還發(fā)現(xiàn),隨機(jī)投影比主成分分析(PCA)表現(xiàn)得更好。
Saxe和Berlin[25]提出了一個(gè)由四個(gè)全連接層組成的深度前饋神經(jīng)網(wǎng)絡(luò),其中前三層的尺寸為1024,然后是一個(gè)密集的層來(lái)得到輸出。他們將輟學(xué)率應(yīng)用到前三層。前兩層的激活函數(shù)為參數(shù)整正線性單位(PReLU),在不損失性能的情況下提高收斂速度,第三層的激活函數(shù)為s型。他們還使用貝葉斯校準(zhǔn)來(lái)計(jì)算一個(gè)可執(zhí)行文件是惡意軟件的無(wú)偏概率。在一個(gè)包含431,926個(gè)樣本的數(shù)據(jù)集上,他們獲得了95%的檢出率和0.1%的假陽(yáng)性率。
Huang和Stokes[26]提出了一種用于多任務(wù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)。其中一個(gè)任務(wù)是進(jìn)行惡意軟件檢測(cè),以預(yù)測(cè)一個(gè)未知的軟件是惡意的還是良性的,另一個(gè)任務(wù)是預(yù)測(cè)它是否屬于98個(gè)重要的惡意軟件家族之一。Huang和Stokes[26]還使用隨機(jī)投影層將維數(shù)從50000降到4000,然后他們將4000維數(shù)中的每一個(gè)歸一化為零均值和單位方差。然后,他們使用4個(gè)隱藏層與退出和RELU激活。在它之上是兩個(gè)分類任務(wù)的兩個(gè)單層。最終的損失函數(shù)是每個(gè)單獨(dú)的損失函數(shù)的加權(quán)和。實(shí)驗(yàn)結(jié)果表明,在大多數(shù)實(shí)驗(yàn)設(shè)置下,多任務(wù)學(xué)習(xí)只會(huì)提高惡意軟件的檢測(cè)性能,而損害了惡意軟件分類的性能。其中,惡意軟件檢測(cè)的最佳結(jié)果是0.3577%的測(cè)試錯(cuò)誤,而惡意軟件分類的最佳結(jié)果是2.935%的測(cè)試錯(cuò)誤。
Kolosnjaji等人[27]提出了一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)的組合,使用動(dòng)態(tài)提取的系統(tǒng)調(diào)用序列來(lái)預(yù)測(cè)一個(gè)可執(zhí)行文件的家族。它們首先使用兩個(gè)卷積層來(lái)捕獲連續(xù)的API調(diào)用之間的相關(guān)性,然后應(yīng)用最大池化來(lái)降低維數(shù)。輸出序列被輸入到一個(gè)LSTM層,以建模API調(diào)用的順序依賴關(guān)系。然后使用平均池化層從LSTM輸出中提取重要的特征。他們還使用Dropout來(lái)防止過(guò)擬合和一個(gè)軟max層來(lái)輸出每個(gè)類的概率。他們提出的深度學(xué)習(xí)模型顯著優(yōu)于前饋神經(jīng)網(wǎng)絡(luò)、CNN、SVM和隱馬爾可夫模型,在精度上達(dá)到85.6%,在召回率上達(dá)到89.4%。他們的模型的優(yōu)點(diǎn)是它可以充分利用系統(tǒng)調(diào)用的順序,如果系統(tǒng)調(diào)用序列被混淆了,這也可能是一個(gè)缺點(diǎn)。他們的模型的一個(gè)問(wèn)題是,他們使用平均池而不是最大池來(lái)提取由LSTM產(chǎn)生的最重要的特征是不合理的。
關(guān)聯(lián)分類器 。 關(guān)聯(lián)分類器依賴于關(guān)聯(lián)規(guī)則,關(guān)聯(lián)規(guī)則可以用于區(qū)分兩個(gè)類之間的樣本來(lái)執(zhí)行分類。這是關(guān)聯(lián)規(guī)則挖掘的一種特殊情況,其中只有一個(gè)樣本的類可以是結(jié)果(a.k.a.一個(gè)規(guī)則的右邊)。Ye等人[16]提出使用層次關(guān)聯(lián)分類器(HAC)基于API調(diào)用對(duì)可執(zhí)行文件進(jìn)行分類。關(guān)于創(chuàng)建一個(gè)關(guān)聯(lián)分類器,有三種技術(shù):(1)采用fp增長(zhǎng)算法找到候選關(guān)聯(lián)規(guī)則(例如,API調(diào)用的組合)(2)修剪候選規(guī)則基于𝜒2,數(shù)據(jù)覆蓋,悲觀誤差估計(jì),重要性w.r.t其祖先(3)重組規(guī)則:第一排名規(guī)則的信心是100的信心支持大小前提(CSA),然后由𝜒2測(cè)量剩下的規(guī)則。
使用這三種技術(shù),他們創(chuàng)建了一個(gè)2級(jí)關(guān)聯(lián)分類器,以檢測(cè)由基于簽名的殺毒引擎標(biāo)記的灰色列表中的惡意軟件。第一級(jí)關(guān)聯(lián)分類器的目的是提高惡意軟件的召回率。它只保留100%置信度的商譽(yù)規(guī)則和置信度大于預(yù)定義的閾值;然后使用規(guī)則剪枝技術(shù)減少生成的規(guī)則并創(chuàng)建分類器;最后使用“最佳第一規(guī)則”技術(shù)從灰列表中尋找樣本。將被第一關(guān)聯(lián)分類器標(biāo)記為惡意軟件的樣本輸入到第二級(jí)關(guān)聯(lián)分類器中,以優(yōu)化精度。它的工作步驟是:選擇那些對(duì)惡意軟件的預(yù)測(cè)規(guī)則有100%信心的樣本,標(biāo)記為“自信”惡意軟件;將剩余的少數(shù)類文件按照預(yù)測(cè)規(guī)則的𝜒2值按降序排序;從剩下的排名列表中選擇第一個(gè)k個(gè)文件,并將它們標(biāo)記為“候選”惡意軟件;將其余的文件標(biāo)記為“深灰色”文件。實(shí)驗(yàn)結(jié)果表明,該HAC是有效的。此外,HAC也是一個(gè)可解釋的分類器,它可以很容易地表示為簡(jiǎn)單的if-then規(guī)則。
圖形挖掘和概念分析。 Fredrikson等人[43]提取行為(系統(tǒng)調(diào)用及其參數(shù)的依賴圖),可以用結(jié)構(gòu)性跳躍挖掘[119]來(lái)區(qū)分惡意軟件和善意軟件。然后,他們使用這些行為來(lái)形成有區(qū)別的規(guī)范。規(guī)范是描述集合的一個(gè)或多個(gè)子集的一組行為和特征函數(shù)。如果軟件匹配至少一個(gè)特征子集中的所有行為,那么它就匹配規(guī)范。如果一個(gè)規(guī)范與惡意軟件匹配,但不匹配良性軟件,那么它是完全有區(qū)別的。他們使用形式概念分析[120]和模擬退火算法[121]來(lái)尋找一個(gè)近似的最優(yōu)規(guī)范,該規(guī)范的真陽(yáng)性大于閾值,在所有大于真陽(yáng)性率的規(guī)范中假陽(yáng)性最低。在測(cè)試期間,如果一個(gè)程序匹配一個(gè)規(guī)范,它將被歸類為惡意軟件。所創(chuàng)建的規(guī)范可用于檢測(cè)未看到的惡意軟件,在961個(gè)樣本的數(shù)據(jù)集上有86%的真陽(yáng)性率和0個(gè)假陽(yáng)性。
簽名搜索方法。 Cesare和Xiang[15]首先將一個(gè)未知的可執(zhí)行文件中的每個(gè)過(guò)程的控制流圖轉(zhuǎn)換為字符串,就像它們創(chuàng)建簽名一樣。每個(gè)過(guò)程都使用其字符串的長(zhǎng)度來(lái)分配一個(gè)權(quán)重:
然后,他們使用BK樹(shù)來(lái)檢索簽名數(shù)據(jù)庫(kù)中的字符串,這些字符串表示目標(biāo)文件過(guò)程的字符串小于閾值。對(duì)于一個(gè)特定的惡意軟件,一旦找到一個(gè)匹配的圖,這個(gè)圖將被忽略,以便在輸入二進(jìn)制文件中的剩余圖中進(jìn)行后續(xù)搜索。如果一個(gè)圖在一個(gè)特定的惡意軟件中有多個(gè)匹配,并且不確定應(yīng)該選擇哪個(gè)過(guò)程作為匹配,則采用貪婪解。選擇加權(quán)最多的圖。對(duì)于每個(gè)具有匹配簽名的惡意軟件,這些簽名的相似度比率:
w是累積起來(lái)與過(guò)程的權(quán)重成比例。最終未知的可執(zhí)行文件之間的相似性和惡意軟件的數(shù)據(jù)庫(kù)是兩個(gè)不對(duì)稱的相似性:一個(gè)相似性識(shí)別多少輸入二進(jìn)制大約在數(shù)據(jù)庫(kù)惡意軟件,和相似性顯示多少數(shù)據(jù)庫(kù)惡意軟件大約在輸入二進(jìn)制。如果被檢查的程序與數(shù)據(jù)庫(kù)中的任何惡意軟件的程序相似性等于或超過(guò)0.6的閾值,那么它就被認(rèn)為是一個(gè)變體。實(shí)驗(yàn)結(jié)果表明,該方法具有86%的檢出率,0假陽(yáng)性,優(yōu)于基于商業(yè)簽名的抗病毒(AV)的55,基于行為的AV的假陽(yáng)性率為62-64。因?yàn)樗麄兪褂脤?duì)稱相似度作為兩個(gè)不對(duì)稱相似度的乘積來(lái)計(jì)算,所以它不能處理不對(duì)稱情況。例如,如果一個(gè)非常大的未知可執(zhí)行文件包含了數(shù)據(jù)庫(kù)中惡意軟件樣本的整個(gè)程序,但該惡意程序只占其全部?jī)?nèi)容的1%,那么相似性仍然很小,因此不能預(yù)測(cè)它是惡意軟件。
Chen等人[14]使用NiCad[93]檢測(cè)APK文件是否包含任何作為代表惡意軟件家族簽名的范例函數(shù)的克隆函數(shù)。如果找到匹配項(xiàng),則預(yù)計(jì)該文件將為該惡意軟件家族的一個(gè)實(shí)例。他們?cè)谝粋€(gè)包含來(lái)自19個(gè)惡意軟件家族的1170個(gè)APK文件的數(shù)據(jù)集上達(dá)到了96.88%的準(zhǔn)確率。
4、成分分析技術(shù)的分類法
本節(jié)將介紹惡意軟件組合分析技術(shù)的分類法。我們確定了兩個(gè)主要的維度,沿著它,被調(diào)查的論文可以方便地組織起來(lái)。第一個(gè)顯示了用于成分分析的步驟。第二個(gè)維度確定了分析的目標(biāo)(即策略)。圖3顯示了所建議的分類法的圖形表示。
4.1 步驟
成分分析允許逆向工程師分析惡意軟件樣本的組成,以了解它們的功能和行為。這反過(guò)來(lái)又讓工程師可以識(shí)別惡意軟件樣本和攻擊者的意圖。此外,它還允許反向工程師根據(jù)嚴(yán)重程度對(duì)惡意軟件進(jìn)行排序,并允許他們有效地對(duì)其資源進(jìn)行分類。
基本上,成分分析主要有三個(gè)主要步驟:拆卸、表示和分類。
4.1.1 拆解
大多數(shù)軟件程序是通過(guò)編譯的可執(zhí)行文件交付給用戶的,而不是源代碼。反匯編器使逆向工程師分析沒(méi)有源代碼的軟件程序成為可能。從技術(shù)上講,解匯編器是一個(gè)將機(jī)器語(yǔ)言轉(zhuǎn)換或翻譯成匯編語(yǔ)言的過(guò)程。“反匯編程序”的逆操作是“匯編程序”。有許多工具用于此目的(例如,IDAPr8)。
拆卸方法可以分為以下兩類:靜態(tài)技術(shù)和動(dòng)態(tài)技術(shù)。第一類方法對(duì)二進(jìn)制組件進(jìn)行統(tǒng)計(jì)分析,解析二進(jìn)制文件中的操作碼。第二類方法監(jiān)控程序的執(zhí)行軌跡,以識(shí)別指令并恢復(fù)二進(jìn)制版本。
動(dòng)態(tài)方法和靜態(tài)方法都有優(yōu)缺點(diǎn)。靜態(tài)分析考慮了整個(gè)程序,而動(dòng)態(tài)分析只能關(guān)注已執(zhí)行的指令。因此,在適應(yīng)動(dòng)態(tài)分析時(shí),不容易確保整個(gè)可執(zhí)行文件被訪問(wèn)。但是,動(dòng)態(tài)分析保證了輸出(即拆卸輸出)只包含實(shí)際的指令。
一般來(lái)說(shuō),靜態(tài)分析技術(shù)有兩種方法。第一種方法被稱為線性掃描[122]。這種方法從二進(jìn)制的第一個(gè)字節(jié)開(kāi)始,然后開(kāi)始解碼一條指令。使用線性掃描解匯編器的主要缺點(diǎn)是在程序中嵌入的數(shù)據(jù)導(dǎo)致的錯(cuò)誤概率高。第二種方法稱為遞歸遍歷[123],它允許工程師通過(guò)遵循程序[15,41]的控制流(CF)來(lái)修復(fù)“嵌入式數(shù)據(jù)”的問(wèn)題。然而,這種方法的問(wèn)題是,它可能無(wú)法成功地分析代碼的各個(gè)部分(即函數(shù))。這是由于控制傳輸指令(例如,跳轉(zhuǎn))不能靜態(tài)地確定。這個(gè)問(wèn)題可以通過(guò)使用線性掃描算法來(lái)分析代碼[124]中的不可達(dá)區(qū)域來(lái)解決。
4.1.2 表示學(xué)習(xí)
任何惡意軟件分類和組合分析技術(shù)的成功通常取決于數(shù)據(jù)表示。雖然特定的領(lǐng)域知識(shí)可以幫助工程師為可執(zhí)行文件設(shè)計(jì)表示和特征向量,但手工特性工程過(guò)程沒(méi)有考慮特性之間的關(guān)系,并定義那些能夠區(qū)分可執(zhí)行文件的獨(dú)特模式。
實(shí)際上,表示學(xué)習(xí)是一套方法和/或技術(shù),使系統(tǒng)能夠從原始數(shù)據(jù)(即匯編代碼)中自動(dòng)提取惡意軟件分類所需的表示。這個(gè)過(guò)程取代了手動(dòng)特性工程,使惡意軟件分類系統(tǒng)能夠?qū)W習(xí)有用的特性,并集成它們來(lái)執(zhí)行分類。
使用特征學(xué)習(xí)背后的動(dòng)機(jī)是,組合分析方法通常需要對(duì)混淆和包裝等反分析技術(shù)具有穩(wěn)健的輸入。
深度學(xué)習(xí)方法(例如,堆疊自動(dòng)編碼器[125],堆疊去噪自動(dòng)編碼器[116],深度信念網(wǎng)絡(luò)[126],……)已知并被認(rèn)為是提取魯棒特征的(最佳)方法,用于為大規(guī)模異構(gòu)環(huán)境構(gòu)建魯棒的惡意軟件和相似性分析工具。
4.1.3 分類
在分解可執(zhí)行樣本后,使用裝配代碼函數(shù)提供一個(gè)表示學(xué)習(xí)模塊,以獲得魯棒的特征和“良好的”數(shù)據(jù)表示。然后將函數(shù)表示輸入任何分類算法,如樸素貝葉斯分類器(NBC)[64]、基于規(guī)則的分類器[64]、決策樹(shù)(DT)[65]、k最近鄰(K-NN)[71]、貝葉斯網(wǎng)絡(luò)[85]、神經(jīng)網(wǎng)絡(luò)(NN)[24]、隨機(jī)森林(RF)[67]、隱馬爾可夫模型(HMM)[127]和支持向量機(jī)(SVM)[65]。該分類方法使我們能夠識(shí)別功能之間的關(guān)系,并考慮到以下三種分析策略:變量分析、相似性分析和家族分析。
變量分析(VA)。VA[46,47,59,79,80,83]使工程師能夠意識(shí)到,惡意軟件示例實(shí)際上是存儲(chǔ)庫(kù)中已知惡意軟件的變體。這一策略讓我們了解惡意軟件已經(jīng)發(fā)展到一段時(shí)間的程度。
相似性分析(SA)。 SA[48,49,53,56,128]允許工程師識(shí)別惡意軟件示例的哪些部分(即功能)與存儲(chǔ)庫(kù)中的已知功能相似。這一策略允許我們只關(guān)注新的部分,防止不必要的調(diào)查。
家族分析(FA)。FA [22,24,51,55,60–62,70,71,76,97,101,102].允許工程師將未定義的惡意軟件與已定義的族關(guān)聯(lián)起來(lái)。這種策略是在假設(shè)來(lái)自同一家族的惡意軟件在功能上是相似的。識(shí)別它們的困難在于,一些惡意軟件的作者使用反分析技術(shù)(例如,混淆、包裝、多態(tài)性和變質(zhì)性)來(lái)掩蓋這種相似性。
5、被調(diào)查論文的描述
在本節(jié)中,我們將描述每一篇被回顧的論文。表1提供了關(guān)于每篇論文所使用的算法和特性的信息,并強(qiáng)調(diào)了主要的限制。該表還顯示了每個(gè)工作的可伸縮性,包括它在存儲(chǔ)庫(kù)存在增量更新時(shí)工作的能力。最后一列顯示了所提出的分類技術(shù)是否對(duì)反分析技術(shù)具有魯棒性。從表1中可以看出,大多數(shù)工作使用一種以上的分類算法來(lái)檢測(cè)惡意軟件和分類,以保證更準(zhǔn)確的結(jié)果。在表2中,我們比較了不同的w.r.t方法的主要目標(biāo):惡意軟件檢測(cè)和相似性分析,家族分析和變異分析。
6、挑戰(zhàn)與問(wèn)題
基于第5節(jié)中解釋的描述,我們?cè)谶@里討論被調(diào)查文章的挑戰(zhàn)和/或問(wèn)題。
6.1.惡意軟件逃避技術(shù)
在本節(jié)中,我們將介紹惡意軟件作者用于逃避檢測(cè)的常用技術(shù)。
6.1.1 混淆
混淆這個(gè)術(shù)語(yǔ)主要指的是用于創(chuàng)建原始代碼的變體而不影響其功能的技術(shù)。混淆的目的通常是隱藏原始代碼的真實(shí)邏輯,或逃避基于簽名的檢測(cè)器或功能克隆檢測(cè)器。幾種常用的混淆技術(shù)如下:
- 死代碼插入[13]:插入無(wú)用的指令(例如,nop)或插入一些只影響未使用的變量的指令。
- 代碼轉(zhuǎn)換[13]:更改獨(dú)立指令的順序。
- 寄存器重新分配[13]:交換寄存器的使用來(lái)存儲(chǔ)特定活動(dòng)范圍內(nèi)的數(shù)據(jù)/地址。
- 指令替換[13]:用等效的指令替換一個(gè)指令。
- 控制流平坦[134]:(1)打破函數(shù)的身體基本塊(2)把所有基本塊最初在不同的嵌套級(jí)別彼此(3)封裝基本塊的選擇性結(jié)構(gòu)(C++開(kāi)關(guān)語(yǔ)句)(4)封裝在一個(gè)循環(huán)的選擇。
- 虛假控制流[135]:對(duì)于一個(gè)基本塊,添加一個(gè)新的基本塊,其中包含一個(gè)不透明的謂詞,然后對(duì)原始基本塊進(jìn)行條件跳轉(zhuǎn)。
6.1.2 加殼
加殼是一種壓縮/加密可執(zhí)行文件的技術(shù),其中這些加殼的文件將在運(yùn)行時(shí)被解壓縮/解密。這意味著靜態(tài)分析器無(wú)法看到真正的代碼,因?yàn)樗荒苓\(yùn)行可執(zhí)行文件。包裝不僅用于惡意軟件,也用于保護(hù)善意軟件方案[15,41]。根據(jù)安德森等人[41]的統(tǒng)計(jì),在他們的數(shù)據(jù)集中47.56%的惡意軟件被加殼, 19.59%的好軟件被加殼。
6.1.3 多態(tài)性
多態(tài)性也是一種基于加密和解密的技術(shù)。一個(gè)多態(tài)性惡意軟件包含兩部分:多態(tài)性引擎和執(zhí)行惡意功能的真實(shí)程序。前者在復(fù)制時(shí)改變加密算法和密鑰,后者的代碼本身是固定的,但在運(yùn)行時(shí)被前者以不同的方式加密。這樣,整個(gè)多態(tài)惡意軟件程序在每一代[136]上看起來(lái)都會(huì)有所不同。
6.1.4 變形
一個(gè)變形惡意軟件在復(fù)制時(shí)重新編程。因此,在每一代中,整個(gè)程序體都使用代碼混淆技術(shù)對(duì)[136]進(jìn)行修改,而功能保持不變。變質(zhì)惡意軟件被認(rèn)為比多態(tài)惡意軟件更難編寫。
6.2.對(duì)抗性的攻擊和防御
由于最近的研究方向是自動(dòng)化惡意軟件分析的過(guò)程使用機(jī)器學(xué)習(xí)技術(shù),提出的解決方案應(yīng)該對(duì)對(duì)抗性的例子,輸入由攻擊者設(shè)計(jì)欺騙機(jī)器學(xué)習(xí)模型,使它生成錯(cuò)誤的決策(例如,使惡意軟件分析工具無(wú)法檢測(cè)惡意代碼)。最近有研究表明,包括深度神經(jīng)網(wǎng)絡(luò)在內(nèi)的機(jī)器學(xué)習(xí)模型很容易受到敵對(duì)例子的攻擊。攻擊者很容易創(chuàng)建“對(duì)抗性示例”的[137],通過(guò)簡(jiǎn)單地延續(xù)部分輸入來(lái)欺騙機(jī)器學(xué)習(xí)模型。
6.2.1 對(duì)抗性攻擊
對(duì)抗性樣本是由對(duì)輸入變量擾動(dòng)最小的正常樣本制作的,以在不破壞原始樣本功能的情況下混淆分類器。擾動(dòng)應(yīng)該基于損失函數(shù)相對(duì)于分類器的輸入變量的導(dǎo)數(shù),因?yàn)閷?dǎo)數(shù)顯示了輸入的變化方向,這是最有效的改變輸出。因此,需要一個(gè)可微的分類器來(lái)創(chuàng)建對(duì)抗性的樣本,而深度學(xué)習(xí)模型只是可微的和有效的分類器。研究表明,為了欺騙一個(gè)模型而產(chǎn)生的對(duì)抗性樣本可以欺騙一個(gè)完全不同的模型[138,139]。因此,隨著深度學(xué)習(xí)模型被提出為檢測(cè)領(lǐng)域的惡意軟件,惡意軟件作者有更好的機(jī)會(huì)來(lái)制作敵對(duì)的例子,以逃避任何機(jī)器學(xué)習(xí)模型的檢測(cè)。
對(duì)制作一個(gè)被分類器𝑓錯(cuò)誤分類的對(duì)抗性𝑥?的問(wèn)題的正式描述是
其中‖?‖可以是任意范數(shù),x是要被攝動(dòng)的樣本。
Goodfellow等人[140]提出了一種快速梯度符號(hào)方法,通過(guò)將樣本𝑆的梯度符號(hào)與一定的系數(shù)相乘來(lái)控制擾動(dòng)的尺度。[141]等人提出了一種正向?qū)?shù)方法,該方法利用其雅可比矩陣評(píng)估輸出對(duì)每個(gè)輸入分量的敏感性,然后基于雅可比矩陣構(gòu)造對(duì)抗性顯著性映射,表明哪些輸入特征將包含在擾動(dòng)中。
與干擾對(duì)抗性圖像樣本相比,干擾惡意軟件樣本有一些限制,因?yàn)閻阂廛浖拇蠖鄶?shù)功能是離散的,而不是真實(shí)值的,功能應(yīng)該是完整的。因此,需要調(diào)整以前的實(shí)值特征干擾方法,一些二進(jìn)制特征不能從“1”更改為“0”,因?yàn)椤?”意味著該特征存在,并且這個(gè)方向的變化可能會(huì)破壞該功能。
Grosse等人[28]提出了一種制造對(duì)抗性安卓惡意軟件的技術(shù)。受[28,141]等人的啟發(fā),[28,141]使用雅可比矩陣來(lái)檢查哪些特征最有可能導(dǎo)致將惡意程序預(yù)測(cè)為好軟件。它們只允許扭曲到不超過(guò)20個(gè)功能。所有的特性都是二進(jìn)制特性。為了維護(hù)對(duì)抗性示例的功能,他們添加了兩個(gè)約束條件:(1)只調(diào)整與AndroidManifest.xml文件相關(guān)的清單特性。這個(gè)文件在任何安卓應(yīng)用程序中都可用;(2),它應(yīng)該通過(guò)添加一行代碼來(lái)完成。使用他們的方法,一個(gè)最先進(jìn)的前饋神經(jīng)網(wǎng)絡(luò),在原始數(shù)據(jù)集上達(dá)到98%的準(zhǔn)確率,被63%的對(duì)抗性惡意軟件樣本誤導(dǎo)。
6.2.2.對(duì)抗性防御
Grosse等人,[28]嘗試了兩種方法來(lái)抵御對(duì)抗性攻擊。第一種是應(yīng)用蒸餾[141,142]來(lái)對(duì)抗對(duì)抗性樣品,在某些情況下成功地降低了38.5%的誤分類率。第二種是對(duì)抗性訓(xùn)練[140],它包括在原始數(shù)據(jù)集上訓(xùn)練模型,然后在幾個(gè)時(shí)期的對(duì)抗性樣本上只對(duì)其再次訓(xùn)練模型。通過(guò)對(duì)抗性訓(xùn)練,誤分類率從73%降低到67%。
Wang等人。[29]通過(guò)隨機(jī)取消輸入特征來(lái)抵御對(duì)抗性攻擊。它們的無(wú)效類似于退出,因?yàn)樵谶@兩種機(jī)制中,一些輸入特征都被隨機(jī)設(shè)置為0。與退出的主要區(qū)別在于,模型在測(cè)試過(guò)程中沒(méi)有刪除任何輸入特征,但在無(wú)效過(guò)程中,一些特征在測(cè)試過(guò)程中仍然被隨機(jī)刪除。具體來(lái)說(shuō),對(duì)于任何數(shù)據(jù)集中的每個(gè)樣本,在高斯分布下采樣一個(gè)無(wú)效率,并對(duì)要下降的維數(shù)(特征)進(jìn)行均勻采樣。從直覺(jué)上看,無(wú)效化使得它們的體系結(jié)構(gòu)具有不確定性,因此攻擊者無(wú)法檢查特征的重要性,因此它們很難檢測(cè)和利用分類器的“盲點(diǎn)”。在他們的實(shí)驗(yàn)中,這些特征是被調(diào)用的windows系統(tǒng)DLL文件,他們使用基于雅可比矩陣的顯著性映射為每個(gè)樣本選取多達(dá)10個(gè)特征來(lái)進(jìn)行干擾。實(shí)驗(yàn)結(jié)果表明,該方法能提高對(duì)敵對(duì)樣品的抗藥性,最佳抗藥性為64.86%,無(wú)效率為10%。然而,他們的方法的一個(gè)理論問(wèn)題是當(dāng)對(duì)抗樣本是跨模型[138,139]。因此,即使無(wú)效會(huì)損害對(duì)手使用該模型來(lái)制造對(duì)抗樣本的能力,但對(duì)手可以使用其他模型(即相同的神經(jīng)網(wǎng)絡(luò))來(lái)制造對(duì)抗樣本,這些樣本也可以逃避裝備無(wú)效的樣本。因此,沒(méi)有理論證據(jù)或證據(jù)表明無(wú)效是否可以提高對(duì)其他深度學(xué)習(xí)模型的對(duì)抗樣本的抵抗力。
6.3.效率和可伸縮性
一個(gè)實(shí)用的惡意軟件搜索引擎可以幫助安全工程師在進(jìn)行分析時(shí)實(shí)時(shí)獲取惡意軟件的搜索結(jié)果。即時(shí)反饋為工程師提供正在調(diào)查[92]的給定惡意軟件的結(jié)構(gòu)。應(yīng)該注意的是,可伸縮性是一個(gè)重要的因素,因?yàn)閿?shù)據(jù)庫(kù)中的惡意軟件的數(shù)量需要擴(kuò)大到數(shù)百萬(wàn)個(gè)。這也是生產(chǎn)一個(gè)可靠的惡意軟件搜索引擎的一個(gè)關(guān)鍵問(wèn)題。對(duì)于實(shí)際應(yīng)用程序,惡意軟件搜索引擎的效率和可伸縮性應(yīng)該使用一個(gè)大型存儲(chǔ)庫(kù)進(jìn)行評(píng)估,以衡量其準(zhǔn)確性和延遲。
7、研究方向
上述貢獻(xiàn)有效地解決了文獻(xiàn)中一些有趣的研究空白。但仍有一些問(wèn)題有待進(jìn)一步研究和研究。在我們的文獻(xiàn)綜述的基礎(chǔ)上,我們可以進(jìn)一步探索以下的研究途徑:
7.1.穩(wěn)健的解決方案
雖然文獻(xiàn)綜述中討論的解決方案通過(guò)提取健壯和有用的特征,為可靠的惡意軟件檢測(cè)系統(tǒng)(MDS)鋪平了道路,但該解決方案仍然需要減少人際互動(dòng)。因此,需要一個(gè)自動(dòng)化系統(tǒng)來(lái)獲取數(shù)據(jù),并自動(dòng)提取穩(wěn)健的特征。為此目的,深度學(xué)習(xí)技術(shù)可以成為替代現(xiàn)有特征提取方法的最佳候選方法。該解決方案可以使用不同的深度學(xué)習(xí)架構(gòu)(例如,生成對(duì)抗網(wǎng)絡(luò)、堆疊去噪自動(dòng)編碼器、受限玻爾茲曼機(jī)和變分自動(dòng)編碼器)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),以實(shí)現(xiàn)自動(dòng)抽象和提取魯棒特征,以顯著增強(qiáng)在異構(gòu)、變化和噪聲環(huán)境下的檢測(cè)。
最近,Ding等人[143]提出了一個(gè)健壯且準(zhǔn)確的組裝克隆搜索平臺(tái)Asm2Vec。該平臺(tái)使工程師能夠通過(guò)區(qū)分任何裝配函數(shù),自動(dòng)學(xué)習(xí)該函數(shù)的向量表示。此外,該平臺(tái)還允許工程師共同學(xué)習(xí)基于裝配代碼[143]的裝配功能的語(yǔ)義關(guān)系。這反過(guò)來(lái)使我們能夠構(gòu)建有用和健壯的特性,以進(jìn)行高效和可靠的裝配克隆搜索。提出的學(xué)習(xí)表示受段落向量分布式記憶模型(PVDM)模型的啟發(fā),該模型用于學(xué)習(xí)文本段落[144]的向量化表示。PV-DM模型基本上是基于Word2Vec[145],它用于學(xué)習(xí)單詞的向量表示。這是通過(guò)使具有相似意義的單詞能夠映射到向量空間中的相似位置來(lái)實(shí)現(xiàn)的。例如,“好”和“偉大”彼此接近,而“偉大”和“日本”則更遙遠(yuǎn)。由于單詞的分布式向量表示(DVR)的概念,學(xué)習(xí)單詞的向量表示成為可能,這是一種眾所周知的學(xué)習(xí)單詞向量的方法。特別是,DVS利用機(jī)器學(xué)習(xí)模型(通常是神經(jīng)網(wǎng)絡(luò))的力量,通過(guò)訓(xùn)練機(jī)器學(xué)習(xí)模型來(lái)預(yù)測(cè)上下文中其他單詞的一個(gè)單詞(即目標(biāo)單詞)。在預(yù)測(cè)目標(biāo)詞的過(guò)程中,我們學(xué)習(xí)了目標(biāo)詞的向量表示。
PV-DM模型的靈感來(lái)自于Word2Vec,它使用了學(xué)習(xí)單詞向量的想法。在PV-DM模型中,單詞向量和段落向量都被要求從段落[144]中采樣,對(duì)目標(biāo)單詞的預(yù)測(cè)作出貢獻(xiàn)。這個(gè)過(guò)程(即,預(yù)測(cè)目標(biāo)詞)允許我們學(xué)習(xí)段落的向量表示。Ding等人[143]利用PV-DM模型的能力來(lái)學(xué)習(xí)基于裝配代碼的裝配函數(shù)的向量表示。這是通過(guò)將匯編函數(shù)(即存儲(chǔ)庫(kù)函數(shù))和函數(shù)的輸入標(biāo)記(即指令)映射到唯一向量來(lái)實(shí)現(xiàn)的。然后訓(xùn)練機(jī)器學(xué)習(xí)模型來(lái)預(yù)測(cè)給定函數(shù)及其上下文中的目標(biāo)令牌。這個(gè)過(guò)程使我們能夠?qū)W習(xí)該函數(shù)的向量表示。
事實(shí)上,該解決方案不僅能夠容納已知惡意軟件的未知變體,還能夠容納未知惡意軟件的未知變體。這些解決方案也應(yīng)該能夠?qū)箤?duì)抗性攻擊。雖然一些工作已經(jīng)解決了這個(gè)問(wèn)題,但這些解決方案大多基于對(duì)抗性訓(xùn)練[146],而且還不夠成熟,不能結(jié)合提取魯棒和有用的特征來(lái)保護(hù)系統(tǒng)免受對(duì)抗性例子的影響。因此,該解決方案不僅應(yīng)該對(duì)復(fù)雜和有噪聲的數(shù)據(jù)具有魯棒性,而且還應(yīng)對(duì)對(duì)抗性的例子具有魯棒性。
7.2.協(xié)作解決方案
計(jì)算機(jī)和通信系統(tǒng)正變得越來(lái)越復(fù)雜,越來(lái)越容易受到入侵。網(wǎng)絡(luò)攻擊也變得越來(lái)越復(fù)雜,也更難分析和識(shí)別。事實(shí)上,由于對(duì)惡意軟件進(jìn)化的認(rèn)識(shí)有限,單個(gè)MDS識(shí)別所有入侵變得越來(lái)越困難。最近在入侵檢測(cè)和惡意軟件分析方面的工作[147-149]的實(shí)驗(yàn)表明,與傳統(tǒng)的單一MDS相比,當(dāng)MDS相互協(xié)作時(shí),檢測(cè)精度可以顯著提高。在協(xié)作環(huán)境中,每個(gè)MDS可以咨詢其他可疑惡意軟件,以提高決策準(zhǔn)確性。圖4為合作MDS的一個(gè)示例。
最近,Man和Huh[147]和Singh等人[148]設(shè)計(jì)了一個(gè)協(xié)作的MDS,它可以從不同的分布式檢測(cè)器交換惡意軟件檢測(cè)警報(bào)。此外,知識(shí)還可以在節(jié)點(diǎn)之間進(jìn)行交換。此外,Dermott等人[150]提出了一個(gè)在云計(jì)算環(huán)境中的協(xié)作MDS。所提出的框架使用了登普斯特-謝弗證據(jù)[151]理論,以結(jié)合來(lái)自不同的惡意軟件檢測(cè)器的決策。接收到的決定將被聚合,以對(duì)一個(gè)可疑的惡意軟件作出最終決定。這種技術(shù)有一個(gè)缺點(diǎn):它的基于集中化的架構(gòu),即使用一個(gè)可靠的第三方來(lái)組合反饋和協(xié)調(diào)MDS。
事實(shí)上,合作性MDS的設(shè)計(jì)應(yīng)該考慮以下三個(gè)特性(挑戰(zhàn)):可信度、公平性和可持續(xù)性。我們所說(shuō)的可信度,是指MDS應(yīng)該能夠確保它將與受信任的各方(即MDS)進(jìn)行咨詢、合作和分享知識(shí)。公平地說(shuō),我們的意思是,MDS應(yīng)該能夠保證通過(guò)盡量減少與自私的MDS合作的機(jī)會(huì)來(lái)實(shí)現(xiàn)互利互利。這有助于給mds提供參與社區(qū)的動(dòng)機(jī)。最后,通過(guò)可持續(xù)性,我們的意思是使MDS能夠主動(dòng)地對(duì)可疑攻擊做出決定,無(wú)論是否從咨詢的MDS那里收到了完整的反饋。因此,所提出的解決方案將適用于實(shí)時(shí)環(huán)境,其中mds應(yīng)該迅速采取關(guān)于可疑惡意軟件的決定。
7.3.可持續(xù)解決方案
大多數(shù)惡意軟件分析工具的威力在很大程度上是基于他們對(duì)惡意軟件和危險(xiǎn)攻擊的大量知識(shí)。事實(shí)上,MDS使用的SVM等有監(jiān)督的機(jī)器學(xué)習(xí)算法嚴(yán)重依賴于標(biāo)記數(shù)據(jù)來(lái)學(xué)習(xí)如何有效地分類惡意行為和正常行為[152]。然而,獲取關(guān)于惡意行為的數(shù)據(jù)是具有挑戰(zhàn)性和危險(xiǎn)的,特別是當(dāng)我們被要求對(duì)生產(chǎn)系統(tǒng)發(fā)起真正的攻擊,并將用戶、應(yīng)用程序和系統(tǒng)置于危險(xiǎn)之中時(shí)。為了解決這個(gè)問(wèn)題,我們可能需要有一種有效的方法來(lái)合成新的惡意軟件和增加我們的訓(xùn)練數(shù)據(jù),以改進(jìn)基于機(jī)器學(xué)習(xí)的mds。
生成模型如生成對(duì)抗網(wǎng)絡(luò)(GANs)[153]可以用于生成合成惡意軟件,并通過(guò)增強(qiáng)惡意軟件訓(xùn)練集,提高基于機(jī)器學(xué)習(xí)的MDS的檢測(cè)精度。我們鼓勵(lì)研究人員調(diào)查GANs的使用,它在產(chǎn)生高質(zhì)量的新合成數(shù)據(jù)方面顯示出前所未有的能力,以產(chǎn)生惡意軟件變體。特別是,他們需要設(shè)計(jì)新的算法,以有效地訓(xùn)練存儲(chǔ)庫(kù)中現(xiàn)有的惡意軟件,以便學(xué)習(xí)如何生成它們的變體。為此,研究人員需要收集大量由不同屬性(漏洞、目標(biāo)用戶、目標(biāo)主機(jī)等)組成的惡意軟件樣本。從公共領(lǐng)域來(lái)的。由于GANs只定義為實(shí)值的、連續(xù)的數(shù)據(jù),而惡意軟件的設(shè)計(jì)是基于離散的令牌(字節(jié))序列,因此,在原始的GANs理論上應(yīng)該應(yīng)用特殊的擴(kuò)展。例如,我們可能需要將GANs與遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)集成來(lái)解決排序數(shù)據(jù)[154]的問(wèn)題。此外,為了解決離散數(shù)據(jù)的問(wèn)題,我們可能需要在每個(gè)分類變量中并行放置一個(gè)密集的層,然后激活Gumbel-Softmax和一個(gè)連接來(lái)得到最終的輸出[155]。
8、結(jié)論
在本文中,我們提供了一個(gè)全面的調(diào)查的出版物,有助于惡意軟件分類和成分分析。在我們的工作中,有四個(gè)主要的貢獻(xiàn)。首先,我們提出了一個(gè)基于三個(gè)維度的評(píng)審論文的組織方法:分析的目的(惡意軟件分類或成分分析),從樣本中獲得的特征的類型,以及用于操縱這些特征的算法。其次,我們對(duì)現(xiàn)有的惡意軟件分類和組合分析技術(shù)進(jìn)行了比較分析,同時(shí)根據(jù)建議的分類法構(gòu)建它們。第三,我們確定了與惡意軟件分類和成分分析相關(guān)的主要問(wèn)題和挑戰(zhàn)。最后,我們確定了所討論的領(lǐng)域中的一些突發(fā)主題,如協(xié)作惡意軟件分析系統(tǒng),并提供了關(guān)于如何改進(jìn)解決方案以應(yīng)對(duì)新挑戰(zhàn)的指導(dǎo)方針。
上述貢獻(xiàn)有效地解決了文獻(xiàn)中一些有趣的研究空白。但仍有一些問(wèn)題有待進(jìn)一步研究和研究。以下研究途徑可以進(jìn)一步探索,以實(shí)現(xiàn)更好的準(zhǔn)確性和有效的解決方案相比,最先進(jìn)的。第一個(gè)途徑是設(shè)計(jì)合作的MDS來(lái)解決關(guān)于惡意軟件的知識(shí)有限和不完整的問(wèn)題。通過(guò)協(xié)作,MDS可以咨詢其他可疑惡意軟件,提高決策的準(zhǔn)確性。為此,我們確定了在合作的MDS中應(yīng)該解決的三個(gè)挑戰(zhàn):可信度、公平性和可持續(xù)性。其次,通過(guò)從樣本中自動(dòng)提取魯棒特征,設(shè)計(jì)魯棒MDS。該解決方案不僅能夠適應(yīng)已知惡意軟件的未知變體,還能夠適應(yīng)未知惡意軟件的未知變體。此外,解決方案應(yīng)該是對(duì)抗性攻擊。最后,通過(guò)使MDS能夠綜合生成新的惡意代碼和良性代碼,以提高基于機(jī)器學(xué)習(xí)的惡意軟件分類方法的準(zhǔn)確性。
總結(jié)
以上是生活随笔為你收集整理的基于AI恶意软件分类技术(5)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么很多毕业生逃不过被大型IT培训机构
- 下一篇: 达摩院年终预测出炉:AI for Sci