蘇 慶,林華智,黃劍鋒,林志毅
廣東工業(yè)大學(xué) 計算機學(xué)院,廣州 510006
2018 年間,360 互聯(lián)網(wǎng)安全中心記錄了大約1.1 億次惡意安卓應(yīng)用程序感染[1],說明網(wǎng)絡(luò)安全態(tài)勢存在嚴(yán)重威脅,也使得惡意安卓應(yīng)用檢測成為網(wǎng)絡(luò)安全的研究熱點之一。惡意安卓軟件檢測技術(shù)可分為靜態(tài)分析技術(shù)和動態(tài)分析技術(shù)兩大類[2]。其中動態(tài)分析技術(shù)是利用沙盒、虛擬機來仿真應(yīng)用的執(zhí)行過程,通過實時監(jiān)控應(yīng)用執(zhí)行過程中所產(chǎn)生的行為來判斷其是否為惡意軟件,此方法必須在程序運行時才能實施檢測,耗費資源和時間多。靜態(tài)分析法不執(zhí)行程序文件,而是先對程序進(jìn)行反編譯,然后提取特征值進(jìn)行分析和研究,是一類較為簡便的安卓惡意應(yīng)用判定方法。
近年來,越來越多學(xué)者將機器學(xué)習(xí)或者深度學(xué)習(xí)方法應(yīng)用于惡意安卓應(yīng)用檢測。Zhu等人[3]提出通過提取權(quán)限、敏感的API 監(jiān)控系統(tǒng)事件和許可率等關(guān)鍵特性,采用整體旋轉(zhuǎn)森林(rotation forest)構(gòu)建一個經(jīng)濟(jì)有效的安卓應(yīng)用檢測模型,其檢測效果優(yōu)于支持向量機模型,但所選取的特征較少,檢測準(zhǔn)確率不高。Wang 等人[4]通過提取權(quán)限、硬件功能和接收者動作等122 個特征,使用多種機器學(xué)習(xí)分類器進(jìn)行訓(xùn)練和測試,并使用隨機森林分類器(random forest)獲得較高的分類準(zhǔn)確率,但由于未提取系統(tǒng)調(diào)用函數(shù)特征,導(dǎo)致誤報率比一般防病毒程序高。Suman 等人[5]提出通過提取權(quán)限和API 等特征,使用邏輯回歸(logistic regression)構(gòu)建分類模型,并且通過刪除低方差特征來優(yōu)化特征,獲得較好的分類效果。Wang等人[6]提取了權(quán)限、intent、API和硬件特性等11類共3萬多個特征,然后使用支持向量機(SVM)根據(jù)特征對檢測的重要性對特征進(jìn)行排序,并集成5種機器學(xué)習(xí)分類器進(jìn)行分類,實驗結(jié)果表明該集成方法優(yōu)于單一機器學(xué)習(xí)模型,然而該方法需要提取的特征較多,特征維度較大,檢測效率相對較低。Karbab等人[7]提取應(yīng)用程序API 作為特征,使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來進(jìn)行檢測,實驗表明該方法在多個數(shù)據(jù)集檢測中具有較高的準(zhǔn)確性。Wang 等人[8]提出基于深度置信網(wǎng)絡(luò)(DBN)的惡意安卓應(yīng)用檢測方法,通過提取安卓應(yīng)用的權(quán)限和API 函數(shù)作為特征,采用DBN 進(jìn)行訓(xùn)練和測試,從而減少學(xué)習(xí)過程中的人工干預(yù)。Wang 等人[9]將卷積神經(jīng)網(wǎng)絡(luò)(CNN)與深度自編碼網(wǎng)絡(luò)(DAE)結(jié)合構(gòu)建CNN-DAE 檢測模型,提取了API、權(quán)限、硬件特性等多種特征來進(jìn)行訓(xùn)練,該方法相比機器學(xué)習(xí)方法提高了檢測精度,也相比CNN 減少了訓(xùn)練時間??傮w而言,深度網(wǎng)絡(luò)檢測方法的檢測效率較低,需要較大的樣本量。
針對上述文獻(xiàn)中存在的安卓惡意檢測中存在的效率低、特征維度過大和樣本量不足等問題,本文提出一個結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和Catboost 算法的混合檢測模型,同時具備了CNN 的局部感知和降維后特征保持不變性的能力,以及Catboost算法對樣本量和特征要求不高,不易過擬合的優(yōu)點。卷積神經(jīng)網(wǎng)絡(luò)的特征提取功能可以增強信號和降低向量維度,可以較好地解決特征篩選和特征維度過大的問題,提高檢測效率;運用魯棒性高和對樣本數(shù)量要求不高的Catboost 模型作為分類層進(jìn)行分類,可以解決樣本量不足而影響分類精度的問題。另外,使用遺傳算法對Catboost進(jìn)行快速的參數(shù)優(yōu)化,進(jìn)一步提高檢測精確度和效率。
卷積神經(jīng)卷網(wǎng)絡(luò)(CNN)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)[10],主要包括以下兩層。
1.1.1 卷積層
卷積層的功能是使用卷積核對輸入數(shù)據(jù)進(jìn)行特征提取,有規(guī)律地掃過輸入特征,在感受野內(nèi)對輸入特征做矩陣元素乘法求和并疊加偏差量:
1.1.2 池化層
池化層是對輸入的對象進(jìn)行抽象和降維,具有保持特征不變性和防過擬合作用。Lp池化是比較常用的一種池化方法,其一般表示形式為:
其中,p是預(yù)指定參數(shù),當(dāng)p=0 時,Lp池化在池化區(qū)域內(nèi)取均值,被稱為均值池化;當(dāng)p→∞時,Lp池化在區(qū)域內(nèi)取極大值,被稱為極大池化[11]。
Catboost 是一個基于梯度提升決策樹的機器學(xué)習(xí)框架,它將所有樣品的二進(jìn)制特征存儲于連續(xù)向量B又紅又專中,葉子節(jié)點的值存儲在大小為2d的浮點數(shù)向量中。對于樣本x,建立一個二進(jìn)制向量A:
其中,B(x,f)從向量B讀取的樣本x上的二進(jìn)制特征f的值,而f(t,j)從深度i上的第t棵樹中的二進(jìn)制特征的數(shù)目。向量以數(shù)據(jù)并行的方式構(gòu)建,可以實現(xiàn)高達(dá)3倍的加速[12]。
遺傳算法(Genetic Algorithm,GA)是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法[13],具有內(nèi)在的隱并行性和更好的全局尋優(yōu)能力,其基本流程如圖1所示。
圖1 遺傳算法基本流程Fig.1 Workflow of genetic algorithm
本文提出的CNN-catboost混合分類模型,繼承了卷積神經(jīng)網(wǎng)絡(luò)提取局部特征能力強和降維后保留有效信息效果較好的優(yōu)勢,以及catboost 模型無需廣泛數(shù)據(jù)訓(xùn)練就可以產(chǎn)生較好分類效果的特點,并利用遺傳算法的全局尋優(yōu)調(diào)參能力縮減調(diào)參用時。其模型結(jié)構(gòu)如圖2所示。
圖2 CNN-catboost模型結(jié)構(gòu)圖Fig.2 Structure of CNN-catboost model
在CNN-catboost 模型中,首先輸入層輸入特征向量,卷積層對輸入的特征向量進(jìn)行提取和局部感知,利用卷積運算增強原始信號特征;然后再利用池化層對提取整合的特征進(jìn)行下采樣,在減少數(shù)據(jù)處理量的同時保留有用信息,減少冗余信息,特征維度降低,能促進(jìn)最后一層分類模型的快速收斂,從而降低模型的訓(xùn)練時間,有效提高分類模型的泛化能力;另外,通過使用遺傳算法對Catboost進(jìn)行參數(shù)優(yōu)化以進(jìn)一步提高Catboost模型的分類準(zhǔn)確率;最后在Catboost層對特征向量進(jìn)行訓(xùn)練和測試。
安卓應(yīng)用的特征種類和數(shù)量較多,特征的選擇和處理是構(gòu)建泛化性強的安卓惡意應(yīng)用檢測模型的難點。將Catboost應(yīng)用于安卓惡意應(yīng)用檢測時,需要人工進(jìn)行特征選擇和過濾,其結(jié)果對Catboost的最終分類效果有重要影響。而CNN 模型具有自動學(xué)習(xí)特性,可以通過卷積層和池化層進(jìn)行自動地特征優(yōu)化,無需進(jìn)行人工構(gòu)造和過濾特征,可有效彌補Catboost在特征處理方面的不足。但是,將CNN應(yīng)用于分類時,存在對數(shù)據(jù)量要求高、學(xué)習(xí)過程長,訓(xùn)練速度慢的缺陷,而Catboost的優(yōu)勢在于不易過擬合,訓(xùn)練速度快,無需大量數(shù)據(jù)進(jìn)行訓(xùn)練即可獲得高準(zhǔn)確率的分類結(jié)果,正好可以改進(jìn)CNN 模型的上述問題。
Catboost 的參數(shù)選取會影響其分類結(jié)果的準(zhǔn)確性,而且最優(yōu)化的參數(shù)有助于鞏固其魯棒性。而遺傳算法以多點和并行搜索尋找全局最優(yōu)解,在快速確定最優(yōu)參數(shù)群的同時避免陷入局部最優(yōu)解。因此應(yīng)用遺傳算法對Catboost 進(jìn)行調(diào)參,借助其良好的全局搜索能力,以較少的資源消耗和時間確定最優(yōu)化參數(shù),加快Catboost的收斂速度。
綜上所述,本文結(jié)合CNN、Catboost 和遺傳算法的各自優(yōu)勢,利用CNN 中卷積層和池化層自動提取和選擇特征,自動抽取安卓應(yīng)用的本質(zhì)特征,將其作為Catboost 模型的輸入向量,并使用遺傳算法快速確定Catboost模型的最優(yōu)化參數(shù),構(gòu)造一個既避免人工選擇過濾特征,又無需較多的數(shù)據(jù)樣本就可以快速生成較好的檢測效果的模型。
CNN-catboost模型的第一步是輸入特征向量,因此需要特征提取。本文首先使用androguard 工具提取到安卓應(yīng)用的權(quán)限、API類包、四大組件、intent特征和硬件特性等各種靜態(tài)特征;然后使用apktool 工具將APK 文件解碼得到smali文件,進(jìn)而提取OpCode特征[14]。
(1)權(quán)限特征:在一般情況下,安卓惡意應(yīng)用申請的敏感權(quán)限比正常應(yīng)用多,正常應(yīng)用所申請的權(quán)限總量比惡意的多。本文選取了Android6.0 版本的25 個敏感權(quán)限和33個正常權(quán)限作為權(quán)限特征。
(2)API 特征:Android 應(yīng)用的相關(guān)功能需要通過API調(diào)用來實現(xiàn)[15]。由于安卓API函數(shù)數(shù)量眾多且每個API 函數(shù)敏感高低難以統(tǒng)計,本文選取了Android SDK所提供的150個安卓API類作為特征。
(3)組件數(shù)目:Android系統(tǒng)中的4種實用組件分別是Activity、Service、BroadcastReceiver 和ContentProvider。有些惡意家族應(yīng)用為了保持惡意家族特性,會在同族軟件中使用相同的服務(wù)名,所以本文提取這四種組件的數(shù)目作為特征。
(4)intent 特征:Intent-Filter 動作action 用于描述意圖要執(zhí)行的行為[16]。比如DIAL撥打電話不需要打電話的權(quán)限,惡意應(yīng)用在用戶不知情的情況下可以越權(quán)撥打電話,因此本文選取了惡意應(yīng)用最常用的10個action來作為特征。
(5)硬件特征:uses_feature 描述了安卓應(yīng)用所需要硬件特性,例如某惡意應(yīng)用會申請GPS來竊取用戶定位數(shù)據(jù),所以本文提取用戶最常使用的27 個硬件特性作為特征。
(6)OpCode特征:同族惡意應(yīng)用變種往往具有高度相似的代碼邏輯,并且可以由操作符序列進(jìn)行表征。通過反編譯APK得到smali文件中包含的Dalivk指令[17],從中抽取反映程序語義的七大類核心指令集合V、T、M、G、I、R、P,并去掉操作數(shù),形成OpCode特征,如表1所示。
表1 OpCode特征核心指令集Table 1 Core instruction set of OpCode feature
對于安卓權(quán)限特征,將選取的25 個敏感權(quán)限和33個正常權(quán)限依次排列組成一個特征向量,排列方式如圖3所示。若某一位取0則表示該權(quán)限在APK中未出現(xiàn),取1則反之。
圖3 安卓權(quán)限排列示意圖Fig.3 Schematic diagram of Android permission arrangement
與敏感行為相關(guān)的安卓API 函數(shù)大部分集中于content、location和net等10 個類包中。首先將140個普通API 類包按照Android 官方API 文檔的順序排列在前,再將10 個敏感類包排在后,構(gòu)成一個API 類包特征向量。一個API 類包在該APK 中出現(xiàn)的次數(shù)為該狀態(tài)的取值,如圖4所示。
圖4 API類包排列示意圖Fig.4 Schematic diagram of API packages arrangement
對于Activity、Service、BroadcastReceiver 和Content Provider 這4 種組件,取每種組件的數(shù)量為特征;intent特征中的動作所出現(xiàn)的次數(shù)即該向量值。
對于27個硬件特性特征,特性相關(guān)聯(lián)的排列相鄰,如Camera/camera.Flash/camera.front這幾個排列在相鄰,某特性若是被引用,則對應(yīng)特征值為1,否則為0。
對于提取到的OpCode特征,建立一個2-Gram模型,模型中每個子集出現(xiàn)的次數(shù)則為特征向量的該狀態(tài)值。
將以上6 類共298 個特征映射到向量空間,形成一個安卓應(yīng)用的特征向量,如表2所示。
表2 特征向量表示Table 2 Representation of feature vectors
CNN-catboost 混合模型的訓(xùn)練過程主要分為特征處理、分類與調(diào)參兩個過程,如圖5所示。
圖5 CNN-catboost模型訓(xùn)練過程Fig.5 Training procedure of CNN-catboost model
在特征處理過程中,由于特征向量中相似特性的特征相鄰,值為0的元素較多,導(dǎo)致訓(xùn)練模型的時間較長,因此設(shè)置一個卷積層來聚合特征。因為特征向量為一維,所以卷積核的尺寸可以為1×2或者1×3,并且將卷積核的值都設(shè)為整數(shù)。特征向量經(jīng)過卷積層處理后輸入到池化層,池化層為最大池化,池化窗口大小為1×2,步長為2,特征向量經(jīng)過下采樣后,其維度會至少降低為輸入向量的一半。
在分類與調(diào)參過程中,首先將經(jīng)過處理的特征向量作為Catboost分類層的輸入向量,使用默認(rèn)參數(shù)進(jìn)行訓(xùn)練;然后運用遺傳算法對Catboost 分類層進(jìn)行調(diào)參,首先隨機初始化種群,使用二進(jìn)制編碼將待優(yōu)化參數(shù)轉(zhuǎn)換為染色體;然后計算模型的AUC值作為個體適應(yīng)值,來評定各個體的優(yōu)劣程度;然后采用輪盤賭法選擇出適應(yīng)性強的個體,并對染色體進(jìn)行單點交叉和基本位變異,保留其優(yōu)秀基因和產(chǎn)生有實質(zhì)性差異的新品種;最后更新種群,再次計算適應(yīng)度。重復(fù)上述步驟直至找到最優(yōu)參數(shù)。調(diào)參結(jié)束后再使用最優(yōu)參數(shù)值對特征向量進(jìn)行訓(xùn)練,最后輸出分類結(jié)果。
本實驗方案設(shè)計思路如下:首先將應(yīng)用遺傳算法進(jìn)行調(diào)參,得到最優(yōu)參數(shù);然后在相同樣本量和特征維度的前提下,保持卷積層和池化層相同,在分類層分別選取Catboost 算法和其他5 種機器學(xué)習(xí)算法與CNN 進(jìn)行適配,共構(gòu)成6種CNN+機器學(xué)習(xí)算法混合模型,繼而對比這6 種混合模型在分類準(zhǔn)確度方面的效果;之后將CNN-catboost 模型與其他10 種較有代表性的和新出現(xiàn)的模型進(jìn)行比較;然后將CNN-catboost與單一機器學(xué)習(xí)模型、其他混合模型以及單一深度學(xué)習(xí)模型的訓(xùn)練時間進(jìn)行比較討論;緊接著將CNN-catboost與單一機器學(xué)習(xí)模型、其他混合模型以及單一深度學(xué)習(xí)模型在檢測耗時和資源利用率方面進(jìn)行比較和討論;最后在未知類型的安卓應(yīng)用數(shù)據(jù)集上檢測各模型的分類性能。
在實驗中,物理主機為8 GB 內(nèi)存,處理器為Intel Core i7-8750H,操作系統(tǒng)為64位Windows 10。
實驗所采集的數(shù)據(jù)樣本源自加拿大網(wǎng)絡(luò)安全研究所(https://www.unb.ca/cic/datasets/android-adware.html)和VirusShare 網(wǎng)站(https://virusshare.com/),共有3 861個,其中良性樣本包括殺毒軟件、瀏覽器、通信軟件、生活常用軟件及管理類軟件等多種良性應(yīng)用,共1 690個;惡意樣本包括2012年至2017年的廣告軟件、勒索軟件、恐嚇軟件、短信惡意軟件及僵尸網(wǎng)絡(luò)軟件等多個家族的惡意應(yīng)用,共2 171個。
本文使用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall),F(xiàn)1 值、AUC 值和檢測耗時這幾個標(biāo)準(zhǔn)進(jìn)行作為實驗結(jié)果判定指標(biāo),具體定義如下:
將惡意軟件視為負(fù)例,良性軟件視為正例,其中TP:預(yù)測為正,判斷正確;FP:預(yù)測為正,判斷錯誤;TN:預(yù)測為負(fù),判斷正確;FN:預(yù)測為負(fù),判斷錯誤。AUC被定義為ROC曲線(接收者操作特征)與橫坐標(biāo)所組成的面積,可以直觀地評價分類器的性能,其值越大代表模型分類能力越好。
分類模型的參數(shù)值會直接影響到分類的準(zhǔn)確性和效率。由于Catboost減少了對廣泛超參數(shù)調(diào)優(yōu)的需求,所以主要選取對模型影響比較大的4個參數(shù)進(jìn)行討論:最大樹數(shù)iterations、學(xué)習(xí)率learning_rate、樹深depth 和數(shù)值特征分割數(shù)border_count。其他參數(shù)設(shè)置為默認(rèn)值。根據(jù)遺傳算法的特點,結(jié)合常用的參數(shù)經(jīng)驗來初始化遺傳算法參數(shù)[13],設(shè)置初始群體大小為50,交叉概率為0.6,變異概率為0.01,以此產(chǎn)生新的基因,同時避免陷入單純的隨機搜索。
在Catboost 算法的默認(rèn)參數(shù)中,最大樹為1 000,學(xué)習(xí)率為0.1,樹深為6,數(shù)值分割數(shù)為256;而本文運用遺傳算法的參數(shù)值進(jìn)行優(yōu)化嘗試,得到以下最優(yōu)參數(shù):最大樹為180,學(xué)習(xí)率為0.242,樹深為8,數(shù)值分割數(shù)為250。分別將上述兩種參數(shù)進(jìn)行檢驗,結(jié)果如圖6所示??梢园l(fā)現(xiàn),最優(yōu)參數(shù)在各項分類評估指標(biāo)中都優(yōu)于默認(rèn)參數(shù)。
圖6 最優(yōu)參數(shù)與默認(rèn)參數(shù)對比Fig.6 Comparison between optimal parameters and default parameters
在保持卷積層和池化層相同的前提下,將CNNcatboost 模型與其他5 種CNN+機器學(xué)習(xí)算法混合模型進(jìn)行比。表3 列出了各混合模型中機器學(xué)習(xí)算法的重要參數(shù)。
表3 混合模型中機器學(xué)習(xí)算法的主要參數(shù)Table 3 Dominating parameters of machine learning algorithm in hybrid model
實驗結(jié)果如表4所示,可以發(fā)現(xiàn)CNN-catboost模型比其他CNN+機器學(xué)習(xí)算法具有更優(yōu)的分類準(zhǔn)確度。
表4 CNN-catboost與其他CNN+機器學(xué)習(xí)模型實驗對比Table 4 Comparison between CNN-catboost and other CNN+machine learning models
以AUC值為評估指標(biāo),將CNN-catboost與catboost、CNN-xgboost 與xgboost、CNN-decisiontree 與decision tree、CNN-randomforest 與random forest、CNN-logisticregression 與logistic regression、CNN-ensemble 與ensemble分別進(jìn)行對比。其中catboost、xgboost,decision tree、random forest、logistic regression 等算法的參數(shù)分別與其相對應(yīng)的CNN+機器學(xué)習(xí)算法混合模型中的機器學(xué)習(xí)算法的參數(shù)一致。在圖7 中,CNN-catboost 與catboost 簡化表述為CNN-/catboost,其余類似。由圖7可發(fā)現(xiàn),CNN+機器學(xué)習(xí)分類器混合模型的分類效果比單一機器學(xué)習(xí)分類器要好,而CNN-catboost 模型的AUC值最高,顯示該模型具有較好的性能。
圖7 CNN+機器學(xué)習(xí)與單一機器學(xué)習(xí)實驗AUC值對比Fig.7 Comparison of experimental AUC values between CNN+machine learning and single one
將CNN-catboost模型分別與catboost、xgboost模型、決策樹decision tree、多層感知機MLP[18]、random forest模型[4]、logistic regression 模型[5]、ensemble 模型[6]、CNN模型[7]、DBN模型[8]和CNN-DAE模型[9]等分類模型進(jìn)行比較,實驗結(jié)果如表5 所示,可知CNN-catboost 的分類效果優(yōu)于其他模型。至于CNN等神經(jīng)網(wǎng)絡(luò)模型的分類效果不夠理想,原因在于樣本數(shù)量不夠,造成了過擬合。
表5 CNN-catboost模型與其他模型實驗對比Table 5 Comparison between CNN-catboost and other models
由于decision tree模型、random forest模型[4]、logistic regression 模型[5]、ensemble 模型[6]等機器學(xué)習(xí)模型復(fù)雜度低,所以訓(xùn)練耗時比較小,但他們的分類準(zhǔn)確性也比較差,因此在本實驗中不列入訓(xùn)練時間比較范圍。本文將CNN-catboost模型分別與分類準(zhǔn)確率較高的模型,包括混合模型(如CNN-xgboost、CNN-DAE[9]),以及單一機器學(xué)習(xí)模型(如catboost)和單一深度學(xué)習(xí)模型(如CNN[7]、MLP[18]和DBN[8])等進(jìn)行訓(xùn)練時間方面的比較,結(jié)果如表6所示。
從表6 看出,CNN-catboost 的訓(xùn)練時間與CNNxgboost 相當(dāng),比其他混合模型以及單一機器學(xué)習(xí)和深度學(xué)習(xí)模型的訓(xùn)練時間少。經(jīng)分析,原因如下:一方面,在本文的CNN-catboost模型中,經(jīng)過卷積層和池化層處理的特征向量,在保留了特征的有效信息的同時,也明顯降低了特征維度;另一方面,Catboost 算法對訓(xùn)練次數(shù)要求低,分類預(yù)測速度較快,而神經(jīng)網(wǎng)絡(luò)由于其非線性,梯度噪音等原因?qū)е聝?yōu)化步驟多,導(dǎo)致訓(xùn)練時間較長,因此導(dǎo)致CNN-catboost的訓(xùn)練開銷低于混合模型和單一深度學(xué)習(xí)模型和機器學(xué)習(xí)模型。
表6 各模型的訓(xùn)練時間Table 6 Training time of each model
將CNN-catboost模型應(yīng)用于安卓應(yīng)用檢測,分析其在檢測耗時、CPU使用率和內(nèi)存使用率方面的表現(xiàn)。從3.1 節(jié)所述的數(shù)據(jù)集中選取511 個良性應(yīng)用和649 個惡意應(yīng)用(共1 159個)進(jìn)行實驗。繼續(xù)選取其他分類準(zhǔn)確率較高的模型與CNN-catboost進(jìn)行對比,包括混合模型CNN-xgboost、CNN-DAE[9],單一機器學(xué)習(xí)模型catboost和單一深度學(xué)習(xí)模型CNN[7]、MLP[18]和DBN[8]等,結(jié)果如表7所示。
表7 檢測耗時和資源利用率對比Table 7 Comparison of detection time and resource utilization
由表7 可知,CNN-catboost 的檢測時間和內(nèi)存使用率優(yōu)于其他模型,CPU 使用率也優(yōu)于大部分模型,說明將CNN-catboost 應(yīng)用于安卓應(yīng)用檢測時具有檢測耗時短、資源耗費少的優(yōu)點。
在本次實驗中,利用CNN-catboost模型對隨機搜集的未知類型的安卓應(yīng)用進(jìn)行檢測,以檢驗其在實際應(yīng)用中的效果。首先從各大安卓應(yīng)用市場下載1 007個未知類型的安卓APK包,然后上傳至VirusTotal(https://www.virustotal.com/)在線查毒網(wǎng)站進(jìn)行分類檢測,檢測結(jié)果作為本次實驗的檢測基準(zhǔn)。VirusTotal 網(wǎng)站對此1 007個樣本進(jìn)行檢測的結(jié)果為:良性樣本751 個,惡意樣本256 個。繼續(xù)使用3.6 節(jié)中提及的其他模型所得的檢測結(jié)果進(jìn)行對比,實驗結(jié)果如表8 所示,其中Recall1 為良性樣本召回率,Recall2為惡意樣本召回率。
表8 基于未知類型安卓應(yīng)用數(shù)據(jù)集的各模型對比Table 8 Comparison of models based on unknown Android app dataset
由表8 可知,在未知類型的應(yīng)用檢測中,相比于其他模型,CNN-catboost 可較好地區(qū)分良性和惡意應(yīng)用,誤判率比較低,切合對各種安卓應(yīng)用進(jìn)行安全檢測的實際需求。
本文提出一種有效地將卷積神經(jīng)網(wǎng)絡(luò)特征提取和降維能力以及catboost模型魯棒性強的分類能力結(jié)合的混合模型CNN-catboost,該模型不僅兼具卷積神經(jīng)網(wǎng)絡(luò)可以增強特征信號,減少冗余信息的優(yōu)點,同時還融合了catboost模型的低數(shù)據(jù)量要求即可獲得較好分類結(jié)果的優(yōu)勢,通過運用遺傳算法進(jìn)行調(diào)參進(jìn)一步提升catboost 模型的分類準(zhǔn)確率。經(jīng)過實驗驗證,該模型在提高了惡意安卓應(yīng)用檢測準(zhǔn)確率的同時,也有效地縮短了訓(xùn)練時間,因而具有一定的實踐應(yīng)用價值。
鑒于深度學(xué)習(xí)方法對安卓惡意軟件檢測具有良好的發(fā)展前景,因此在下一步工作中將繼續(xù)優(yōu)化深度學(xué)習(xí)模型,進(jìn)一步提高惡意安卓應(yīng)用檢測精度和效率。