• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于深度學習的惡意軟件檢測技術研究①

    2023-05-30 13:23:38王海寬
    關鍵詞:多態(tài)靜態(tài)加密

    王海寬

    (晉城職業(yè)技術學院,山西 晉城 048026)

    0 引 言

    隨著互聯(lián)網(wǎng)科技的高速發(fā)展,網(wǎng)絡也開始慢慢滲透到了人類的日常生活,并變成了許多人生活中不可或缺的部分。不過,網(wǎng)絡本身所具備的開放性也給使用者提供了極大的安全隱患。很多非授權的攻擊者對網(wǎng)絡進行入侵,從而實現(xiàn)不法獲利的目的,這里面最普遍的表現(xiàn)形式之一就是惡意軟件[1]。

    惡意軟件,一般指的是在未明確提醒使用或沒有應用授權的情形下,在用戶電腦或其他終端上強制安裝程序,執(zhí)行非法負載,嚴重損害了用戶合法權益的應用軟件。它通常具備以下特征:自動運行,強制安裝,難以卸載,非法獲取用戶個人信息和其它損害用戶知情權和選擇權的故意行為[2]。

    惡意軟件有不同的類型,包括病毒、蠕蟲、特洛伊木馬、Rootkit和勒索軟件等。每一種惡意軟件類型和家族的設計,以不同的方式影響原始的受害者機器,如破壞目標系統(tǒng),允許遠程代碼執(zhí)行,竊取機密數(shù)據(jù)等。

    早期的惡意軟件是為了簡單的目的而編寫的,因此更容易被檢測到,這種惡意軟件可以定義為傳統(tǒng)的惡意軟件。然而,隨著攻擊技術的不斷發(fā)展,可以在內核模式下運行的惡意軟件及其變體越來越常見。這種類型的惡意軟件比傳統(tǒng)的惡意軟件更具破壞性,同時也更加具有隱蔽性,可以被定義為新一代惡意軟件[3]。這類惡意軟件可以很容易地繞過在內核模式下運行的保護軟件,如防火墻、殺毒軟件等。通常,傳統(tǒng)的惡意軟件包含一個進程,不使用復雜的技術隱藏自己。相反,新一代惡意軟件同時使用多個不同的現(xiàn)有或新進程,并使用一些模糊技術隱藏自己,在系統(tǒng)中成為持久的。新一代的惡意軟件可以發(fā)起更具有破壞性的攻擊,如有針對性的和持久的,這是以前從未見過的,并在攻擊期間使用多種類型的惡意軟件[4]。

    首先對惡意軟件中常見的混淆技術做簡單的說明,然后分析常用的惡意軟件混淆技術及特征;其次對惡意軟件監(jiān)測技術加以闡述,并對常用的惡意軟件監(jiān)測方式加以總結;最后提出一種基于計算機視覺與深度學習的Windows惡意軟件同源性檢測方法。

    1 惡意軟件混淆技術

    攻擊者在生成惡意代碼時經常會使用到一些混淆技術來逃避檢測,這給惡意軟件的檢測帶來了很大的挑戰(zhàn)。目前的惡意軟件經常使用到的混淆技術包括加密、寡態(tài)、多態(tài)、變形和打包技術,這使得惡意軟件可以輕松繞過防火墻與殺毒軟件等保護程序。

    1.1 加密(Encryption)

    加密是最簡單的惡意代碼加殼方式,使用加密技術將惡意代碼塊隱藏在其整個代碼段中,通過隱藏惡意代碼段特征來繞過檢測,從而實現(xiàn)惡意軟件的隱蔽性[5]。盡管應用密碼學的相關技術使得檢測器無法直接接觸到惡意軟件,但解碼器被作為新的特征用于加密的惡意軟件檢測。

    1.2 寡態(tài)(Oligomorphic)

    在寡態(tài)方法中,加密和解密惡意軟件的有效載荷時使用不同的密鑰。寡態(tài)的核心在于解碼器,根據(jù)解碼器的不同可以產生不同的惡意代碼變種。這種動態(tài)的特征改變使得經過寡態(tài)方法處理的惡意軟件相比使用加密方法處理的惡意軟件更加難以檢測。但由于解碼器庫有限,產生的惡意軟件變種也是有限的,依然具備一些可以被識別到的特征碼。

    1.3 多態(tài)(Polymorphic)

    在多態(tài)方法中,惡意軟件同樣使用不同的密鑰加密和解密[6],與寡態(tài)方法中使用的密鑰類似。但是,加密的有效負載部分包含解碼器的幾個副本,可以進行多輪層次加密。與寡態(tài)惡意軟件相比,多態(tài)技術通過突變引擎產生不同的解碼器之間的組合,理論上可以產生無數(shù)種惡意軟件變種,使得惡意軟件相比于寡態(tài)技術更難檢測。多態(tài)技術的缺陷在于無法有效應對基于動態(tài)的惡意軟件檢測技術。

    1.4 變形(Metamorphic)

    變形技術又稱為“體多態(tài)”(Body-polymorphic)。在變形方法中,惡意軟件不通過加密技術來隱藏其惡意特征,而使用動態(tài)代碼來實現(xiàn)代碼的混淆。當惡意進程執(zhí)行時,操作碼在每次迭代都會被更改,導致當惡意代碼每次被加載到內存中被執(zhí)行時都是不同的版本,從而逃避基于特征碼的檢測。雖然現(xiàn)有研究表明,對基于變形技術的惡意代碼檢測是NP完全問題[7],但是這也意味著生成并調試這樣的惡意代碼需要付出更大的代價,因此該技術并未被廣泛應用于惡意代碼的加殼中。

    1.5 打包(Packaging)

    打包技術通過壓縮惡意軟件來繞過檢測,或者通過加密來隱藏實際的代碼。要想實現(xiàn)對打包惡意軟件的分析,需要在被分析之前解包。惡意軟件打包的實現(xiàn)可以分為四個部分,包括壓縮機、加密器、保護器和捆綁器。

    2 相關工作

    將常見的惡意軟件檢測方法分為兩類進行介紹:靜態(tài)檢測方法和動態(tài)檢測方法。其中,靜態(tài)的方法會利用文件結構信息(例如:字節(jié)序列)來確定其是否是惡意軟件,動態(tài)的方法會利用程序運行狀態(tài)下的信息(例如:系統(tǒng)堆棧行為)來判定其是否是惡意軟件。將兩者結合來對惡意軟件進行檢測的方法稱為混合態(tài)的方法。

    動態(tài)檢測方法盡管具有非常高的準確率,但需要對已經處于運行狀態(tài)的程序進程進行監(jiān)控,耗時較長且效率較低,不利于對惡意軟件的及時發(fā)現(xiàn)與處理。而靜態(tài)檢測的方法雖然可以很好地彌補這一缺陷,但傳統(tǒng)的靜態(tài)檢測方法往往需要依賴數(shù)量巨大的病毒庫,并且很難檢測出未知的新型惡意軟件,同時,其對于加入了混淆技術的惡意軟件變體也難以準確判斷。

    2.1 靜態(tài)的檢測方法

    在靜態(tài)分析中,文件結構信息(如字節(jié)序列等)被用來揭示惡意軟件的行為,同時防止操作系統(tǒng)在不執(zhí)行它的情況下受到惡意破壞。然而,傳統(tǒng)的靜態(tài)方法往往依賴于大規(guī)模的病毒數(shù)據(jù)庫,因此有時很難識別未知的惡意軟件。此外,在靜態(tài)分析中還有一個致命的問題,當攻擊者使用代碼混淆技術(如二進制打包器、加密或自修改技術)時,惡意軟件的檢測效率不高。

    Schultz等人[8]首次將數(shù)據(jù)挖掘的概念引入惡意軟件的檢測工作當中,相比傳統(tǒng)的基于簽名的檢測方法取得了更高的檢測率。他們使用靜態(tài)特征來識別惡意軟件,這些特征包括可執(zhí)行文件(PE)、字符串和字節(jié)序列。Kruegel等人[9]提出了一種基于二進制碼的控制流圖 (Control Flow Graph)結構信息的指紋技術,用于檢測在互聯(lián)網(wǎng)中傳播并變異的多態(tài)蠕蟲。該研究還表明,控制流圖有一個固有的優(yōu)勢,即指令級別的變化不會影響生成的流圖。Gu等[10]將研究的重點放在惡意文檔中,利用熵分析的思想,結合小波分析的方法,提出了一種基于小波變換的惡意文檔檢測方法。使用小波分析從原始數(shù)據(jù)中提取特征,以檢測復合文檔是否嵌入惡意代碼,該方法可以有效地避免結構變化對檢測結果的影響。隨后,Nguyen等人[11]認為由最先進的二進制分析工具(如IDA Pro)生成的典型CFG格式并不能準確地反映動態(tài)執(zhí)行內容的行為。此外,從二進制文件執(zhí)行和分析CFG的成本非常高,這一缺陷導致形式行為分析方法實際上不適用于實際應用程序。因此,作者在Schultz所作研究的基礎上提出了一種增強形式的CFG用于惡意軟件檢測,將用于描述惡意軟件行為的形式化方法和深度學習技術進行結合。然而,如何有效生成高復雜度的CFG依然是一個問題。

    近年來,靜態(tài)的分析方法通常用來檢測安卓端的惡意軟件。Peiravian等人[12]通過使用權限和API調用作為特征來對每個應用程序進行表示,使用基于人工智能技術的方法來檢測惡意安卓應用程序。這一方法的好處在于它不包括對任何系統(tǒng)的動態(tài)追蹤,而是僅僅使用靜態(tài)分析。作者強調該方法可以推廣到所有移動端APP,并可用于未知APK的識別和分類。

    2.2 動態(tài)的檢測方法

    在動態(tài)分析中,通過分析程序運行狀態(tài)中的信息(如API調用序列)來識別惡意軟件。與靜態(tài)分析相比,動態(tài)分析具有較高的精度,但檢測成本較高。

    Bayer等人[13]提出了一種可以根據(jù)惡意二進制文件的行為,有效地、自動地對大量惡意二進制文件進行聚類的惡意軟件檢測方法。結果表明,這種技術能夠識別和分組行為相似的惡意軟件程序,并取得了較好的精度。幾年后,Huang等人[14]提出了一種用于動態(tài)惡意軟件分類的多任務深度學習架構,在對惡意軟件和正常軟件進行二分類的基礎上,進一步進行惡意軟件的家族分類。他們從惡意和正常軟件的動態(tài)分析中提取數(shù)據(jù),在450萬個文件上進行了訓練,并在200萬個文件的測試集上進行了測試,在訓練規(guī)模上取得較大突破,最終在將二分類錯誤率降低到0.358%,同時將惡意軟件族分類錯誤率降低至2.94%。Kim等人[15]利用惡意軟件的行為序列(API調用序列)和多序列比對(MSA)算法對惡意軟件進行檢測,作者強調,該方法能夠有效檢測使用了混淆、打包、反虛擬化、反仿真、封裝等多種規(guī)避技術的惡意軟件,并實現(xiàn)了較高的準確率。Sethi等人[16]利用Cuckoo沙箱對惡意軟件進行動態(tài)分析,在一個隔離環(huán)境中執(zhí)行惡意軟件,并根據(jù)執(zhí)行過程中的系統(tǒng)活動生成分析報告。然后采用不同的機器學習算法來實現(xiàn)精確的檢測和分類,并通過他們的框架取得了較好的實驗效果。此外,作者還提出了一個特征提取和選擇模塊,該模塊從動態(tài)分析生成的報告中提取特征,并選擇最重要的特征,在確保高精度的同時保重最小的計算成本。Jeon等人[17]將研究的視角放在物聯(lián)網(wǎng)(IoT)中,針對物聯(lián)網(wǎng)的惡意軟件檢測工作,提出了一種IoT惡意軟件檢測的動態(tài)分析方法(DAIMD),對云環(huán)境下的物聯(lián)網(wǎng)惡意軟件進行動態(tài)分析,提取內存、網(wǎng)絡、虛擬文件系統(tǒng)、進程、系統(tǒng)調用等相關行為。作者構建了一種基于操作碼序列的卷積循環(huán)神經網(wǎng)絡,將一個很長的操作碼序列轉換成一個相對較短的壓縮序列。然后利用動態(tài)循環(huán)神經網(wǎng)絡分類器進行預測。

    3 惡意軟件同源性檢測方法研究

    將可視化技術與深度學習相結合并應用于惡意軟件同源性檢測的方法繼承了傳統(tǒng)的惡意軟件檢測技術的優(yōu)點,同時更加高效。可視化技術的可行性在于,大多數(shù)惡意軟件的變體通常是通過使用自動化技術生成的,這些變種的二進制代碼存在一些共通之處,研究者利用這一點將惡意軟件的檢測問題轉化到圖像的識別問題,將軟件的同源性轉化到圖像的相似性[18]。

    3.1 數(shù)據(jù)來源

    所使用的實驗數(shù)據(jù)來自BIG2015數(shù)據(jù)集。BIG 2015惡意軟件數(shù)據(jù)集是一個真實的惡意軟件數(shù)據(jù)集,由Kaggle官方平臺在2015年的惡意軟件分類競賽中所提供,其中包含了來自9個惡意軟件家族的共計10868個惡意軟件樣本,每一個樣本包含一個純凈字節(jié)碼文件(Bytes文件)和一個匯編程序源文件(Asm文件),且均已被標記。其具體信息如表1所示。

    表1 BIG 2015惡意軟件數(shù)據(jù)集描述

    3.2 惡意軟件的可視化方法

    為了將惡意軟件樣本轉化為圖像,將一段惡意代碼以8位無符號整數(shù)讀取并轉化為二維數(shù)組,每8位都映射到一個范圍為[0,255](0:黑色,255:白色)的像素,將整個惡意軟件樣本進行以上處理,并對小于圖像尺寸的樣本進行填充,對大于圖像尺寸的樣本進行裁剪。所使用的圖像大小為224*224*3的RGB彩圖,其所包含的惡意軟件代碼段大小為147KB。

    惡意軟件不同家族樣本經過可視化處理后的圖像如圖1所示。

    3.3 基于Transformer的檢測框架

    深度學習模型表現(xiàn)的提升很大程度上源自于更大、更深的深層神經網(wǎng)絡,但是也需要付出巨大的訓練代價。作為經典的深度學習算法,傳統(tǒng)的卷積神經網(wǎng)絡已經在可視化的惡意軟件識別與家族分類任務中證明了其有效性,但是隨著Vision Transformer(ViT)的出現(xiàn)與應用,一種新的基于Transformer的檢測思路也隨之出現(xiàn)[19]。使用標準的Transformer Encoder,在通過大規(guī)模數(shù)據(jù)集預訓練的情況下用小數(shù)據(jù)集對模型進行微調就已經可以達到和卷積神經網(wǎng)絡一樣甚至更佳的效果。相較于從頭開始訓練一個卷積神經網(wǎng)絡模型而言,這種方法將會更加高效,并且也可以有效提升對惡意軟件的檢測精度。

    此外,Vision Transformer的實現(xiàn)過程基于自注意力機制,能夠幫助模型對重要信息重點關注并充分學習。為了精準高效地對惡意軟件進行識別與家族分類,我們提出了一個將Transformer Encoder作為主干網(wǎng)絡深度學習框架來挖掘惡意軟件同源性特征。

    使用的Transformer結構如下圖2所示。

    圖2 Vision Transformer架構

    3.4 模型訓練

    使用ViT-B16結構,采用ImageNet-21K上的預訓練模型載入初始權重,并訓練50個epoch。

    訓練過程中使用交叉熵損失函數(shù),定義如式(1):

    (1)

    式(1)中K表示分類任務的類別數(shù),在本實驗下K=9。

    按照6:2:2的比例將數(shù)據(jù)集劃分為訓練集,驗證集和測試集。訓練過程中的準確率曲線如下圖3所示,訓練過程中的loss值變化曲線如圖4所示。

    圖3 訓練過程準確率曲線

    圖4 訓練過程loss曲線

    最終得到的模型在測試集上的準確率為95.81%,F1值為95.73%。

    4 結 語

    為了維護用戶的個人財產安全,保護用戶個人隱私,使用戶免受惡意軟件的侵害,惡意軟件的檢測任務所具有的重要性與價值不言而喻。早期的惡意軟件檢測技術無法有效應對日益嚴峻的挑戰(zhàn),隨著時間的推移,研究人員提出了新的方法,數(shù)據(jù)挖掘和機器學習(ML)算法也開始廣泛應用于惡意軟件檢測。近年來,深度學習、云等新方法相繼被提出,并逐漸應用于移動設備、物聯(lián)網(wǎng)等領域。

    動態(tài)檢測方法盡管具有非常高的準確率,但需要對已經處于運行狀態(tài)的程序進程進行監(jiān)控,耗時較長且效率較低,不利于對惡意軟件的及時發(fā)現(xiàn)與處理。靜態(tài)方法往往依賴于大規(guī)模的病毒數(shù)據(jù)庫,在面對未知的惡意軟件時往往出現(xiàn)漏報,此外,靜態(tài)的檢測方法在惡意軟件應用混淆技術的情況下檢測效率不高。惡意軟件根據(jù)不同的情形與不同的需求,惡意軟件檢測技術研究的側重點也不盡相同,因此要想在兼顧正確性(誤報率、漏報率)的同時保證實時性,構建有效且高效的惡意軟件檢測方法是一項非常具有挑戰(zhàn)性的任務,對新的研究和方法有巨大的需求。

    猜你喜歡
    多態(tài)靜態(tài)加密
    分層多態(tài)加權k/n系統(tǒng)的可用性建模與設計優(yōu)化
    靜態(tài)隨機存儲器在軌自檢算法
    參差多態(tài)而功不唐捐
    一種基于熵的混沌加密小波變換水印算法
    認證加密的研究進展
    人多巴胺D2基因啟動子區(qū)—350A/G多態(tài)位點熒光素酶表達載體的構建與鑒定及活性檢測
    機床靜態(tài)及動態(tài)分析
    機電信息(2015年9期)2015-02-27 15:55:56
    基于ECC加密的電子商務系統(tǒng)
    具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉換器
    基于格的公鑰加密與證書基加密
    沙洋县| 什邡市| 灵武市| 额尔古纳市| 田东县| 黄陵县| 宜兴市| 凤冈县| 西城区| 教育| 台山市| 安庆市| 醴陵市| 衡水市| 都昌县| 鄂伦春自治旗| 威信县| 都昌县| 富顺县| 青海省| 五大连池市| 双江| 麦盖提县| 巴塘县| 新丰县| 九江县| 十堰市| 正镶白旗| 五华县| 浦县| 琼结县| 恭城| 湖口县| 白河县| 老河口市| 五寨县| 宁德市| 唐海县| 九龙坡区| 巴林右旗| 辽中县|