APP下载

一种基于Android应用程序的隐私权限合理性检测模型

2015-11-02黄俊强于洪君

信息安全与通信保密 2015年7期
关键词:安卓合理性应用程序

黄俊强, 于洪君

(黑龙江省信息安全测评中心,黑龙江哈尔滨150090)

0 引言

伴随移动互联网的发展,手机隐私安全越来越受到关注。截止到2014年6月,官方发布了Android移动终端隐私安全检测报告,报告显示:移动终端安卓用户手机中存放隐私数据达92.8%。互联网数据中心联合部分安全检测机构对1200个安卓移动应用程序检测发现:有92%的应用程序在安装过程中申请获取用户隐私权限。其中申请1~5项隐私权限的移动应用程序占61.5%,申请6~10项隐私权限的应用程序占26.2%,申请超过11项隐私权限的APP占4.3%。一些移动应用程序根据自身的应用需求获取部分用户隐私权限是合理的,但是仍然存在大量的应用程序通过用户安全意识的薄弱获取不必要的用户隐私权限。这意味着几乎所有安卓应用程序都或多或少掌握着用户隐私数据,其中,GPS定位权限、无线网络连接情况和读取通信录权限这三项隐私的获取位居前列。比如百度地图类应用则会申请获取GPS位置信息;电子支付类应用会申请读取用户位置、发送确认支付短信;电子游戏类应用也会优先申请用户位置和短信权限;电子阅读类应用通过短消息确认权限实现付费流程。即时通讯类应用程序申请的权限更多,包括摄像头开启,读取联系人列表,录音等权限。从这些APP应用程序中,完全可以定位一个人的日常活动轨迹。

有些移动应用程序申请获取的权限是合理的,例如:地图类应用如果不能获取用户GPS定位信息,将无法完成用户的地图导航功能,电子支付类应用如果不读取短信记录就不能方便地填写短信验证码。但隐私权限越轨行为毕将带来更多安全风险。

移动应用程序隐私权限申请越轨行为主要是指移动应用程序申请了超过自身功能需求的过多的用户隐私权限。例如,一款输入法类应用,却要求读取通话记录;一款阅读类应用,却要求开放相册权限……,某些APP为了商业利益经常会增加其不相关用户隐私权限的获取,从而造成对用户隐私权限的“越轨”获取,有一些恶意应用程序会从中套取用户基本信息,各种账号信息,认证码等信息,从而对用户的财产和个人隐私造成严重威胁。

最新数据统计,超8成用户安装移动应用程序时,对于应用程序申请的权限直接全部允许,没有对其权限的合理性进行检查,这为恶意软件,流氓软件创造了便利条件,可以非常容易获取用户隐私数据。

本论文在移动应用程序隐私权限泄露的背景下,提出了一种基于移动应用程序的隐私权限合理性检测模型,通过这个模型,帮助用户识别应用程序的权限申请合理性。实验结果表明在造成一定时间开销的情况下,该模型可以有效识别应用程序的隐私权限申请合理性。

1 相关工作

Android系统主要采用功能组件和权限机制对应用程序进行管理和控制,应用程序在安装时需要声明与其所使用到的资源相关的权限,且只能使用所声明过的权限范围内的资源。这种机制在一定程度上限制了权限的申请,但是这种机制随着安全技术的发展控制力已经大大减弱,很多应用程序在安装后需要用户确认权限的申请,对于隐私权限的申请的合理性,国内外有很多学者针对这一领域进行了广泛的研究。

1.1 国内研究现状

清华大学白小龙[1]基于Android应用程序权限自动裁剪系统。这个系统对于应用程序的权限裁剪很可能导致软件的不可用,具有一定的局限性。太原理工大学闫梅[2]提出一种基于Android应用程序权限检测机制。北京交通大学赵幸[3]对Android平台恶意应用程序行为进行研究与分析,提出一种静态检测系统。总体上看,国内的研究还比较少,研究成果也不太理想。

1.2 国外研究现状

David Barrera等人[7]提出一种基于自组织算法的权限安全模型,通过对1100个Android应用程序的分类研究,发现该模型可以应用于更大范围的应用程序权限检测。Wei Xuetao等人[4]在Android系统权限评估一文中,通过对已有软件库中237个第三方应用程序的1703个版本进行权限申请分析,发现在新发布的应用程序版本中有19.6%的软件存在权限申请越轨行为。在旧版本中有25.2%的软件就已存在权限申请过度行为。在移动应用程序不断更新的总体趋势下,过度申请用户隐私权限的应用程序正呈现爆发式增长。William Enck等人[6]提出了一种Kirin安全服务系统,该系统利用大量的安全规则对应用程序进行深度安全分析,得出安卓应用程序附带的安全配置是检测恶意行为的一个有效手段。Peng H等人[8]通过使用朴素贝叶斯和分层混合等概率生成模型,来完成对应用程序的风险评估。

Yang Bo等人[5]通过静态数据流分析实现对安卓应用程序的权限检测,并实现了一种静态检测工具Brox用于对权限申请越轨的应用程序进行检测,实验效果和性能都很令人满意。Pearce P等人[9]提出一种基于安卓平台的Ad-Droid架构,该架构开发了一个新的API用于实现对应用程序中广告申请的权限进行分离,对这些广告申请的权限进行过滤,从而避免个人隐私泄露。Yang Huan等人[11]提出一种三层混合系综算法实现对多类安卓恶意行为进行检测,通过对1126个恶意软件的检测,获取的实验效果良好。Zhang Rui等人[12]提出一种基于权限相关性的安卓恶意应用程序检测方案,通过对2000个软件进行检测,恶意软件漏检率在10%左右,该方案有待进一步改进。Zhang Yuan等人[10]提出了一种动态分析平台VetDroid,该平台主要是对应用程序的权限申请等敏感行为进行重建,这样安全分析师可以很容易对应用程序的内部敏感行为进行检测。

这些研究工作虽然都对Android应用程序的隐私权限进行了研究与分析,但是大部分都是基于Android系统本身的权限申请研究,基于移动应用程序安装后的权限申请研究较少,本文在此基础上,提出一种基于移动应用程序的隐私权限合理性检测模型,主要用于移动程序安装后的权限合理性检测。

2 背景

2.1 Android权限机制

Android系统在整体架构上是一个权限分离系统,对API的权限检查通常包括三个方面:Intent、Content Provider及函数调用。Intent在Android系统中主要负责进程间的通信,专门提供组件互相调用的相关信息,当一个程序函数调用另一个程序函数时,需要向被调用的程序发送一个具有Action参数的Intent。但是在请求部分系统程序时则需要具有相对应的权限才可以发出Intent。比如,应用程序在请求使用拨号函数拨打电话时,需要向拨号函数发送具有 android.intent.action.CALL 参数的 Intent,则该应用需要声明Android.permission.CALL_PHONE权限。Content Provider主要用于存储数据信息,并为其他程序提供接口,以便外接程序获取其相关数据。应用程序想要需要获取Content Provider组件中的数据,则需要通过不同的URL schema来完成请求,而对于系统提供的部分Content Provider,应用程序在请求时需要具有相对应的权限。比如,当应用程序使用schema为content://sms的URL请求读取设备中的短信列表时就需要具有android.permission.READ_SMS权限。函数调用主要指的是系统API函数的调用,获取必要的功能函数和资源,币如想要使用SmsManager类中的Send-TextMessage()函数来发送短信。

2.2 APK文件

APK文件是利用JAVA语言编写和编译的一种特殊的字节码文件,通常称为Dalvik Bytecode,将全部Java Class的Dalvik Bytecode组合一个dex文件。除dex文件之外,应用程序还需要在AndroidManifest.xml文件中对应用程序的组成部分和所使用到的权限进行声明。这个dex文件和AndroidManifest.xml文件以及其它一些需要使用到的资源文件通过JDK(Java DevelopmentKit)中的jar工具打包,然后通过jarsigner工具使用开发者私钥对打包文件进行签名,最后形成了Android应用程序包文件(简称APK文件),APK文件就是安卓应用程序的安装文件。

3 模型实现及结果分析

3.1 模型实现

本文提出一种基于移动应用程序的隐私权限合理性检测模型,主要是采用程序功能与权限申请对比关系,判断应用程序申请权限的合理性,帮助用户取舍应用程序申请的权限。该模型主要包含四个部分,应用程序APK权限提取,应用程序功能库,权限资源库,KMP比较算法合理性判定。模型框架如图1所示:

图1 权限申请合理性检测模型流程图

对安装的APK应用程序首先使用经过修改的开源Andro-Guard工具对其申请权限进行获取,然后调用应用程序功能库和权限资源库,通过KMP比较算法挖掘程序功能与权限对应关系的合理性,给出哪些权限申请是合理的,哪些是不合理的。对于本文所用到的部分程序功能库,如表1所示:

表1 程序功能库

本文对300个关键Android API进行了测试,基本上覆盖了比较完整的安卓权限集合,主要包括sendingBroadcast,receving-Broadcasts DisallowedBroadcasts,startin - gActivities,contendProviders,startingServices等权限。部分权限资源库如表2所示。

表2 权限资源库

3.2 结果分析

通过对2015年以前的560个移动应用程序检测分析发现:访问网络、读取短信、通话监听、写SD卡等权限在应用程序中广泛使用,但有些应用程序的权限申请脱离本身功能需求,更倾向于获取额外权限,在所分析的应用程序中:附加申请短信权限的占56.2%、访问网络权限占82.5%、通话监听占37.3%,不排除有些应用软件是为了收集用户隐私数据为了改善自己的产品或者提升服务,但是也有一些利用用户隐私数据从事非法活动。

从360手机商店的Android市场下载100个样本程序。涵盖了游戏娱乐类、通信类、系统管理类等移动应用程序。其中包括了一些主流的应用程序,如:微信 ,QQ空间,百度云,京东等。并对这些应用程序进行了模型检测,发现了很多应用程序存在权限申请过度的情况。如表3所示。

表3 移动应用程序样本权限申请合理性检测列表

本文的检测模型能够在应用获取权限之前,检测到这些申请的权限,对于完全没有必要的权限,该模型会将其过滤,对于可疑的权限申请,会提示用户其危险程度,帮助用户提高个人隐私的保护程度。

4 结语

本文介绍了Android应用程序窃取用户隐私的安全现状,解读了国内外的研究情况,分析Android权限机制。针对Android权限申请的安全机制,提出一种基于Android应用程序的隐私权限合理性检测模型,并进行了模拟实验和分析,效果较好。今后,笔者将继续对Android系统的应用软件权限检测进行研究,并对移动应用程序的安全漏洞权限做进一步研究;另外,除了在技术层面来保证用户隐私外,还希望通过规范来制约这种应用程序的发布,对于每一款APP在发布之后,说明书中要详细说明获取每一种权限的目的,通过这样两层保障,用户隐私才能得到更好的保护。

[1] 白小龙.Android应用程序权限自动裁剪系统[J].计算机工程与科学,2014,34(11):2075 -2086.

[2] 闫梅,彭新光.基于Android安全机制的权限检测系统[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,Felt 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的隐私泄露检测系统[J].计算机工程,2012,38(23):5747-5752.

[24] 戴威,郑滔.基于Android权限机制的动态隐私保护模型[J].计算机应用研究,2012,29(9):3478 -3482.

[25] JIA Li- min,Aljuraidan J,Fragkaki 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.

猜你喜欢

安卓合理性应用程序
iPhone不卡的秘密曝光:安卓也能享受
奇遇
文物表情包
删除Win10中自带的应用程序
新形势下新闻采访行为的合理性探讨
谷歌禁止加密货币应用程序
一种基于安卓系统的手机侧抓包分析方法
论合理性标准在诠释过程中的作用与限制
关于如何加强建筑设计的合理性问题探讨
安卓L未至安卓M来了!安卓首泄漏M系统