孫嵐 李永忠
摘 要:針對(duì)Android平臺(tái)粗粒度權(quán)限管理機(jī)制的漏洞,提出一種細(xì)粒度權(quán)限管理機(jī)制。該方案實(shí)現(xiàn)了惡意軟件識(shí)別、隱私權(quán)限分析與警告,以及權(quán)限選擇與修改功能。其中惡意權(quán)限識(shí)別功能中采用了卡方檢驗(yàn)法、聚類(lèi)算法及改進(jìn)的樸素貝葉斯算法。運(yùn)用該系統(tǒng)對(duì)1 000個(gè)樣本進(jìn)行實(shí)驗(yàn),得出惡意軟件誤判率約為9.75%,檢測(cè)準(zhǔn)確率約為90.25%。實(shí)驗(yàn)結(jié)果表明,該方案使普通用戶在面對(duì)各種應(yīng)用時(shí)能更合理地授予及修改權(quán)限,從而大幅降低了Android平臺(tái)下權(quán)限控制的危險(xiǎn)性。
關(guān)鍵詞:Android;細(xì)粒度權(quán)限管理機(jī)制;權(quán)限控制;惡意權(quán)限檢測(cè)
DOI:10. 11907/rjdk. 182794 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類(lèi)號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)008-0131-05
Design and Implementation of Fine-grained Rights
Management Mechanism under Android Platform
SUN Lan, LI Yong-zhong
(School of Computer, Jiangsu University of Science and Technology, Zhenjiang 212003, China)
Abstract: In order to solve the problem of the coarse-grained permissions management system of the Android platform, this paper proposes a fine-grained permissions management system. This program implements many functions, including identification of malware, analysis of privacy permissions, selection and modification of permissions. Chi-square test, clustering algorithm and improved naive Bayesian algorithm are adopted by malicious identification function. This system was used to conduct experiments on 1000 samples, the false positive rate of malware was about 9.75%, and the detection accuracy was about 90.25%. Experiment result have shown that the control of privacy-related permissions is more secure and reliable, so that this solution allows ordinary users to grant and modify permissions more reasonably when faced with various applications, greatly reducing the risk of permission control under the Android platform.
Key Words: Android; fine-grained permissions management system; permission control; malicious permission detection
作者簡(jiǎn)介:孫嵐(1994-),女,江蘇科技大學(xué)計(jì)算機(jī)學(xué)院碩士研究生,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全;李永忠(1961-),男,碩士,江蘇科技大學(xué)計(jì)算機(jī)學(xué)院教授,研究方向?yàn)榫W(wǎng)絡(luò)安全、嵌入式應(yīng)用。
0 引言
隨著Android智能手機(jī)的普及,Android系統(tǒng)的市場(chǎng)占有率不斷提高,然而,Android因其系統(tǒng)結(jié)構(gòu)及開(kāi)源性引發(fā)的安全問(wèn)題也亟待解決。根據(jù)市場(chǎng)調(diào)研機(jī)構(gòu)Kantar發(fā)布的2018年Q2季度智能手機(jī)行業(yè)最新調(diào)查報(bào)告顯示,Android手機(jī)占據(jù)了中國(guó)市場(chǎng)80.4%的市場(chǎng)份額,在德國(guó)、美國(guó)、法國(guó)、意大利、日本、西班牙等國(guó)家,Android手機(jī)的市場(chǎng)占有率也穩(wěn)居第一[1]。
自2009年起,學(xué)者們對(duì)Android平臺(tái)的權(quán)限管理機(jī)制展開(kāi)研究。2009年,Enck等[2]建立Kirin安全服務(wù)以檢測(cè)違反權(quán)限策略的軟件,并拒絕對(duì)其進(jìn)行安裝;2010年,Shin等[3]構(gòu)建形式化模型以檢測(cè)權(quán)限機(jī)制的安全性;同年,美國(guó)賓夕法尼亞州立大學(xué)、杜克大學(xué)及英特爾實(shí)驗(yàn)室研究人員開(kāi)發(fā)出TaintDroid系統(tǒng)[4],對(duì)應(yīng)用如何使用隱私數(shù)據(jù)進(jìn)行了分析;2011年,F(xiàn)elt等[5]利用Stowaway工具檢測(cè)出符合應(yīng)用功能需求的最小權(quán)限集,并將其與被應(yīng)用申請(qǐng)的權(quán)限集進(jìn)行比較;同年,著名的TISSA[6]系統(tǒng)被開(kāi)發(fā)出來(lái),該系統(tǒng)實(shí)現(xiàn)了Android平臺(tái)的多粒度控制,但其難以避免應(yīng)用之間的串謀攻擊;近年來(lái),戴維等開(kāi)發(fā)了CrossDroid系統(tǒng),以進(jìn)一步改善TISSA系統(tǒng)中應(yīng)用之間的串謀攻擊問(wèn)題。目前,Android權(quán)限控制方面應(yīng)用最廣泛的方案即是上述的TaintDroid、TISSA、CrossDroid 3項(xiàng)。
以上3種方案為之后的權(quán)限控制研究奠定了基礎(chǔ),其可最大限度地維護(hù)Android 平臺(tái)權(quán)限管理的安全性,但仍存在許多漏洞,比如用戶僅能在軟件安裝時(shí)進(jìn)行權(quán)限管理,用戶若拒絕軟件權(quán)限申請(qǐng)則會(huì)取消安裝[7-8]。因此,本文研究一種細(xì)粒度權(quán)限管理機(jī)制,使用戶能夠自主進(jìn)行權(quán)限管理。安裝應(yīng)用時(shí),系統(tǒng)將彈出權(quán)限申請(qǐng)框以提示有權(quán)限正試圖提出申請(qǐng),后臺(tái)將對(duì)其進(jìn)行識(shí)別,檢測(cè)該權(quán)限是否帶有惡意傾向?qū)⒃搼?yīng)用轉(zhuǎn)變?yōu)閻阂鈶?yīng)用,并將結(jié)果反饋給用戶,以供用戶參考并進(jìn)行選擇,從而極大提升了用戶隱私的安全性。
1 Android安全機(jī)制
Android系統(tǒng)完整的安全架構(gòu)與嚴(yán)謹(jǐn)?shù)陌踩?guī)范保證了系統(tǒng)架構(gòu)每個(gè)層面的系統(tǒng)及用戶信息安全。Android安全體系框架如圖1所示,主要包括3部分:Android內(nèi)核安全、Android應(yīng)用層安全與Android用戶層安全[9]。
圖1 Android安全體系
由于權(quán)限機(jī)制能允許或拒絕應(yīng)用程序訪問(wèn)API或系統(tǒng)資源,故其實(shí)質(zhì)上是一種訪問(wèn)控制機(jī)制[10]。然而,權(quán)限機(jī)制還存在以下隱患:①用戶在安裝軟件時(shí),無(wú)法對(duì)權(quán)限進(jìn)行篩選,只能全部接受,否則將結(jié)束安裝;②用戶難以區(qū)分權(quán)限是否具有惡意特征;③用戶無(wú)法對(duì)已授權(quán)的權(quán)限進(jìn)行更改。針對(duì)這些弊端,本文提出的模型不僅對(duì)隱私數(shù)據(jù)提取進(jìn)行了權(quán)限控制,還評(píng)估了隱私權(quán)限組合,并在用戶授權(quán)時(shí)給予警告,從而提升了Android系統(tǒng)權(quán)限控制的安全性[11]。
2 Android系統(tǒng)架構(gòu)
Android系統(tǒng)架構(gòu)采用分層架構(gòu)思想,圖2為Android系統(tǒng)總體架構(gòu)[7]。系統(tǒng)自上而下分為應(yīng)用層、框架層、系統(tǒng)庫(kù)與Linux內(nèi)核4層[12]。應(yīng)用層位于Android系統(tǒng)架構(gòu)頂層,該層存放了開(kāi)發(fā)人員利用Java編寫(xiě)的Android第三方應(yīng)用程序;框架層為應(yīng)用程序開(kāi)發(fā)提供API調(diào)用接口,如Android四大組件,以及豐富且可拓展的視圖控件等[13]。同時(shí),該層還能提供大量系統(tǒng)服務(wù),使應(yīng)用能夠獲取系統(tǒng)與其相關(guān)信息;系統(tǒng)庫(kù)層包含系統(tǒng)類(lèi)庫(kù)與Android Runtime兩部分,可促進(jìn)Linux內(nèi)核與框架層之間的溝通;Linux內(nèi)核為Android奠定了基礎(chǔ),Android憑借該層實(shí)現(xiàn)了許多重要功能,如無(wú)線通信、硬件設(shè)備驅(qū)動(dòng)、進(jìn)程與內(nèi)存管理、電源管理等[13]。
圖2 Android系統(tǒng)總體架構(gòu)
3 惡意權(quán)限檢測(cè)算法
3.1 權(quán)限特征選取
權(quán)限特征選取中運(yùn)用了卡方檢驗(yàn)法,該方法主要用于計(jì)算權(quán)限與惡意傾向的相關(guān)性[14]。四格卡方檢驗(yàn)公式為:
[x2=(ad-bc)2?N(a+b)(c+d)(a+c)(b+d)] (1)
式中,a、b、c、d分別代表四格頻數(shù),N為樣本容量,即a、b、c、d之和。利用式(1)對(duì)權(quán)限進(jìn)行計(jì)算,進(jìn)而得出[x]2,再參考卡方界值表,將檢驗(yàn)水準(zhǔn)[α](默認(rèn)值0.05)與卡方界值表對(duì)應(yīng)的臨界值進(jìn)行比較,若卡方值大于查表值,則視該權(quán)限為冗余權(quán)限并將其去除。以上步驟實(shí)現(xiàn)了權(quán)限特征集合的降維操作,得到權(quán)限特征集合T。
3.2 權(quán)限特征聚類(lèi)去冗余
根據(jù)對(duì)權(quán)限特征集合T的分析發(fā)現(xiàn),權(quán)限之間具有相關(guān)性,許多權(quán)限都是捆綁出現(xiàn)的。因此,需要去除T的冗余特征,以提高權(quán)限特征的代表性,減少分類(lèi)開(kāi)銷(xiāo)。本文采用基于熵的互信息法進(jìn)行相似性度量,該方法可通過(guò)計(jì)算,從全局層次把握特征間的相關(guān)性大小[14]。信息熵[H(x)]與變量x的關(guān)系表達(dá)式如式(2)所示,已知變量y后x的條件信息熵公式如式(3)所示。
[H(x)=-iP(xi)lbP(yi)] (2)
[H(x|y)=-jP(yj)iP(xi|yj)lbP(xi|yj)] (3)
變量x與y之間的互信息[MI(x,y)]為:
[MI(x,y)=H(x)-H(x|y)=H(y)-H(x|y)=]
[x,yP(x,y)lbP(xy)P(x)P(y)]? ? ? ? (4)
特征[x、y]之間的相關(guān)性計(jì)算如式(5)所示。
[Sim(x,y)=2MI(x,y)H(x)+H(y)] (5)
其中,相關(guān)性區(qū)間為[0,1],0代表特征[x]與[y]不相關(guān),1表示[x、y]完全相關(guān)。之后,采用[Sim(x,y)]值對(duì)特征集進(jìn)行簡(jiǎn)單聚類(lèi),去除冗余權(quán)限[14]。聚類(lèi)算法將權(quán)限特征集T作為輸入,將去冗余后的權(quán)限特征集[T]作為輸出,詳細(xì)步驟如圖3所示。
圖3 權(quán)限特征聚類(lèi)
通過(guò)以上步驟,可降低[T]屬性維數(shù)與權(quán)限之間的相關(guān)性,并提高了其與惡意軟件分類(lèi)決策的相關(guān)性。
3.3 改進(jìn)的樸素貝葉斯分類(lèi)
本文為實(shí)現(xiàn)對(duì)Android惡意軟件和非惡意軟件的分類(lèi)操作,采用樸素貝葉斯分類(lèi)法[15]。條件概率P(X|Y)與P(Y|X) 的貝葉斯公式為:
[P(Y|X)=P(X|Y)P(Y)P(X)] (6)
由于P(X)為常數(shù),若要為待分類(lèi)對(duì)象找出最大可能的類(lèi)別,只需使P(X|Y)P(Y)最大即可。然而在實(shí)際應(yīng)用中,一個(gè)屬性值對(duì)分類(lèi)的影響并不能完全獨(dú)立于其它屬性值,常見(jiàn)的樸素貝葉斯分類(lèi)法通常無(wú)法解決該問(wèn)題,而本文之前得到的[T']可滿足實(shí)際需求,使特征權(quán)限間實(shí)現(xiàn)相對(duì)獨(dú)立,特征代表分類(lèi)效果顯著[15]。
在Android平臺(tái)下,各種權(quán)限對(duì)不同惡意軟件決策的影響也有所差別。所以權(quán)限需要作出區(qū)分,以提升分類(lèi)準(zhǔn)確率[16]。以3.1章中計(jì)算出的卡方值[x2]為基礎(chǔ),引入權(quán)重影響因子[β],進(jìn)而對(duì)樸素貝葉斯分類(lèi)后驗(yàn)證概率計(jì)算進(jìn)行改進(jìn),將式(6)變形為式(7)、式(8)[15-16]。
[P(Y|X)=P(Y)k=1mP(Xk|Y)βkP(X)] (7)
[βk=1x2k×i=1mx2i] (8)
其中,[βk]表示該權(quán)限特征占所有分類(lèi)影響中的比重。由式(8)求得待檢測(cè)軟件為非惡意軟件及惡意軟件的后驗(yàn)概率,從而能夠更準(zhǔn)確地判斷出該軟件是否為惡意軟件。
4 Android平臺(tái)安全系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1 系統(tǒng)總體框架設(shè)計(jì)
Android平臺(tái)權(quán)限管理機(jī)制無(wú)法實(shí)現(xiàn)用戶對(duì)所需權(quán)限的自由篩選功能,若用戶想安裝某個(gè)應(yīng)用,只能被迫同意所有權(quán)限才能對(duì)其進(jìn)行安裝,但該做法可能導(dǎo)致用戶隱私被竊取。因此,本文設(shè)計(jì)了一個(gè)細(xì)粒度權(quán)限管理機(jī)制對(duì)其進(jìn)行優(yōu)化。該機(jī)制一方面能實(shí)現(xiàn)用戶對(duì)權(quán)限數(shù)據(jù)的獲取與選擇,另一方面能夠識(shí)別權(quán)限是否會(huì)引入惡意應(yīng)用,從而為用戶提供授權(quán)建議[17]。
Android平臺(tái)細(xì)粒度權(quán)限管理系統(tǒng)共分為3個(gè)模塊,分別為隱私分析報(bào)告模塊、權(quán)限設(shè)置管理模塊與惡意權(quán)限識(shí)別模塊。系統(tǒng)總體框架如圖4所示。
圖4 系統(tǒng)總體框架
4.2 隱私分析報(bào)告模塊
隱私分析報(bào)告模塊的主要作用在于當(dāng)應(yīng)用軟件獲取隱私權(quán)限時(shí),該模塊可將其攔截,并通過(guò)比較原有數(shù)據(jù)庫(kù)中的權(quán)限對(duì)其作出分析。當(dāng)數(shù)據(jù)庫(kù)中存在該權(quán)限時(shí)則允許訪問(wèn),否則,將在跳轉(zhuǎn)至權(quán)限設(shè)置管理模塊時(shí)立刻啟動(dòng)惡意識(shí)別模塊[17]。隱私權(quán)限控制流程如圖5所示。
圖5 隱私權(quán)限控制流程
4.3 權(quán)限設(shè)置管理模塊
權(quán)限設(shè)置管理模塊主要滿足了用戶自主篩選軟件中與隱私相關(guān)權(quán)限的功能,詳細(xì)過(guò)程為先從系統(tǒng)中獲取第三方應(yīng)用軟件,再對(duì)應(yīng)用提取權(quán)限,從而過(guò)濾出隱私相關(guān)權(quán)限,最后存儲(chǔ)到專(zhuān)門(mén)設(shè)計(jì)的SQLite數(shù)據(jù)庫(kù)中[18] ,并通過(guò)用戶與權(quán)限設(shè)置管理模塊的交互實(shí)現(xiàn)數(shù)據(jù)庫(kù)更新,其基本步驟如圖6所示。
4.4 惡意權(quán)限識(shí)別模塊
惡意權(quán)限識(shí)別模塊是在應(yīng)用申請(qǐng)權(quán)限后啟用的模塊,主要對(duì)輸入的權(quán)限信息進(jìn)行檢測(cè)分析,并返回判斷結(jié)果[19-20],惡意權(quán)限識(shí)別流程如圖7所示。
圖6 權(quán)限設(shè)置管理流程? ? ? ? ? ? ? ? ?圖7 惡意權(quán)限識(shí)別流程
惡意識(shí)別模塊主要使用了卡方檢驗(yàn)法、聚類(lèi)算法及樸素貝葉斯分類(lèi)法[15]。首先采用卡方檢驗(yàn)法對(duì)特征權(quán)限進(jìn)行篩選,得到相關(guān)性較高的權(quán)限集,然后通過(guò)權(quán)限間的互信息計(jì)算出權(quán)限間的相似度,并對(duì)其進(jìn)行聚類(lèi)與去冗余操作,從而使特征權(quán)限之間相對(duì)獨(dú)立,最后采用樸素貝葉斯算法對(duì)特征權(quán)限進(jìn)行分類(lèi),以達(dá)到區(qū)分正常軟件與惡意軟件的目的[21]。
5 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試主要分為3部分進(jìn)行,包括隱私分析報(bào)告模塊測(cè)試、權(quán)限設(shè)置管理模塊測(cè)試與惡意權(quán)限識(shí)別模塊測(cè)試。
隱私分析報(bào)告模塊測(cè)試主要測(cè)試應(yīng)用提取隱私相關(guān)權(quán)限并與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比,若不符合,則跳轉(zhuǎn)至權(quán)限管理模塊。隱私權(quán)限控制模塊攔截效果如圖8所示。
權(quán)限設(shè)置管理模塊測(cè)試主要測(cè)試用戶能否對(duì)權(quán)限進(jìn)行自由篩選。具體而言,應(yīng)測(cè)試系統(tǒng)能否成功獲取第三方應(yīng)用軟件并提取其權(quán)限列表,用戶是否能夠?qū)ο胍臋?quán)限進(jìn)行勾選,并成功保存篩選結(jié)果,以及該結(jié)果是否能夠生成權(quán)限數(shù)據(jù)庫(kù)。權(quán)限設(shè)置功能測(cè)試如圖9所示。
惡意權(quán)限識(shí)別模塊測(cè)試旨在測(cè)試是否可以完成對(duì)惡意軟件及非惡意軟件的分類(lèi),即測(cè)試基于樸素貝葉斯算法的檢測(cè)是否有效。然而要想測(cè)試系統(tǒng)的檢測(cè)是否有效,則首先要過(guò)濾出非惡意軟件配置文件AndroidManifest.xml的權(quán)限,再將其作為輸入,并將最后一個(gè)權(quán)限作為識(shí)別點(diǎn),判斷該軟件是否會(huì)轉(zhuǎn)變成惡意軟件[21]。
圖8 隱私權(quán)限控制模塊攔截效果? ? ? ? ? ? ?圖9 權(quán)限設(shè)置
分別選取500個(gè)惡意軟件及非惡意軟件對(duì)其進(jìn)行檢測(cè),將實(shí)驗(yàn)分為2組,準(zhǔn)確率及誤判率測(cè)試結(jié)果分別如表1、表2所示。
表1 惡意軟件樣本檢測(cè)結(jié)果
表2 非惡意軟件樣本檢測(cè)結(jié)果
由表1可以看出,系統(tǒng)平均誤判率為9.75%,總體平均準(zhǔn)確率為90.25%。
功能測(cè)試結(jié)果如圖10所示。
圖10 惡意權(quán)限檢測(cè)模塊結(jié)果
6 結(jié)語(yǔ)
本系統(tǒng)能夠?qū)崿F(xiàn)惡意軟件識(shí)別、隱私權(quán)限分析與警告功能,可使用戶自定義設(shè)置權(quán)限。運(yùn)用該系統(tǒng)對(duì)1 000個(gè)樣本進(jìn)行實(shí)驗(yàn),得出惡意軟件誤判率約為9.75%,檢測(cè)準(zhǔn)確率約為90.25%。該方案使普通用戶在面對(duì)各種應(yīng)用時(shí)能更合理地授予及修改權(quán)限,從而大大降低了系統(tǒng)被攻擊的可能性,提高了Android系統(tǒng)的安全性。
參考文獻(xiàn):
[1] 李俊輝. 基于Android安全機(jī)制的權(quán)限控制系統(tǒng)[J]. 信息技術(shù), 2014(9):125-128.
[2] 戴威,鄭滔. 基于Android權(quán)限機(jī)制的動(dòng)態(tài)隱私保護(hù)模型[J]. 計(jì)算機(jī)應(yīng)用研究, 2012, 29(9):3478-3482.
[3] SHIN W,KIYOMOTO S, FUKUSHIMA K, et al. A formal model to analyze the permission authorization and enforcement in the Android framework[C].IEEE Second International Conference on Social Computing, 2010.
[4] ENCK W,GILBERT P,CHUN B G,et al. TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones[J]. ACM Transactions on Computer Systems,2014, 32(2):1-29.
[5] FELT A P, CHIN E, HANNA S, et al. Android permissions demystified[C]. ACM Conference on Computer & Communications Security. ACM, 2011.
[6] ZHOU Y, ZHANG X, JIANG X, et al. Taming information-stealing smartphone applications (on Android)[C]. International Conference on Trust and Trustworthy Computing,2011.
[7] 戈亞光. Android細(xì)粒度授權(quán)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué), 2015.
[8] 湯瑾. Android平臺(tái)下的隱私數(shù)據(jù)保護(hù)方法的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué), 2014.
[9] 王鵬. Android隱私保護(hù)機(jī)制的分析與改進(jìn)[D]. 北京: 北京郵電大學(xué), 2013.
[10] 符易陽(yáng),周丹平. Android安全機(jī)制分析[J]. 信息網(wǎng)絡(luò)安全, 2011(9):23-25.
[11] 朱業(yè)豐. Android安全機(jī)制分析[J]. 電子世界, 2012(14):17.
[12] 張娜. Android系統(tǒng)架構(gòu)研究與應(yīng)用[D]. 西安:西安科技大學(xué), 2013.
[13] JIANG X, ZHOU Y. A survey of Android malware[M]. Android Malware, 2013:3-20.
[14] 初建朝,鄭力明. Android安全性分析[J]. 微型機(jī)與應(yīng)用, 2013(20):1-3.
[15] 劉彧. 基于貝葉斯理論的文本分類(lèi)技術(shù)的研究與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2009.
[16] 王國(guó)才.樸素貝葉斯分類(lèi)器的研究與應(yīng)用[D].重慶:重慶交通大學(xué), 2010.
[17] MELO L L D,ZORZO S D. PUPDroid - personalized user privacy mechanism for android[C]. IEEE International Conference on Systems. IEEE, 2012.
[18] 李欣. 一種基于智能卡的Android權(quán)限管理方法研究[J].信息網(wǎng)絡(luò)安全,2012(8):57-60.
[19] 張中文,雷靈光,王躍武. Android Permission機(jī)制的實(shí)現(xiàn)與安全分析[C].全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì), 2012.
[20] AU K W Y,ZHOU Y F,HUANG Z,et al. PScout:analyzing the Android permission specification[C]. ACM Conference on Computer & Communications Security,2012.
[21] 張銳,楊吉云. 基于權(quán)限相關(guān)性的Android惡意軟件檢測(cè)[J]. 計(jì)算機(jī)應(yīng)用,2014,34(5):1322-1325.
(責(zé)任編輯:黃 ?。?/p>