程運(yùn)安 汪奕祥
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 安徽 合肥 230009)
基于權(quán)限統(tǒng)計(jì)的Android惡意應(yīng)用檢測(cè)算法
程運(yùn)安 汪奕祥
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 安徽 合肥 230009)
作為世界上最流行的移動(dòng)操作系統(tǒng),Android正面臨著快速增長(zhǎng)的惡意軟件的威脅。如何快速高效地檢測(cè)出Android惡意軟件對(duì)保證用戶手機(jī)安全具有十分重大的意義。從Android軟件的權(quán)限出發(fā),統(tǒng)計(jì)了4000多個(gè)惡意應(yīng)用和2000多個(gè)正常應(yīng)用的權(quán)限分布情況,依據(jù)特征權(quán)限在惡意應(yīng)用和正常應(yīng)用中的分布規(guī)律,設(shè)計(jì)了一種輕量級(jí)的快速檢測(cè)方法LWD(Light Weight Detection)。LWD根據(jù)特征權(quán)限在惡意應(yīng)用中的使用頻率和在正常應(yīng)用中的使用頻率的不同來定量分析特征權(quán)限惡意程度值,并以此計(jì)算每個(gè)樣本的惡意程度值是否超過規(guī)定閾值來判斷該樣本是否屬于惡意應(yīng)用。實(shí)驗(yàn)結(jié)果表明,與市場(chǎng)上主流的殺毒軟件相比,LWD方法具有較好的檢測(cè)率。而且LWD是基于單一的權(quán)限特征對(duì)惡意軟件進(jìn)行檢測(cè),因此具有較高的時(shí)間效率。作為一種輕量級(jí)檢測(cè)方法,LWD可以為更進(jìn)一步深入檢測(cè)惡意應(yīng)用提供參考依據(jù)。
智能手機(jī) 安卓系統(tǒng) 特征權(quán)限 LWD 頻率
自Google發(fā)布第一款手機(jī)操作系統(tǒng)Android系統(tǒng)以來,Android就受到了廣大手機(jī)廠商和用戶的青睞,并在短時(shí)間內(nèi)取得快速的發(fā)展。2013年全年,全球大約7.6億部Android智能手機(jī)被售出,Android智能手機(jī)占據(jù)了大約78.6%的智能手機(jī)市場(chǎng)[1]。而同年IOS市場(chǎng)份額僅占15.6%。到2014年第二季度,Android手機(jī)市場(chǎng)份額更是達(dá)到了85%。雖在2015年,Android市場(chǎng)份額降低1.9個(gè)百分點(diǎn)。但Android系統(tǒng)仍在全球范圍內(nèi)占據(jù)主導(dǎo)地位。
Android系統(tǒng)之所以能在短時(shí)間內(nèi)取得快速的增長(zhǎng),主要由于其免費(fèi)開源的特性。但也正由于此,Android系統(tǒng)的安全性面臨著了巨大的挑戰(zhàn)。隨著Android市場(chǎng)份額的擴(kuò)大,針對(duì)Android平臺(tái)的惡意軟件也呈現(xiàn)爆炸式增長(zhǎng)。這些惡意軟件不僅干擾Android設(shè)備功能的正常運(yùn)行,而且還能盜取用戶隱私數(shù)據(jù),甚至遠(yuǎn)程非法控制用戶設(shè)備等,給手機(jī)設(shè)備正常使用帶來了很大危害[2]。目前,惡意軟件檢測(cè)方法分為靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)兩類,靜態(tài)檢測(cè)不需要程序運(yùn)行而是通過提取軟件自身特征來分析軟件行為是否惡意的方法,主要集中于對(duì)應(yīng)用權(quán)限使用的分析[3-6]。動(dòng)態(tài)檢測(cè)則是在程序運(yùn)行過程中檢測(cè)惡意行為,作為判斷惡意軟件的依據(jù)[7-9]。
在Android設(shè)備上安裝應(yīng)用程序時(shí),需要授予相關(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)用才能正常使用移動(dòng)網(wǎng)絡(luò)。但是如果權(quán)限被惡意軟件惡意利用,則會(huì)給用戶造成危害。例如一個(gè)應(yīng)用申請(qǐng)了讀取電話狀態(tài)權(quán)限,又申請(qǐng)了錄音權(quán)限和網(wǎng)絡(luò)權(quán)限,那么該軟件就可能竊取用戶語音通話記錄。如果一個(gè)應(yīng)用申請(qǐng)了網(wǎng)絡(luò)權(quán)限,又申請(qǐng)了讀取地理位置權(quán)限,則該軟件就可能對(duì)用戶進(jìn)行追蹤。因此,權(quán)限是否被合理使用是判斷應(yīng)用軟件是否惡意的一個(gè)重要指標(biāo)。由于大多數(shù)用戶在安裝應(yīng)用時(shí)并不了解相關(guān)權(quán)限的作用,并且Android平臺(tái)采用粗粒度的權(quán)限管理機(jī)制,即用戶一旦同意授予權(quán)限進(jìn)行安裝,在以后的程序運(yùn)行過程中將不再對(duì)權(quán)限進(jìn)行檢查。因此,在用戶安裝應(yīng)用程序前對(duì)應(yīng)用權(quán)限特征進(jìn)行分析,并判斷該應(yīng)用軟件是否是惡意應(yīng)用,并對(duì)用戶進(jìn)行提醒,避免用戶安裝惡意應(yīng)用,對(duì)保護(hù)用戶手機(jī)安全起了重要的作用。
對(duì)于根據(jù)權(quán)限預(yù)測(cè)出應(yīng)用程序的惡意行為,國(guó)內(nèi)外許多專家和學(xué)者都進(jìn)行了廣泛而深入的研究。文獻(xiàn)[10]最早開始了基于權(quán)限機(jī)制的研究,設(shè)定了一種理想安全權(quán)限規(guī)則Kirin規(guī)則,如果應(yīng)用程序中訪問權(quán)限的機(jī)制違反了該項(xiàng)規(guī)則,Kirin方案就會(huì)拒絕應(yīng)用程序的安裝。然而,Kirin規(guī)則過于嚴(yán)苛,單純使用Kirin規(guī)則可能使誤報(bào)率過高。在Kirin規(guī)則研究的基礎(chǔ)上,文獻(xiàn)[11]開發(fā)了Apex工具,實(shí)現(xiàn)了細(xì)粒度的權(quán)限控制,不僅允許用戶選擇可以授予的權(quán)限,并給出更為詳盡的配置方案。比如該權(quán)限能使用多少次,而且可以在程序運(yùn)行過程動(dòng)態(tài)改變授權(quán)。但是有選擇的權(quán)限授予則有可能使應(yīng)用程序崩潰,導(dǎo)致無法正常運(yùn)行。在此基礎(chǔ)上,文獻(xiàn)[12]進(jìn)一步提出,給API調(diào)用返回虛假值的形式來代替關(guān)閉權(quán)限,以防止應(yīng)用程序崩潰。但由于大多數(shù)用戶不了解Android用戶的權(quán)限機(jī)制,故讓用戶自主選擇選擇權(quán)限授予的方式收效甚微。近年來隨著數(shù)據(jù)挖掘技術(shù)的興起,文獻(xiàn)[13]通過數(shù)據(jù)挖掘算法對(duì)惡意應(yīng)用族的Android權(quán)限進(jìn)行頻繁模式挖掘構(gòu)建惡意應(yīng)用權(quán)限關(guān)系特征庫,來檢測(cè)未知惡意應(yīng)用,取得了良好效果。但由于數(shù)據(jù)挖掘算法時(shí)間復(fù)雜度高,構(gòu)建惡意權(quán)限關(guān)系特征庫時(shí)需要多次掃描惡意應(yīng)用數(shù)據(jù)庫,效率低下。
以上方法雖然從采用不同的方面對(duì)權(quán)限使用情況進(jìn)行了分析,但是并沒有根據(jù)正常應(yīng)用和惡意應(yīng)用權(quán)限使用情況的不同進(jìn)行綜合考慮,本文在統(tǒng)計(jì)大量惡意應(yīng)用和正常應(yīng)用權(quán)限分布的基礎(chǔ)上,提出了輕量級(jí)的快速檢測(cè)算法LWD,實(shí)驗(yàn)證明了LWD算法的有效性。LWD算法流程如圖1所示。
圖1 LWD算法流程圖
3.1 LWD簡(jiǎn)介
LWD是根據(jù)惡意軟件和正常軟件集合權(quán)限頻率使用的差異性而提出的一種輕量級(jí)檢測(cè)方法。LWD方法通過定義權(quán)限惡意程度值函數(shù),將應(yīng)用所申請(qǐng)的權(quán)限組合映射為應(yīng)用惡意程度值,并通過分析比較惡意軟件集和正常應(yīng)用集的惡意程度值不同來對(duì)手機(jī)軟件進(jìn)行檢測(cè)和分類。與傳統(tǒng)的基于權(quán)限的檢測(cè)方法對(duì)比,LWD方法具有如下改進(jìn):
1) LWD方法減少了分類特征,降低時(shí)間復(fù)雜度。傳統(tǒng)的基于權(quán)限的方法分類特征采取全部權(quán)限,而LWD方法只采用在惡意樣本集出現(xiàn)次數(shù)最多的20個(gè)權(quán)限作為分類特征,既保留了產(chǎn)生惡意行為所需的主要權(quán)限特征,又有效減低其他權(quán)限噪聲的干擾,降低了分類的時(shí)間復(fù)雜度。
2) LWD不僅分析特征權(quán)限在惡意應(yīng)用中的使用頻率,同時(shí)也分析了特征權(quán)限在正常應(yīng)用中的使用頻率,通過分析同一權(quán)限在不同樣本集中的行為模式對(duì)該權(quán)限產(chǎn)生惡意行為的能力進(jìn)行綜合評(píng)估更加合理。
3.2 LWD方法定義與計(jì)算過程
3.2.1 LWD方法相關(guān)定義
定義1 特征權(quán)限向量。
P=(p1,p2,…,pi,…,p20),其中pi為在惡意應(yīng)用樣本集中統(tǒng)計(jì)權(quán)限的次數(shù)從高到低排序?yàn)榈趇位的權(quán)限,這樣選出的特征權(quán)限既具有代表性,又避免了統(tǒng)計(jì)過多權(quán)限特征而導(dǎo)致算法時(shí)間效率低下。
定義2 權(quán)限惡意程度值(函數(shù))φ(p)。
權(quán)限惡意程度反映的是權(quán)限產(chǎn)生惡意行為的能力大小。為了對(duì)權(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)頻率越大時(shí),說明該權(quán)限越容易產(chǎn)生惡意行為,因此當(dāng)λm(p)越大時(shí)φ(p)也就越大。當(dāng)權(quán)限p在正常樣本中出現(xiàn)的頻率越大時(shí),說明該權(quán)限使用越合理,產(chǎn)生惡意行為概率越小,因此當(dāng)λn(p)越大時(shí)φ(p)也就越小。在公式中我們采用了λm(p)/λn(p)對(duì)λm(p)進(jìn)行修正,這表明當(dāng)權(quán)限在正常應(yīng)用和惡意應(yīng)用使用差距頻率較大時(shí),該權(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)用使用頻率差異越大時(shí),權(quán)限惡意程度值越高。
定義3 權(quán)限惡意度列向量F。
惡意權(quán)限特征集合P中的權(quán)限按順序以式(1)分別計(jì)算出每個(gè)權(quán)限的惡意程度值,并映射權(quán)限惡意度列向量F。F的計(jì)算公式見式(2)。
F=φ(PT)=(φ(p1),φ(p2),…,φ(p20))T
(2)
定義4 權(quán)限特征向量Q。
為了便于衡量和計(jì)算應(yīng)用權(quán)限產(chǎn)生惡意行為的能力,將應(yīng)用映射為權(quán)限特征向量Q。每個(gè)應(yīng)用對(duì)應(yīng)著一個(gè)權(quán)限特征向量。應(yīng)用A的權(quán)限特征向量可用式(3)來描述:
QA=(q1,q2,…,qi,…,q20),qi∈{0,1}
(3)
其中QA中每一項(xiàng)與P中的每一項(xiàng)一一對(duì)應(yīng)。對(duì)QA中每一項(xiàng)qi定義如下:設(shè)PA為應(yīng)用程序A申請(qǐng)的所有權(quán)限的集合,如果qi對(duì)應(yīng)項(xià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)計(jì)算:
VA=QAF=(q1,q2,…,q20)(φ(p1),φ(p2),…,φ(p20))T
(4)
3.2.2 計(jì)算過程
由3.2.1節(jié)的相關(guān)定義,得出LWD方法的計(jì)算過程。
1) 確定惡意度閾值V閾
2) 構(gòu)建線性分類器函數(shù)G(X)
步驟1 本文從所用4000多個(gè)惡意應(yīng)用樣本來自于文獻(xiàn)[14],并從GooglePlay上利用python爬蟲程序批量下載3000個(gè)正常應(yīng)用樣本。為了使實(shí)驗(yàn)更具有統(tǒng)計(jì)規(guī)律性,我們從4000個(gè)惡意樣本中隨機(jī)選取1000個(gè)樣本,并反復(fù)做了10次交叉實(shí)驗(yàn)得到10組隨機(jī)樣本。實(shí)驗(yàn)利用AndroidSDK自帶的aapt.exe工具分別提取10組惡意樣本集的權(quán)限,統(tǒng)計(jì)權(quán)限使用的次數(shù),并將10組樣本權(quán)限計(jì)數(shù)作加權(quán)平均后,按權(quán)限使用次數(shù)從高到低排列,取前20位權(quán)限為惡意應(yīng)用的特征權(quán)限。利用同樣方法,實(shí)驗(yàn)從3000個(gè)正常樣本中同樣隨機(jī)選取10組正常樣本集,每組1000個(gè)樣本,并統(tǒng)計(jì)從惡意樣本集中分離出來的20種特征權(quán)限在正常樣本集中的使用次數(shù)。為了便于比較,我們將統(tǒng)計(jì)結(jié)果生成柱狀圖,統(tǒng)計(jì)結(jié)果見圖2、圖3。從圖2、圖3對(duì)比中我們可以看出,惡意樣本和正常樣本在使用與短信相關(guān)權(quán)限時(shí)具有顯著的統(tǒng)計(jì)差異性。惡意樣本申請(qǐng)了較多的短信相關(guān)權(quán)限,而正常應(yīng)用較少申請(qǐng)這些權(quán)限。如SEND_SMS,RECEIVE_SMS,READ_SMS。
圖2 惡意應(yīng)用集中特征權(quán)限統(tǒng)計(jì)直方圖
圖3 正常應(yīng)用集中特征權(quán)限統(tǒng)計(jì)直方圖
步驟2 通過步驟1統(tǒng)計(jì)出來的權(quán)限次數(shù),依據(jù)定義2中公式φ(p)=λm2(p)/λn(p),分別計(jì)算特征權(quán)限的惡意程度值,計(jì)算結(jié)果如表1所示。
表1 不同權(quán)限惡意程度值度量表
表2 不同比例與閾值關(guān)系圖
圖4 不同閾值下的檢測(cè)率與誤報(bào)率
實(shí)驗(yàn)結(jié)果表明,隨著閾值的提高,檢測(cè)率和誤報(bào)率都在下降,為了在檢測(cè)率和誤報(bào)率之間有個(gè)較好的折中,我們選取V閾=4.6824,此時(shí)比例系數(shù)k1=0.6,k2=0.4,檢測(cè)率為57.54%,誤報(bào)率為14.9%。
步驟4 分別將文中所提方法與市場(chǎng)上主流的殺毒軟件對(duì)比實(shí)驗(yàn),仍使用步驟1中選取的十組樣本分別對(duì)比實(shí)驗(yàn),選用的殺毒軟件分別為360安全衛(wèi)士,騰訊手機(jī)管家,金山毒霸。對(duì)上述十組樣本,每組1000個(gè)惡意樣本分別進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果表明:360安全衛(wèi)士的云檢測(cè)率為54.08%,騰訊手機(jī)管家云檢測(cè)率為55.8%,金山毒霸的檢測(cè)率為53.08%。由此可見本文中所提方法的檢測(cè)率均高于這三大殺毒軟件。但在誤報(bào)率方面,本文中的方法卻略顯不足,三大殺毒軟件中, 3種殺毒軟件的誤報(bào)率均在5%左右,低于本文方法中的誤報(bào)率。如圖5所示。本文對(duì)三大殺毒軟件誤報(bào)的app進(jìn)一步研究發(fā)現(xiàn),所誤報(bào)的app主要是強(qiáng)行推送廣告的app。目前,是否將惡意推送廣告的app歸類為惡意軟件仍存在爭(zhēng)議[15]。與國(guó)產(chǎn)殺毒軟件相比,本文所提檢測(cè)方法時(shí)間性能具有明顯的優(yōu)越性,圖6給出了掃描分析1000個(gè)樣本的時(shí)間對(duì)比,從圖中可以看出,LWD有效縮短了分類時(shí)間。因此,LWD作為一種輕量級(jí)的檢測(cè)方法,能快速對(duì)惡意軟件進(jìn)行檢測(cè),對(duì)保護(hù)用戶手機(jī)安全,具有重大現(xiàn)實(shí)意義。
圖5 LWD和國(guó)產(chǎn)殺毒軟件檢測(cè)率與誤報(bào)率對(duì)比
圖6 LWD與國(guó)產(chǎn)殺毒軟件運(yùn)行時(shí)間對(duì)比
本文從權(quán)限使用頻率的角度出發(fā)提出了一種Android惡意軟件檢測(cè)的輕量級(jí)算法-LWD,LWD算法通過權(quán)限在惡意應(yīng)用和正常應(yīng)用中使用頻率來定量刻畫權(quán)限產(chǎn)生惡意行為的能力,并以此計(jì)算應(yīng)用軟件惡意程度值來判斷軟件是否屬于惡意軟件。實(shí)驗(yàn)證明,LWD方法具有與現(xiàn)行殺毒軟件相似的檢測(cè)能力。與傳統(tǒng)的殺毒軟件算法相比,LWD是基于單一權(quán)限特征來進(jìn)行惡意軟件檢測(cè),只需掃描一遍數(shù)據(jù)庫,時(shí)間復(fù)雜度較低,能快速對(duì)應(yīng)用軟件進(jìn)行初步檢測(cè),同時(shí)為更一步深入檢測(cè)應(yīng)用軟件提供參考依據(jù)。該算法不足之處在于存在一定程度的誤報(bào)率,如何對(duì)算法進(jìn)行改進(jìn)以降低誤報(bào)率是下一步工作的重點(diǎ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安全機(jī)制的權(quán)限檢測(cè)系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(3):854-858.
[4] 張葉慧,彭新光,蔡志標(biāo).基于類別以及權(quán)限的Android惡意程序檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(5):1568-1571.
[5] 張銳,楊吉云.基于權(quán)限相關(guān)性的Android惡意軟件檢測(cè)[J].計(jì)算機(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)惡意軟件動(dòng)態(tài)檢測(cè)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[D].北京:北京交通大學(xué),2013.
[8] 嚴(yán)勇.基于動(dòng)態(tài)監(jiān)控的Android惡意軟件檢測(cè)方法[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)用檢測(cè)方法[J].通信學(xué)報(bào),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。程運(yùn)安,研究員,主研領(lǐng)域:信息安全,分布式系統(tǒng)。汪奕祥,碩士生。
TP309
A
10.3969/j.issn.1000-386x.2017.01.055