崔學(xué)成,陸南,李秀
(江蘇科技大學(xué)電信學(xué)院,江蘇鎮(zhèn)江212003)
Android系統(tǒng)應(yīng)用權(quán)限異常檢測(cè)技術(shù)研究
崔學(xué)成,陸南,李秀
(江蘇科技大學(xué)電信學(xué)院,江蘇鎮(zhèn)江212003)
在安卓系統(tǒng)中,一個(gè)應(yīng)用的申請(qǐng)的權(quán)限往往能反應(yīng)出這個(gè)應(yīng)用的行為模式。而一個(gè)惡意應(yīng)用的出現(xiàn),是需要多個(gè)權(quán)限配合的。本文針對(duì)Android平臺(tái)惡意應(yīng)用泛濫的問(wèn)題,通過(guò)對(duì)Apriroi算法進(jìn)行研究改進(jìn),尋找惡意應(yīng)用申請(qǐng)權(quán)限之間的關(guān)聯(lián)性,挖掘它們之間的關(guān)系,判斷應(yīng)用的惡意性,為Android用戶提供安全保障。并通大量實(shí)驗(yàn)數(shù)據(jù)以及與其它方法進(jìn)行比較得出,本文提出的方法的準(zhǔn)確率高達(dá)78.6%,能夠較為準(zhǔn)確的判斷出一個(gè)應(yīng)用是否是惡意應(yīng)用。
權(quán)限;安全;安卓;Apriori算法
隨著智能手機(jī)的飛速發(fā)展,越來(lái)越多的惡意應(yīng)用開(kāi)始出現(xiàn),并竊取用戶的信息,給用戶造成了財(cái)產(chǎn)損失和隱私泄露。
在谷歌公司發(fā)布的“2015Android系統(tǒng)安全報(bào)告”中,谷歌一共將潛在的惡意軟件分為了十個(gè)大分類,分別是數(shù)據(jù)收集、間諜軟件、木馬、惡意下載、釣魚、權(quán)限提升、后門、短信詐騙、WAP詐騙和Rooting。其中,谷歌市場(chǎng)中潛在惡意軟件中大多數(shù)是因?yàn)槭占瘮?shù)據(jù)被發(fā)現(xiàn),而其他潛在惡意軟件數(shù)量總和還沒(méi)有數(shù)據(jù)收集的一半。此外,第三方應(yīng)用商店中潛在惡意數(shù)據(jù)收集軟件相比前一年增長(zhǎng)2倍,惡意下載相比前一年增長(zhǎng)42倍,權(quán)限提升相比前一年增長(zhǎng)11倍。
從報(bào)告上來(lái)看,Root類應(yīng)用數(shù)量在2014年和2015年一直穩(wěn)居不下,特別是在中國(guó)的第三方應(yīng)用商店中,Root類應(yīng)用更是不計(jì)其數(shù),對(duì)于Android設(shè)備來(lái)說(shuō)Root過(guò)后安全性大大降低,甚至部分木馬可以直接對(duì)設(shè)備進(jìn)行Root,隨后把其設(shè)置為不可卸載,讓用戶無(wú)從著手。軟件安全情況著實(shí)令人擔(dān)憂[1]。
而在中國(guó),由于沒(méi)有谷歌市場(chǎng)的限制,惡意應(yīng)用泛濫,比國(guó)外有過(guò)之而無(wú)不及。
文中針對(duì)這種情況,把Android系統(tǒng)權(quán)限與數(shù)據(jù)挖掘相結(jié)合,設(shè)計(jì)出一種檢測(cè)惡意應(yīng)用的方法。
Google公司為了保證用戶的信息安全,所以在設(shè)計(jì)Android系統(tǒng)時(shí)提供了多種安全機(jī)制,主要包括沙箱機(jī)制、簽名機(jī)制、Permission機(jī)制等。其中,權(quán)限機(jī)制是一種訪問(wèn)控制機(jī)制,一個(gè)應(yīng)用程序如果沒(méi)有對(duì)應(yīng)的權(quán)限,就沒(méi)有執(zhí)行相應(yīng)操作的能力。Android提供了大約130個(gè)權(quán)限用于系統(tǒng)資源的保護(hù),并提供了對(duì)應(yīng)的API來(lái)訪問(wèn)這些系統(tǒng)資源。應(yīng)用程序在調(diào)用這些API來(lái)訪問(wèn)系統(tǒng)資源時(shí),必須申請(qǐng)對(duì)應(yīng)的權(quán)限。一個(gè)應(yīng)用程序根據(jù)自己需要訪問(wèn)的系統(tǒng)資源,申請(qǐng)對(duì)應(yīng)的權(quán)限。申請(qǐng)的權(quán)限一般在應(yīng)用程序包中的AndroidManifest.xml文件中聲明。應(yīng)用申請(qǐng)的權(quán)限可以反映出程序的行為,所以可以嘗試從權(quán)限中分析應(yīng)用程序是否存在惡意行為。一旦應(yīng)用程序的權(quán)限請(qǐng)求被用戶確認(rèn)而被安裝后,就有了訪問(wèn)相應(yīng)系統(tǒng)資源的能力[2-5]。
作為Android安全的重要組成部分,權(quán)限機(jī)制一直以來(lái)受到了研究人員的廣泛關(guān)注。Enck等人介紹了Android系統(tǒng)的結(jié)構(gòu)和它的安全機(jī)制。Barrera等人研究了Android應(yīng)用的開(kāi)發(fā)人員是如何使用Android系統(tǒng)提供的Permission,他們使用自組織圖的算法分析1 100多個(gè)Android應(yīng)用,發(fā)現(xiàn)雖然Android系統(tǒng)提供了豐富的Permission,只有少數(shù)Permission被開(kāi)發(fā)人員頻繁使用。FeltAP等人研究了Android應(yīng)用的開(kāi)發(fā)人員在為應(yīng)用申請(qǐng)Permission時(shí),是否遵循了最小特權(quán)原則,并開(kāi)發(fā)了一個(gè)工具Stowaway來(lái)檢測(cè)應(yīng)用是否申請(qǐng)了多余的Permission。他們使用該工具檢測(cè)了940多項(xiàng)Android應(yīng)用,發(fā)現(xiàn)其中的應(yīng)用申請(qǐng)了多余的Permission。AuKWY等人開(kāi)發(fā)了PScout,該工具更全面地分析了Android系統(tǒng)使用Permission的特征,指出有些Permission是多余的,并給出了從Android2.2到Android4.0的詳細(xì)的API調(diào)用和需求的Permission的對(duì)應(yīng)關(guān)系。Yajin Zhou等人提出了一個(gè)基于Permission和行為特征的檢測(cè)方案,用來(lái)從已知惡意應(yīng)用家族中發(fā)現(xiàn)新的樣本;另外,還提出了一個(gè)啟發(fā)式的過(guò)濾方案來(lái)發(fā)現(xiàn)未知的惡意應(yīng)用家族,最后發(fā)現(xiàn)了1 200多個(gè)惡意應(yīng)用,并且將這1 200多個(gè)惡意應(yīng)用申請(qǐng)的Permission和Android市場(chǎng)1 200多個(gè)免費(fèi)應(yīng)用申請(qǐng)的Permission進(jìn)行比較,發(fā)現(xiàn)申請(qǐng)最多的20個(gè)Permission是類似的。在基于應(yīng)用申請(qǐng)的Permission對(duì)應(yīng)用進(jìn)行分類的研究方面,Shabtai等人使用多種分類器分析了820個(gè)應(yīng)用申請(qǐng)的Permission、每個(gè)應(yīng)用的用戶評(píng)分和包含的靜態(tài)字符串等特征,嘗試對(duì)應(yīng)用所屬的類別進(jìn)行預(yù)測(cè)。Sanz等人使用類似的方法,對(duì)一個(gè)應(yīng)用是屬于游戲還是工具進(jìn)行分類。Aung Z等人提出了使用應(yīng)用申請(qǐng)的Permission來(lái)檢測(cè)惡意應(yīng)用程序的方案,但他們都僅考慮了應(yīng)用申請(qǐng)的權(quán)限,沒(méi)有考慮應(yīng)用實(shí)際使用的權(quán)限[6-11]。
Apriori算法是一種挖掘關(guān)聯(lián)規(guī)則的頻繁項(xiàng)集算法,其核心思想是通過(guò)候選集生成和情節(jié)的向下封閉檢測(cè)兩個(gè)階段來(lái)挖掘頻繁項(xiàng)集[4]。Apriori(先驗(yàn)的,推測(cè)的)算法應(yīng)用廣泛,可用于消費(fèi)市場(chǎng)價(jià)格分析,猜測(cè)顧客的消費(fèi)習(xí)慣;網(wǎng)絡(luò)安全領(lǐng)域中的入侵檢測(cè)技術(shù);可用在用于高校管理中,根據(jù)挖掘規(guī)則可以有效地輔助學(xué)校管理部門有針對(duì)性的開(kāi)展貧困助學(xué)工作;也可用在移動(dòng)通信領(lǐng)域中,指導(dǎo)運(yùn)營(yíng)商的業(yè)務(wù)運(yùn)營(yíng)和輔助業(yè)務(wù)提供商的決策制定[12]。
挖掘的基本步驟:
1)依據(jù)支持度找出所有頻繁項(xiàng)集(頻度)
2)依據(jù)置信度產(chǎn)生關(guān)聯(lián)規(guī)則(強(qiáng)度)
3)基本概念
對(duì)于A->B:
支持度:p(A∩B),既有A又有B的概率;
置信度:p(B|A),在A發(fā)生的事件中同時(shí)發(fā)生B的概率。
如果事件A中包含k個(gè)事件,那么稱這個(gè)事件A為k項(xiàng)集事件A滿足最小支持度閾值的事件稱為頻繁k項(xiàng)集。
同時(shí)滿足最小支持度閾值和最小置信度閾值的規(guī)則稱為強(qiáng)規(guī)則。
實(shí)現(xiàn)步驟:
Apriori算法是一種非常有影響的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)集的算法。Apriori使用一種稱作逐層搜索的迭代方法,“K-1項(xiàng)集”用于搜索“K項(xiàng)集”。
首先,找出頻繁“1項(xiàng)集”的集合,該集合記作L1。L1用于找頻繁“2 項(xiàng)集”的集合L2,而L2用于找L3。如此下去,直到不能找到“K項(xiàng)集”。找每個(gè)Lk都需要一次數(shù)據(jù)庫(kù)掃描。核心思想是:連接步和剪枝步。連接步是自連接,原則是保證前k-2項(xiàng)相同,并按照字典順序連接。剪枝步,是使任一頻繁項(xiàng)集的所有非空子集也必須是頻繁的。反之,如果某個(gè)候選的非空子集不是頻繁的,那么該候選肯定不是頻繁的,從而可以將其從CK中刪除。簡(jiǎn)單的講,過(guò)程如下:
1)發(fā)現(xiàn)頻繁項(xiàng)集,過(guò)程為①掃描;②計(jì)數(shù);③比較;④產(chǎn)生頻繁項(xiàng)集;⑤連接、剪枝,產(chǎn)生候選項(xiàng)集,重復(fù)步驟①~⑤直到不能發(fā)現(xiàn)更大的頻集;
2)產(chǎn)生關(guān)聯(lián)規(guī)則,過(guò)程為:根據(jù)前面提到的置信度的定義,關(guān)聯(lián)規(guī)則的產(chǎn)生如下:
①對(duì)于每個(gè)頻繁項(xiàng)集L,產(chǎn)生L的所有非空子集;
②對(duì)于L的每個(gè)非空子集S,如果
則輸出規(guī)則為:L-S
1)由頻繁k-1項(xiàng)集進(jìn)行自連接生成的候選頻繁k項(xiàng)集數(shù)量巨大;
2)在驗(yàn)證候選頻繁k項(xiàng)集的時(shí)候需要對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行掃描,非常耗時(shí)。
Andrpod系統(tǒng)的權(quán)限太多,如果不對(duì)Apriori算法進(jìn)行改進(jìn),產(chǎn)生的頻繁項(xiàng)集太多,不旦會(huì)花費(fèi)大量時(shí)間,而且毫無(wú)意義。
Apriori算法的執(zhí)行效率較差,需要根據(jù)權(quán)限頻繁模式的特點(diǎn),對(duì)權(quán)限數(shù)據(jù)庫(kù)進(jìn)行了預(yù)處理。首先,對(duì)每個(gè)分類中的權(quán)限數(shù)據(jù)庫(kù)中的所有應(yīng)用都申請(qǐng)的權(quán)限進(jìn)行提取,并刪除相關(guān)數(shù)據(jù)。然后,對(duì)所有應(yīng)用很少申請(qǐng)的權(quán)限數(shù)據(jù)進(jìn)行刪除。最后,將預(yù)處理后的數(shù)據(jù)庫(kù)送入改過(guò)后的Apriori算法產(chǎn)生極大頻繁權(quán)限項(xiàng)集,再將所有應(yīng)用都申請(qǐng)的權(quán)限附加到極大頻繁權(quán)限項(xiàng)集。這樣進(jìn)行預(yù)處理后大幅度降低了數(shù)據(jù)的復(fù)雜度,節(jié)省時(shí)間的同時(shí),提高了算法的執(zhí)行效率[13]。
檢測(cè)步驟如圖1所示。
圖1 檢測(cè)步驟
檢測(cè)模型如圖2所示。
圖2 檢測(cè)模型
1) 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)在內(nèi)存為8GB,系統(tǒng)為window 7 64位,處理器為:Intel Core i5-4200M的電腦上實(shí)現(xiàn),使用Weka軟件來(lái)進(jìn)行測(cè)試。
2) 實(shí)驗(yàn)樣本
實(shí)驗(yàn)樣本由3個(gè)部分組成。
①文獻(xiàn)[9]中的典型惡意應(yīng)用測(cè)試樣本。該樣本庫(kù)中有1 260個(gè)惡意應(yīng)用,其中有49個(gè)惡意應(yīng)用類型。
②最近新發(fā)現(xiàn)的200個(gè)惡意應(yīng)用。
③非惡意應(yīng)用測(cè)試樣本,構(gòu)建了3 000個(gè)非惡意應(yīng)用的測(cè)試樣本。
3)實(shí)驗(yàn)結(jié)果
對(duì)所有惡意應(yīng)用進(jìn)行反復(fù)實(shí)驗(yàn),權(quán)衡誤報(bào)率,適當(dāng)選取最小支持度計(jì)數(shù)閾值,得出每類應(yīng)用的極大頻繁權(quán)限項(xiàng)集。
Kirin是Enck等人基于Android應(yīng)用申請(qǐng)的權(quán)限開(kāi)發(fā)的。但是,他們忽略了權(quán)限之間的關(guān)聯(lián),因此檢測(cè)的結(jié)果必然是不準(zhǔn)確的。
將本文的方法與Androguard和Kirin相比較,使用1 260個(gè)惡意應(yīng)用和最新發(fā)現(xiàn)的200個(gè)惡意應(yīng)用來(lái)進(jìn)行實(shí)驗(yàn),部分結(jié)果對(duì)比如圖3所示。
從圖3中可以看出本文提出的檢測(cè)方法要優(yōu)于Androidguard和Kirin方法的檢測(cè)結(jié)果。
文中把Apriori算法應(yīng)用到Android系統(tǒng)中,通過(guò)把Apriori算法和基于權(quán)限的靜態(tài)分析方法,提出了一種基于權(quán)限頻繁模式挖掘算法的Android惡意應(yīng)用檢測(cè)方法,挖掘出相關(guān)規(guī)則,進(jìn)行未知應(yīng)用的檢測(cè),自動(dòng)挖掘出權(quán)限之間的關(guān)聯(lián)性,檢測(cè)該應(yīng)用的惡意性。實(shí)驗(yàn)結(jié)果也證明了這種方法的有效性和正確性。
圖3 結(jié)果對(duì)比圖
由于Android平臺(tái)惡意應(yīng)用數(shù)量太多,計(jì)劃下一步采用Hadoop平臺(tái)來(lái)檢測(cè)結(jié)果的有效性[14-15]。
[1]2015年中國(guó)互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告[R].2015.
[2]李海峰,章寧,朱建明等.時(shí)間敏感數(shù)據(jù)流上的頻繁項(xiàng)集挖掘算法[J].計(jì)算機(jī)學(xué)報(bào),2012,35(11):2283-2293.
[3]張金鑫,楊曉輝.基于權(quán)限分析的Android應(yīng)用程序檢測(cè)系統(tǒng)[R].
[4]郭霖第一行代碼[M].北京:人民郵電出版社,2014.
[5]廖明華,鄭力明.Android安全機(jī)制分析與解決方案初探[J].科學(xué)技術(shù)與工程,2011(26):6350-6355.
[6]Barrera D,Kayacik H G,van Oorschot P C,et al.A methodology for empirical analysis of permission-based security models and its application to android[C]//Proceedings of the 17th ACM conference onComputer and communications security.ACM,2010:73-84.
[7]Felt A P,Chin E,Hanna S,et al.Android permissionsdemystified[C]//Proceedings of the 18th ACMconference on Computer and communication ssecurity.ACM,2011:627-638.
[8]Au K W Y,Zhou Y F,Huang Z,et al.Pscout:analyzing the android andcommunicatio- ns security.ACM,2012:217-228.
[9]Zhou Y,Wang Z,Zhou W,et al.Hey,you,get offof my market:Detecting malicious apps in officialand alternative android markets[C]//Proceedingsofthe 19th AnnualNetwork and Distributed SystemSecurity Symposium.2012.
[10]ShabtaiA, FledelY, EloviciY.Automated staticcode analysis for classifying android applications using machinelearning[C]//ComputationalIntelligenceand Security (CIS) , 2010 International Conferenceon.IEEE,2010:329-333.
[11]Sanz B,Santos I,Laorden C,et al.On the automatic categorization of android applications[C]//ConsumerCommunications and Networking Conference(CCNC),2012 IEEE.IEEE,2012:149-153.
[12]張磊磊.基于Hadoop和SVM算法的中文文本分類的研究與實(shí)現(xiàn)[D].昆明:昆明理工大學(xué),2015.
[13]???基于Hadoop云平臺(tái)的分布式支持向量機(jī)研究[D].臨汾:山西師范大學(xué),2014.
Research on application of anomaly detection technology in Android system
CUI Xue?cheng,LU Nan,LI Xiu
(School of Telecommunications,Jiangsu University of Science and Technology,Zhenjiang212003,China)
In the Android system,a app requests permission’s action can know the app’s behaviorpatterns.But the coming of Malicious applications need work in with many permissions.The article uses the Apriori algorithm exhumes the association of permission for every App requests to research the App’s Malicious nature.If the App is harmful,then it can give the user a tips.Then,article throughs a lot of experimental data and compare with other ways to get the result that our ways’accuracy is 78.6%.So,itcan be more accurate to determine whether an application is malicious applications.
permissions;security;Android;Apriori algorithm
TN02
A
1674-6236(2017)22-0085-04
2016-09-18稿件編號(hào):201609157
崔學(xué)成(1990—),男,山東濰坊人,碩士。研究方向:信息安全。