程運安 汪奕祥
(合肥工業(yè)大學(xué)計算機與信息學(xué)院 安徽 合肥 230009)
基于權(quán)限統(tǒng)計的Android惡意應(yīng)用檢測算法
程運安 汪奕祥
(合肥工業(yè)大學(xué)計算機與信息學(xué)院 安徽 合肥 230009)
作為世界上最流行的移動操作系統(tǒng),Android正面臨著快速增長的惡意軟件的威脅。如何快速高效地檢測出Android惡意軟件對保證用戶手機安全具有十分重大的意義。從Android軟件的權(quán)限出發(fā),統(tǒng)計了4000多個惡意應(yīng)用和2000多個正常應(yīng)用的權(quán)限分布情況,依據(jù)特征權(quán)限在惡意應(yīng)用和正常應(yīng)用中的分布規(guī)律,設(shè)計了一種輕量級的快速檢測方法LWD(Light Weight Detection)。LWD根據(jù)特征權(quán)限在惡意應(yīng)用中的使用頻率和在正常應(yīng)用中的使用頻率的不同來定量分析特征權(quán)限惡意程度值,并以此計算每個樣本的惡意程度值是否超過規(guī)定閾值來判斷該樣本是否屬于惡意應(yīng)用。實驗結(jié)果表明,與市場上主流的殺毒軟件相比,LWD方法具有較好的檢測率。而且LWD是基于單一的權(quán)限特征對惡意軟件進(jìn)行檢測,因此具有較高的時間效率。作為一種輕量級檢測方法,LWD可以為更進(jìn)一步深入檢測惡意應(yīng)用提供參考依據(jù)。
智能手機 安卓系統(tǒng) 特征權(quán)限 LWD 頻率
自Google發(fā)布第一款手機操作系統(tǒng)Android系統(tǒng)以來,Android就受到了廣大手機廠商和用戶的青睞,并在短時間內(nèi)取得快速的發(fā)展。2013年全年,全球大約7.6億部Android智能手機被售出,Android智能手機占據(jù)了大約78.6%的智能手機市場[1]。而同年IOS市場份額僅占15.6%。到2014年第二季度,Android手機市場份額更是達(dá)到了85%。雖在2015年,Android市場份額降低1.9個百分點。但Android系統(tǒng)仍在全球范圍內(nèi)占據(jù)主導(dǎo)地位。
Android系統(tǒng)之所以能在短時間內(nèi)取得快速的增長,主要由于其免費開源的特性。但也正由于此,Android系統(tǒng)的安全性面臨著了巨大的挑戰(zhàn)。隨著Android市場份額的擴大,針對Android平臺的惡意軟件也呈現(xiàn)爆炸式增長。這些惡意軟件不僅干擾Android設(shè)備功能的正常運行,而且還能盜取用戶隱私數(shù)據(jù),甚至遠(yuǎn)程非法控制用戶設(shè)備等,給手機設(shè)備正常使用帶來了很大危害[2]。目前,惡意軟件檢測方法分為靜態(tài)檢測和動態(tài)檢測兩類,靜態(tài)檢測不需要程序運行而是通過提取軟件自身特征來分析軟件行為是否惡意的方法,主要集中于對應(yīng)用權(quán)限使用的分析[3-6]。動態(tài)檢測則是在程序運行過程中檢測惡意行為,作為判斷惡意軟件的依據(jù)[7-9]。
在Android設(shè)備上安裝應(yīng)用程序時,需要授予相關(guān)權(quán)限。這些權(quán)限是在應(yīng)用程序開發(fā)過程中添加到AndroidManifest.xml文件中的,只有添加了相關(guān)權(quán)限,Android應(yīng)用才能進(jìn)行相關(guān)敏感操作,例如,只有在AndroidManifest.xml文件中添加android.permission.INTERNET權(quán)限,應(yīng)用才能正常使用移動網(wǎng)絡(luò)。但是如果權(quán)限被惡意軟件惡意利用,則會給用戶造成危害。例如一個應(yīng)用申請了讀取電話狀態(tài)權(quán)限,又申請了錄音權(quán)限和網(wǎng)絡(luò)權(quán)限,那么該軟件就可能竊取用戶語音通話記錄。如果一個應(yīng)用申請了網(wǎng)絡(luò)權(quán)限,又申請了讀取地理位置權(quán)限,則該軟件就可能對用戶進(jìn)行追蹤。因此,權(quán)限是否被合理使用是判斷應(yīng)用軟件是否惡意的一個重要指標(biāo)。由于大多數(shù)用戶在安裝應(yīng)用時并不了解相關(guān)權(quán)限的作用,并且Android平臺采用粗粒度的權(quán)限管理機制,即用戶一旦同意授予權(quán)限進(jìn)行安裝,在以后的程序運行過程中將不再對權(quán)限進(jìn)行檢查。因此,在用戶安裝應(yīng)用程序前對應(yīng)用權(quán)限特征進(jìn)行分析,并判斷該應(yīng)用軟件是否是惡意應(yīng)用,并對用戶進(jìn)行提醒,避免用戶安裝惡意應(yīng)用,對保護(hù)用戶手機安全起了重要的作用。
對于根據(jù)權(quán)限預(yù)測出應(yīng)用程序的惡意行為,國內(nèi)外許多專家和學(xué)者都進(jìn)行了廣泛而深入的研究。文獻(xiàn)[10]最早開始了基于權(quán)限機制的研究,設(shè)定了一種理想安全權(quán)限規(guī)則Kirin規(guī)則,如果應(yīng)用程序中訪問權(quán)限的機制違反了該項規(guī)則,Kirin方案就會拒絕應(yīng)用程序的安裝。然而,Kirin規(guī)則過于嚴(yán)苛,單純使用Kirin規(guī)則可能使誤報率過高。在Kirin規(guī)則研究的基礎(chǔ)上,文獻(xiàn)[11]開發(fā)了Apex工具,實現(xiàn)了細(xì)粒度的權(quán)限控制,不僅允許用戶選擇可以授予的權(quán)限,并給出更為詳盡的配置方案。比如該權(quán)限能使用多少次,而且可以在程序運行過程動態(tài)改變授權(quán)。但是有選擇的權(quán)限授予則有可能使應(yīng)用程序崩潰,導(dǎo)致無法正常運行。在此基礎(chǔ)上,文獻(xiàn)[12]進(jìn)一步提出,給API調(diào)用返回虛假值的形式來代替關(guān)閉權(quán)限,以防止應(yīng)用程序崩潰。但由于大多數(shù)用戶不了解Android用戶的權(quán)限機制,故讓用戶自主選擇選擇權(quán)限授予的方式收效甚微。近年來隨著數(shù)據(jù)挖掘技術(shù)的興起,文獻(xiàn)[13]通過數(shù)據(jù)挖掘算法對惡意應(yīng)用族的Android權(quán)限進(jìn)行頻繁模式挖掘構(gòu)建惡意應(yīng)用權(quán)限關(guān)系特征庫,來檢測未知惡意應(yīng)用,取得了良好效果。但由于數(shù)據(jù)挖掘算法時間復(fù)雜度高,構(gòu)建惡意權(quán)限關(guān)系特征庫時需要多次掃描惡意應(yīng)用數(shù)據(jù)庫,效率低下。
以上方法雖然從采用不同的方面對權(quán)限使用情況進(jìn)行了分析,但是并沒有根據(jù)正常應(yīng)用和惡意應(yīng)用權(quán)限使用情況的不同進(jìn)行綜合考慮,本文在統(tǒng)計大量惡意應(yīng)用和正常應(yīng)用權(quán)限分布的基礎(chǔ)上,提出了輕量級的快速檢測算法LWD,實驗證明了LWD算法的有效性。LWD算法流程如圖1所示。
圖1 LWD算法流程圖
3.1 LWD簡介
LWD是根據(jù)惡意軟件和正常軟件集合權(quán)限頻率使用的差異性而提出的一種輕量級檢測方法。LWD方法通過定義權(quán)限惡意程度值函數(shù),將應(yīng)用所申請的權(quán)限組合映射為應(yīng)用惡意程度值,并通過分析比較惡意軟件集和正常應(yīng)用集的惡意程度值不同來對手機軟件進(jìn)行檢測和分類。與傳統(tǒng)的基于權(quán)限的檢測方法對比,LWD方法具有如下改進(jìn):
1) LWD方法減少了分類特征,降低時間復(fù)雜度。傳統(tǒng)的基于權(quán)限的方法分類特征采取全部權(quán)限,而LWD方法只采用在惡意樣本集出現(xiàn)次數(shù)最多的20個權(quán)限作為分類特征,既保留了產(chǎn)生惡意行為所需的主要權(quán)限特征,又有效減低其他權(quán)限噪聲的干擾,降低了分類的時間復(fù)雜度。
2) LWD不僅分析特征權(quán)限在惡意應(yīng)用中的使用頻率,同時也分析了特征權(quán)限在正常應(yīng)用中的使用頻率,通過分析同一權(quán)限在不同樣本集中的行為模式對該權(quán)限產(chǎn)生惡意行為的能力進(jìn)行綜合評估更加合理。
3.2 LWD方法定義與計算過程
3.2.1 LWD方法相關(guān)定義
定義1 特征權(quán)限向量。
P=(p1,p2,…,pi,…,p20),其中pi為在惡意應(yīng)用樣本集中統(tǒng)計權(quán)限的次數(shù)從高到低排序為第i位的權(quán)限,這樣選出的特征權(quán)限既具有代表性,又避免了統(tǒng)計過多權(quán)限特征而導(dǎo)致算法時間效率低下。
定義2 權(quán)限惡意程度值(函數(shù))φ(p)。
權(quán)限惡意程度反映的是權(quán)限產(chǎn)生惡意行為的能力大小。為了對權(quán)限產(chǎn)生惡意行為能力進(jìn)行定量分析,本文定義了權(quán)限惡意程度值函數(shù)φ(p),如下所示:
φ(p) =λm2(p)/λn(p) =λm(p)×λm(p)/λn(p)
(1)
其中:p∈P,λm(p)=Cm(p)/C(惡意樣本),λn(p)=Cn(p)/C(正常樣本),Cm(p)為p權(quán)限在惡意樣本集中出現(xiàn)的次數(shù),C(惡意樣本)為惡意樣本集總數(shù),Cn(p)為p權(quán)限在正常樣本集中出現(xiàn)次數(shù),C(正常樣本)為正常樣本集總數(shù)。從φ(p)的定義中可以看出:當(dāng)權(quán)限p在惡意樣本出現(xiàn)頻率越大時,說明該權(quán)限越容易產(chǎn)生惡意行為,因此當(dāng)λm(p)越大時φ(p)也就越大。當(dāng)權(quán)限p在正常樣本中出現(xiàn)的頻率越大時,說明該權(quán)限使用越合理,產(chǎn)生惡意行為概率越小,因此當(dāng)λn(p)越大時φ(p)也就越小。在公式中我們采用了λm(p)/λn(p)對λm(p)進(jìn)行修正,這表明當(dāng)權(quán)限在正常應(yīng)用和惡意應(yīng)用使用差距頻率較大時,該權(quán)限產(chǎn)生惡意行為能力越大,φ(p)也就越大。式(1)表明權(quán)限惡意程度值函數(shù)既與權(quán)限在惡意應(yīng)用中使用頻率大小有關(guān),又與其在惡意應(yīng)用和正常應(yīng)用使用頻率的差異性有關(guān),當(dāng)權(quán)限在惡意應(yīng)用使用的越多,且其在正常應(yīng)用和惡意應(yīng)用使用頻率差異越大時,權(quán)限惡意程度值越高。
定義3 權(quán)限惡意度列向量F。
惡意權(quán)限特征集合P中的權(quán)限按順序以式(1)分別計算出每個權(quán)限的惡意程度值,并映射權(quán)限惡意度列向量F。F的計算公式見式(2)。
F=φ(PT)=(φ(p1),φ(p2),…,φ(p20))T
(2)
定義4 權(quán)限特征向量Q。
為了便于衡量和計算應(yīng)用權(quán)限產(chǎn)生惡意行為的能力,將應(yīng)用映射為權(quán)限特征向量Q。每個應(yīng)用對應(yīng)著一個權(quán)限特征向量。應(yīng)用A的權(quán)限特征向量可用式(3)來描述:
QA=(q1,q2,…,qi,…,q20),qi∈{0,1}
(3)
其中QA中每一項與P中的每一項一一對應(yīng)。對QA中每一項qi定義如下:設(shè)PA為應(yīng)用程序A申請的所有權(quán)限的集合,如果qi對應(yīng)項pi∈PA,則令qi=1,否則令qi=0。應(yīng)用的權(quán)限特征向量反映了惡意權(quán)限特征向量P在應(yīng)用中的分布情況。
定義5 應(yīng)用惡意程度值V。
我們采用惡意程度值V來定量描述應(yīng)用產(chǎn)生惡意行為的能力。應(yīng)用A的惡意程度值采用式(4)計算:
VA=QAF=(q1,q2,…,q20)(φ(p1),φ(p2),…,φ(p20))T
(4)
3.2.2 計算過程
由3.2.1節(jié)的相關(guān)定義,得出LWD方法的計算過程。
1) 確定惡意度閾值V閾
2) 構(gòu)建線性分類器函數(shù)G(X)
步驟1 本文從所用4000多個惡意應(yīng)用樣本來自于文獻(xiàn)[14],并從GooglePlay上利用python爬蟲程序批量下載3000個正常應(yīng)用樣本。為了使實驗更具有統(tǒng)計規(guī)律性,我們從4000個惡意樣本中隨機選取1000個樣本,并反復(fù)做了10次交叉實驗得到10組隨機樣本。實驗利用AndroidSDK自帶的aapt.exe工具分別提取10組惡意樣本集的權(quán)限,統(tǒng)計權(quán)限使用的次數(shù),并將10組樣本權(quán)限計數(shù)作加權(quán)平均后,按權(quán)限使用次數(shù)從高到低排列,取前20位權(quán)限為惡意應(yīng)用的特征權(quán)限。利用同樣方法,實驗從3000個正常樣本中同樣隨機選取10組正常樣本集,每組1000個樣本,并統(tǒng)計從惡意樣本集中分離出來的20種特征權(quán)限在正常樣本集中的使用次數(shù)。為了便于比較,我們將統(tǒng)計結(jié)果生成柱狀圖,統(tǒng)計結(jié)果見圖2、圖3。從圖2、圖3對比中我們可以看出,惡意樣本和正常樣本在使用與短信相關(guān)權(quán)限時具有顯著的統(tǒng)計差異性。惡意樣本申請了較多的短信相關(guān)權(quán)限,而正常應(yīng)用較少申請這些權(quán)限。如SEND_SMS,RECEIVE_SMS,READ_SMS。
圖2 惡意應(yīng)用集中特征權(quán)限統(tǒng)計直方圖
圖3 正常應(yīng)用集中特征權(quán)限統(tǒng)計直方圖
步驟2 通過步驟1統(tǒng)計出來的權(quán)限次數(shù),依據(jù)定義2中公式φ(p)=λm2(p)/λn(p),分別計算特征權(quán)限的惡意程度值,計算結(jié)果如表1所示。
表1 不同權(quán)限惡意程度值度量表
表2 不同比例與閾值關(guān)系圖
圖4 不同閾值下的檢測率與誤報率
實驗結(jié)果表明,隨著閾值的提高,檢測率和誤報率都在下降,為了在檢測率和誤報率之間有個較好的折中,我們選取V閾=4.6824,此時比例系數(shù)k1=0.6,k2=0.4,檢測率為57.54%,誤報率為14.9%。
步驟4 分別將文中所提方法與市場上主流的殺毒軟件對比實驗,仍使用步驟1中選取的十組樣本分別對比實驗,選用的殺毒軟件分別為360安全衛(wèi)士,騰訊手機管家,金山毒霸。對上述十組樣本,每組1000個惡意樣本分別進(jìn)行檢測,實驗結(jié)果表明:360安全衛(wèi)士的云檢測率為54.08%,騰訊手機管家云檢測率為55.8%,金山毒霸的檢測率為53.08%。由此可見本文中所提方法的檢測率均高于這三大殺毒軟件。但在誤報率方面,本文中的方法卻略顯不足,三大殺毒軟件中, 3種殺毒軟件的誤報率均在5%左右,低于本文方法中的誤報率。如圖5所示。本文對三大殺毒軟件誤報的app進(jìn)一步研究發(fā)現(xiàn),所誤報的app主要是強行推送廣告的app。目前,是否將惡意推送廣告的app歸類為惡意軟件仍存在爭議[15]。與國產(chǎn)殺毒軟件相比,本文所提檢測方法時間性能具有明顯的優(yōu)越性,圖6給出了掃描分析1000個樣本的時間對比,從圖中可以看出,LWD有效縮短了分類時間。因此,LWD作為一種輕量級的檢測方法,能快速對惡意軟件進(jìn)行檢測,對保護(hù)用戶手機安全,具有重大現(xiàn)實意義。
圖5 LWD和國產(chǎn)殺毒軟件檢測率與誤報率對比
圖6 LWD與國產(chǎn)殺毒軟件運行時間對比
本文從權(quán)限使用頻率的角度出發(fā)提出了一種Android惡意軟件檢測的輕量級算法-LWD,LWD算法通過權(quán)限在惡意應(yīng)用和正常應(yīng)用中使用頻率來定量刻畫權(quán)限產(chǎn)生惡意行為的能力,并以此計算應(yīng)用軟件惡意程度值來判斷軟件是否屬于惡意軟件。實驗證明,LWD方法具有與現(xiàn)行殺毒軟件相似的檢測能力。與傳統(tǒng)的殺毒軟件算法相比,LWD是基于單一權(quán)限特征來進(jìn)行惡意軟件檢測,只需掃描一遍數(shù)據(jù)庫,時間復(fù)雜度較低,能快速對應(yīng)用軟件進(jìn)行初步檢測,同時為更一步深入檢測應(yīng)用軟件提供參考依據(jù)。該算法不足之處在于存在一定程度的誤報率,如何對算法進(jìn)行改進(jìn)以降低誤報率是下一步工作的重點。
[1] Gartner Group. Gartner says annual Smartphone sales surpassed sales of feature phones for the first time in 2013[R/OL].[2014.07.15].http://www.gartner.com/newsroom/id/2665715.
[2] Polla M L, Martinelli F, Sgandurra D. A survery on security for mobile devices[J].IEEE Communications Surveys & Tutorials, 2013, 15(1):446-471.
[3] 閆梅,彭新光.基于Android安全機制的權(quán)限檢測系統(tǒng)[J].計算機工程與設(shè)計,2013,34(3):854-858.
[4] 張葉慧,彭新光,蔡志標(biāo).基于類別以及權(quán)限的Android惡意程序檢測[J].計算機工程與設(shè)計,2014,35(5):1568-1571.
[5] 張銳,楊吉云.基于權(quán)限相關(guān)性的Android惡意軟件檢測[J].計算機應(yīng)用,2014,34(5):1322-1325.
[6] Chan P P K, Song W K.Static detection of android malware by using permissions and API calls[C]//Proceedings of 2014 International Conference on Machine Learning and Cybernetics, 2014.
[7] 蔡昌. Android平臺惡意軟件動態(tài)檢測系統(tǒng)的設(shè)計和實現(xiàn)[D].北京:北京交通大學(xué),2013.
[8] 嚴(yán)勇.基于動態(tài)監(jiān)控的Android惡意軟件檢測方法[J].信息安全與通信保密,2014(10):104-108,112.
[9] Zheng M, Sun M, Lui J C S.DroidTrace:A Ptrace Based Android Dynamic Analysis System with Forward Execution Capacity[C]//2014 International Wireless Communications and Mobile Computing Conference, 2014:128-133.
[10] Enck W, Ongtang M, McDaniel P.On lightweight mobile phone application certification[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security, 2009:235-245.
[11] Nauman M, Khan S, Zhang X.Apex:Extending Android permission model and enforcement with user-defined runtime constraints[C]//Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security, 2010:328-332.
[12]LivshitsB,JungJ.Automaticmediationofprivacy-sensitiveresourceaccessinsmartphoneapplication[C]//Proceedingsofthe22ndUSENIXConferenceonSecurity.Berkeley:USENIXAssociation, 2013:113-130.
[13] 楊歡,張玉清,胡予濮,等.基于權(quán)限頻繁模式挖掘的算法的Android惡意應(yīng)用檢測方法[J].通信學(xué)報,2013,34(Z1):106-115.
[14]VirusShare[OL].http://virusshare.com/support.
[15]ZhouY,JiangX.DissectingAndroidMalware:CharacterizationandEvolution[C]//2012IEEESymposiumonSecurityandPrivacy, 2012:95-109.
AN ANDRIOD MALWARE DETECTION ALGORITHM BASED ON PERMISSIONS COUNT
Chen Yun’an Wang Yixiang
(SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,Anhui,China)
As the most popular mobile operating system in the world,Android platform has been under the threat of the quickly growth of malware.It makes a significant sense to find solutions to detect the malware quickly.After analyzing the character permissions usage in more than 4000 malware and more than 2000 benign applications,a solution named LWD(Light Wight Detection) to detect malware is proposed.LWD defines the malicious value of character permissions on basis of the permissions usage frequency in malware and benign applications.Then,the application will be judged whether it is a malware by calculating the malicious value of the application.The results of experiment show that LWD has a better detection compared with other popular anti-virus software.As a single permission characterization,LWD has good time efficiency and it is able to provide foundation of further malware detection.
Smart phone Android system Character permissions LWD Frequency
2015-10-04。程運安,研究員,主研領(lǐng)域:信息安全,分布式系統(tǒng)。汪奕祥,碩士生。
TP309
A
10.3969/j.issn.1000-386x.2017.01.055