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