胡綱
關(guān)鍵詞:網(wǎng)絡(luò)安全;惡意軟件檢測(cè)方法;分類(lèi);特征
1引言
現(xiàn)代信息技術(shù)高速發(fā)展,一切都在適應(yīng)數(shù)字化浪潮,而不是人工工作方式。技術(shù)有其優(yōu)缺點(diǎn),科技使人類(lèi)的生活更便捷,也會(huì)出現(xiàn)網(wǎng)絡(luò)被攻擊、數(shù)據(jù)丟失,使隱私數(shù)據(jù)被人濫用的現(xiàn)象。因此,在如今的網(wǎng)絡(luò)世界中,設(shè)備的安全非常重要。而且,互聯(lián)網(wǎng)的使用量與日俱增,互聯(lián)網(wǎng)被廣泛使用的一個(gè)缺點(diǎn)是許多計(jì)算機(jī)系統(tǒng)很容易受到攻擊,并感染上惡意軟件病毒。惡意軟件有不同的名稱(chēng),如惡意代碼、惡意程序或惡意可執(zhí)行文件,目的是破壞計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)保密性、完整性和可用性,甚至可以在用戶(hù)不知情的情況下改變和刪除系統(tǒng)、數(shù)據(jù)。
2惡意軟件的類(lèi)型
2.1病毒
病毒將其惡意代碼附著在干凈的代碼上,等待用戶(hù)或自動(dòng)程序來(lái)執(zhí)行它們。類(lèi)似于生物病毒,它可以快速而廣泛地傳播,對(duì)計(jì)算機(jī)的核心部分造成損害。
2.2蠕蟲(chóng)
蠕蟲(chóng)的名字來(lái)自于它們感染系統(tǒng)的方式。從一臺(tái)被感染的機(jī)器開(kāi)始,它在網(wǎng)絡(luò)中穿行,連接到其他機(jī)器以繼續(xù)傳播、感染。這種類(lèi)型的惡意軟件可以非常迅速地感染整個(gè)設(shè)備網(wǎng)絡(luò)。
2.3木馬/特洛伊
這種類(lèi)型的惡意軟件隱藏在合法軟件中,或?qū)⒆约簜窝b成合法軟件。它將通過(guò)創(chuàng)建后門(mén),讓其他惡意軟件變種輕松訪(fǎng)問(wèn),從而破壞網(wǎng)絡(luò)安全[1]。
2.4間諜軟件
間諜軟件隱藏在計(jì)算機(jī)的后臺(tái),這種類(lèi)型的惡意軟件會(huì)在用戶(hù)不知情的情況下收集信息,如信用卡資料、密碼和其他敏感信息。間諜軟件是直接或不經(jīng)意地安裝在計(jì)算機(jī)上的軟件。雖然間諜軟件與木馬/特洛伊程序類(lèi)似,但它卻被包裝成另一個(gè)程序。
2.5勒索軟件
勒索軟件也被稱(chēng)為恐嚇軟件,它的破壞性是很大的。它不僅能夠鎖定網(wǎng)絡(luò)并鎖住用戶(hù),直到支付贖金,而且它已經(jīng)把當(dāng)今世界上一些最大的組織作為目標(biāo)。
2.6隱蔽式劫持
隱蔽式劫持主要針對(duì)一些新型的加密應(yīng)用,如劫持“加密貨幣”,即指未經(jīng)授權(quán)使用他人的計(jì)算機(jī)來(lái)挖掘加密貨幣。密碼劫持是攻擊者強(qiáng)迫用戶(hù)提供比特幣的另一種方式,只是它在用戶(hù)不一定知情的情況下發(fā)揮作用。而且,加密挖礦的惡意軟件會(huì)感染用戶(hù)計(jì)算機(jī),利用用戶(hù)的CPU周期來(lái)挖取比特幣,為攻擊者牟利。挖礦軟件可能在用戶(hù)的操作系統(tǒng)的后臺(tái)運(yùn)行,甚至作為瀏覽器窗口的JavaScript。
2.7惡意廣告
惡意廣告是利用合法的廣告或廣告網(wǎng)絡(luò),暗中向無(wú)保護(hù)的用戶(hù)計(jì)算機(jī)提供惡意軟件。例如,網(wǎng)絡(luò)犯罪分子可能花錢(qián)在一個(gè)合法網(wǎng)站上投放廣告,當(dāng)用戶(hù)點(diǎn)擊該廣告時(shí),廣告中的代碼要么將他們重新定向到一個(gè)惡意網(wǎng)站,要么在他們的計(jì)算機(jī)上安裝惡意軟件。在某些情況下,嵌入廣告的惡意軟件可能在用戶(hù)沒(méi)有任何行動(dòng)的情況下自動(dòng)執(zhí)行。
2.8空文件
空文件的惡意軟件攻擊不會(huì)下載惡意文件或向磁盤(pán)寫(xiě)入任何內(nèi)容破壞系統(tǒng)。攻擊者只是利用易受攻擊的應(yīng)用程序,將惡意代碼直接注入主內(nèi)存,還可以利用受信任和廣泛使用的應(yīng)用程序,如利用微軟辦公室或Windows操作系統(tǒng)中的管理工具(如PowerShell和WMI)來(lái)運(yùn)行腳本,并將惡意代碼直接加載到易失性?xún)?nèi)存中。
2.9隱形惡意軟件
隱性病毒是一種隱藏的計(jì)算機(jī)病毒,它可以攻擊操作系統(tǒng)進(jìn)程,還能避開(kāi)典型的反病毒或反惡意軟件掃描。隱性病毒隱藏在文件、分區(qū)和啟動(dòng)扇區(qū)中,善于故意躲避檢測(cè)。隱形惡意軟件根據(jù)其隱藏的內(nèi)容有不同的類(lèi)型,即Rootkits、代碼突變、反模擬、目標(biāo)機(jī)制。
Rootkit可以通過(guò)用戶(hù)模式掛接、內(nèi)核模式掛接或結(jié)合兩者的混合方式來(lái)注入惡意代碼[2]。代碼突變是指惡意軟件改變其代碼,利用突變引擎躲避反病毒軟件,但它可以通過(guò)仿真檢測(cè)。另一種隱蔽的惡意軟件反仿真在仿真環(huán)境中運(yùn)行時(shí)表現(xiàn)不同。它們可以感知環(huán)境并根據(jù)環(huán)境改變行為。隱形惡意軟件的目標(biāo)機(jī)制只在選定的系統(tǒng)上運(yùn)行和傳播。對(duì)于基于組件和基于模式的隱形惡意軟件有不同的應(yīng)對(duì)措施。為了檢測(cè)基于組件的隱性惡意軟件,可以使用簽名和啟發(fā)式方法檢測(cè)鉤技術(shù),這導(dǎo)致高假陽(yáng)性率或跨視圖檢測(cè)和基于規(guī)范的方法被濫用,其中API調(diào)用的輸出與旨在做同樣事情的低級(jí)調(diào)用進(jìn)行比較。另外一種對(duì)策是使用硬件解決方案,其中一臺(tái)干凈的機(jī)器可以用來(lái)監(jiān)測(cè)另一臺(tái)機(jī)器是否存在Rootkits/隱性惡意軟件。虛擬化技術(shù)也能夠檢測(cè)隱性惡意軟件,但它們也容易受到反變異惡意軟件的影響。對(duì)于檢測(cè)基于模式的隱性惡意軟件,可以使用基于簽名、行為、啟發(fā)式和模型的技術(shù)。圖1為惡意軟件的幾大類(lèi)型。
3惡意軟件檢測(cè)
惡意軟件檢測(cè)有多個(gè)階段,它們共同作用于惡意軟件的檢測(cè)或分類(lèi)。以前的研究主要集中在Windows、智能手機(jī)和嵌入式系統(tǒng)(IOT)的惡意軟件檢測(cè)上。如今,對(duì)智能手機(jī)中的惡意軟件檢測(cè)的研究正在增多。由于新的研究是基于惡意軟件日益增長(zhǎng)的復(fù)雜性而進(jìn)行的,因此惡意軟件的檢測(cè)方法也在日益改變。但所有的研究中,主要的惡意軟件檢測(cè)過(guò)程基本保持不變。
3.1惡意軟件的檢測(cè)技術(shù)
3.1.1基于簽名的檢測(cè)
模式匹配是惡意軟件檢測(cè)中最常見(jiàn)的方法,而基于簽名的檢測(cè)是該領(lǐng)域最流行的方法。簽名是每個(gè)文件的獨(dú)特特征,類(lèi)似于可執(zhí)行文件的指紋?;诤灻姆椒ㄊ褂脧母鞣N惡意軟件中提取的模式來(lái)識(shí)別它們,比其他任何方法都更快且更有效。這些簽名通常是以特別敏感的方式提取出來(lái)的,因?yàn)槭仟?dú)一無(wú)二的,所以使用簽名檢測(cè)方法的錯(cuò)誤率很低。其中,低錯(cuò)誤率是大多數(shù)普通商業(yè)反病毒軟件使用這種技術(shù)的主要原因。但這些方法無(wú)法檢測(cè)未知的惡意軟件變體,而且需要大量的人力、時(shí)間和金錢(qián)來(lái)提取獨(dú)特的簽名。
3.1.2基于行為的檢測(cè)
基于行為的惡意軟件檢測(cè)技術(shù)通過(guò)觀察程序的行為,就可以得出它是惡意軟件的結(jié)論。由于基于行為的技術(shù)觀察可執(zhí)行文件的行為,它們不容易受到基于簽名技術(shù)的缺點(diǎn)的影響。簡(jiǎn)單而言,基于行為的檢測(cè)器通過(guò)檢查一個(gè)程序的行為,而不是它所說(shuō)的內(nèi)容來(lái)斷定它是否是惡意的。在這些方法中,具有相同行為程序被收集起來(lái)。因此,單一的行為簽名可以識(shí)別各種惡意軟件的樣本。這些類(lèi)型的檢測(cè)機(jī)制有助于檢測(cè)不斷產(chǎn)生新的變種的惡意軟件,因?yàn)樗鼈兛偸且灶?lèi)似的方式使用系統(tǒng)資源和服務(wù)。基于行為的檢測(cè)器基本上由以下部分組成。
(1)數(shù)據(jù)收集器:該組件收集關(guān)于可執(zhí)行文件的動(dòng)態(tài)/靜態(tài)信息。
(2)解釋器:該組件將數(shù)據(jù)收集模塊收集的原始信息轉(zhuǎn)換為中間表示。
(3)匹配器:該組件用于將相關(guān)表示法與行為簽名進(jìn)行比較。
3.1.3基于啟發(fā)式的檢測(cè)
在啟發(fā)式方法中,檢測(cè)器使用簽名和行為技術(shù)的特征來(lái)檢測(cè)惡意軟件。它使用的特征包括API調(diào)用、CFC、操作碼、n-gram,DLLs列表和其他混合特征。這種技術(shù)可以使用任何機(jī)器學(xué)習(xí)算法來(lái)訓(xùn)練和測(cè)試模型,并對(duì)惡意軟件進(jìn)行分類(lèi)或檢測(cè)[3]。它在一定程度上檢測(cè)零日惡意軟件的準(zhǔn)確率很高,但它不能檢測(cè)復(fù)雜的惡意軟件。為了克服簽名和基于行為的惡意軟件檢測(cè)方法的缺點(diǎn),有研究給出了關(guān)于啟發(fā)式檢測(cè)方法和機(jī)器學(xué)習(xí)算法的調(diào)查,對(duì)API調(diào)用、CFC,N-gram,Opcode[4]和混合特征做了詳細(xì)研究,其使用機(jī)器學(xué)習(xí)算法來(lái)生成一個(gè)與簽名相似的模式?;谠摵灻?,新的可疑程序被標(biāo)記為惡意軟件或良性軟件。
3.1.4基于深度學(xué)習(xí)的檢測(cè)
深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)工程( ANN)的一部分或子領(lǐng)域,能夠在沒(méi)有人類(lèi)監(jiān)督的情況下學(xué)習(xí),從非結(jié)構(gòu)化和無(wú)標(biāo)簽的數(shù)據(jù)中汲取營(yíng)養(yǎng)。其主要用于減少惡意軟件檢測(cè)中的特征[5]。有研究者提出DL-Droid是一個(gè)使用動(dòng)態(tài)分析和有狀態(tài)輸入生成的應(yīng)用程序,用于檢測(cè)Android系統(tǒng)中的惡意軟件,并使用深度學(xué)習(xí)系統(tǒng)對(duì)有狀態(tài)輸入生成方法的檢測(cè)性能和代碼覆蓋率與常用的無(wú)狀態(tài)方法比較[6]。
3.1.5基于物聯(lián)網(wǎng)和移動(dòng)的檢測(cè)
物聯(lián)網(wǎng)( LoT)設(shè)備是指連接互聯(lián)網(wǎng)的智能設(shè)備,如家用電器、網(wǎng)絡(luò)攝像機(jī)和傳感器。由于移動(dòng)設(shè)備和物聯(lián)網(wǎng)設(shè)備在用戶(hù)中日益流行,它們也成為攻擊者更喜歡的目標(biāo)。正因如此,惡意軟件檢測(cè)模式正在從計(jì)算機(jī)領(lǐng)域向物聯(lián)網(wǎng)和移動(dòng)設(shè)備領(lǐng)域轉(zhuǎn)變。有研究對(duì)目前所有已知的物聯(lián)網(wǎng)惡意軟件家族進(jìn)行了分析,并將這項(xiàng)工作作為開(kāi)源母版上傳,使用細(xì)粒度特征的Android系統(tǒng)惡意軟件檢測(cè),它利用應(yīng)用程序使用的權(quán)限作為靜態(tài)特征,評(píng)估了1700個(gè)良性應(yīng)用程序和1600個(gè)惡意應(yīng)用程序,達(dá)到了94.50-/0的TP率。3.1.6基于模型檢查的檢測(cè)
在這種檢測(cè)方法中,惡意軟件的行為是手動(dòng)提取的,并使用線(xiàn)性時(shí)間邏輯( LTL)對(duì)行為組進(jìn)行編碼,以顯示軟件特征。程序行為是通過(guò)查看一個(gè)或多個(gè)系統(tǒng)調(diào)用的流程關(guān)系來(lái)創(chuàng)建的,并通逋使用隱藏、傳播和注入等屬性來(lái)定義行為。通過(guò)比較這些行為,可以確定該程序是惡意軟件還是良性軟件?;谀P蜋z查的檢測(cè)可以在一定程度上檢測(cè)一些新的惡意軟件,但不能檢測(cè)所有新一代的惡意軟件。3.1.7機(jī)器學(xué)習(xí)算法
大多數(shù)檢測(cè)使用不同類(lèi)型的機(jī)器學(xué)習(xí)算法進(jìn)行分類(lèi)和檢測(cè)。對(duì)于惡意軟件的檢測(cè),我們可以根據(jù)文件類(lèi)型應(yīng)用任何機(jī)器學(xué)習(xí)算法,并根據(jù)準(zhǔn)確性、logloss或其他性能指標(biāo)選擇最佳算法。例如,對(duì)一個(gè)Android文件(apk)進(jìn)行分類(lèi),無(wú)論是惡意的還是合法的,都可以提取權(quán)限、api調(diào)用或系統(tǒng)調(diào)用特征,并可以應(yīng)用任何分類(lèi)算法,如SVM、隨機(jī)森林等,以下是可能影響機(jī)器學(xué)習(xí)算法的因素:數(shù)據(jù)集、特征類(lèi)型、用于選擇最突出特征的特征選擇算法、用于將應(yīng)用程序歸類(lèi)為惡意或干凈的分類(lèi)算法、分類(lèi)器的參數(shù)值(超參數(shù))。4結(jié)束語(yǔ)
本文雖然介紹了7種惡意軟件的檢測(cè)方法,但沒(méi)有一種方法能夠完全檢測(cè)出所有新一代的惡意軟件,只有基于行為和模型檢查的檢測(cè)方法可以在一定程度上抵御混淆。結(jié)果顯示,基于深度學(xué)習(xí)和云計(jì)算的方法也能很好地檢測(cè)部分惡意軟件,但它們不能完全檢測(cè)所有類(lèi)型的惡意軟件。