<ol id="ebnk9"></ol>
    1. 惡意代碼檢測技術研究綜述

      發布時間:2025-07-13 20:53:28   來源:心得體會    點擊:   
      字號:

      郭沁怡

      摘要:惡意代碼的危害性逐漸增大,且已威脅到網絡和信息安全。該文歸納了目前較為常見的三種惡意代碼檢測方法,并討論了每種方法的優缺點,最后對當前檢測技術所面臨的問題進行總結,并闡述了未來可能的研究方向,旨在為惡意代碼檢測技術的發展提供幫助。

      關鍵詞:檢測技術;
      惡意代碼;
      傳統方法;
      機器學習;
      深度學習

      中圖分類號:TP311.12? ? ? ? 文獻標識碼:A

      文章編號:1009-3044(2023)13-0079-03

      開放科學(資源服務)標識碼(OSID)

      0 引言

      互聯網的快速發展豐富了人們的生活,給人們帶來了便利,但也存在著不可避免的安全風險。由于計算機技術的發展,因黑客攻擊而導致財產損失的案例越來越多,而惡意代碼是最常見的攻擊手段之一。惡意代碼與正常代碼的區別在于,惡意代碼是為特定的惡意目的而編寫的計算機程序,通常是將其與正常的計算機程序相結合,并選擇在特定環境下執行其功能。個人、社會乃至國家都將面臨惡意代碼帶來的嚴重危害。因此,惡意代碼檢測問題不僅是防范的重點,同時也是一大難題。目前網絡安全領域也將重點放在如何精準高效地檢測出惡意代碼。

      1 傳統惡意代碼檢測方法

      惡意代碼,又稱惡意軟件,是可以對用戶、計算機或網絡造成各種傷害的軟件。通過手動分析惡意代碼的具體特征來檢測惡意軟件,不僅費時,而且檢測效率低,不實用。傳統的惡意代碼檢測可分三種:啟發式檢測法﹑簽名檢測法和行為特征檢測法。

      1.1 啟發式檢測法

      啟發式檢測方法主要是將上層系統信息和從內核獲得的系統狀態進行對比,以此來檢測隱藏的文件、進程和注冊表信息[1],還有關于通過監測特定系統資源來檢測惡意代碼的研究。啟發式檢測主要分為兩種檢測方法:靜態啟發式檢測和動態啟發式檢測。

      靜態啟發式檢測技術依賴于對代碼片段的分析來檢測病毒。通過對文件外部的靜態信息進行分類,結合病毒的感染形式,模擬對代碼執行過程的跟蹤,以確定其是否為病毒。動態啟發式檢測是基于反病毒的VM技術。通過模擬英特爾處理器、計算機硬件組件(內存、硬盤等)和Windows操作系統,建立一個反病毒虛擬機,然后將需要檢測和執行的程序加載到模擬系統。兩者比較可以看出,靜態啟發式掃描是一種靜態行為檢測方法,它將病毒可能執行的一些行動作為簽名代碼列入病毒數據庫。而動態啟發式掃描技術多了一項對CPU的模擬。在加密病毒的情況下,直接的靜態啟發式掃描無法檢測到這一點。動態啟發式掃描通過模擬一臺具有基本操作環境的計算機來解決這個問題,首先模擬運行一個可能是病毒的文件,然后在解密病毒后進行靜態啟發式掃描[2]。

      1.2 簽名檢測法

      Android是時下非常流行的移動操作系統,盡管Android系統的開放性受到應用開發者的歡迎,但存在許多安全隱患。當前,Android設備和Windows PC是惡意軟件主要的攻擊目標。檢測Android中的惡意軟件的主要方法是傳統的簽名檢測技術。簽名檢測的原理是將被測應用程序的簽名與已知惡意軟件的簽名進行比較。如果簽名相同,被測應用程序就是惡意軟件。傳統的簽名檢測方法的優點是快速和高效,但在檢測混淆代碼或重新包裝的惡意軟件方面并不有效,因為它只分析被檢測應用程序的整體簽名,只要攻擊者稍微改變代碼,例如名稱,惡意軟件的簽名就會發生重大變化,使傳統的簽名檢測無效[3]。

      1.3 行為特征檢測法

      傳統的檢測方法的優點是一旦識別出惡意代碼的靜態簽名,就可以準確地檢測和刪除,而缺點是在沒有預定的簽名代碼的情況下,無法對未知的惡意代碼進行有效檢測。行為特征檢測是將惡意代碼的行為特征進行定義和抽象化來檢測和捕獲程序的異常行為的方法,以保護操作系統和合法應用程序[4]。一般來說,具有行為特征的惡意代碼檢測系統由四層組成,即行為監測層、行為分析層、行為決策層和聯動響應層以及惡意行為庫[4]。

      行為檢測是基于從惡意代碼中提取的特征。與基于啟發式的檢測方法相比,該方法聚焦在惡意代碼的實際行為,有效避開了只混淆代碼的方法可能帶來的影響,具有效率高、誤報率低的優點,因此在惡意代碼檢測工具中被普遍使用,是目前惡意代碼檢測比較常見的方法[1]。然而,這種方法也有缺點,例如無法防止行為混淆方法,如行為等價替換。

      2 基于機器學習技術的惡意代碼檢測

      機器學習,或使計算機能夠在沒有特殊編程的情況下學習。機器學習是人工智能的一個重要領域,包含了廣泛的模型,有些偏向于符號,有些偏向于連接,有些則兩者都不偏向。在信息安全領域,不同類型的機器學習模型也可用于解決惡意軟件檢測問題。以下是三種傳統機器學習檢測方法:

      1) 支持向量機(SVM) 檢測法

      Android惡意軟件可以通過竊取隱私、耗費流量和抵扣電話費等方式造成嚴重損害,并將用戶置于危險之中。而Android系統使用權限機制來控制應用程序對系統資源和用戶私人信息的訪問,因此, Android應用程序使用的權限與它們的行為密切相關,通過分析權限信息可以有效檢測Android惡意軟件。

      SVM,又名最大邊緣算法,是由Vapnik提出的一種機器學習方法。SVM是以統計學習理論為基礎,將結構風險降到最低,其學習策略是間隔最大化。SVM的特點是有著強泛化能力,能夠解決小樣本、高密度和非線性問題。支持向量機的原理是在正負數據中找到最優超平面,使這個超平面能最大限度地將正負數據的分布展現出來,如圖1所示[5]。

      在圖1中, H是最優超平面,H1和H2分別是兩個平行于H的支持平面, margin是H1和H2之間的距離[5]。原則上,SVM避免了傳統的歸納和推理過程,允許從訓練模型到預測模型的高效“過渡性推理”,大大簡化了傳統的分類和回歸問題[6]。然而,這種方法有一些缺點,例如,很難將SVM算法應用于大型訓練樣本。由于SVM算法在求解支持向量時運用二次規劃,過程中需要計算一個m階的矩陣(m為樣本數),對于大量的m來說,存儲和計算這個矩陣會消耗大量的內存和計算時間。

      2) 決策樹檢測方法

      在機器學習中,決策樹是一種樹狀結構,其中葉節點代表類別,非葉節點代表定義類別的屬性。決策樹是一個預測模型,提供了屬性和類別之間的映射[7]。樹上的每個節點代表被測試對象的一個屬性,節點之間的分叉路徑代表測試某個特定屬性的結果,最后的預測也只能在決策樹的葉子節點上顯示。

      決策樹模型以前被用來從惡意應用分類的未知文件中提取靜態信息,但基于神經網絡的模型有固有的缺點。首先,無法知道哪些信息在網絡的輸入層起著關鍵作用,導致需要收集所有的數據供已形成的網絡模型使用,這不僅限制了處理,也使已形成的網絡模型中包含的知識無法被提取并用于其他相關項目。其次,神經網絡所需的樣本數量不應過大,因為輸入節點的元數據,即可以提取的PE文件的數量很難與隱藏層的數量相匹配,盡管有經驗理論可能會提供一些指導,但在應用于具有“變化粒度”的多層次模型時,就會更加復雜。然而,決策樹可以用來彌補神經網絡的這些缺點,它可以通過統計方法獲得數據,有著評估過程中快速而直觀的優點。

      3) 隨機森林檢測法

      隨機森林是一個分類器,包含幾個隨機構建的決策樹。當有輸入時,幾棵樹分別評估,最終的分類結果是由匹配過程得到的。隨機森林有能力對許多類型的信息產生非常準確的分類器,減少泛化和錯誤,而且學習過程很快[7]。

      隨機森林結合了“Bootstrap aggregating”想法和“Random Subspace Metho”的想法,其中隨機性體現在樣本和特征中。前者對于確保每棵樹都有隨機數量的特征很有用,而后者則有助于保證樣本分裂的多樣性。與決策樹相比,隨機森林作為一種由弱分類器整合而成的強分類器的組合式分類器,在有效降低風險、抗噪聲、分類器更好地泛化以及減少過擬合等方面具有優勢。在建立隨機森林的過程中,必須經歷兩個階段,第一階段是森林生成階段,第二階段是決策階段。

      隨著研究的深入,使用機器學習從大量的數據中提取潛在的價值,并發現數據中信息之間的關聯性,正在吸引越來越多的關注。最近的研究集中在如何將大數據挖掘、機器學習和深度神經網絡的知識與大量的惡意代碼實例相結合進行檢測[8]?,F階段,研究學者對惡意代碼的探索基本上都是應用數據分析和機器學習。根據機器學習的檢測方法可以分成兩階段:從海量信息中提取特征與建立檢測模型。Bayer等人[9]提出了基于概率的聚類算法來檢測惡意代碼,用局部敏感哈希來表示惡意代碼行為信息。這類聚類算法方法能夠很好地尋找最近鄰。Shabtai等人[10]依據惡意代碼的靜態數據特點,提出了一種用于惡意代碼檢測的機器學習模型,達到了相對較高的準確度和較低的漏報率。該方法運用N-Gram優化算法獲取惡意代碼的命令層和字節數層特點,并用多分類器進行訓練,對這些分類器的分類結果使用一種主動學習機制以及加權算法。Sun等人[11]等給出了一種基于靜態數據特征提取的惡意代碼檢測方法。該方法獲取字節碼、PE文檔、匯編代碼的特點,挑選8個分類器模型從而找尋最理想的分類器。經過特征融合后,隨機森林分類器最終獲得了93.56%的F1分數。

      使用機器學習檢測惡意代碼的技術方面涉及兩個關鍵點:特征提取和檢測分類模型的選擇。在特征提取層面,找尋更好的特征提取方法;
      在模型選擇方面,找到更好的分類算法模型和檢測準確率。因而,傳統式機器學習檢測方法的主要缺點是隨機森林(RF) 、SVM算法(Support Vector Machines) 、決策樹算法(DT) 等分類器模型較為簡單。這種模型不能全自動高效地獲取惡意代碼更深層次的特征,并且基于機器學習的惡意代碼檢測依賴于人工特征提取,不能完全準確地描述惡意代碼。而特征提取大大影響了惡意代碼檢測的結果,導致惡意代碼檢測的準確率較低等問題[8]。

      3 基于深度學習技術的惡意代碼檢測方法

      深度學習算法可以將處理過的惡意軟件數據作為檢測或分類的輸入,為最終檢測或分類進行高效的特征提取。

      卷積神經網絡(CNN) 是一類包含卷積計算且具有深度結構的前饋神經網絡[12],常用于視覺圖像分析。卷積神經網絡在各領域被廣泛應用,如圖像處理、自然語言處理、文本處理及惡意軟件檢測等。

      卷積神經網絡通常由輸入層、卷積層、池化層以及全連接層組成。各種常規神經網絡的結構基本相同。如圖2所示,在卷積神經網絡中,首先輸入層輸入數據,通過卷積層對輸入數據進行計算得到輸入數據的特征空間。其次,池化層用于篩選特征空間中的突出特征,經過幾次反復的卷積和融合,得到輸入數據的最終特征空間。最后,提取的特征空間被用作全連接層的輸入。全連接層的主要功能是完成從輸入數據到標簽的映射,以實現分類目標。

      對于機器學習算法檢測技術性的缺點,深度學習模型可以全自動獲取惡意代碼更深層次的特征,更準確地描述惡意代碼。因而,根據深度學習的惡意代碼檢測理論是這兩年的新研究趨勢。Yujie Fan[13]利用惡意代碼的指令層操作碼序列特征來發現惡意代碼操作碼序列模式,根據神經網絡算法來高效地檢測惡意代碼。Pascanu等人[14]獲得了惡意代碼語義層系統的序列特征,并根據遞歸神經網絡對惡意代碼進行檢測分類。試驗結果顯示,自動門遞歸算法模塊351(GRU) 和LSTMl36模型具有較好的分類特性。Cui Z等人[15]將惡意代碼的特征展示在二值圖像中,運用CNN全自動獲取惡意代碼圖像的特征,對圖片進行歸類從而達到惡意代碼檢測的目的。

      深度學習發展趨勢十分迅速,近些年,根據深度學習的惡意代碼檢測研究逐漸增加。利用深度學習模型,例如CNN、RNN、深層置信網絡等模型,成了一個新的研究領域,其檢測效果很好。但是,傳統的基于深度學習的惡意代碼檢測方式存在劣勢。因為惡意代碼特征序列長度并不是相對穩定的,所以在單用LSTM作為惡意代碼的檢測模型的情形下,LSTM模型不能獲取較長序列的特征信息內容;
      單用卷積和神經系統模型作為惡意代碼的檢測和分類模型時,通過CNN訓練后,特征與前后文不相干,會嚴重影響檢測實際效果。

      4 結束語

      惡意代碼作為一種強有力的網絡攻擊工具,從竊取數據和身份信息、損壞系統和數據信息以及拒絕服務等多方面對個人、組織機構和國家構成了重大威脅。惡意代碼的檢測是一個至關重要的研究方向,雖然,研究者們在惡意代碼檢測技術方面取得了很大的進展,但是各種新型的惡意代碼不斷涌現[16],因此,基于圖像紋理特征的惡意代碼檢測將具有極高的應用場景和研究價值。在未來的研究中可以探討的兩個方面是:首先,可以研究新型的惡意代碼可視化技術,將圖像中獨特的家族特征納入其中,并利用GAN來解決數據集分布不均的問題,提高模型的通用性;
      其次,目前檢測方法中使用的深度學習模型主要是CNN和RNN,未來的研究可以考慮結合數據可視化、圖像處理、GAN以及GCN技術來更有效地檢測新的惡意代碼[17]。

      參考文獻:

      [1] 王蕊,馮登國,楊軼,等.基于語義的惡意代碼行為特征提取及檢測方法[J].軟件學報,2012,23(2):
      378-393.

      [2] 陳月玲.基于程序語義的計算機病毒檢測方法[D].青島:青島大學, 2007.

      [3] 寧卓,邵達成,陳勇,等.基于簽名與數據流模式挖掘的Android惡意軟件檢測系統[J].計算機科學,2017,44(B11):317-321.

      [4] 左黎明,湯鵬志,劉二根,等.基于行為特征的惡意代碼檢測方法[J].計算機工程,2012,38(2):
      129-131.

      [5] 張玉玲,尹傳環.基于SVM的安卓惡意軟件檢測[J].山東大學學報(工學版),2017,47(1):
      42-47.

      [6] 王義鋒.基于XGBoost+RF的個人信貸風險預測研究[D].重慶:重慶大學,2020.

      [7] 戴逸輝,殷旭東.基于隨機森林的惡意代碼檢測[J].網絡空間安全,2018,9(2):70-75.

      [8] 陳克.基于深度學習的惡意代碼檢測技術研究[D].北京:北京交通大學,2020.

      [9] Bayer U, Comparetti P M, Hlauschek C, et al. Scalable, behavior-based malware clustering[C]//NDSS,2009:8-11.

      [10] Shabtai A,Moskovitch R,Elovici Y,et al.Detection of malicious code by applying machine learning classifiers on static features:a state-of-the-art survey[J].Information Security Tech Report,2009,14(1):16-29.

      [11] Sun B W,Li Q,Guo Y H,et al.Malware family classification method based on static feature extraction[C]//2017 3rd IEEE International Conference on Computer and Communications (ICCC).December 13-16,2017,Chengdu,China.IEEE,2018:507-513.

      [12] 何景暉,敖銀輝,趙偉良.光纜交接箱端口狀態的視覺檢測方法[J].微處理機,2021,42(2):53-57.

      [13] Yujie,Fan.Malicious sequential pattern mining for automatic malware detection[J].Expert Systems With Applications,2016(52):16-25.

      [14] Pascanu R,Stokes J W,Sanossian H,et al.Malware classification with recurrent networks[C]//2015 IEEE International Conference on Acoustics,Speech and Signal Processing (ICASSP).April 19-24,2015,South Brisbane,QLD,Australia.IEEE,2015:1916-1920.

      [15] Cui Z H,Xue F,Cai X J,et al.Detection of malicious code variants based on deep learning[J].IEEE Transactions on Industrial Informatics,2018,14(7):3187-3196.

      [16] 韓曉光.惡意代碼檢測關鍵技術研究[D].北京:北京科技大學, 2015.

      [17] 李豪,錢麗萍.惡意代碼可視化檢測技術研究綜述[J].軟件導刊,2022,21(5):
      9-16.

      【通聯編輯:代影】

      猜你喜歡機器學習檢測技術深度學習MOOC與翻轉課堂融合的深度學習場域建構新教育時代·教師版(2016年23期)2016-12-06大數據技術在反恐怖主義中的應用展望法制與社會(2016年32期)2016-12-01基于網絡搜索數據的平遙旅游客流量預測分析時代金融(2016年27期)2016-11-25公路工程試驗檢測存在的問題及措施價值工程(2016年30期)2016-11-24煤礦機電產品檢測技術科學與財富(2016年15期)2016-11-24前綴字母為特征在維吾爾語文本情感分類中的研究科教導刊(2016年26期)2016-11-15深度學習算法應用于巖石圖像處理的可行性研究軟件導刊(2016年9期)2016-11-07基于深度卷積網絡的人臉年齡分析算法與實現軟件工程(2016年8期)2016-10-25基于支持向量機的金融數據分析研究科學與財富(2016年28期)2016-10-14淺談現代汽車檢測技術與安全管理科技視界(2016年20期)2016-09-29
      国产另类无码专区|日本教师强伦姧在线观|看纯日姘一级毛片|91久久夜色精品国产按摩|337p日本欧洲亚洲大胆精

      <ol id="ebnk9"></ol>