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

    基于LSTM-SVM 模型的惡意軟件檢測(cè)方法

    2022-10-25 13:41:24張雪芹朱唯一朱世楠
    關(guān)鍵詞:列表并聯(lián)良性

    趙 敏, 張雪芹, 朱唯一, 朱世楠

    (華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)

    安卓(Android)系統(tǒng)因其開放性成為了惡意軟件最易滋生的平臺(tái)。許多惡意軟件會(huì)誘導(dǎo)用戶安裝木馬,或者通過申請(qǐng)過多或不當(dāng)?shù)臋?quán)限來獲取相關(guān)信息,實(shí)現(xiàn)其搜集用戶隱私的目的[1]。為了避免或減少惡意軟件帶來的損害,對(duì)惡意軟件實(shí)現(xiàn)高精度的檢測(cè)具有重要意義。Android 系統(tǒng)惡意軟件的檢測(cè)技術(shù)主要分為靜態(tài)檢測(cè)[2]和動(dòng)態(tài)檢測(cè)[3]。靜態(tài)檢測(cè)是指在不執(zhí)行應(yīng)用軟件的情況下判斷其是否是惡意的;動(dòng)態(tài)檢測(cè)是指在執(zhí)行Android 應(yīng)用軟件時(shí)收集系統(tǒng)調(diào)用、網(wǎng)絡(luò)流量、用戶交互等信息來判斷其是否是惡意的。靜態(tài)檢測(cè)能夠在安裝前發(fā)現(xiàn)惡意軟件,實(shí)現(xiàn)有效預(yù)防。本文針對(duì)靜態(tài)檢測(cè)方法開展研究,提高檢測(cè)準(zhǔn)確度。

    近年來,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)[4-6]技術(shù)在Android惡意軟件的靜態(tài)檢測(cè)中得到了應(yīng)用。Fcizollah 等[7]為了評(píng)估意圖信息作為識(shí)別惡意軟件特征的有效性,提出了AndroDialysis 系統(tǒng)。該系統(tǒng)提取了意圖特征,采用貝葉斯網(wǎng)絡(luò)結(jié)合簡(jiǎn)單估計(jì)算法和LAGDHillCilmber 搜索算法進(jìn)行惡意軟件的檢測(cè),在1 846 個(gè)良性應(yīng)用和5 560 個(gè)惡意軟件組成的數(shù)據(jù)集上達(dá)到了91%的檢測(cè)精度,誤報(bào)率和漏檢率均為9%。Li 等[8]為了應(yīng)對(duì)Android 惡意軟件數(shù)量的快速增長,提出了一種基于權(quán)限使用分析的惡意軟件檢測(cè)系統(tǒng)(SigPID),提取權(quán)限特征后通過負(fù)比率權(quán)限排序、基于支持度的權(quán)限排序和關(guān)聯(lián)規(guī)則權(quán)限挖掘3 個(gè)級(jí)別的剪枝來識(shí)別最重要的權(quán)限,以有效區(qū)分良性應(yīng)用和惡意應(yīng)用;采用Functional Tree 模型,在各有5 494 個(gè)良性應(yīng)用和惡意應(yīng)用的數(shù)據(jù)集上達(dá)到了95.63%的檢測(cè)精度,誤報(bào)率為2.36%,漏檢率為6.38%。Alotaibi[9]提出了MalResLSTM 框架用于惡意軟件識(shí)別。該框架提取硬件組件、請(qǐng)求權(quán)限、應(yīng)用程序組件、意圖和可疑應(yīng)用程序接口調(diào)用等8 組靜態(tài)特征組成特征向量,利用ResLSTM 網(wǎng)絡(luò)進(jìn)行惡意軟件的檢測(cè),在Drbin 數(shù)據(jù)集(包含123 453 個(gè)良性應(yīng)用和5 560 個(gè)惡意軟件)上的檢測(cè)精度達(dá)到了99%,誤報(bào)率為0.36%,漏檢率為9%。Xu 等[10]提出了DeepRefiner 網(wǎng)絡(luò)用于Android 惡意軟件的檢測(cè)。該網(wǎng)絡(luò)是一個(gè)基于深度學(xué)習(xí)的雙層網(wǎng)絡(luò),第1 層采用多層感知器,通過xml 文件中的權(quán)限、組件等信息將樣本分為良性、惡意以及不確定3 類;第2 層采用LSTM 網(wǎng)絡(luò),通過字節(jié)碼信息對(duì)第1 層網(wǎng)絡(luò)中分類為不確定的樣本再次檢測(cè)。在62 915 個(gè)惡意軟件和47 525 個(gè)良性應(yīng)用組成的數(shù)據(jù)集上檢測(cè)精度達(dá)到97.74%,誤報(bào)率為2.54%,漏檢率為2.04%。孫志強(qiáng)等[11]針對(duì)傳統(tǒng)Android 惡意軟件檢測(cè)方法檢測(cè)率低的問題,提出了一種基于深度收縮降噪自編碼網(wǎng)絡(luò)(Deep Contractive Denoising Autoencoder Network, DCDAN)的Android 惡意軟件檢測(cè)方法,對(duì)深度自編碼網(wǎng)絡(luò)的輸入數(shù)據(jù)添加噪聲,同時(shí)加入雅克比矩陣作為懲罰項(xiàng),結(jié)合貪婪算法和反向傳播算法進(jìn)行訓(xùn)練,通過權(quán)限、軟硬件、組件和敏感API 等7 類信息進(jìn)行檢測(cè),在各2 500 個(gè)良性和惡意樣本的數(shù)據(jù)集上檢測(cè)精度達(dá)到97.8%,誤報(bào)率為1.6%,漏檢率為2.8%。

    由此可見,權(quán)限、組件、意圖和API 特征在惡意軟件的檢測(cè)上是有效的。機(jī)器學(xué)習(xí)方法,特別是深度學(xué)習(xí)方法能夠有效發(fā)現(xiàn)特征中隱含的非線性關(guān)系,提升檢測(cè)效果。因此,本文采用維度較低的API 特征訓(xùn)練SVM 網(wǎng)絡(luò)模型;采用維度較高的XML 特征訓(xùn)練LSTM 網(wǎng)絡(luò)模型。為了進(jìn)一步提高Android 惡意軟件的檢測(cè)精度,提出了一種基于多特征多模型的檢測(cè)方法,主要?jiǎng)?chuàng)新點(diǎn)為:(1)提出了一種API 特征的選取方法,降低對(duì)惡意樣本的漏檢率,提高檢測(cè)精度。(2)基于API 特征和XML 特征,提出了LSTM-SVM 并聯(lián)檢測(cè)模型,結(jié)合概率差融合算法,對(duì)惡意軟件進(jìn)行檢測(cè),在保證漏檢率的條件下,降低誤報(bào)率,提高檢測(cè)精度。

    1 惡意軟件特征選擇

    Android 應(yīng)用程序的原文件是擴(kuò)展名為.apk 的壓縮文件,經(jīng)過apktool 來反編譯APK 原文件,可獲取AndroidManifest.xml 和smali 兩類文件。Android-Manifest.xml 文件是應(yīng)用程序的清單文件,描述了全局的數(shù)據(jù),為應(yīng)用程序的運(yùn)行提供了說明,從中提取所包含的信息可作為一類檢測(cè)特征。smali 是Android虛擬機(jī)Dalvik 的反匯編語言,每一個(gè)smali 文件都對(duì)應(yīng)一個(gè)Java 類,其中包含了所有的函數(shù)信息。每個(gè)應(yīng)用軟件都需要一組Android API 來實(shí)現(xiàn)其主要目標(biāo)和功能,因此應(yīng)用軟件中使用的API 列表代表了應(yīng)用程序的特點(diǎn)[12]。研究發(fā)現(xiàn),惡意軟件與良性軟件在某些API 的調(diào)用上有很大差異[13],從smali 文件中提取API 調(diào)用可作為一類檢測(cè)特征。

    1.1 XML 特征及其特征列表構(gòu)建

    AndroidManifest.xml 文件中包含了應(yīng)用程序所需要的權(quán)限(Permission)、組件(Component)、意圖(Intent)、軟硬件、資源等信息,其中惡意軟件和良性軟件在權(quán)限、組件和意圖的使用種類上有較大差異[14],可以選取這幾類信息作為檢測(cè)特征。

    Android 系統(tǒng)提供了一個(gè)基于Permission 的訪問控制機(jī)制,使得應(yīng)用程序的操作行為和敏感數(shù)據(jù)的訪問被嚴(yán)格控制。為了完成一定的行為操作,應(yīng)用程序必須向Android 系統(tǒng)申請(qǐng)一些對(duì)應(yīng)的系統(tǒng)權(quán)限,因此,系統(tǒng)權(quán)限的使用能夠暗示一個(gè)Android 應(yīng)用的行為信息。Component 是Android 應(yīng)用的基本模塊,包括Activity、Service、Broadcast Receiver 和Content Provider。其中,Activity 提供一個(gè)開發(fā)人員可以定義的虛擬用戶接口;Service 提供可以執(zhí)行的后臺(tái)處理;Broadcast Receiver 提供接收其他應(yīng)用程序信息的通道;Content Provider 提供數(shù)據(jù)庫接口,用來和其他應(yīng)用程序分享數(shù)據(jù)。Intent 可以用來開啟組件或者向其他組件傳送一些重要數(shù)據(jù),它暗示了組件間的交互信息。Intent 有Data、Extras、Action 和Category 4 個(gè)重要屬性,其中,Data 和Extras 主要用于存放或傳遞數(shù)據(jù),如電話、郵箱、網(wǎng)址等;Action 代表系統(tǒng)中已經(jīng)定義了的一系列常用動(dòng)作;Category 用于指定Action 被執(zhí)行的環(huán)境。由于每個(gè)應(yīng)用軟件所需的數(shù)據(jù)都不相同,前兩者無法判斷應(yīng)用軟件的良、惡意;后兩者在一定程度上可以反映應(yīng)用程序的動(dòng)作,且具有固定取值,因此可以用來判斷應(yīng)用軟件的良、惡意[7]。

    本文提取Permission、Component、Intent 信息作為檢測(cè)特征,稱為XML 特征。為了構(gòu)建檢測(cè)模型,對(duì)訓(xùn)練數(shù)據(jù)集中的多個(gè)Android 軟件分別提取XML特征,合并后構(gòu)建XML 特征列表。表1 示出了XML特征列表中的部分特征。

    表1 XML 特征示例Table1 Examples of XML features

    1.2 API 特征及其特征列表構(gòu)建

    smali 文件中以“invoke-”開頭表示函數(shù)調(diào)用,可以從中尋找API 及相關(guān)信息。API 代表了應(yīng)用程序的特點(diǎn),在一定程度上能夠區(qū)分良性和惡意應(yīng)用。API 特征有onCreate、getCacheDir、setFillType、createFromParcel 等。本文提出根據(jù)smali 文件分析API 調(diào)用情況,構(gòu)建API 特征列表。

    為構(gòu)建檢測(cè)模型,對(duì)訓(xùn)練數(shù)據(jù)集中的多個(gè)Android 應(yīng)用軟件分別提取API 特征,API 特征列表構(gòu)建方法如下:

    (1)提取良性應(yīng)用軟件中的API;

    (2)分別統(tǒng)計(jì)各API 被多少個(gè)良性應(yīng)用軟件調(diào)用過,按照調(diào)用次數(shù)從大到小進(jìn)行排序,得到一個(gè)初始的良性API 列表;

    (3)提取惡意應(yīng)用軟件中的API,進(jìn)行同樣的操作,得到一個(gè)初始的惡意API 列表;

    (4)分別取兩個(gè)列表中包含前n個(gè)API 的子列表,可以認(rèn)為經(jīng)過排序操作后選取的兩個(gè)子列表在一定程度上代表了良性軟件和惡意軟件的API 調(diào)用分布;

    (5)將兩個(gè)子列表合并,刪除重復(fù)的API(使每個(gè)API 名稱在列表中僅出現(xiàn)一次),構(gòu)成API 特征列表。

    API 特征列表構(gòu)建流程如圖1 所示。

    圖1 API 特征列表構(gòu)建Fig.1 Construction of API feature list

    1.3 特征向量化

    每個(gè)APK 原文件都可以獲得XML 和API 兩組特征。使用apktool 工具對(duì)訓(xùn)練集中的每個(gè)Android惡意軟件的APK 原文件進(jìn)行反編譯,獲取每個(gè)APK原文件對(duì)應(yīng)的AndroidManifest.xml 文件和smali 文件。其次,將xml 文檔表示成樹,通過標(biāo)簽提取檢測(cè)所需要的Permission、Component 和Intent 特征,并構(gòu)成XML 特征列表;對(duì)smali 文件中通過判斷每行的前7 個(gè)字符是否是“invoke-”找到相應(yīng)位置,提取API 調(diào)用特征,通過分析API 調(diào)用情況構(gòu)成API 特征列表。

    對(duì)訓(xùn)練集和測(cè)試集中的每個(gè)Android 軟件,反編譯后提取XML 特征和API 特征,對(duì)照XML 特征列表和API 特征列表,根據(jù)各特征出現(xiàn)與否量化為1 和0,構(gòu)造出每個(gè)軟件的特征向量,用于模型訓(xùn)練和檢測(cè)。

    2 LSTM-SVM 并聯(lián)檢測(cè)模型

    2.1 LSTM-SVM 檢測(cè)框架

    從Android 應(yīng)用軟件中可以提取出多種靜態(tài)特征,不同的特征其中隱含的信息也不同。簡(jiǎn)單的級(jí)聯(lián)合并會(huì)使特征維度過高,增加檢測(cè)模型訓(xùn)練負(fù)擔(dān),同時(shí)還會(huì)形成特征冗余,影響檢測(cè)效果。本文提出構(gòu)建LSTM-SVM 并聯(lián)檢測(cè)模型,考慮惡意軟件運(yùn)行的時(shí)序性、特征維度等,對(duì)XML 長特征采用LSTM建模,對(duì)API 特征采用SVM 建模[15],最終根據(jù)模型預(yù)測(cè)概率差確定檢測(cè)結(jié)果?;贚STM-SVM 模型的Android 惡意軟件檢測(cè)框架如圖2 所示。

    圖2 基于LSTM-SVM 的惡意軟件檢測(cè)框架Fig.2 Malware detection framework based on LSTM-SVM

    2.2 基于SVM 的異常檢測(cè)模型

    SVM 的本質(zhì)是一種二分類算法,通過求取能使兩類樣本以最大間隔分開的超平面建立分類模型??紤]到惡意樣本數(shù)量較少,API 特征維數(shù)較高,而SVM 在小樣本、高維度的情況下仍具有較強(qiáng)的分類能力和泛化能力,可以在一定程度上克服“維度災(zāi)難”和“過學(xué)習(xí)”的問題[16],本文采用SVM 構(gòu)建基于API 特征的異常檢測(cè)模型。

    對(duì)于給定的樣本數(shù)據(jù)(x1,y1),(x2,y2), ,(xN,yN),X2 Rd,y2 f+1,?1g,N為樣本數(shù),d為輸入維數(shù),x為提取的API 特征向量,y為類標(biāo)簽,如果y的值為1,表示對(duì)應(yīng)的樣本為良性;如果y的值為-1,表示對(duì)應(yīng)的樣本為惡意。根據(jù)SVM 理論,對(duì)于待分類樣本存在一個(gè)超平面,使得兩類樣本完全分開,該超平面為

    其中:w表示法向量,決定了超平面的方向;b表示偏移量,決定了超平面與原點(diǎn)之間的距離。

    求解超平面可以看成如下二次規(guī)劃問題求解:

    其中:C為懲罰因子,控制對(duì)錯(cuò)分樣本的懲罰程度;ξi為松弛變量,每個(gè)樣本都有一個(gè)對(duì)應(yīng)的松弛變量,表征該樣本不滿足約束的程度。

    求解式(2)可轉(zhuǎn)化為求解其對(duì)偶問題:

    其中: αi為拉格朗日乘子,對(duì)應(yīng)于 αi>0 的向量稱為

    K?xi,xj)=φ(xi)Tφ?xj)支持向量; 為核函數(shù),常用的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、高斯核函數(shù)等,不同的核函數(shù)將形成不同的算法。決策函數(shù)為

    其中, S gn(x) 代表符號(hào)函數(shù),當(dāng)x<0 時(shí),返回值為-1;當(dāng)x>0 時(shí),返回值為1;當(dāng)x=0 時(shí),返回值為0;αi*表示最優(yōu)拉格朗日乘子;b*表示最優(yōu)偏置。

    2.3 基于LSTM-SVM 網(wǎng)絡(luò)的異常檢測(cè)模型

    長短期記憶(LSTM)網(wǎng)絡(luò)[17]是為了克服遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)中梯度消失和梯度爆炸問題而提出的一種深度學(xué)習(xí)方法,通常應(yīng)用在具有時(shí)間序列的分類問題中。它可以通過基于時(shí)間序列的記憶門學(xué)習(xí)長期依賴關(guān)系,模擬多個(gè)輸入變量的問題,因此常用于時(shí)間序列檢測(cè)。此外,由于LSTM 網(wǎng)絡(luò)能夠有效保留長序列數(shù)據(jù)中對(duì)最終判定結(jié)果有益的歷史信息,因此,對(duì)于挖掘數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系也表現(xiàn)出了良好的效果??紤]到XML特征描述了應(yīng)用軟件的運(yùn)行特性,其中存在著時(shí)序關(guān)系,本文采用LSTM 構(gòu)建基于XML 長特征的異常檢測(cè)模型。

    LSTM 添加了記憶單元專門用于保存歷史信息,記憶單元的結(jié)構(gòu)如圖3 所示。每個(gè)記憶單元含有3 個(gè)輸入:來自原始輸入序列中當(dāng)前時(shí)刻t傳入模型的所有有用數(shù)據(jù)xt、到t-1 時(shí)刻模型記錄的歷史狀態(tài)ct-1和所有有用的隱藏信息ht-1。每一個(gè)記憶單元的輸出包括當(dāng)前時(shí)刻記錄的所有有用信息ht和當(dāng)前狀態(tài)ct。

    圖3 LSTM 單元標(biāo)準(zhǔn)結(jié)構(gòu)Fig.3 LSTM unit standard construction

    為了尋找歷史信息中的有效內(nèi)容,輸入數(shù)據(jù)要通過3 個(gè)門:遺忘門(f)、輸入門(i)、輸出門(o)。遺忘門負(fù)責(zé)判斷是否丟棄歷史信息,它的輸入是歷史隱藏信息ht-1以及當(dāng)前序列節(jié)點(diǎn)信息xt,使用Sigmoid 函數(shù)輸出一個(gè)0 到1 之間的值,表示是否遺忘歷史單元狀態(tài)模式的信息,1 表示保留歷史信息,0 表示遺忘歷史信息。遺忘門的計(jì)算如式(5)所示:

    其中:W表示神經(jīng)單元中的權(quán)重矩陣;下標(biāo)f 表示遺忘門;下標(biāo)x 表示當(dāng)前節(jié)點(diǎn)信息;下標(biāo)h 表示歷史隱藏信息(即Wfx表示遺忘門當(dāng)前節(jié)點(diǎn)信息的權(quán)重矩陣;Wfh表示遺忘門歷史隱藏信息的權(quán)重矩陣);b為對(duì)應(yīng)權(quán)重偏置; σ 表示Sigmoid 函數(shù)。

    同理可得輸入門和輸出門對(duì)應(yīng)的計(jì)算公式,如式(6)和式(7)所示:

    候選狀態(tài)gt和當(dāng)前狀態(tài)st決定了在當(dāng)前單元中可以保留哪些新的信息到下一個(gè)神經(jīng)元。

    最終根據(jù)傳輸信息的狀態(tài)確定輸出值,以tanh 函數(shù)處理當(dāng)前單元狀態(tài),并與輸出門相乘得到當(dāng)前單元的隱藏信息ht,再傳遞給下一個(gè)單元。

    2.4 概率差融合算法

    實(shí)際上惡意軟件檢測(cè)的本質(zhì)是二分類,對(duì)應(yīng)的樣本標(biāo)簽為正(1)或負(fù)(-1),正標(biāo)簽對(duì)應(yīng)良性應(yīng)用,負(fù)標(biāo)簽對(duì)應(yīng)惡意軟件。在進(jìn)行二分類時(shí),LSTM 和SVM 檢測(cè)模型輸出的是樣本屬于正、負(fù)標(biāo)簽的概率值,并取較大概率值對(duì)應(yīng)的標(biāo)簽為分類結(jié)果,即:

    其中: l abel 表示得到的樣本標(biāo)簽;pbenign表示輸入數(shù)據(jù)屬于正標(biāo)簽(即良性應(yīng)用)的概率;pmalicious表示輸入數(shù)據(jù)屬于負(fù)標(biāo)簽(即惡意軟件)的概率。概率差為

    通常,兩個(gè)概率之間的差值越大,可認(rèn)為模型得到的分類結(jié)果越可靠。

    在LSTM-SVM 并聯(lián)檢測(cè)模型中,當(dāng)兩個(gè)檢測(cè)模型給出的分類結(jié)果不同時(shí),認(rèn)為概率差較大的檢測(cè)模型給出的預(yù)測(cè)結(jié)果更為可靠,即

    其中: ΔpLSTM為LSTM 模型給出的輸入數(shù)據(jù)的概率差; ΔpSVM為SVM 模型給出的輸入數(shù)據(jù)的概率差;labelLSTM為LSTM 模型給出的分類結(jié)果; l abelSVM為SVM 模型給出的分類結(jié)果。

    2.5 算法描述

    基于LSTM-SVM 模型的Android 惡意軟件檢測(cè)算法描述如下:

    輸入:APK 文件

    輸出:樣本分類標(biāo)簽

    (1) apktool 反編譯訓(xùn)練樣本,獲得xml 文件和smali 文件

    (2) 從AndroidManifest.xml 文件中提取XML特征,從smali 文件中提取API 特征,分別構(gòu)建特征列表

    (3) 對(duì)應(yīng)特征列表將XML 特征和API 特征映射為0 或1 組成的特征向量

    (4) 基于XML 特征訓(xùn)練LSTM 檢測(cè)模型,基于API 特征訓(xùn)練SVM 檢測(cè)模型

    (5) 反編譯測(cè)試樣本,提取XML 特征和API特征,對(duì)應(yīng)特征列表得到XML 和API 特征向量

    (6) 測(cè)試樣本的XML 特征向量送入訓(xùn)練好的LSTM 模型,API 特征向量送入訓(xùn)練好的SVM 模型,得到對(duì)應(yīng)標(biāo)簽及概率

    (7) If labelLSTM= labelSVM

    (8) 最終分類標(biāo)簽label=labelLSTM=labelSVM

    (9) End

    (10) If labelLSTM≠ labelSVMΔpLSTM>ΔpSVM

    (11) If 概率差

    (12) 最終分類標(biāo)簽label=labelLSTM

    (13) Else

    (14) 最終分類標(biāo)簽label=labelSVM

    (15) End

    (16) End

    3 實(shí)驗(yàn)部分

    實(shí)驗(yàn)的硬件環(huán)境為Intel Core i5-9300H CPU 2.40 GHz, 8 GB RAM, 軟 件 環(huán) 境 為Windows10,python3.7,apktool。

    3.1 實(shí)驗(yàn)數(shù)據(jù)

    實(shí)驗(yàn)采用CICAndMal2017[18]數(shù)據(jù)集,其中包含了1 700 個(gè)良性軟件和426 個(gè)惡意軟件。該數(shù)據(jù)集的良性樣本多于惡意樣本,符合現(xiàn)實(shí)世界中良性軟件多于惡意軟件的狀況。實(shí)驗(yàn)時(shí),對(duì)數(shù)據(jù)集按照訓(xùn)練集、驗(yàn)證集和測(cè)試集分別為60%、20%和20%進(jìn)行隨機(jī)劃分,各部分?jǐn)?shù)量如表2 所示。在構(gòu)建各特征序列時(shí),都只使用訓(xùn)練集中的樣本,以保證測(cè)試集中的樣本對(duì)于檢測(cè)都是未知軟件。

    表2 數(shù)據(jù)集劃分Table2 Data set partition

    表3 示出了API 和XML 兩類特征的數(shù)量??梢钥吹剑珹PI 特征維度為2 253,維度較高;XML 特征中的3 類特征合并后維度達(dá)23 893,屬于高維特征。

    表3 特征類別及其數(shù)量Table3 Category and quantity of features

    3.2 評(píng)價(jià)指標(biāo)

    表4 列出了4 個(gè)基本評(píng)價(jià)指標(biāo)。其中,N(Negative)代表標(biāo)簽為惡意軟件;P(Positive)代表標(biāo)簽為良性軟件;TN 代表真實(shí)標(biāo)簽是N、模型分類為N 的軟件數(shù)量;FN 代表真實(shí)標(biāo)簽是P、模型分類為N 的軟件數(shù)量;TP 代表真實(shí)標(biāo)簽是P、模型分類為P 的軟件數(shù)量;FP 代表真實(shí)標(biāo)簽是N、模型分類為P 的軟件數(shù)量。

    表4 基本評(píng)價(jià)指標(biāo)Table4 Basic evaluation index

    基于4 個(gè)基本指標(biāo),定義以下評(píng)估指標(biāo):

    準(zhǔn)確率(ACC):被正確識(shí)別出來的惡意軟件和良性軟件個(gè)數(shù)在樣本總數(shù)中的占比。

    良性檢測(cè)率(TPR):被正確識(shí)別出來的良性軟件個(gè)數(shù)在所有良性軟件個(gè)數(shù)中的占比。

    漏檢率(FPR):被錯(cuò)誤識(shí)別為良性的惡意軟件個(gè)數(shù)在所有惡意軟件個(gè)數(shù)中的占比。

    3.3 實(shí)驗(yàn)結(jié)果及分析

    實(shí)驗(yàn)中,LSTM 模型的神經(jīng)元數(shù)量為256,采用的優(yōu)化器為adam,學(xué)習(xí)率為0.001,使用的損失函數(shù)為sparse_categorical_crossentropy,SVM 模型的懲罰因子C=0.1。

    3.3.1 XML 特征實(shí)驗(yàn) 為了驗(yàn)證XML 特征的有效性,XML特征中包含了Permission、Component和Intent 3 類特征,采用LSTM 模型,對(duì)比單獨(dú)使用3 類特征和XML 特征的分類結(jié)果,如圖4 所示。

    由圖4 可知,采用XML 特征的ACC 為96.48%,高于3 類特征單獨(dú)使用時(shí)的94.13%、94.13%和92.48%;采用XML 特征的FPR 為6.98%,明顯低于3 類特征單獨(dú)使用時(shí)的18.6%、17.44%和31.4%,這是因?yàn)楦鞣痔卣鞫贾幻枋隽顺绦驊?yīng)用清單的一個(gè)方面,單獨(dú)使用時(shí)不能刻畫特征間的內(nèi)在聯(lián)系,使得準(zhǔn)確率較低、漏檢率較高。可見,使用XML 特征比單獨(dú)使用Permission、Component 和Intent 3 類特征更有效。

    圖 4 3 類特征和XML 特征檢測(cè)結(jié)果比較Fig. 4 Comparison of detection results of three types of features and XML features

    3.3.2 API 特征子列表長度對(duì)比實(shí)驗(yàn) 每個(gè)應(yīng)用軟件所用到的API 數(shù)量不同,多的甚至達(dá)到上萬個(gè),但并不是所有的API 調(diào)用對(duì)惡意軟件的檢測(cè)都是有效的,所選取的API 序列也不是越長越好,選取的序列過長會(huì)使得無用信息增加,稱為冗余特征。為了在API 特征原始列表中選取合適的子列表長度n,采用SVM 模型進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果如表5 所示。

    從表5 中可以看出,雖然TPR 隨著API 子列表長度(n)的增加而變大,但是FPR 在API 子列表長度達(dá)到2 000 時(shí)取得最小,更長的子列表對(duì)惡意軟件的識(shí)別沒有更大的作用,因此API 子列表長度取2 000是合理的。

    表5 不同API 特征子列表長度檢測(cè)結(jié)果對(duì)比Table5 Comparison of detection results of different API feature sublist lengths

    3.3.3 特征融合方式對(duì)比實(shí)驗(yàn) 實(shí)驗(yàn)采用LSTM 檢測(cè)模型,對(duì)比使用XML 特征、XML 特征與API 特征向量級(jí)聯(lián)(XML+API)、XML 特征與API 特征向量并聯(lián)(XML-API)時(shí)的分類結(jié)果。這里,XML 特征與API特征向量并聯(lián)指對(duì)兩種特征分別采用LSTM 建模,輸出結(jié)果采用概率差融合算法判斷。實(shí)驗(yàn)結(jié)果如表6 所示。

    從表6 中可以看出,在XML 特征的基礎(chǔ)上引入API 特征,ACC 和TPR 都有所提高,但在級(jí)聯(lián)模式下,F(xiàn)PR 最大,這意味著有更多的惡意軟件被漏檢。而XML 特征與API 特征并聯(lián)使用,在不增加漏檢率的條件下提升了ACC 和TPR。可見,將XML 特征與API 特征采用并聯(lián)方式建模是合理有效的。

    表6 不同特征融合方式檢測(cè)結(jié)果比較Table6 Comparison of detection results of different feature fusion methods

    3.3.4 基于XML 特征的不同算法模型對(duì)比實(shí)驗(yàn) 為了驗(yàn)證基于XML 特征的LSTM 檢測(cè)模型的有效性,實(shí)驗(yàn)基于XML 特征,對(duì)比了LSTM 模型、SVM 模型、RF(Random Forest)模型、MLP(Multi_Layer Perceptron)模型、CNN(Convolutional Neural Networks)模型的實(shí)驗(yàn)結(jié)果,如表7 所示。

    從表7 中可以看出,對(duì)于XML 特征,幾個(gè)模型的TPR 相差不大,RF 模型和CNN 模型的TPR 略高于LSTM 模型,但LSTM 模型的FPR 指標(biāo)最低,即漏檢率最低。因此,基于XML 特征選擇LSTM 模型是有效的。

    表7 基于XML 特征的不同模型檢測(cè)結(jié)果比較Table7 Comparison of detection results of different models based on XML features

    3.3.5 基于API 特征的不同算法模型對(duì)比實(shí)驗(yàn) 為了驗(yàn)證基于API 特征的SVM 檢測(cè)模型的有效性,實(shí)驗(yàn)基于API 特征,對(duì)比了上述幾種不同模型的檢測(cè)結(jié)果,以及SVM模型采用線性核(Linear)、高斯核(RBF)和多項(xiàng)式核(Poly)的檢測(cè)結(jié)果,如表8 所示。

    表8 基于API 特征的不同模型檢測(cè)結(jié)果比較Table8 Comparison of detection results of different models based on API features

    從表8 看出,采用LSTM 模型的TPR 最高,但FPR 也偏高;使用SVM(Poly)模型的FPR 最低,但ACC 和TPR 也偏低。SVM(Linear)模型的ACC 和TPR 較高,F(xiàn)PR 較低,整體性能好于其他模型。因此,對(duì)于API 特征,后續(xù)采用SVM(Linear)模型。

    3.3.6 并聯(lián)模型對(duì)比實(shí)驗(yàn) 為了驗(yàn)證LSTM-SVM 并聯(lián)模型的有效性,以基于XML 特征的LSTM 模型作為基礎(chǔ)對(duì)比模型(Baseline),分別將基于API 特征的SVM 模型、RF 模型、LSTM 模型、MLP 模型、CNN模型與基礎(chǔ)模型進(jìn)行并聯(lián),采用概率差融合算法給出檢測(cè)結(jié)果,如表9 所示。

    從表9 中可以看出,采用并聯(lián)檢測(cè)模型可以有效提升檢測(cè)精度。同時(shí),相較于其他并聯(lián)模型,本文的LSTM-SVM 模型具有最高的ACC 和TPR,分別為98.12%和99.41%,具有最低的FPR,為6.98%,模型具有最佳性能。

    表9 并聯(lián)模型的對(duì)比實(shí)驗(yàn)結(jié)果Table9 Comparison of parallel models experiments

    4 結(jié)束語

    提出了一種基于LSTM-SVM 模型的Android 惡意軟件檢測(cè)方法。從Android 惡意軟件反編譯后獲得的AndroidManifest.xml 文件中提取Permission、Component、Intent 信息組成XML 特征列表,從smali文件提取API 特征,并通過分析API 調(diào)用情況構(gòu)建API 特征列表;基于XML 特征構(gòu)建了LSTM 異常檢測(cè)模型,基于API 特征構(gòu)建了SVM 異常檢測(cè)模型,兩個(gè)模型采用并聯(lián)模式,基于概率差融合算法給出檢測(cè)結(jié)果。實(shí)驗(yàn)結(jié)果表明,與單特征單模型、多特征單模型、多特征級(jí)聯(lián)模型相比,基于多特征多模型的LSTM-SVM 模型檢測(cè)方法具有更高的檢測(cè)精度。未來考慮進(jìn)一步在虛擬機(jī)或沙箱環(huán)境中運(yùn)行惡意軟件獲取動(dòng)態(tài)特征,從靜態(tài)和動(dòng)態(tài)兩個(gè)方面描述惡意行為,進(jìn)一步提高Android 惡意軟件檢測(cè)效果。

    猜你喜歡
    列表并聯(lián)良性
    巧用列表來推理
    走出睡眠認(rèn)知誤區(qū),建立良性睡眠條件反射
    中老年保健(2022年6期)2022-08-19 01:41:22
    識(shí)別串、并聯(lián)電路的方法
    呼倫貝爾沙地實(shí)現(xiàn)良性逆轉(zhuǎn)
    學(xué)習(xí)運(yùn)用列表法
    擴(kuò)列吧
    基層良性發(fā)展從何入手
    審批由“串聯(lián)”改“并聯(lián)”好在哪里?
    并聯(lián)型APF中SVPWM的零矢量分配
    一種軟開關(guān)的交錯(cuò)并聯(lián)Buck/Boost雙向DC/DC變換器
    大姚县| 沈丘县| 延边| 基隆市| 江源县| 上饶县| 慈溪市| 黔江区| 哈巴河县| 调兵山市| 浦江县| 平阴县| 高州市| 富源县| 施秉县| 嵩明县| 水富县| 白朗县| 增城市| 商水县| 商洛市| 永福县| 蒙阴县| 新巴尔虎左旗| 哈尔滨市| 吉林市| 哈巴河县| 龙海市| 临潭县| 岳阳县| 永福县| 大渡口区| 镇沅| 大庆市| 通道| 怀远县| 防城港市| 武功县| 乌兰浩特市| 加查县| 辽阳县|