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