国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于多特征和Stacking算法的Android惡意軟件檢測方法①

2018-03-02 06:16:17尹成語
計算機系統(tǒng)應用 2018年2期
關(guān)鍵詞:特征向量分類器分類

盛 杰,劉 岳,尹成語

(重慶大學 弘深學院,重慶 401331)

Android系統(tǒng)隨著智能終端設(shè)備的發(fā)展在全球廣泛普及,根據(jù)調(diào)查報告顯示,截止2016年第四季度,Android的市場占有率已達到81.7%[1].在其高速發(fā)展的同時也帶來了嚴重的問題,大量惡意apk在互聯(lián)網(wǎng)上流行,據(jù)360互聯(lián)網(wǎng)安全中心統(tǒng)計,2016年全年,360互聯(lián)網(wǎng)安全中心累計截獲Android平臺新增惡意程序樣本1403.3萬個,平均每天新增3.8萬惡意程序樣本[2].惡意apk的一些行為例如盜取隱私信息、鎖屏勒索等,對用戶的利益造成損害,使得惡意apk的檢測尤為重要.

目前,Android平臺惡意代碼檢測已展開廣泛的研究,主要思想方法是直接由桌面平臺移植到移動平臺,再根據(jù)Android平臺的一些特點加以改進,主要技術(shù)可劃分為靜態(tài)檢測與動態(tài)檢測[3],兩種方法各有優(yōu)劣,本文將研究靜態(tài)檢測.

現(xiàn)今主流方法是在提取出apk的各種特征后通過一些機器學習算法對已知樣本進行學習形成分類器,再對未知樣本進行分類[4].權(quán)限信息作為Android軟件的典型靜態(tài)型特征,在惡意apk檢測方面得到廣泛的應用.文獻[5]通過對權(quán)限進行聚類去冗余得到相互獨立并相關(guān)性強的特征集合,再通過改進的樸素貝葉斯算法進行分類;文獻[6]以竊取用戶隱私數(shù)據(jù)為切入點,提煉出對隱私資源十分敏感的權(quán)限組合,并實現(xiàn)了一種專門針對竊取隱私的惡意應用的檢測方法.但若惡意apk制作者故意對權(quán)限進行混淆,僅以權(quán)限作為特征擁有明顯的不足性,除了權(quán)限特征,apk的API調(diào)用與系統(tǒng)調(diào)用也是重要的特征.

惡意apk不僅擁有靜態(tài)特征,還擁有許多運行時的動態(tài)特征.對此,文獻[7]指出了現(xiàn)階段大部分檢測技術(shù)的不足和缺陷,并從安裝、激活等特征入手,研究各種動態(tài)惡意行為,例如路過式下載、軟件升級、權(quán)限提升;Padriya[8]等人研究了惡意軟件的各種行為特征和靜態(tài)特征,并探討了各種檢測方法.針對各種動態(tài)特征,孫潤康[9]等人以行為特征為基礎(chǔ)實現(xiàn)了一種Android軟件行為的動態(tài)檢測框架,并采用SVM、樸素貝葉斯等多種基本分類算法驗證了其有效性;Luoxu Min[10]等人也提出了基于運行時行為的動態(tài)檢測方法并且結(jié)合了靜態(tài)分析技術(shù)與反編譯技術(shù).可以看出大多方法通常采用樸素貝葉斯,k近鄰等基本算法,而某一特定算法未必適合此時所選用的特征數(shù)據(jù),因此具有一定局限性.文獻[11]提出了一種充分考慮Android應用多類特征的三層混合系綜算法,獲取apk的各種動態(tài)特征與靜態(tài)特征,對不同種類特征在不同層面采用不同的分類算法,對apk進行綜合評判,提高了檢測準確率,但其特征的提取過程和算法的實現(xiàn)過程都較為繁瑣,增加了時間成本和計算機資源的消耗.

針對以上方法的局限性,本文提出了一種基于多特征和Stacking算法的Android惡意軟件靜態(tài)檢測方法.作者選取權(quán)限、API、SO庫作為特征,這些特征能夠明顯反映apk的惡意傾向,并且作為靜態(tài)特征提取較為容易,縮短特征提取的時間,將它們進行組合,在保證特征向量有效的情況下降低計算的復雜度;在機器學習階段運用Stacking集成學習算法將多個弱學習器組合后形成強學習器提高識別準確率.

1 Android平臺機制簡述

Android系統(tǒng)架構(gòu)主要分為四個層面:應用程序?qū)?應用程序框架層,系統(tǒng)運行庫層,Linux內(nèi)核層,如圖1所示,Android程序由Java語言編寫并經(jīng)過編譯后生成Dex可執(zhí)行文件,以字節(jié)碼的形式在Dalvik虛擬機中運行.每一個進程都擁有自己的虛擬環(huán)境,不同進程是相互隔離的,以此保障系統(tǒng)的安全性.權(quán)限機制是Android精心構(gòu)建的一項安全機制,若應用程序要進行一些敏感操作和需要某些特權(quán)時,比如訪問或使用系統(tǒng)的文件、手機的硬件資源都必須要在Android-Manifest.xml配置文件中聲明相應的權(quán)限[12],并且在安裝時提醒用戶程序所使用的權(quán)限,讓用戶自行判斷,Android官網(wǎng)共列出了所有可使用的137種權(quán)限[13].為了滿足Android平臺下一些軟件的復雜功能,憑借Java語言的JNI特性Google向開發(fā)者提供了Android NDK.開發(fā)者可以使用C與C++編寫SO動態(tài)鏈接庫讓Java程序直接調(diào)用,這一方法提高了一些程序的運行效率,并且使軟件的跨平臺性得到提高.另一方面復雜的C/C++代碼讓破解者難以反編譯,使用它進行apk的加密混淆效果更好,增強了Android軟件的安全性.

2 檢測算法

2.1 檢測算法框架

檢測算法的整體框架如圖2所示,

(1)首先分別提取所有訓練樣本權(quán)限、API、SO庫三種不同特征.

(2)對獲得的所有特征進行卡方檢驗去除與判斷是否為惡意軟件無關(guān)的特征,得到強相關(guān)性特征集合.

(3)針對每個apk,將其特征中的強相關(guān)性組合為特征向量.

(4)在分類器訓練過程中采用Logistic,SVM,kNN作為初級分類器,CART決策樹作為次級分類器實現(xiàn)Stacking算法,并通過特征向量數(shù)據(jù)訓練成最終分類器.

(5)運用測試樣本驗證算法性能.

2.2 檢測算法框架

2.2.1 特征提取

本文的方法使用了apk文件中的權(quán)限申明信息,API使用信息,SO庫的使用情況,各特征提取方式如下:

1)谷歌Android官網(wǎng)共申明了137種權(quán)限,使用SDK中集成的工具aapt可提取apk中的權(quán)限信息.

2)API調(diào)用信息的提取利用baksmali對apk文件中的classes.dex進行反編譯得到smali文件,再對所有的smali文件進行掃描,即可獲得樣本的API調(diào)用集合.

3)SO文件存在于apk包中l(wèi)ib目錄下,直接對apk解壓后提取.

圖1 Android總體架構(gòu)

圖2 檢測系統(tǒng)框架

2.2.2 特征選取

從apk中提取的這些特征并不是都可利用于對惡意軟件的識別,某些特征無論是正常軟件還是惡意軟件都會頻繁出現(xiàn),故其中存在著大量的冗余,必須去除一些與識別惡意軟件無關(guān)的特征,降低無關(guān)特征對識別的影響和計算的復雜性.

皮爾森卡方檢驗是由Pearson提出的一種假設(shè)檢驗方法,可用于獨立性檢驗,即驗證兩個變量是否相互獨立.我們選用基本的四格卡方檢驗,其公式如下:

在式(1)中a,b,c,d分別代表擁有某特征是惡意軟件,擁有某特征非惡意軟件,無某特征是惡意軟件和無某特征非惡意軟件這四種情況的頻數(shù),N代表總的頻數(shù).針對樣本中的所出現(xiàn)的所有特征,都利用式(1)進行計算其卡方值,卡方值越大則表明該特征與是否為惡意軟件有較強相關(guān)性,根據(jù)某一閾值即可篩選出合適的特征,剔除冗余的特征.

2.2.3 特征的組合

針對每一個樣本只獲取卡方檢驗后得到的特征集合中的特征,可將權(quán)限的特征向量定義為(a1,a2,…,ah),若該樣本擁有k特征,則ak= 1,否則ak=0.同理將API特征向量定義為(b1,b2,…,bi),SO庫信息特征向量定義為(c1,c2,…,cj),然后簡單組合為x = (a1,a2,…,ah,b1,b2,…,bi,c1,c2,…,cj),這種簡單組合在一定程度上可降低分類器學習與測試時計算的復雜度.

2.3 分類算法

Stacking算法是由Wolpert于1992年提出的一種集成學習算法,又稱為Stacked generalization[14-16].相比于Bagging與Boosting在較多情況下采用相同的分類算法訓練個體學習器,Stacking算法結(jié)合多個不同的分類算法,可看做一種特殊的結(jié)合策略.Stacking算法主要分為兩層,將第0層的學習器稱為初級學習器,而將第1層用于結(jié)合的學習器稱為次級學習器.先通過原始的特征數(shù)據(jù)作為輸入訓練出多個初級學習器,在將初級學習器的輸出作為特征用于訓練出次級學習器,如圖3所示.

圖3 Stacking算法結(jié)構(gòu)

具體方法如下:

在初級學習階段使用k折交叉檢驗方法[17]訓練各學習器.即將初始訓練數(shù)據(jù)集T = ((x1,s1),(x2,s2),…,(xh,sh))劃分成k個大小相似的子數(shù)據(jù)集T1,T2,…,Tk,將T-Tj作為m學習算法的訓練數(shù)據(jù)并得到學習器Lmj,然后將Tj作為測試數(shù)據(jù)輸入Lmj.對每一個子數(shù)據(jù)集都用m學習算法進行此操作,最后每一個樣本都會得到測試并輸出結(jié)果yim.若共有n個學習算法,訓練結(jié)束后對每一個樣本xi,都會產(chǎn)生n個結(jié)果,由它們組成新的特征向量yi= (yi1,yi2,…,yin)作為次級學習器的訓練數(shù)據(jù),標記依然為原標記si.

本文所實現(xiàn)的Stacking算法的初級學習器采用Logistic回歸,支持向量機,k-近鄰作為分類算法,CART決策樹作為次級學習器的分類算法.偽代碼描述:

Input:初始訓練集T= ((x1,s1),(x2,s2),…,(xh,sh)),初級學習算法Logistic(),SVM(),kNN(),次級學習算法CART(),交叉檢驗子集數(shù)k

2.4 學習器的測試

在學習器的訓練過程中,每一種分類算法都生成了k個分類器,測試過程中根據(jù)投票法決定該算法分類結(jié)果.即使用這k個分類器都對測試樣本進行分類,對可能產(chǎn)生的結(jié)果進行投票,本實驗中只有Normal與Virus兩種結(jié)果,最后若Normal票數(shù)更多,則該分類算法分類結(jié)果為Normal,否則為Virus.將LogisticClf,SVMClf,KNNClf的分類結(jié)果組合(yi1,yi2,yi3)作為新的向量輸入次級學習器CARTClf進行分類取得最終結(jié)果.

3 實驗結(jié)果

作者首先分別從VirusShare[18]和安卓市場獲取了2460份惡意apk樣本與2659份正常apk樣本,并將其中1460份惡意樣本與1659份正常樣本作為訓練樣本

在實驗中進行反復測試后將三種特征的閾值分別定位60、800和20,最后統(tǒng)計得到53種權(quán)限,238種API,94種SO庫,如表1所示.

表1 去冗余后的特征

本實驗使用TP代表正常樣本判斷正確數(shù),FN代表正常樣本判斷錯誤數(shù),TN代表惡意樣本判斷正確數(shù),FP代表惡意樣本判斷錯誤數(shù).定義以下指標:

準確率:

從圖4可以看出,在使用單種特征的情況下,Stacking算法相比于其它單個算法有所提高.另外可以看出由于SO庫并不是所有的apk都使用,所以檢測率較低,在實驗中作為輔助特征.

圖4 單種特種使用各方法的準確率

圖5 多種特種使用各方法的準確率

結(jié)合圖4與圖5,在使用多特征后,各種檢測算法的檢測率都有一定提升,并且Stacking算法最為突出,準確率達到94.05%,對惡意軟件有較好的識別能力.

4 結(jié)語

本文提出了一種多特征結(jié)合與Stacking算法組合多個基本分類算法的惡意軟件檢測方法.從apk中獲得多種權(quán)限,并去除其中的冗余特征,再將它們組合為一個特征向量;選擇Logistic、SVM和kNN分別作為Stacking算法的初級學習算法,將經(jīng)過它們分類后的輸出結(jié)果組合為特征向量輸入使用CART算法的次級學習器進行判斷.實驗結(jié)果表明本文提出的分類方法具有較強的檢測能力.該方法的不足之處在于相比其它簡單的算法,檢測速率稍低,下一步的研究將改善分類的各環(huán)節(jié),提高分類的速度.

1Gartner.Gartner says worldwide sales of smartphones grew 7 percent in the fourth quarter of 2016.http://www.gartner.com/newsroom/id/36098.[2017-02-15].

2360互聯(lián)網(wǎng)安全中心.2016年中國手機安全狀況報告.http://zt.#/1101061855.php?dtid=1101061451&did4902 60073.[2017-02-06].

4Amos B,Turner H,White J.Applying machine learning classifiers to dynamic:Android malware detection at scale.2013 9th International Wireless Communications and Mobile Computing Conference.Sardinia,Italy.2013.1666-1671.

5張銳,楊吉云.基于權(quán)限相關(guān)性的Android 惡意軟件檢測.計算機應用,2014,34(5):1322-1325.[doi:10.11772/j.issn.1001-9081.2014.05.1322]

6黃海根,曾云科.基于權(quán)限組合的Android竊取隱私惡意應用檢測方法.計算機應用與軟件,2016,33(9):320-323,333.

7邊悅,戴航,慕德俊.Android惡意軟件特征研究.計算機技術(shù)與發(fā)展,2014,24(11):178-181.

8Padriya N,Mistry N.Review of behavior malware analysis for android.International Journal of Engineering and Innovative Technology (IJEIT),2013,2(7):230-232.

9孫潤康,彭國軍,李晶雯,等.基于行為的Android惡意軟件判定方法及其有效性.計算機應用,2016,36(4):973-978.[doi:10.11772/j.issn.1001-9081.2016.04.0973]

10Min LX,Cao QH.Runtime-based behavior dynamic analysis system for android malware detection.Advanced Materials Research,2013,756-759:2220-2225.[doi:10.4028/www.scientific.net/AMR.756-759]

11楊歡,張玉清,胡予濮,等.基于多類特征的Android應用惡意行為檢測系統(tǒng).計算機學報,2014,37(1):15-27.

12Enck W,Ongtang M,McDaniel P.Understanding android security.IEEE Security &Privacy,2009,7(1):50-57.

13Google.Manifest permission.https://developer.android.com/reference/android/Manifest.permission.html.[2017-02-10].

14Wolpert DH.Stacked generalization.Neural Networks,1992,5(2):241-259.[doi:10.1016/S0893-6080(05)80023-1]

15Zhou ZH.Ensemble Methods:Foundations and Algorithms.Boca Raton,FL:Chapman and Hall/CRC,2012.

16周星,丁立新,萬潤澤,等.分類器集成算法研究.武漢大學學報(理學版),2015,61(6):503-508.

17李航.統(tǒng)計學習方法.北京:清華大學出版社,2012.

18VirusShare.com.Because sharing is caring.http://virusshare.com/support.[2017-02-01].

猜你喜歡
特征向量分類器分類
二年制職教本科線性代數(shù)課程的幾何化教學設(shè)計——以特征值和特征向量為例
克羅內(nèi)克積的特征向量
分類算一算
分類討論求坐標
數(shù)據(jù)分析中的分類討論
一類特殊矩陣特征向量的求法
BP-GA光照分類器在車道線識別中的應用
電子測試(2018年1期)2018-04-18 11:52:35
教你一招:數(shù)的分類
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應用
加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
平度市| 兴化市| 咸宁市| 拜泉县| 宜宾县| 屯昌县| 宿迁市| 石嘴山市| 开原市| 延吉市| 延寿县| 萨迦县| 于都县| 乐都县| 广灵县| 奉化市| 常宁市| 白朗县| 广安市| 永寿县| 定州市| 建瓯市| 宿松县| 平阳县| 孝义市| 曲阳县| 文山县| 浪卡子县| 新宁县| 孟村| 黎平县| 克山县| 凤冈县| 通辽市| 达州市| 客服| 滕州市| 东莞市| 皋兰县| 两当县| 库尔勒市|