• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      結合CNN和Catboost算法的惡意安卓應用檢測模型

      2021-08-06 08:23:26林華智黃劍鋒林志毅
      計算機工程與應用 2021年15期
      關鍵詞:安卓特征向量遺傳算法

      蘇 慶,林華智,黃劍鋒,林志毅

      廣東工業(yè)大學 計算機學院,廣州 510006

      2018 年間,360 互聯(lián)網安全中心記錄了大約1.1 億次惡意安卓應用程序感染[1],說明網絡安全態(tài)勢存在嚴重威脅,也使得惡意安卓應用檢測成為網絡安全的研究熱點之一。惡意安卓軟件檢測技術可分為靜態(tài)分析技術和動態(tài)分析技術兩大類[2]。其中動態(tài)分析技術是利用沙盒、虛擬機來仿真應用的執(zhí)行過程,通過實時監(jiān)控應用執(zhí)行過程中所產生的行為來判斷其是否為惡意軟件,此方法必須在程序運行時才能實施檢測,耗費資源和時間多。靜態(tài)分析法不執(zhí)行程序文件,而是先對程序進行反編譯,然后提取特征值進行分析和研究,是一類較為簡便的安卓惡意應用判定方法。

      近年來,越來越多學者將機器學習或者深度學習方法應用于惡意安卓應用檢測。Zhu等人[3]提出通過提取權限、敏感的API 監(jiān)控系統(tǒng)事件和許可率等關鍵特性,采用整體旋轉森林(rotation forest)構建一個經濟有效的安卓應用檢測模型,其檢測效果優(yōu)于支持向量機模型,但所選取的特征較少,檢測準確率不高。Wang 等人[4]通過提取權限、硬件功能和接收者動作等122 個特征,使用多種機器學習分類器進行訓練和測試,并使用隨機森林分類器(random forest)獲得較高的分類準確率,但由于未提取系統(tǒng)調用函數特征,導致誤報率比一般防病毒程序高。Suman 等人[5]提出通過提取權限和API 等特征,使用邏輯回歸(logistic regression)構建分類模型,并且通過刪除低方差特征來優(yōu)化特征,獲得較好的分類效果。Wang等人[6]提取了權限、intent、API和硬件特性等11類共3萬多個特征,然后使用支持向量機(SVM)根據特征對檢測的重要性對特征進行排序,并集成5種機器學習分類器進行分類,實驗結果表明該集成方法優(yōu)于單一機器學習模型,然而該方法需要提取的特征較多,特征維度較大,檢測效率相對較低。Karbab等人[7]提取應用程序API 作為特征,使用卷積神經網絡(CNN)來進行檢測,實驗表明該方法在多個數據集檢測中具有較高的準確性。Wang 等人[8]提出基于深度置信網絡(DBN)的惡意安卓應用檢測方法,通過提取安卓應用的權限和API 函數作為特征,采用DBN 進行訓練和測試,從而減少學習過程中的人工干預。Wang 等人[9]將卷積神經網絡(CNN)與深度自編碼網絡(DAE)結合構建CNN-DAE 檢測模型,提取了API、權限、硬件特性等多種特征來進行訓練,該方法相比機器學習方法提高了檢測精度,也相比CNN 減少了訓練時間??傮w而言,深度網絡檢測方法的檢測效率較低,需要較大的樣本量。

      針對上述文獻中存在的安卓惡意檢測中存在的效率低、特征維度過大和樣本量不足等問題,本文提出一個結合卷積神經網絡(CNN)和Catboost 算法的混合檢測模型,同時具備了CNN 的局部感知和降維后特征保持不變性的能力,以及Catboost算法對樣本量和特征要求不高,不易過擬合的優(yōu)點。卷積神經網絡的特征提取功能可以增強信號和降低向量維度,可以較好地解決特征篩選和特征維度過大的問題,提高檢測效率;運用魯棒性高和對樣本數量要求不高的Catboost 模型作為分類層進行分類,可以解決樣本量不足而影響分類精度的問題。另外,使用遺傳算法對Catboost進行快速的參數優(yōu)化,進一步提高檢測精確度和效率。

      1 相關技術介紹

      1.1 CNN神經網絡模型

      卷積神經卷網絡(CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡[10],主要包括以下兩層。

      1.1.1 卷積層

      卷積層的功能是使用卷積核對輸入數據進行特征提取,有規(guī)律地掃過輸入特征,在感受野內對輸入特征做矩陣元素乘法求和并疊加偏差量:

      1.1.2 池化層

      池化層是對輸入的對象進行抽象和降維,具有保持特征不變性和防過擬合作用。Lp池化是比較常用的一種池化方法,其一般表示形式為:

      其中,p是預指定參數,當p=0 時,Lp池化在池化區(qū)域內取均值,被稱為均值池化;當p→∞時,Lp池化在區(qū)域內取極大值,被稱為極大池化[11]。

      1.2 Catboost模型

      Catboost 是一個基于梯度提升決策樹的機器學習框架,它將所有樣品的二進制特征存儲于連續(xù)向量B又紅又專中,葉子節(jié)點的值存儲在大小為2d的浮點數向量中。對于樣本x,建立一個二進制向量A:

      其中,B(x,f)從向量B讀取的樣本x上的二進制特征f的值,而f(t,j)從深度i上的第t棵樹中的二進制特征的數目。向量以數據并行的方式構建,可以實現(xiàn)高達3倍的加速[12]。

      1.3 遺傳算法

      遺傳算法(Genetic Algorithm,GA)是一種通過模擬自然進化過程搜索最優(yōu)解的方法[13],具有內在的隱并行性和更好的全局尋優(yōu)能力,其基本流程如圖1所示。

      圖1 遺傳算法基本流程Fig.1 Workflow of genetic algorithm

      2 模型設計與實現(xiàn)

      2.1 CNN-catboost模型的網絡結構

      本文提出的CNN-catboost混合分類模型,繼承了卷積神經網絡提取局部特征能力強和降維后保留有效信息效果較好的優(yōu)勢,以及catboost 模型無需廣泛數據訓練就可以產生較好分類效果的特點,并利用遺傳算法的全局尋優(yōu)調參能力縮減調參用時。其模型結構如圖2所示。

      圖2 CNN-catboost模型結構圖Fig.2 Structure of CNN-catboost model

      在CNN-catboost 模型中,首先輸入層輸入特征向量,卷積層對輸入的特征向量進行提取和局部感知,利用卷積運算增強原始信號特征;然后再利用池化層對提取整合的特征進行下采樣,在減少數據處理量的同時保留有用信息,減少冗余信息,特征維度降低,能促進最后一層分類模型的快速收斂,從而降低模型的訓練時間,有效提高分類模型的泛化能力;另外,通過使用遺傳算法對Catboost進行參數優(yōu)化以進一步提高Catboost模型的分類準確率;最后在Catboost層對特征向量進行訓練和測試。

      安卓應用的特征種類和數量較多,特征的選擇和處理是構建泛化性強的安卓惡意應用檢測模型的難點。將Catboost應用于安卓惡意應用檢測時,需要人工進行特征選擇和過濾,其結果對Catboost的最終分類效果有重要影響。而CNN 模型具有自動學習特性,可以通過卷積層和池化層進行自動地特征優(yōu)化,無需進行人工構造和過濾特征,可有效彌補Catboost在特征處理方面的不足。但是,將CNN應用于分類時,存在對數據量要求高、學習過程長,訓練速度慢的缺陷,而Catboost的優(yōu)勢在于不易過擬合,訓練速度快,無需大量數據進行訓練即可獲得高準確率的分類結果,正好可以改進CNN 模型的上述問題。

      Catboost 的參數選取會影響其分類結果的準確性,而且最優(yōu)化的參數有助于鞏固其魯棒性。而遺傳算法以多點和并行搜索尋找全局最優(yōu)解,在快速確定最優(yōu)參數群的同時避免陷入局部最優(yōu)解。因此應用遺傳算法對Catboost 進行調參,借助其良好的全局搜索能力,以較少的資源消耗和時間確定最優(yōu)化參數,加快Catboost的收斂速度。

      綜上所述,本文結合CNN、Catboost 和遺傳算法的各自優(yōu)勢,利用CNN 中卷積層和池化層自動提取和選擇特征,自動抽取安卓應用的本質特征,將其作為Catboost 模型的輸入向量,并使用遺傳算法快速確定Catboost模型的最優(yōu)化參數,構造一個既避免人工選擇過濾特征,又無需較多的數據樣本就可以快速生成較好的檢測效果的模型。

      2.2 特征提取

      CNN-catboost模型的第一步是輸入特征向量,因此需要特征提取。本文首先使用androguard 工具提取到安卓應用的權限、API類包、四大組件、intent特征和硬件特性等各種靜態(tài)特征;然后使用apktool 工具將APK 文件解碼得到smali文件,進而提取OpCode特征[14]。

      (1)權限特征:在一般情況下,安卓惡意應用申請的敏感權限比正常應用多,正常應用所申請的權限總量比惡意的多。本文選取了Android6.0 版本的25 個敏感權限和33個正常權限作為權限特征。

      (2)API 特征:Android 應用的相關功能需要通過API調用來實現(xiàn)[15]。由于安卓API函數數量眾多且每個API 函數敏感高低難以統(tǒng)計,本文選取了Android SDK所提供的150個安卓API類作為特征。

      (3)組件數目:Android系統(tǒng)中的4種實用組件分別是Activity、Service、BroadcastReceiver 和ContentProvider。有些惡意家族應用為了保持惡意家族特性,會在同族軟件中使用相同的服務名,所以本文提取這四種組件的數目作為特征。

      (4)intent 特征:Intent-Filter 動作action 用于描述意圖要執(zhí)行的行為[16]。比如DIAL撥打電話不需要打電話的權限,惡意應用在用戶不知情的情況下可以越權撥打電話,因此本文選取了惡意應用最常用的10個action來作為特征。

      (5)硬件特征:uses_feature 描述了安卓應用所需要硬件特性,例如某惡意應用會申請GPS來竊取用戶定位數據,所以本文提取用戶最常使用的27 個硬件特性作為特征。

      (6)OpCode特征:同族惡意應用變種往往具有高度相似的代碼邏輯,并且可以由操作符序列進行表征。通過反編譯APK得到smali文件中包含的Dalivk指令[17],從中抽取反映程序語義的七大類核心指令集合V、T、M、G、I、R、P,并去掉操作數,形成OpCode特征,如表1所示。

      表1 OpCode特征核心指令集Table 1 Core instruction set of OpCode feature

      2.3 特征預處理

      對于安卓權限特征,將選取的25 個敏感權限和33個正常權限依次排列組成一個特征向量,排列方式如圖3所示。若某一位取0則表示該權限在APK中未出現(xiàn),取1則反之。

      圖3 安卓權限排列示意圖Fig.3 Schematic diagram of Android permission arrangement

      與敏感行為相關的安卓API 函數大部分集中于content、location和net等10 個類包中。首先將140個普通API 類包按照Android 官方API 文檔的順序排列在前,再將10 個敏感類包排在后,構成一個API 類包特征向量。一個API 類包在該APK 中出現(xiàn)的次數為該狀態(tài)的取值,如圖4所示。

      圖4 API類包排列示意圖Fig.4 Schematic diagram of API packages arrangement

      對于Activity、Service、BroadcastReceiver 和Content Provider 這4 種組件,取每種組件的數量為特征;intent特征中的動作所出現(xiàn)的次數即該向量值。

      對于27個硬件特性特征,特性相關聯(lián)的排列相鄰,如Camera/camera.Flash/camera.front這幾個排列在相鄰,某特性若是被引用,則對應特征值為1,否則為0。

      對于提取到的OpCode特征,建立一個2-Gram模型,模型中每個子集出現(xiàn)的次數則為特征向量的該狀態(tài)值。

      將以上6 類共298 個特征映射到向量空間,形成一個安卓應用的特征向量,如表2所示。

      表2 特征向量表示Table 2 Representation of feature vectors

      2.4 模型的訓練過程

      CNN-catboost 混合模型的訓練過程主要分為特征處理、分類與調參兩個過程,如圖5所示。

      圖5 CNN-catboost模型訓練過程Fig.5 Training procedure of CNN-catboost model

      在特征處理過程中,由于特征向量中相似特性的特征相鄰,值為0的元素較多,導致訓練模型的時間較長,因此設置一個卷積層來聚合特征。因為特征向量為一維,所以卷積核的尺寸可以為1×2或者1×3,并且將卷積核的值都設為整數。特征向量經過卷積層處理后輸入到池化層,池化層為最大池化,池化窗口大小為1×2,步長為2,特征向量經過下采樣后,其維度會至少降低為輸入向量的一半。

      在分類與調參過程中,首先將經過處理的特征向量作為Catboost分類層的輸入向量,使用默認參數進行訓練;然后運用遺傳算法對Catboost 分類層進行調參,首先隨機初始化種群,使用二進制編碼將待優(yōu)化參數轉換為染色體;然后計算模型的AUC值作為個體適應值,來評定各個體的優(yōu)劣程度;然后采用輪盤賭法選擇出適應性強的個體,并對染色體進行單點交叉和基本位變異,保留其優(yōu)秀基因和產生有實質性差異的新品種;最后更新種群,再次計算適應度。重復上述步驟直至找到最優(yōu)參數。調參結束后再使用最優(yōu)參數值對特征向量進行訓練,最后輸出分類結果。

      3 實驗結果與分析

      本實驗方案設計思路如下:首先將應用遺傳算法進行調參,得到最優(yōu)參數;然后在相同樣本量和特征維度的前提下,保持卷積層和池化層相同,在分類層分別選取Catboost 算法和其他5 種機器學習算法與CNN 進行適配,共構成6種CNN+機器學習算法混合模型,繼而對比這6 種混合模型在分類準確度方面的效果;之后將CNN-catboost 模型與其他10 種較有代表性的和新出現(xiàn)的模型進行比較;然后將CNN-catboost與單一機器學習模型、其他混合模型以及單一深度學習模型的訓練時間進行比較討論;緊接著將CNN-catboost與單一機器學習模型、其他混合模型以及單一深度學習模型在檢測耗時和資源利用率方面進行比較和討論;最后在未知類型的安卓應用數據集上檢測各模型的分類性能。

      3.1 實驗環(huán)境、數據集選取和評估指標

      在實驗中,物理主機為8 GB 內存,處理器為Intel Core i7-8750H,操作系統(tǒng)為64位Windows 10。

      實驗所采集的數據樣本源自加拿大網絡安全研究所(https://www.unb.ca/cic/datasets/android-adware.html)和VirusShare 網站(https://virusshare.com/),共有3 861個,其中良性樣本包括殺毒軟件、瀏覽器、通信軟件、生活常用軟件及管理類軟件等多種良性應用,共1 690個;惡意樣本包括2012年至2017年的廣告軟件、勒索軟件、恐嚇軟件、短信惡意軟件及僵尸網絡軟件等多個家族的惡意應用,共2 171個。

      本文使用準確率(Accuracy)、精確率(Precision)、召回率(Recall),F(xiàn)1 值、AUC 值和檢測耗時這幾個標準進行作為實驗結果判定指標,具體定義如下:

      將惡意軟件視為負例,良性軟件視為正例,其中TP:預測為正,判斷正確;FP:預測為正,判斷錯誤;TN:預測為負,判斷正確;FN:預測為負,判斷錯誤。AUC被定義為ROC曲線(接收者操作特征)與橫坐標所組成的面積,可以直觀地評價分類器的性能,其值越大代表模型分類能力越好。

      3.2 基于遺傳算法的參數值優(yōu)化實驗

      分類模型的參數值會直接影響到分類的準確性和效率。由于Catboost減少了對廣泛超參數調優(yōu)的需求,所以主要選取對模型影響比較大的4個參數進行討論:最大樹數iterations、學習率learning_rate、樹深depth 和數值特征分割數border_count。其他參數設置為默認值。根據遺傳算法的特點,結合常用的參數經驗來初始化遺傳算法參數[13],設置初始群體大小為50,交叉概率為0.6,變異概率為0.01,以此產生新的基因,同時避免陷入單純的隨機搜索。

      在Catboost 算法的默認參數中,最大樹為1 000,學習率為0.1,樹深為6,數值分割數為256;而本文運用遺傳算法的參數值進行優(yōu)化嘗試,得到以下最優(yōu)參數:最大樹為180,學習率為0.242,樹深為8,數值分割數為250。分別將上述兩種參數進行檢驗,結果如圖6所示。可以發(fā)現(xiàn),最優(yōu)參數在各項分類評估指標中都優(yōu)于默認參數。

      圖6 最優(yōu)參數與默認參數對比Fig.6 Comparison between optimal parameters and default parameters

      3.3 CNN-catboost與其他CNN+機器學習模型對比實驗

      在保持卷積層和池化層相同的前提下,將CNNcatboost 模型與其他5 種CNN+機器學習算法混合模型進行比。表3 列出了各混合模型中機器學習算法的重要參數。

      表3 混合模型中機器學習算法的主要參數Table 3 Dominating parameters of machine learning algorithm in hybrid model

      實驗結果如表4所示,可以發(fā)現(xiàn)CNN-catboost模型比其他CNN+機器學習算法具有更優(yōu)的分類準確度。

      表4 CNN-catboost與其他CNN+機器學習模型實驗對比Table 4 Comparison between CNN-catboost and other CNN+machine learning models

      以AUC值為評估指標,將CNN-catboost與catboost、CNN-xgboost 與xgboost、CNN-decisiontree 與decision tree、CNN-randomforest 與random forest、CNN-logisticregression 與logistic regression、CNN-ensemble 與ensemble分別進行對比。其中catboost、xgboost,decision tree、random forest、logistic regression 等算法的參數分別與其相對應的CNN+機器學習算法混合模型中的機器學習算法的參數一致。在圖7 中,CNN-catboost 與catboost 簡化表述為CNN-/catboost,其余類似。由圖7可發(fā)現(xiàn),CNN+機器學習分類器混合模型的分類效果比單一機器學習分類器要好,而CNN-catboost 模型的AUC值最高,顯示該模型具有較好的性能。

      圖7 CNN+機器學習與單一機器學習實驗AUC值對比Fig.7 Comparison of experimental AUC values between CNN+machine learning and single one

      3.4 CNN-catboost模型與其他多種模型對比實驗

      將CNN-catboost模型分別與catboost、xgboost模型、決策樹decision tree、多層感知機MLP[18]、random forest模型[4]、logistic regression 模型[5]、ensemble 模型[6]、CNN模型[7]、DBN模型[8]和CNN-DAE模型[9]等分類模型進行比較,實驗結果如表5 所示,可知CNN-catboost 的分類效果優(yōu)于其他模型。至于CNN等神經網絡模型的分類效果不夠理想,原因在于樣本數量不夠,造成了過擬合。

      表5 CNN-catboost模型與其他模型實驗對比Table 5 Comparison between CNN-catboost and other models

      3.5 訓練時間對比實驗

      由于decision tree模型、random forest模型[4]、logistic regression 模型[5]、ensemble 模型[6]等機器學習模型復雜度低,所以訓練耗時比較小,但他們的分類準確性也比較差,因此在本實驗中不列入訓練時間比較范圍。本文將CNN-catboost模型分別與分類準確率較高的模型,包括混合模型(如CNN-xgboost、CNN-DAE[9]),以及單一機器學習模型(如catboost)和單一深度學習模型(如CNN[7]、MLP[18]和DBN[8])等進行訓練時間方面的比較,結果如表6所示。

      從表6 看出,CNN-catboost 的訓練時間與CNNxgboost 相當,比其他混合模型以及單一機器學習和深度學習模型的訓練時間少。經分析,原因如下:一方面,在本文的CNN-catboost模型中,經過卷積層和池化層處理的特征向量,在保留了特征的有效信息的同時,也明顯降低了特征維度;另一方面,Catboost 算法對訓練次數要求低,分類預測速度較快,而神經網絡由于其非線性,梯度噪音等原因導致優(yōu)化步驟多,導致訓練時間較長,因此導致CNN-catboost的訓練開銷低于混合模型和單一深度學習模型和機器學習模型。

      表6 各模型的訓練時間Table 6 Training time of each model

      3.6 模型檢測耗時和資源利用率對比實驗

      將CNN-catboost模型應用于安卓應用檢測,分析其在檢測耗時、CPU使用率和內存使用率方面的表現(xiàn)。從3.1 節(jié)所述的數據集中選取511 個良性應用和649 個惡意應用(共1 159個)進行實驗。繼續(xù)選取其他分類準確率較高的模型與CNN-catboost進行對比,包括混合模型CNN-xgboost、CNN-DAE[9],單一機器學習模型catboost和單一深度學習模型CNN[7]、MLP[18]和DBN[8]等,結果如表7所示。

      表7 檢測耗時和資源利用率對比Table 7 Comparison of detection time and resource utilization

      由表7 可知,CNN-catboost 的檢測時間和內存使用率優(yōu)于其他模型,CPU 使用率也優(yōu)于大部分模型,說明將CNN-catboost 應用于安卓應用檢測時具有檢測耗時短、資源耗費少的優(yōu)點。

      3.7 未知類型應用檢測實驗

      在本次實驗中,利用CNN-catboost模型對隨機搜集的未知類型的安卓應用進行檢測,以檢驗其在實際應用中的效果。首先從各大安卓應用市場下載1 007個未知類型的安卓APK包,然后上傳至VirusTotal(https://www.virustotal.com/)在線查毒網站進行分類檢測,檢測結果作為本次實驗的檢測基準。VirusTotal 網站對此1 007個樣本進行檢測的結果為:良性樣本751 個,惡意樣本256 個。繼續(xù)使用3.6 節(jié)中提及的其他模型所得的檢測結果進行對比,實驗結果如表8 所示,其中Recall1 為良性樣本召回率,Recall2為惡意樣本召回率。

      表8 基于未知類型安卓應用數據集的各模型對比Table 8 Comparison of models based on unknown Android app dataset

      由表8 可知,在未知類型的應用檢測中,相比于其他模型,CNN-catboost 可較好地區(qū)分良性和惡意應用,誤判率比較低,切合對各種安卓應用進行安全檢測的實際需求。

      4 結語

      本文提出一種有效地將卷積神經網絡特征提取和降維能力以及catboost模型魯棒性強的分類能力結合的混合模型CNN-catboost,該模型不僅兼具卷積神經網絡可以增強特征信號,減少冗余信息的優(yōu)點,同時還融合了catboost模型的低數據量要求即可獲得較好分類結果的優(yōu)勢,通過運用遺傳算法進行調參進一步提升catboost 模型的分類準確率。經過實驗驗證,該模型在提高了惡意安卓應用檢測準確率的同時,也有效地縮短了訓練時間,因而具有一定的實踐應用價值。

      鑒于深度學習方法對安卓惡意軟件檢測具有良好的發(fā)展前景,因此在下一步工作中將繼續(xù)優(yōu)化深度學習模型,進一步提高惡意安卓應用檢測精度和效率。

      猜你喜歡
      安卓特征向量遺傳算法
      二年制職教本科線性代數課程的幾何化教學設計——以特征值和特征向量為例
      克羅內克積的特征向量
      文物表情包
      一類特殊矩陣特征向量的求法
      基于自適應遺傳算法的CSAMT一維反演
      一種基于遺傳算法的聚類分析方法在DNA序列比較中的應用
      EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應用
      中華建設(2017年1期)2017-06-07 02:56:14
      基于遺傳算法和LS-SVM的財務危機預測
      一種基于安卓系統(tǒng)的手機側抓包分析方法
      基于改進的遺傳算法的模糊聚類算法
      普定县| 千阳县| 江阴市| 衡南县| 探索| 锡林郭勒盟| 玉门市| 平陆县| 临沂市| 吕梁市| 安溪县| 沅江市| 深州市| 竹山县| 罗城| 长岛县| 江津市| 工布江达县| 长子县| 吴江市| 涡阳县| 株洲市| 景泰县| 新巴尔虎右旗| 郸城县| 遵义县| 外汇| 沧州市| 康乐县| 那曲县| 广南县| 蕉岭县| 连州市| 旬邑县| 堆龙德庆县| 巨野县| 资兴市| 修文县| 荥经县| 平和县| 榆林市|