999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2018-03-02 06:16:17尹成語
計算機系統應用 2018年2期
關鍵詞:分類特征檢測

盛 杰,劉 岳,尹成語

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

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

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

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

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

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

1 Android平臺機制簡述

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

2 檢測算法

2.1 檢測算法框架

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

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

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

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

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

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

2.2 檢測算法框架

2.2.1 特征提取

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

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

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

3)SO文件存在于apk包中lib目錄下,直接對apk解壓后提取.

圖1 Android總體架構

圖2 檢測系統框架

2.2.2 特征選取

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

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

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

2.2.3 特征的組合

針對每一個樣本只獲取卡方檢驗后得到的特征集合中的特征,可將權限的特征向量定義為(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算法結合多個不同的分類算法,可看做一種特殊的結合策略.Stacking算法主要分為兩層,將第0層的學習器稱為初級學習器,而將第1層用于結合的學習器稱為次級學習器.先通過原始的特征數據作為輸入訓練出多個初級學習器,在將初級學習器的輸出作為特征用于訓練出次級學習器,如圖3所示.

圖3 Stacking算法結構

具體方法如下:

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

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

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

2.4 學習器的測試

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

3 實驗結果

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

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

表1 去冗余后的特征

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

準確率:

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

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

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

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

4 結語

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

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互聯網安全中心.2016年中國手機安全狀況報告.http://zt.360.cn/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張銳,楊吉云.基于權限相關性的Android 惡意軟件檢測.計算機應用,2014,34(5):1322-1325.[doi:10.11772/j.issn.1001-9081.2014.05.1322]

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

7邊悅,戴航,慕德俊.Android惡意軟件特征研究.計算機技術與發展,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應用惡意行為檢測系統.計算機學報,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李航.統計學習方法.北京:清華大學出版社,2012.

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

猜你喜歡
分類特征檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
分類算一算
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住特征巧觀察
主站蜘蛛池模板: 国内精品伊人久久久久7777人| 成人免费午夜视频| 麻豆国产在线观看一区二区| 亚洲一区二区三区国产精华液| 在线高清亚洲精品二区| 啪啪永久免费av| 精品伊人久久久大香线蕉欧美| 伊人久久综在合线亚洲2019| 国产亚洲美日韩AV中文字幕无码成人| 亚洲色图在线观看| 亚洲天堂精品在线| 日本一区二区不卡视频| 日韩午夜片| 亚洲乱码视频| 九九线精品视频在线观看| h网址在线观看| 亚洲男人在线| 亚洲最大综合网| 亚洲首页在线观看| 国产乱子伦无码精品小说| 色综合成人| 久久国产精品无码hdav| 亚洲国产成熟视频在线多多| 97超爽成人免费视频在线播放| 91精品伊人久久大香线蕉| 欧美一级高清片欧美国产欧美| 久久久久中文字幕精品视频| 欧美人在线一区二区三区| 亚洲AV成人一区国产精品| 丁香婷婷在线视频| 这里只有精品在线播放| 女高中生自慰污污网站| 91探花在线观看国产最新| 九色视频一区| 精品亚洲欧美中文字幕在线看 | 色综合a怡红院怡红院首页| 日本91在线| 国产精选自拍| 91小视频在线播放| 婷婷亚洲天堂| 国产精品视频999| 热久久这里是精品6免费观看| 久久鸭综合久久国产| 精品久久777| 免费全部高H视频无码无遮掩| 26uuu国产精品视频| 亚洲欧美一区二区三区蜜芽| 欧美国产日韩在线| 国产乱人激情H在线观看| 国产精品白浆在线播放| 天堂av综合网| 日本久久久久久免费网络| 99精品伊人久久久大香线蕉 | 91精品国产自产在线老师啪l| 国产日韩欧美一区二区三区在线 | 久久这里只有精品国产99| AV天堂资源福利在线观看| 美女国产在线| 久久99蜜桃精品久久久久小说| 尤物精品国产福利网站| 国语少妇高潮| 亚洲成人动漫在线| 国产69精品久久久久孕妇大杂乱 | 毛片手机在线看| 无码人中文字幕| 久久久久免费精品国产| 亚洲国产中文精品va在线播放 | jizz在线免费播放| 在线无码九区| 一级全免费视频播放| 久热99这里只有精品视频6| 白丝美女办公室高潮喷水视频| 日本高清免费不卡视频| 欧美日韩国产精品综合| 成人在线不卡| 国精品91人妻无码一区二区三区| 中文无码影院| 欧美日韩国产精品va| 国产在线观看第二页| 一本一本大道香蕉久在线播放| 91视频青青草| 国产免费久久精品44|