謝麗霞,李 爽
(中國民航大學 計算機科學與技術學院,天津 300300)
惡意軟件具有隱蔽性強、竊取用戶隱私和惡意扣費等特點,給Android手機用戶帶來日益嚴重的安全威脅[1],Android手機的安全形勢日益嚴峻。Android惡意軟件的快速高效檢測成為目前的一個研究熱點。
隨著機器學習算法的廣泛應用,許多研究者嘗試借助機器學習方法進行Android惡意軟件檢測研究。通過訓練機器學習分類器可模擬Android軟件的行為,從而準確地區(qū)分良性軟件和惡意軟件。訓練機器學習分類器的特征包括Android軟件的靜態(tài)特征和動態(tài)特征,通過對Android軟件安裝包(Android PacKage, APK)逆向處理可獲得如權限、API和意圖等靜態(tài)特征;通過監(jiān)測APK文件運行過程的實時信息可獲取如系統(tǒng)調(diào)用、網(wǎng)絡流量等動態(tài)特征。相比之下,靜態(tài)特征的獲取不需要執(zhí)行惡意軟件,對系統(tǒng)的干擾小且易于統(tǒng)計分析,已成為較常用的特征提取方法。
文獻[2]通過提取軟件運行時的用戶操作場景和行為習慣等信息作為特征,使用樸素貝葉斯(Naive Bayes, NB)分類器檢測Android惡意軟件。文獻[3]通過提取Android軟件的組件、函數(shù)調(diào)用和系統(tǒng)調(diào)用類作為特征,采用NB、部分決策樹和J48等算法構造3層混合分類器檢測惡意軟件。上述兩種方法可以實現(xiàn)對Android惡意軟件的檢測,但檢測精度低。文獻[4]提取Android軟件中Java字節(jié)碼信息作為特征,采用主成分分析法對特征降維,并運用隨機森林(Random Forest, RF)、NB和支持向量機(Support Vector Machine, SVM)等算法構建分類器檢測惡意軟件。文獻[5]提取網(wǎng)絡流量屬性作為特征,采用卡方檢驗和信息增益(Information Gain, IG)融合的方法篩選最優(yōu)特征子集,運用樸素貝葉斯分類器檢測Android惡意軟件。文獻[6]提取APK文件中的權限和意圖信息作為特征,采用信息增益算法篩選特征實現(xiàn)一種基于改進隨機森林算法的Android惡意軟件檢測模型。文獻[4-6]通過對特征降維實現(xiàn)較好的檢測效果,但檢出率低。
使用機器學習算法檢測Android惡意軟件檢出率低的重要原因是可收集到的惡意樣本種類少且數(shù)量有限,這必然導致收集到的數(shù)據(jù)集不平衡。文獻[7]針對Android惡意軟件檢測中的數(shù)據(jù)不平衡問題,提出一種基于最小風險的樸素貝葉斯分類器,但由于僅提取權限信息作為特征,導致檢出率仍不高。文獻[8]提出一種基于多級集成的惡意軟件檢測模型,提取Dalvik指令、權限和API等靜態(tài)屬性作為特征,構造基于J48決策樹的三層集成分類器,該模型具有較好的檢測效果,但技術實現(xiàn)較為復雜。
綜上所述,現(xiàn)有Android惡意軟件檢測方法在解決特征降維、數(shù)據(jù)不平衡和技術實現(xiàn)等問題時存在諸多不足,導致Android惡意軟件檢出率低。
本文提出一種基于Bagging-SVM集成算法的Android惡意軟件檢測模型,其主要工作為:
1)提取Android軟件的權限(Permission)、意圖(Intent)和組件(Component)等靜態(tài)屬性作為特征,提高惡意軟件和良性軟件的區(qū)分度。
2)提出一種IG-ReliefF混合篩選算法,最大限度地剔除冗余和無關特征,從而提高后續(xù)分類檢測效果。
3)為解決數(shù)據(jù)不平衡性導致的Android惡意軟件的檢出率和分類精度低的問題,提出一種基于Bagging-SVM的惡意軟件檢測算法。該算法使用bootstrap抽樣構造平衡數(shù)據(jù)集,并訓練基于Bagging的SVM集成分類器用于Android惡意軟件檢測,實現(xiàn)較高的檢出率和分類精度。
基于Bagging-SVM算法,設計一種Android惡意軟件檢測模型(如圖1所示)。該模型由3個主要模塊構成:特征提取模塊、特征篩選模塊和分類檢測模塊。
圖1 Android惡意軟件檢測模型結構 Fig. 1 Android malware detection model structure
在特征提取模塊和特征篩選模塊完成數(shù)據(jù)的預處理,其主要目標為數(shù)據(jù)集提取和特征降維,處理過程為:
1)特征提取模塊首先對Android軟件樣本的APK文件逆向處理得到清單文件AndroidManifest.xml,對清單文件解析獲取屬性標簽,然后量化屬性標簽并構造特征向量,最后收集所有Android軟件樣本的特征向量組成數(shù)據(jù)集。
2)特征篩選模塊采用IG[9]和ReliefF[10]2種算法對數(shù)據(jù)集中的所有特征評分,根據(jù)評分結果搜索特征子集,然后根據(jù)特征子集構造數(shù)據(jù)集,通過交叉驗證法訓練分類器獲得分類結果,計算F1作為特征子集的評分。根據(jù)評分結果篩選分類效果最優(yōu)的特征子集,從而完成特征降維。
在分類檢測模塊完成對分類器的訓練和對惡意軟件的檢測,處理過程為:
1)采用隨機抽樣的方法將降維后的數(shù)據(jù)集拆分為訓練集和測試集;
2)分別對訓練集中的惡意數(shù)據(jù)集和良性數(shù)據(jù)集進行bootstrap抽樣,構造樣本數(shù)目相等的惡意數(shù)據(jù)集和良性數(shù)據(jù)集,合并二者組成平衡數(shù)據(jù)集;
3)重復2)構造多個平衡數(shù)據(jù)集,針對每個平衡數(shù)據(jù)集,訓練1個SVM基分類器;多個SVM基分類器以投票的方式組成SVM集成分類器;
4)檢測時,將測試集中的樣本輸入SVM集成分類器,輸出SVM集成分類器中多個SVM基分類器的投票結果,以投票結果判定Android軟件樣本為良性樣本或惡意樣本。
特征提取模塊首先逆向分析提取APK文件中的Permission、Intent和Component靜態(tài)屬性作為特征,其次通過量化特征構造特征向量,最后將全部Android軟件樣本的特征向量合并為數(shù)據(jù)集。具體處理過程設計如下:
步驟1 運用反編譯工具Apktool[11]將收集到的APK文件反編譯,獲取Android軟件安裝時的清單文件AndroidManifest.xml。
步驟2 采用Python中的xml.etree.Element Tree模塊解析清單文件AndroidManifest.xml,統(tǒng)計清單文件中的Permission、Intent和Component信息。Android開發(fā)者自定義的Permission和Intent屬性只屬于特定樣本,不具有代表性,因此不作統(tǒng)計。
步驟3 將Permission和Intent的有無量化為1和0;把清單文件中窗口(activity)、服務(service)、廣播接收者(receiver)和內(nèi)容提供者(provider)的個數(shù)作為組件的量化結果。
步驟4 運用量化結果和類別標簽(良性為‘0’,惡意為‘1’)構造特征向量,每個特征向量代表一個樣本,將所有的特征向量合并為實驗數(shù)據(jù)集。
為最大限度降低特征維度和提高后續(xù)的分類檢測效果,特征篩選模塊采用一種IG-ReliefF混合篩選算法。IG和ReliefF算法都是通過對特征評分篩選最優(yōu)特征,但評分標準不同:針對某個特征,IG算法的評分值為該特征的熵值與其條件熵的差,主要量化單個特征對于分類結果的影響;而ReliefF算法的評分值為該特征與不同類別樣本的距離和相同類別樣本之間距離的差值,反映特征間的相關關系對分類結果的影響。IG-ReliefF算法結合二者的優(yōu)點實現(xiàn)特征篩選,其過程為:首先,采用IG和ReliefF算法對特征評分,搜索2種算法下得分均高的特征子集;然后,使用搜索得到的特征子集構建數(shù)據(jù)集,并采用交叉驗證法訓練分類器,獲取分類結果;最后,計算分類結果的評估指標作為特征子集的評分值,從而篩選出分類效果最優(yōu)的特征子集。
2.2.1 特征子集評估指標
特征篩選中,為客觀評估特征子集的優(yōu)劣,本文計算準確率和檢出率的調(diào)和平均值F1作為特征子集的評估指標。為此,首先定義4個基本指標量:TP表示惡意軟件被正確識別的數(shù)量;FP表示良性軟件被錯誤識別為惡意軟件的數(shù)量;TN表示良性軟件被正確識別的數(shù)量;FN表示惡意軟件被錯誤識別的數(shù)量。利用基本指標,定義以下4個度量指標:
指標1 準確率表示被正確識別的惡意軟件和被識別為惡意軟件的數(shù)量比。
(1)
指標2 檢出率表示被正確識別的惡意軟件和實際惡意軟件的數(shù)量比,也稱作召回率。
(2)
指標3 分類精度表示被正確識別的軟件和所有樣本軟件的數(shù)量比[12]。
(3)
指標4F1為準確率和檢出率的調(diào)和平均值。
(4)
2.2.2 IG-ReliefF混合篩選算法設計
設實驗數(shù)據(jù)集為S,其中包含p個特征F={f1,f2, …,fp},通過IG算法對p個特征的評分為G={g1,g2, …,gp},通過ReliefF算法對p個特征的評分為R={r1,r2, …,rp}。根據(jù)G和R中的評分結果篩選出評分最高的n個特征,分別為Gn和Rn,則特征子集FS的搜索公式為:
FS=Gn∩Rn
(5)
IG-ReliefF混合篩選算法步驟設計如下:
輸入:實驗數(shù)據(jù)集S;
輸出:篩選后數(shù)據(jù)集D。
步驟1 采用IG和RelielfF算法對數(shù)據(jù)集S中的p個特征評分,評分結果保存為G和R,SF(初始值為空集)表示當前評分最高的特征子集,F(xiàn)best(初始值為0)表示當前最高評分值。
步驟2 依據(jù)n(初始值為1)的值由式(5)計算特征子集FS,基于FS組成篩選后的數(shù)據(jù)集D。
步驟3 將D中的數(shù)據(jù)隨機均分5份,其中4份作為分類器的訓練集,剩余1份作為分類器的測試集。執(zhí)行訓練和測試過程,保存對測試集的分類結果,并計算F1作為FS的評分值。
步驟4 將步驟3重復執(zhí)行5次,計算F1的平均值Faverage。若Faverage>Fbest,則Fbest=Faverage,SF=FS;否則,跳過Fbest和SF的賦值階段。
步驟5n自增1,重復步驟2~4。當n達到最大迭代次數(shù)p時,迭代停止,輸出D。
3.1.1 問題分析
在Android惡意軟件檢測過程中,采用SVM算法分類檢測存在兩個問題:
1)由于Android惡意軟件的樣本收集困難,使得數(shù)據(jù)集中良性軟件和惡意軟件的數(shù)量比不平衡,使得訓練后的SVM分類器分類結果偏向良性軟件,導致Android惡意軟件的檢出率較低。
2)SVM算法對小樣本分類效果較好,但是對樣本敏感,尤其是處于分類邊界上的樣本,若分類邊界上存在錯分的樣本,則會嚴重影響分類器的穩(wěn)定性。
針對問題1,本文考慮分別對良性數(shù)據(jù)集和惡意數(shù)據(jù)集bootstrap抽樣,構造平衡數(shù)據(jù)集,降低不平衡數(shù)據(jù)對分類結果的影響;針對問題2,由于Bagging算法可以顯著提高分類不穩(wěn)定算法的分類效果[13],因此考慮通過Bagging算法構造基于SVM的集成分類器,提高分類器的穩(wěn)定性和檢測精度。
3.1.2 算法設計
基于3.1.1節(jié)中的分析,本文提出一種基于Bagging-SVM的 Android惡意軟件檢測算法。首先,采用bootstrap抽樣構造k個平衡數(shù)據(jù)集;然后,訓練k個基于平衡數(shù)據(jù)集的SVM基分類器C;最后k個SVM基分類器以多數(shù)投票的方式組成SVM集成分類器C*;分類檢測時,以SVM集成分類器C*的輸出作為測試樣本的分類結果。該算法流程設計如圖2所示。
圖2 Bagging-SVM算法流程 Fig. 2 Bagging-SVM flow chart
為提高分類檢測模塊的執(zhí)行效率,本文采用線性支持向量機(Linear Support Vector Machine, LSVM)設計基于Bagging-SVM分類檢測模塊,模塊設計如下:
輸入:篩選后的數(shù)據(jù)集D;
輸出:測試集的分類結果O。
步驟1 隨機從D中抽取80%的數(shù)據(jù)組成訓練集D_train,剩余的20%組成測試集D_test,根據(jù)數(shù)據(jù)類別拆分D_train為良性數(shù)據(jù)集Db和惡意數(shù)據(jù)集Dm,即D_train={Db,Dm}。
步驟2 設m和b分別表示Dm和Db中樣本的個數(shù)。為實現(xiàn)bootstrap抽樣,采用隨機數(shù)發(fā)生器產(chǎn)生兩組m個可重復的正整數(shù)IMi(i=1, 2, …,m)和IBi(i=1, 2, …,m),其中0 步驟3 以IMi作為待抽取的惡意樣本的序號,以IBi作為待抽取的良性樣本的序號,執(zhí)行抽取過程得到m個良性數(shù)據(jù)和m個惡意數(shù)據(jù),合并組成新的待訓練數(shù)據(jù)集Di。 步驟4Di中的任意一個樣本表示為(xi,yi)(i=1, 2, … ,m),其中xi=(xi1,xi2, …,xip)T對應第i個訓練樣本的屬性集,yi∈{0, 1}表示該Android樣本的類別,則SVM模型可表示為: (6) 其中:α為懲罰項,采用二次規(guī)劃法求解該模型得到拉格朗日乘子λi,則LSVM基分類器C的參數(shù)w和c可由式(7)和(8)求解: (7) (8) 基分類器C表示為: (9) 步驟5 重復執(zhí)行k次步驟2~4得到k個LSVM基分類器C,將k個基分類器C組合成SVM集成分類器C*。 步驟6 針對D_test中的每個測試樣本x,將x輸入SVM集成分類器C*中的k個基分類器中,計算k個基分類器的投票結果O,輸出分類結果O。其中,投票公式為: C*(x)=vote(C1(x),C2(x),…,Ck(x))= (10) 本實驗使用Jiang等[14]收集自Android惡意軟件基因組項目的Android惡意軟件,共計1 260個樣本,從中隨機抽取1 000個組成惡意數(shù)據(jù)集。良性Android軟件來源于Google官方應用市場和360應用市場,使用Python編寫爬蟲腳本,分3次共下載4 500個不同的Android應用,使用kingsoft和F-scure對所有Android應用掃描,從中篩選出4 000個良性軟件(被兩種軟件都判定為良性)組成良性樣本集。將二者合并組成實驗數(shù)據(jù)集。 實驗中主機配置為Intel Core i5-3570 CPU @ 3.40 GHz,內(nèi)存4 GB,特征提取及分類檢測通過Python編程實現(xiàn),特征篩選是在Weka[15]環(huán)境下完成。 按照2.1節(jié)的特征提取算法提取數(shù)據(jù)集,其中包含5 000個樣本,每個樣本有917個特征。為了便于對樣本使用的特征統(tǒng)計分析,首先計算使用特定屬性(權限或意圖)的良性樣本占良性樣本總數(shù)的百分比pb,計算使用該屬性的惡意軟件所占惡意樣本總數(shù)的百分比pm,統(tǒng)計所有屬性中,pb和pm差值最大的前10個權限和意圖如表1所示;然后計算平均每個惡意樣本使用組件的個數(shù)nm和平均每個良性樣本使用組件的個數(shù)nb,結果如表2所示。表1中所有的應用屬性均采用縮寫,權限{CWS, RA, VIB, CAM, WL, CNS, MUF, WS, GT, SAW}分別對應{CHANGE_WIFI_STATE, RECORD_AUDIO, VIBRATE, CAMERA, WAKE_LOCK, CHANGE_NETWORK_STATE, MOUNT_UNMOUNT_FILESYSTEMS, WRITE_SETTINGS, GET_TASKS, SYSTEM_ALERT_WINDOW},意圖{PR, BCA, MM, APD, SS, PA, UP, VIEW, DEFA, BROW}分別對應{ PACKAGE_REMOVED, BATTERY_CHANGED_ACTION, MEDIA_MOUNTED,ACTION_POWER_DISCONNECTED, SIG_STR, PACKAGE_ADDED, USER_PRESENT, VIEW, CATEGORY.DEFAULT, BROWSABLE}。 表1 Android應用常用屬性值統(tǒng)計Tab. 1 Attribute value statistics of Android software commonly used 表2 平均每個軟件樣本使用組件個數(shù)統(tǒng)計Tab. 2 Average number statistics of components per software sample 由表1可見,使用百分比差別最大的前10個權限是SYSTEM_ALERT_WINDOW(該權限允許Android軟件顯示系統(tǒng)窗口)、WRITE_SETTINGS(該權限允許讀寫系統(tǒng)設置項)和GET_TASKS(該權限允許Android軟件獲取當前或最近運行的軟件)等安全威脅小且是常用軟件必須的權限,這些權限良性軟件使用百分比都超過50%,而惡意軟件的使用量卻較少。 由表1可見,使用百分比差別最大的前10個意圖中有8個意圖良性軟件的使用百分比遠高于惡意軟件的使用百分比,這8個意圖為BROWSABLE、VIEW和MDEIA_MOUNTED等實現(xiàn)常用功能必要的意圖。剩余2個意圖為SIG_STR和BATTERY_CHANGED_ACTION,這2個意圖惡意軟件的使用百分比遠大于良性軟件的使用百分比,這主要是由于惡意軟件意圖的觸發(fā)事件大多是電池狀態(tài)改變和手機信號狀態(tài)改變等不易被察覺的事件。 由表2可見,大多數(shù)Android軟件使用activity、service和receiver 3個組件,但平均每個軟件使用的個數(shù)是有差別的,值得注意的是惡意軟件使用的activity組件數(shù)遠小于良性軟件使用的activity組件數(shù)。 綜上,本文模型所提取的權限(Permission)、意圖(Intent)和組件(Component)屬性特征可以明顯地區(qū)分良性和惡意軟件,適用于Android惡意軟件檢測。 4.3.1 特征篩選實驗 本文采用的IG-ReliefF特征篩選算法對數(shù)據(jù)集處理,將數(shù)據(jù)集的特征由篩選前的917個降至篩選后的45個。 在特征篩選實驗中,首先采用IG和ReliefF算法對917個特征進行評分,分值越高代表特征越優(yōu),2種算法評分最高的15個特征如表3所示。 表3 IG算法和ReliefF算法特征評分結果Tab. 3 Feature score results of IG algorithm and ReliefF algorithm 對比2種算法的評分結果,在IG算法中組件特征(receiver, service, activity)的排名較高,說明該特征對于分類結果的信息增益[10]較大,即單個該特征即可較好地區(qū)分良性軟件和惡意軟件。而在ReliefF算法中,由于ReliefF算法更多地考慮特征間的相關性,而組件特征與其他特征的相關性弱,所以ReliefF算法對組件的評分低??傮w而言2種算法的評價標準不同,特征排名次序存在差異。 其次,為最大限度地搜索出最優(yōu)特征子集,在篩選過程中設置最大迭代次數(shù)為917,然后分別采用LSVM和NB分類器進行特征篩選,實驗中當前最優(yōu)特征子集SF的評分變化趨勢如圖3所示。 圖3 當前最優(yōu)特征子集的評分變化趨勢 Fig. 3 Scores variation trend of current optimal feature subset 由圖3可見,LSVM在SF的維度為45時達到最大值,NB在SF維度為38時達到最大值,但是采用NB算法時的特征子集的評分較低,因此分類檢測實驗采用LSVM算法篩選的45個特征作為篩選結果。 4.3.2 特征篩選算法對比實驗 為評估特征篩選模塊的篩選效果,分別進行9組對比實驗。9組實驗中采用的特征篩選算法分別為:無特征篩選法、IG-ReliefF混合篩選算法、Weka中集成的CfsSubsetEval算法、IG算法和ReliefF算法;分類算法分別為:NB、LSVM、RF和Bagging-SVM算法;實驗數(shù)據(jù)選用特征篩選后的數(shù)據(jù)全集,采用10折交叉驗證法訓練分類器并獲取分類結果,采用不同特征篩選算法的4種分類算法的分類實驗結果如表4所示。 由表4可見,使用LSVM、RF和Bagging-SVM算法時分類效果較好,而且相比其他篩選算法,使用本文提出的IG-ReliefF混合篩選算法分類效果最優(yōu);同時,使用NB算法結合IG-ReliefF時分類效果與最優(yōu)篩選相差不大。說明本文提出的IG-ReliefF混合篩選算法可剔除大量無關特征,有利于提高分類檢測的效果。 表4不同分類算法F1值比較% Tab. 4 Comparison of F1 value by different classification algorithms % 為驗證本文模型對Android惡意軟件檢測的有效性,進行3組檢測實驗,實驗步驟設計如下: 步驟1 對篩選特征后的數(shù)據(jù)集D抽樣構造3個數(shù)據(jù)集DA、DB和DC,3個數(shù)據(jù)集中惡意數(shù)據(jù)為惡意數(shù)據(jù)全集,包含1 000條數(shù)據(jù);良性數(shù)據(jù)為分別從包含4 000條數(shù)據(jù)的良性數(shù)據(jù)全集中無放回隨機抽取的1 000、2 000和4 000條數(shù)據(jù)。 步驟2 對DA、DB和DC無放回抽樣構造樣本數(shù)相等的10份數(shù)據(jù),9份為訓練集,剩余1份為測試集。 步驟3 將Bagging-SVM算法分別與Android惡意軟件檢測中常用的集成式機器學習算法RF和AdaBoost對比,并與基分類器采用的LSVM算法對比,訓練相應的4種分類器。 步驟4 采用4種分類器對測試集分類,獲得分類結果,計算分類檢測的評估指標Precision、Recall、F1和ACC。 步驟5 重復執(zhí)行10次步驟2~4并計算10次分類檢測結果中Precision、Recall、F1和ACC的平均值,結果如表5所示。 表5 分類效果比較Tab. 5 Classification effects comparison 由表5可見,采用平衡數(shù)據(jù)集DA分類檢測時,4種分類器的分類效果較好,且Bagging-SVM分類器的分類結果在檢出率、F1和分類精度3個指標上優(yōu)于LSVM分類器;采用不平衡數(shù)據(jù)集DB和DC分類檢測時,隨著不平衡度的增加,4種分類器的檢測效果都有降低,但Bagging-SVM分類器在檢出率、F1和分類精度3個評估指標上均優(yōu)于其他分類器。由于惡意軟件被誤報為良性軟件造成的威脅遠高于良性軟件被誤報為惡意軟件,而較高的惡意軟件檢出率表明較少的惡意軟件被誤報為良性軟件,所以Bagging-SVM算法通過降低一定的準確率換取高的檢出率在Android惡意軟件檢測中是有意義的。 根據(jù)上述實驗結果可見,本文提出的Android惡意軟件檢測模型在數(shù)據(jù)不平衡時仍具有較高的檢出率和分類精度,能夠檢測出絕大多數(shù)惡意軟件。 本文針對Android平臺惡意軟件泛濫以及現(xiàn)有分類算法檢出率低等問題,提出基于Bagging-SVM的Android惡意軟件檢測模型。模型選取權限、意圖和組件等屬性作為特征提高了對Android軟件的區(qū)分度,采用IG-ReliefF混合篩選算法最大限度地剔除了冗余和無關特征,運用Bagging-SVM集成分類器解決數(shù)據(jù)不平衡問題導致的分類檢出率低的問題。實驗證明本文模型在樣本數(shù)據(jù)不平衡時仍具有較高的檢出率和分類精度。 未來將在更大的Android軟件樣本數(shù)據(jù)空間并采用不同的不平衡方法開展實驗研究。 參考文獻(References) [1] 卿斯?jié)h. Android 安全研究進展 [J]. 軟件學報, 2016, 27(1): 45-71.(QING S H. Research progress on Android security [J]. Journal of Software, 2016, 27(1): 45-71.) [2] 張怡婷, 張揚, 張濤, 等. 基于樸素貝葉斯的Android軟件惡意行為智能識別 [J]. 東南大學學報(自然科學版), 2015, 45(2): 224-230.(ZHANG Y T, ZHANG Y, ZHANG T, et al. Intelligent identification of malicious behavior in Android applications based on naive Bayes [J]. Journal of Southeast University (Natural Science Edition), 2015, 45(2): 224-230.) [3] 楊歡, 張玉清, 胡予濮, 等. 基于多類特征的Android應用惡意行為檢測系統(tǒng) [J]. 計算機學報, 2014, 37(1):15-27. (YANG H, ZHANG Y Q, HU Y P, et al. A malware behavior detection system of Android applications based on multi-class features [J]. Chinese Journal of Computers, 2014, 37(1): 15-27.) [4] WOLFE B, ELISH K, YAO D. High precision screening for Android malware with dimensionality reduction [C]// ICMLA 2014: Proceedings of the 2014 13th International Conference on Machine Learning and Applications. Piscataway, NJ: IEEE, 2015: 21-28. [5] ARORA A, PEDDOJU S K. Minimizing network traffic features for Android mobile malware detection [C]// ICDCN ’17: Proceedings of the 18th International Conference on Distributed Computing and Networking. New York: ACM, 2017: Article No. 32. [6] 楊宏宇,徐晉.基于改進隨機森林算法的Android惡意軟件檢測 [J].通信學報,2017,38(4):8-16.(YANG H Y, XU J. Android malware detection based on improved random forest [J]. Journal on Communications, 2017, 38(4): 8-16.) [7] 喬靜靜.Android未知惡意軟件檢測方法的研究[D].北京:北京工業(yè)大學,2013:39-48.(QIAO J J. Research of unknown malware detection on Android [D]. Beijing: Beijing University of Technology, 2013: 39-48.) [8] 張巍,任環(huán),張凱,等.基于移動軟件行為大數(shù)據(jù)挖掘的惡意軟件檢測技術[J].集成技術,2016,5(2):29-40.(ZHANG W, REN H, ZHANG K, et al. Malware detection techniques by mining massive behavioral data of mobile Apps [J]. Journal of Integration Technology, 2016, 5(2): 29-40.) [9] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. A review on feature selection in mobile malware detection [J]. Digital Investigation, 2015, 13: 22-37. [10] LUO Y X. Malicious detection based on ReliefF and boosting multidimensional features [J]. Journal of Communications, 2015, 10(11): 910-917. [11] 豐生強.Android軟件安全與逆向分析[M]. 北京:人民郵電出版社,2013:20-28.(FENG S Q. Android Software Security and Reverse Analysis [M]. Beijing: Post & Telecom Press, 2013:20-28.) [12] HE H, GARCIA E A. Learning from imbalanced data [J]. IEEE Transactions on Knowledge & Data Engineering, 2009, 21(9): 1263-1284. [13] BREIMAN L. Bagging predictors [J]. Machine Learning, 1996, 24(2): 123-140. [14] JIANG X, ZHOU Y. Dissecting Android malware: characterization and evolution [C]// SP ’12: Proceedings of the 2012 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2012: 95-109. [15] 袁梅宇.數(shù)據(jù)挖掘與機器學習:WEKA應用技術與實踐[M].北京:清華大學出版社,2016:329-344.(YUAN M Y. Data Mining and Machine Learning: WEKA Application Technology and Practice [M]. Beijing: Tsinghua University Press, 2016: 329-344.) [16] PEDREGOSA F, GRAMFORT A, MICHEL V, et al. Scikit-learn: machine learning in Python [J]. Journal of Machine Learning Research, 2011, 12(10): 2825-2830. This work is partially supported by the Science and Technology Foundation of Civil Aviation Administration of China (MHRD201205). XIELixia, born in 1974, M. S., associate professor. Her research interests include network and information security. LIShuang, born in 1990, M. S. candidate. His research interests include network and information security.4 實驗與結果
4.1 樣本和環(huán)境配置
4.2 數(shù)據(jù)集提取及分析
4.3 特征篩選及模塊評估
4.4 檢測實驗
5 結語