android权限机制安全性分析研究_第1页
android权限机制安全性分析研究_第2页
android权限机制安全性分析研究_第3页
android权限机制安全性分析研究_第4页
android权限机制安全性分析研究_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

android权限机制安全性分析研究

随着移动互联网的快速发展,手机逐渐成为连接网络的最重要设备,在人们的生活中发挥着越来越重要的作用。相比于传统的PC机,目前的智能手机不仅仅作为一种通信的工具,而是已经具备了PC机的大部分功能,能够方便地让用户随时随地收集、存储、处理个人信息。为了更好地支持用户在移动设备上完成相应功能的应用,一些移动操作系统(比如Android、iOS、WindowsPhone等)被设计出来,从而使得不同的开发者能够在这样一个平台上开发出各种各样的应用程序为用户提供服务。Android作为一种目前智能手机所广泛采用的移动操作系统,其提供的丰富的应用程序使得越来越多的开发者以及用户更加关注这样一个平台。然而,由于智能手机中存放着大量高度隐私敏感的个人数据,对于Android生态系统以及用户个人数据的安全性提出了更高的安全要求。为了保证用户数据的安全以及隐私,Android本身采用了基于权限的安全模型来限制对敏感数据,如位置、通话记录、联系人数据等的访问。然而,Android使用目前的权限机制对用户数据安全性进行保护的方法并不能够达到很好的安全防御效果,这使得一些研究者在权限机制的改进问题上设计了不同的研究方案,包括对安装时期的权限进行改进帮助用户对权限的理解、权限机制设计上漏洞的分析与防御方法以及利用权限对程序安全性进行分析等研究工作。这些研究工作能够加强Android安全机制的设计从而能够更好地保护用户数据的安全性,因此本文对Android权限机制相关研究进行了总结。1权限及访问机制权限系统作为一种安全保护机制在经历着不断的改变和提升。在计算机诞生的早期阶段,大多数计算机都是被多个用户分时使用的;逐渐地,计算机上的用户之间窃取或者伤害对方信息的情况开始出现。这时候,出于保护用户之间的信息安全,操作系统设计了隔离用户的安全机制,也就是对不同用户之间的数据共享进行限制,应用程序以不同用户的身份在执行,如UNIX系统,它对每个文件设置了保护位,具体化了哪个用户能够读取、写入或者执行一个给定的文件。当程序执行时,仅仅能够访问该程序所在用户能够访问到的文件随着计算机的发展,恶意程序或者软件本身存在漏洞的程序开始出现。攻击者能够欺骗用户去安装一些恶意程序,利用操作系统漏洞远程安装恶意程序或者利用一些存有安全缺陷的程序去控制计算机系统。在这种情况下,应用程序不再被认为是可信的了。因此,这时研究人员提出了一些方案使得应用程序不再被赋予它所在用户的全部权限,而是要限制应用程序的特权。强制访问控制系统则是这种模式下的权限系统,它是一个中心化的信息流控制系统,操作系统严格地针对完整性和保密性设定了信息流控制策略,它为不同的文件设置了不同的完整性和保密性级别。信息从低完整性到高完整性或者从高保密性到低保密性的流动都是不允许的。但是这种权限系统并没有考虑到用户或者开发者设定访问控制策略的便利性。因此,一些用户友好的权限系统被研究人员设计出来了,其中包括利用在Symbian、WindowsUAC(用户账户控制)、Facebook、iOS、浏览器、GoogleChrome扩展程序以及Android中的权限系统。为了保护用户免于第三方代码的威胁,最新的平台通常采用应用程序权限对安全和隐私相关的API进行访问控制,而由用户决定是否允许应用程序访问这些敏感资源。权限机制可以分为安装时期权限以及实时权限。实时权限要求用户在应用程序运行时对应用程序所需的访问请求进行批准,iOS所采用的权限保护机制为实时权限机制;安装时期权限要求开发者预先声明他们的权限请求,使得用户可以在安装时期对这些权限请求进行授权。后者也正是Android平台所采用的重要安全机制。具体地,在Android系统中,每个不同开发者开发的Android应用程序被分配了一个唯一的用户ID,这使得没有任何一个应用程序在默认情况下可以直接访问其他应用程序。其中包括读写用户的私有数据(如联系人或者电子邮件),读写其他应用程序的文件,进行网络访问或者唤醒设备等。为了支持不同应用程序之间的通信(具体地说是应用程序各个组件之间的通信,组件是Android应用程序的基本组成单元),Android操作系统提供了Binder组件间通信机制。权限机制正是在组件间通信的基础上,为了限制不同组件之间的随意访问而建立的访问控制机制。具体地,每个应用程序组件都可以设定自身的访问权限标记,从而其他想要访问该组件的应用程序必须具备相应访问权限比较才能够访问该组件,每个应用程序可以申请多个权限用于访问多个不同的组件。权限机制实现分为两个部分:a)在程序安装时刻,每个应用程序需要申请它需要请求的全部权限,用于在运行时刻访问相应的组件,并且在安装时刻由用户对该应用程序所申请的权限进行授权;b)在程序运行时刻,系统监控程序组件间的通信过程,对需要提供权限才能够访问的组件进行权限检查,判断通信过程是否能够进行,以限制应用程序间的随意通信过程。在应用程序安装时刻,为了访问其他应用程序或操作系统的敏感资源,应用程序需要申请相应的权限来获取访问对应资源的能力。Android中的应用程序静态地声明它们所需要的权限,在应用程序安装时,系统向用户展示应用程序运行所需的权限,经用户确认后,由包管理器负责进行授权。安装完成后,应用程序无法再提出新的权限申请,应用程序执行未授权的操作将被终止。这就是Android应用程序安装时期的授权过程。在权限实施过程中,Android操作系统通过Android中间件中的引用监视器对发起的组件间通信进行监视,如果某个组件发起的通信未能提供目标组件需要的权限,那么将无法调用目标组件。具体地,如果某个组件想要访问位置服务,那么它会通过Android中的Binder进程间通信机制访问系统进程中的LocationManagerService,在该服务中调用权限的检查,最终通过PackageManagerService对发起请求的应用程序的权限进行检查,看是否提供了需要的权限标记。Android中所采用的权限机制较传统的权限相比,它的优点主要体现在两个方面:a)需要得到用户的允许。具有较高安全意识的用户会对程序中所申请的危险权限进行仔细的考虑。Android安装时刻权限机制能够在程序安装时刻警示用户程序潜在的安全威胁。b)深层次的防御。对于传统的权限模型,一旦某应用程序存在漏洞被某些恶意程序所利用,那么该恶意程序将具备被攻击程序所在用户的全部特权。对于Android权限机制,存在漏洞而被利用的应用程序的影响也仅限于被利用应用程序所申请的权限之下,这有助于减小由于漏洞而被攻击者利用的应用程序的危害。对于这种安装时期权限,一些研究者对目前的Android权限机制在实际应用程序中的使用情况进行了统计,进一步分析出目前Android设计的权限机制的有效性Barrera等人Felt等人因此,这些研究工作分析出了目前Android操作系统所采用的权限机制能够反映应用程序的访问特定资源的能力,并且大多数应用程序仅申请了权限集合中的一小部分,说明了权限机制是有效的,能够帮助用户集中于应用程序所申请的这一小部分权限,而这些权限也限定了程序的最大能力范围。然而另一方面,Felt等人2)提取特征特征Android权限机制的实现包括安装时期以及运行中两部分,安装时期用户完成对权限的授权工作,而Android系统在程序运行期间通过引用监视器判断应用程序是否具备使用特定API的权限。关于Android权限机制的改进相关研究工作也正是从安装时期以及运行期两个角度展开的。2.1android权限机制存在的问题第1章中提到,Android权限机制安装时期的权限机制,应用程序需要在程序安装时期将该程序需要使用的全部权限显示给用户,之后由用户进行授权工作。在安装时期权限的设计中存在如下一些问题。用户如果想安装并使用该应用程序的功能,就必须对应用程序所申请的全部权限进行授权,如果拒绝,那么应用程序包安装器将拒绝安装该应用。因此,Nauman等人Android权限机制全部是在安装时期确定的,并不能根据运行时环境的不同动态修改应用程序的访问资源的能力。比如用户在某个秘密的场合下,所有应用程序的连接互联网、录音等权限应该都是不能授予的。对此,Conti等人Android已有权限机制缺少对已安装的应用程序的保护,这种权限机制设计上的疏忽容易使得恶意程序利用已安装应用程序的权限完成权限扩大。Saint2.2不同恶意攻击的检测方法Android在安装时期完成了对不同应用程序的权限授权,而在运行期间对应用程序发起的敏感API访问进行访问控制。Android权限框架是由Android中间件提供的,它包含一个对进程间通信(Android系统中的组件间通信)实施强制访问控制的引用监控器,安全敏感的API都是受到在安装时期赋予的权限保护的。然而Android权限机制存在权限提升攻击的缺陷。Android权限提升攻击最初在文献对于这个权限机制漏洞,上文定义了它的敌手模型,即敌手的目标是扩大自己拥有的权限并且在未授权的情况下访问受保护的接口。敌手能够利用良性应用程序的接口实现混淆代理人攻击。进一步,若干恶意应用程序可以共谋来使得它们获得合并后的权限集合。权限提升攻击可以被分为两类,如图2所示。第一类叫做混淆代理人攻击,这种情况下受敌手控制的应用程序利用良性应用程序未受保护的接口进行权限提升。混淆代理人攻击也可以根据用于权限提升的通信信道进行分类,如基于组件间通信或网络socket的方式。第二种情况下,发起攻击的应用程序和被利用的应用程序都是恶意的,它们共谋来获取更大的权限。进一步讲,共谋攻击也可以采用两个应用程序之间直接通信与间接通信两种方式。对于直接通信,它们可以建立起直接的ICC信道,或者通过socket连接;对于间接通信,它可以通过共享文件的方式或者通过一个中间的组件提供隐蔽信道(如通过电量管理器)或显式通道(如通过用户联系人数据库)来完成应用程序间的通信。在防止权限提升攻击方面,目前已有的主要工作包括QUIREQUIRE是Android安全的一个扩展,它提供了一个轻量级的来源系统以防止所谓的混淆代理人攻击,Dietz等人基于Java堆栈检查(stackinspection)的原理设计了QUIRE。为了决定安全关键性操作的源头,QUIRE跟踪并记录了ICC调用链,并且在源头应用程序没有包括相应权限的情况下拒绝掉请求。这种方法为应用程序开发者提供了一个访问控制原型,然而,QUIRE并不能解决由共谋的恶意应用程序带来的权限提升攻击,IPCinspection则缩小了被调用应用程序的权限,当某应用程序接收到了来自其他应用程序的调用(绑定服务、接收广播的消息、打开活动等),那么就将被调用者的权限减少为调用者与被调用者权限的交集,但是它也无法防御共谋带来的权限提升。由于之前的方案(QUIRE、IPCInspection)仅仅解决了混淆代理人攻击带来的问题,Bugiel等人3其他用户的程序安全分析研究目前,围绕权限进行的研究工作除了集中在对Android已有权限机制的改进外,还有很多研究者基于应用程序所申请的权限进行了程序安全分析工作。这里,应用程序安全性研究包括应用程序是否会对用户造成威胁,即潜在恶意程序的问题,以及应用程序在开发过程中所申请的权限本身是否存在缺陷,即软件本身的安全性。3.1基于android应用权限的恶意行为分析第2章已经总结了Android权限机制相比于传统权限机制的优点,Android权限机制本身设计的一个优点在于警示用户潜在的安全威胁,也就是说,权限潜在地反映了应用程序的安全性。比如应用程序申请并被授权了接收短信的权限,那么该程序就具备了在运行期间访问用户短信数据的能力,或者说该程序会在运行期间访问用户的短信数据,这可能会带来用户短信数据泄露的安全威胁。因此,很多研究者将权限作为分析Android应用程序是否会带来安全威胁的一个重要属性,他们通常设计自动化的分析方法帮助用户通过权限分析程序是否具有恶意行为。Kirin根据权限组合是否存在安全威胁设计并实现了一个基于权限的恶意程序分析框架,是由Enck等人Sanz等人除此之外,一些研究工作通过分析应用程序不需要申请的权限来判断应用程序是否存在安全威胁。如果应用程序额外申请了一部分权限,要么属于开发者的疏忽造成的,要么属于利用这些不需要的权限实现了恶意行为。笔者3.2基于权限的安全机制本文2.2节中提到为了防范权限提升攻击,在Android操作系统运行时期进行的相关研究工作,而权限提升攻击的另一个主要原因则是一些Android应用程序中存在权能泄露问题,从而给了恶意程序可乘之机,利用这些存在权限泄露情况的应用程序完成权限的提升。Grace等人Chan等人另一方面,应用程序中的权限申请需要满足最小特权原则,只有在程序中需要的权限才予以申请,这样才能够发挥Android权限机制,即使程序具有漏洞而被某些攻击者利用,也能够将该程序被利用的权限限制在一个小的特权范围内。Felt等人Bartel等人4程序权限使用安全机制虽然目前已经有了关于Android权限机制相关的很多研究工作,但还是存在一些可以继续进行的研究方向。a)设计更加人性化的权限决策界面。已有相关研究工作表明,目前Android中的权限机制在用户的角度并没有得到很好的理解与重视,一方面用户不具备权限相关的安全知识,另一方面用户更多地选择接受安装程序,而忽视对权限的审查,这方面也是目前权限机制设计上的重要缺陷,需要有更多的研究工作参与进来。对于这个问题,设计更加人性化的权限决策过程是一个可行的研究方向。在用户的安装时刻仅列出具有潜在高风险的权限对正常申请的权限直接跳过,或者在决策界面中更多地使用图形化的方式以及允许用户选择其中部分权限进行授权都可能加强用户对权限的关注。b)不依赖用户进行安全决策。Android权限是依赖于用户进行决策的,但是用户往往不具备一定的安全背景知识,这使得使用用户决策的方式进行授权具有一定的局限性。如果能够根据用户以往的应用程序使用习惯自动化地分析出程序能够被允许哪些权限或者为不同用户制定不同的安全级别,这会大大提高权限机制的有效性c)运行期间权限使用情况。之前提到,Android权限机制是安装时期的权限机制,用户需要在安装时期对全部的权限进行授权,而Android操作系统在程序运行时期根据应用程序是否提供需要访问的敏感API的权限对相应的API访问进行决策。这种权限机制的一个问题就在于用户在安装时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论