黃俊強, 于洪君
(黑龍江省信息安全測評中心,黑龍江哈爾濱150090)
伴隨移動互聯(lián)網(wǎng)的發(fā)展,手機隱私安全越來越受到關注。截止到2014年6月,官方發(fā)布了Android移動終端隱私安全檢測報告,報告顯示:移動終端安卓用戶手機中存放隱私數(shù)據(jù)達92.8%?;ヂ?lián)網(wǎng)數(shù)據(jù)中心聯(lián)合部分安全檢測機構對1200個安卓移動應用程序檢測發(fā)現(xiàn):有92%的應用程序在安裝過程中申請獲取用戶隱私權限。其中申請1~5項隱私權限的移動應用程序占61.5%,申請6~10項隱私權限的應用程序占26.2%,申請超過11項隱私權限的APP占4.3%。一些移動應用程序根據(jù)自身的應用需求獲取部分用戶隱私權限是合理的,但是仍然存在大量的應用程序通過用戶安全意識的薄弱獲取不必要的用戶隱私權限。這意味著幾乎所有安卓應用程序都或多或少掌握著用戶隱私數(shù)據(jù),其中,GPS定位權限、無線網(wǎng)絡連接情況和讀取通信錄權限這三項隱私的獲取位居前列。比如百度地圖類應用則會申請獲取GPS位置信息;電子支付類應用會申請讀取用戶位置、發(fā)送確認支付短信;電子游戲類應用也會優(yōu)先申請用戶位置和短信權限;電子閱讀類應用通過短消息確認權限實現(xiàn)付費流程。即時通訊類應用程序申請的權限更多,包括攝像頭開啟,讀取聯(lián)系人列表,錄音等權限。從這些APP應用程序中,完全可以定位一個人的日常活動軌跡。
有些移動應用程序申請獲取的權限是合理的,例如:地圖類應用如果不能獲取用戶GPS定位信息,將無法完成用戶的地圖導航功能,電子支付類應用如果不讀取短信記錄就不能方便地填寫短信驗證碼。但隱私權限越軌行為畢將帶來更多安全風險。
移動應用程序隱私權限申請越軌行為主要是指移動應用程序申請了超過自身功能需求的過多的用戶隱私權限。例如,一款輸入法類應用,卻要求讀取通話記錄;一款閱讀類應用,卻要求開放相冊權限……,某些APP為了商業(yè)利益經(jīng)常會增加其不相關用戶隱私權限的獲取,從而造成對用戶隱私權限的“越軌”獲取,有一些惡意應用程序會從中套取用戶基本信息,各種賬號信息,認證碼等信息,從而對用戶的財產(chǎn)和個人隱私造成嚴重威脅。
最新數(shù)據(jù)統(tǒng)計,超8成用戶安裝移動應用程序時,對于應用程序申請的權限直接全部允許,沒有對其權限的合理性進行檢查,這為惡意軟件,流氓軟件創(chuàng)造了便利條件,可以非常容易獲取用戶隱私數(shù)據(jù)。
本論文在移動應用程序隱私權限泄露的背景下,提出了一種基于移動應用程序的隱私權限合理性檢測模型,通過這個模型,幫助用戶識別應用程序的權限申請合理性。實驗結果表明在造成一定時間開銷的情況下,該模型可以有效識別應用程序的隱私權限申請合理性。
Android系統(tǒng)主要采用功能組件和權限機制對應用程序進行管理和控制,應用程序在安裝時需要聲明與其所使用到的資源相關的權限,且只能使用所聲明過的權限范圍內的資源。這種機制在一定程度上限制了權限的申請,但是這種機制隨著安全技術的發(fā)展控制力已經(jīng)大大減弱,很多應用程序在安裝后需要用戶確認權限的申請,對于隱私權限的申請的合理性,國內外有很多學者針對這一領域進行了廣泛的研究。
清華大學白小龍[1]基于Android應用程序權限自動裁剪系統(tǒng)。這個系統(tǒng)對于應用程序的權限裁剪很可能導致軟件的不可用,具有一定的局限性。太原理工大學閆梅[2]提出一種基于Android應用程序權限檢測機制。北京交通大學趙幸[3]對Android平臺惡意應用程序行為進行研究與分析,提出一種靜態(tài)檢測系統(tǒng)。總體上看,國內的研究還比較少,研究成果也不太理想。
David Barrera等人[7]提出一種基于自組織算法的權限安全模型,通過對1100個Android應用程序的分類研究,發(fā)現(xiàn)該模型可以應用于更大范圍的應用程序權限檢測。Wei Xuetao等人[4]在Android系統(tǒng)權限評估一文中,通過對已有軟件庫中237個第三方應用程序的1703個版本進行權限申請分析,發(fā)現(xiàn)在新發(fā)布的應用程序版本中有19.6%的軟件存在權限申請越軌行為。在舊版本中有25.2%的軟件就已存在權限申請過度行為。在移動應用程序不斷更新的總體趨勢下,過度申請用戶隱私權限的應用程序正呈現(xiàn)爆發(fā)式增長。William Enck等人[6]提出了一種Kirin安全服務系統(tǒng),該系統(tǒng)利用大量的安全規(guī)則對應用程序進行深度安全分析,得出安卓應用程序附帶的安全配置是檢測惡意行為的一個有效手段。Peng H等人[8]通過使用樸素貝葉斯和分層混合等概率生成模型,來完成對應用程序的風險評估。
Yang Bo等人[5]通過靜態(tài)數(shù)據(jù)流分析實現(xiàn)對安卓應用程序的權限檢測,并實現(xiàn)了一種靜態(tài)檢測工具Brox用于對權限申請越軌的應用程序進行檢測,實驗效果和性能都很令人滿意。Pearce P等人[9]提出一種基于安卓平臺的Ad-Droid架構,該架構開發(fā)了一個新的API用于實現(xiàn)對應用程序中廣告申請的權限進行分離,對這些廣告申請的權限進行過濾,從而避免個人隱私泄露。Yang Huan等人[11]提出一種三層混合系綜算法實現(xiàn)對多類安卓惡意行為進行檢測,通過對1126個惡意軟件的檢測,獲取的實驗效果良好。Zhang Rui等人[12]提出一種基于權限相關性的安卓惡意應用程序檢測方案,通過對2000個軟件進行檢測,惡意軟件漏檢率在10%左右,該方案有待進一步改進。Zhang Yuan等人[10]提出了一種動態(tài)分析平臺VetDroid,該平臺主要是對應用程序的權限申請等敏感行為進行重建,這樣安全分析師可以很容易對應用程序的內部敏感行為進行檢測。
這些研究工作雖然都對Android應用程序的隱私權限進行了研究與分析,但是大部分都是基于Android系統(tǒng)本身的權限申請研究,基于移動應用程序安裝后的權限申請研究較少,本文在此基礎上,提出一種基于移動應用程序的隱私權限合理性檢測模型,主要用于移動程序安裝后的權限合理性檢測。
Android系統(tǒng)在整體架構上是一個權限分離系統(tǒng),對API的權限檢查通常包括三個方面:Intent、Content Provider及函數(shù)調用。Intent在Android系統(tǒng)中主要負責進程間的通信,專門提供組件互相調用的相關信息,當一個程序函數(shù)調用另一個程序函數(shù)時,需要向被調用的程序發(fā)送一個具有Action參數(shù)的Intent。但是在請求部分系統(tǒng)程序時則需要具有相對應的權限才可以發(fā)出Intent。比如,應用程序在請求使用撥號函數(shù)撥打電話時,需要向撥號函數(shù)發(fā)送具有 android.intent.action.CALL 參數(shù)的 Intent,則該應用需要聲明Android.permission.CALL_PHONE權限。Content Provider主要用于存儲數(shù)據(jù)信息,并為其他程序提供接口,以便外接程序獲取其相關數(shù)據(jù)。應用程序想要需要獲取Content Provider組件中的數(shù)據(jù),則需要通過不同的URL schema來完成請求,而對于系統(tǒng)提供的部分Content Provider,應用程序在請求時需要具有相對應的權限。比如,當應用程序使用schema為content://sms的URL請求讀取設備中的短信列表時就需要具有android.permission.READ_SMS權限。函數(shù)調用主要指的是系統(tǒng)API函數(shù)的調用,獲取必要的功能函數(shù)和資源,幣如想要使用SmsManager類中的Send-TextMessage()函數(shù)來發(fā)送短信。
APK文件是利用JAVA語言編寫和編譯的一種特殊的字節(jié)碼文件,通常稱為Dalvik Bytecode,將全部Java Class的Dalvik Bytecode組合一個dex文件。除dex文件之外,應用程序還需要在AndroidManifest.xml文件中對應用程序的組成部分和所使用到的權限進行聲明。這個dex文件和AndroidManifest.xml文件以及其它一些需要使用到的資源文件通過JDK(Java DevelopmentKit)中的jar工具打包,然后通過jarsigner工具使用開發(fā)者私鑰對打包文件進行簽名,最后形成了Android應用程序包文件(簡稱APK文件),APK文件就是安卓應用程序的安裝文件。
本文提出一種基于移動應用程序的隱私權限合理性檢測模型,主要是采用程序功能與權限申請對比關系,判斷應用程序申請權限的合理性,幫助用戶取舍應用程序申請的權限。該模型主要包含四個部分,應用程序APK權限提取,應用程序功能庫,權限資源庫,KMP比較算法合理性判定。模型框架如圖1所示:
圖1 權限申請合理性檢測模型流程圖
對安裝的APK應用程序首先使用經(jīng)過修改的開源Andro-Guard工具對其申請權限進行獲取,然后調用應用程序功能庫和權限資源庫,通過KMP比較算法挖掘程序功能與權限對應關系的合理性,給出哪些權限申請是合理的,哪些是不合理的。對于本文所用到的部分程序功能庫,如表1所示:
表1 程序功能庫
本文對300個關鍵Android API進行了測試,基本上覆蓋了比較完整的安卓權限集合,主要包括sendingBroadcast,receving-Broadcasts DisallowedBroadcasts,startin - gActivities,contendProviders,startingServices等權限。部分權限資源庫如表2所示。
表2 權限資源庫
通過對2015年以前的560個移動應用程序檢測分析發(fā)現(xiàn):訪問網(wǎng)絡、讀取短信、通話監(jiān)聽、寫SD卡等權限在應用程序中廣泛使用,但有些應用程序的權限申請脫離本身功能需求,更傾向于獲取額外權限,在所分析的應用程序中:附加申請短信權限的占56.2%、訪問網(wǎng)絡權限占82.5%、通話監(jiān)聽占37.3%,不排除有些應用軟件是為了收集用戶隱私數(shù)據(jù)為了改善自己的產(chǎn)品或者提升服務,但是也有一些利用用戶隱私數(shù)據(jù)從事非法活動。
從360手機商店的Android市場下載100個樣本程序。涵蓋了游戲娛樂類、通信類、系統(tǒng)管理類等移動應用程序。其中包括了一些主流的應用程序,如:微信 ,QQ空間,百度云,京東等。并對這些應用程序進行了模型檢測,發(fā)現(xiàn)了很多應用程序存在權限申請過度的情況。如表3所示。
表3 移動應用程序樣本權限申請合理性檢測列表
本文的檢測模型能夠在應用獲取權限之前,檢測到這些申請的權限,對于完全沒有必要的權限,該模型會將其過濾,對于可疑的權限申請,會提示用戶其危險程度,幫助用戶提高個人隱私的保護程度。
本文介紹了Android應用程序竊取用戶隱私的安全現(xiàn)狀,解讀了國內外的研究情況,分析Android權限機制。針對Android權限申請的安全機制,提出一種基于Android應用程序的隱私權限合理性檢測模型,并進行了模擬實驗和分析,效果較好。今后,筆者將繼續(xù)對Android系統(tǒng)的應用軟件權限檢測進行研究,并對移動應用程序的安全漏洞權限做進一步研究;另外,除了在技術層面來保證用戶隱私外,還希望通過規(guī)范來制約這種應用程序的發(fā)布,對于每一款APP在發(fā)布之后,說明書中要詳細說明獲取每一種權限的目的,通過這樣兩層保障,用戶隱私才能得到更好的保護。
[1] 白小龍.Android應用程序權限自動裁剪系統(tǒng)[J].計算機工程與科學,2014,34(11):2075 -2086.
[2] 閆梅,彭新光.基于Android安全機制的權限檢測系統(tǒng)[J].計算機工程與設計,2013,34(3):854 -858.
[3] 趙幸.Android平臺惡意應用程序行為分析與研究[D].北京:北京交通大學,2014.
[4] WEI X,Gomez L,Neamtiu I,et al.Permission evolution in the Android ecosystem[C]//Proc of the 28th Annual Computer Security Applications Conference.Orlando:ACSAC,2012:31-40.
[5] YANG Bo,TANG Zhu - shou,ZHU Hao - jin,et al.Method of Android Applications Permission Detection based on Static Dataflow Analysis[J].Computer Science:2012,39(11A):16-18.
[6] Enck W,Ongtang M,Mcdaniel P,On lightweight mobile phone application certification[C]//Proc of the 16th ACM Conference on Computer and Communications Security.New York:ACM,2009:235-245.
[7] Barrera D,Kayacik H G,van Orschot P C,et al.A methodology for empirical analysis of permission-based security models and its application to android[C] //Proc of the 17th ACM Conference on Computer and Communications Security.Chicago:CCS2010,2010:73-84.
[8] Peng H,Gates C,Sarma B,et al.Using probabilistic generative models for ranking risks of Android apps[C]//Proc of the 2012 ACM Conference on Computer and Communications Security.Raleigh:CCS,2012:241 -252.
[9] Perace P,F(xiàn)elt A P,Nunez G,et al.AdDroid:Privilege separation for applications and advertisers in Android[C]//Proc of the 7th ACM Symposium on Information,Computer and Communications Security.South Korea:ASIACCS,2012:71-72.
[10] ZHANG Y,YANG M,XU B,et al.Vetting undesirable behaviors in Android apps with permission use analysis[C] //Proc of the 2013 ACM SIGSAC Conference on Computer and Communications Security.Berlin:CCS'13,2013:611-622.
[11] YANG Huan ,ZHANG Yu - qing,HU Yu - pu,et al.A malware behavior detection system of Android applications based on multi- class features[J].Chinese Journal of Computers:2014,37(1):15 -27.
[12] Zhang Rui,Yang Ji- yun.Android malware detection based on permission correlation[J] .Journal of Computer Applications:2014,34(5):1322 -1325.
[13] Roesner F,Kohno T,Moshchuk A,et al.User- driven access control:rethinking permission granting in modern operating systems[C]//Proc of IEEE Symposium on Security and Privacy.Washington DC:IEEE Computer Society,2012:224 -238.
[14] Lapolla M,Mar Tinelli F,Sgandurra D.A survey on security for mobile devices[J].IEEE Communications Surveys & Tutorials:2012,15(1):108 -117.
[15] AU K W Y,ZHOU Yi- fan,HUANG Zhen,et al.PScout:analyzing the Android permission specification[C]//Proc of ACM Conference on Computer and Communications Security.New York:ACM Press,2012:217 -228.
[16] CHEN K Z,Johnson N,D’Silva V,et al.Contextual policy enforcement in Android programs with permission event graphs[C]//Proc of the 20th Annual Network and Distributed System Security Symposium.San Diego:Internet Society,2013:455-464.
[17] Grace M,ZHOU Ya - jin,WANG Zhi,et al.Systematic detection of capability leaks in stock Android smartphones[C]//Proc of the 19th Annual Symposium on Network and Distributed System Security.San Diego:Internet Society,2012:235-244.
[18] WU Dong- jie,MAO C H,WEI T E,et al.DroidMat:Android malware detection through manifest and API calls tracing[C]//Proc of the 7th Asia Joint Conference on Information Security.Tokyo:ASIAJCIS,2012:62 -69.
[19] 蔣紹林,王金雙,于晗,等.改進的Android強制訪問控制模型[J].計算機應用,2013,33(6):1630-1636.
[20] PARKY,LEE C,LEE C,et al.Rgbdroid:a novel response -based approach to Android privilege escalation attacks[C]//Proc of the 5th USENIX Conference on Large-scale Exploits and Emergent Threats.Berkeley:USENIX Association,2012:56-67.
[21] Mann C,Starostin A.A framework for static detection of privacy leaks in Android applications[C]//Proc of the 27th Annual ACM Symposium on Applied Computing.New York:ACM Press,2012:1457 -1462.
[22] Gibler C,Crussell J,Erickson J,et al.AndroidLeaks:automatically detecting potential privacy leaks in Android applications on a large scale[C]//Proc of the 5th International Conference on Trust and Trustworthy Computing.Berlin:Springer,2012:291 -307.
[23] 楊廣亮,龔曉銳,姚剛,等.一個面向Android的隱私泄露檢測系統(tǒng)[J].計算機工程,2012,38(23):5747-5752.
[24] 戴威,鄭滔.基于Android權限機制的動態(tài)隱私保護模型[J].計算機應用研究,2012,29(9):3478 -3482.
[25] JIA Li- min,Aljuraidan J,F(xiàn)ragkaki E,et al.Run - time enforcement of information-flow properties on Android[C]//Computer Security - ESORICS.Berlin:Springer,2013:775-792.
[26] Elli Fragkaki,Lujo Bauer,Limin Jia,et al.Modeling and enhancing Android’s permission system[M].Computer Security- ESORICS.Berlin:Springer,2012:1 -18.