基于权限的安卓安全性问题及对策外文翻译资料

 2022-08-30 11:08

英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料


基于权限的安卓安全性问题及对策

摘要:

近来安卓安全在学术研究和公众关注中都是热点问题,因为在安卓平台上出现很多安全攻击和隐私泄露的问题。安卓安全是根据基于限制第三方安卓软件访问系统关键资源的机制来设置权限。基于这样的许可机制,由于它难以控制的许可权限和权限管理上的困难,被开发者,市场专员和终端用户所摒弃。在这篇文章中我们研究在安卓安全中出现的问题,包括粗粒度权限,不够格的权限管理,不充足的权限文档,权限的过分要求,权限增加导致的攻击和TOCTOU攻击。我们列出这些问题之间的关系,并且调查目前处理这些问题的措施。而且我们对这些措施的提高做了系统的回顾并且根据它们技术上的特征做了对比。最后我们提出了几种可以降低安卓安全的风险。

关键词:

安卓安全 安全权限 访问控制 访问控制尺度 管理政策 权限上升攻击

引言:

由于在当前市场安卓智能机已经成为最受欢迎的手机设备,安卓安全在信息安全方面收到了广泛关注。自从第一台安卓手机在2008年11月问世,到2013年第一季度安卓智能机就占了手机市场的最大份额(75%)。2013年五月,9亿安卓设备被激活了,据F-Secure(一个计算机安全相关公司)所说,在过去的一个季度新的手机威胁家庭和变异的数量增长了49%;在2013年第一季度91.3%的威胁把安卓设备作为目标。

安卓智能机被一个基于框架的权限保护着,这个框架约束第三方软件程序访问安卓设备里的敏感资源比如SMS数据库和外部储存。对敏感资源的访问也许会造成金钱损失。举个例子来说,在用户没有意识到的情况下,安卓恶意软件也许会发送高价短信,拨打高价电话,产生大量的网络数据。甚至对敏感资源的访问也许会导致用户储存在手机上私人信息的泄露,比如联系人、邮件甚至信用卡号。三方软件开发者可以利用各种智能机传感器,比如GPS、相机和麦克风,来实现比他们宣称的更多的功能,从而暗地里搜集用户私人信息。目前安卓权限框架,根据安装的时候软件被赋予的权限,访问智能手机上的危险资源是被控制的。那说明智能机每个软件在安装的时候必须申请某个权限来访问系统资源,然后用户来决定是否同意权限申请。

这种基于框架的权限因为纹理粗糙而被批判。很多应用软件都会申请很多不必要的权限。很多时候用户只能要么同意所有权限的申请要么终止进程的安装,而不是一个接一个的同意。而且基于框架的权限易被攻击,因为在如何使用各种权限方面对应用程序和坏文件之间联系不充分的控制。

Android安全在学术界和工业上引起了重大反响。就我们所知,Android安全相关问题的论文早在2008年就出现,同一年安卓智能机问世。在接下来几年里,随着安卓设备的爆炸性增长,相当大数量关于安卓安全的研究报告都出版了。

对安卓安全特别是安卓权限框架做了大量公开的研究,我们对目前安卓安全的现状做了系统的回顾。特别地,我们调查了近期安卓安全方面的进步,确定安卓权限框架的问题和分析解决安全方面的问题。

这篇文论剩下部分的安排如下:第二部分介绍安卓安全的背景,第三部分对安卓许可框架进行分类,第四部分调查目前安卓安全的解决方案,第五部分论述未来工作,最后第六部分总结全文。

安卓安全问题的背景

安卓是作为移动设备的栈堆提出的。它操作系统,应用框架和核心应用程序组成。每一个安卓应用程序都在单独的Dalvik虚拟机里执行而不是在安装时随着独特的用户身份运行。应用程序本质上是孤立的。本设计提供有希望的安全文件访问和限制由于编程溢出缺陷的潜在攻击。

安卓用使用权限来约束对关键位置的访问。许可是独特的文本字符串,可以定义Android和第三方开发者。根据安卓开发者的文件,现在在安卓操作系统里定义的有130项权限,从获取相机,到充分接入互联网,到拨电话号码,甚至禁用手机功能。根据魏的研究,安卓定义的权限的数量从它第一次被广泛使用后就保持着增长。权限集的扩展目标不仅是提供细粒度的权限,但也控制访问新的硬件功能。此外安卓定义权限,应用程序开发人员还可以声明自定义权限以保护其自己的关键资源。应用程序时在与系统资源相互作用相互作用的时候,包括呼叫系统接口函数,以及读和写文件系统,可能会需要权限。授予权限被分配给应用程序的所有组件,同时继承所需的权限分配给应用程序组件。包括在应用程序包里的应用程序清单中,应用声明它需要实现它功能的权限,以及定义了保护它自己的组件和资源的权限。权限可以与下列四个保护级别相关联:

1正常:低风险权限,允许应用程序访问API呼叫,对用户不造成伤害。

2危险:高风险的权限,允许应用程序访问的潜在的有害的API调用(例如,read_接触),如泄漏私人用户数据或控制智能手机设备。

3签名:请求被授予的权限应用程序与证书定义了相同的签名。

4签名系统:权限只在他请求访问在同一安卓系统的应用程序时或者与证书定义应用权限签署相同的签名被承认。

分析安卓安全问题

回顾

我们总结了关于安卓安全的问题并且在图1中表明了他们之间的关系。我们将这些问题分为两类:直接问题和间接问题。直接问题会直接导致财产损失和用户私人信息泄露。另一方面,间接问题被用作对安卓智能机发起攻击的踏脚石。

图1表明,直接攻击包括权限过度请求,权限增加攻击和TOCTOU攻击,剩下的包括权限的粗粒度,不适当的权限管理和不充足的权限文件都是间接问题。权限的粗粒度会导致权限过度请求从而导致用户更难发现权限的过度请求。而TOCTOU攻击的出现是因为命名合谋。特别是,就算用户在同意特定的权限之后不安装第三方软件,给许可的授权也不会撤销。这之后,如果恶意软件申请和已授权权限名字相同的权限,那恶意软件就可以不经同意的运行权限。

考虑到粗粒度网络权限的问题。一个例子是,一个恶意的开发者可以认为互联网的权限仅用于在一个单机游戏广告。当一个用户被诱骗信任互联网请求的合法性,恶意开发者可以利用网络权限粗粒度来总结收费网站的秘密。

不适当的权限管理和不足许可文件可能会导致权限意外过分的要求。无意识的过度宣称被分配到一个良性应用的权限可能被一个恶意程序利用。例如,一个恶意的应用程序可以执行副混淆攻击利用的良性应用权限。更多关于混淆副攻击的细节是在第3.6节。

图1表明,间接问题通过含蓄的关系或者明确的关系导致直接问题。恶意的开发者要挖掘权限管理的安全隐患,就必须利用不合格的权限管理遗留下的安全隐患来展开攻击。举例来说,一个不合格的管理器也许会不小心同意访问关键资源软件的安装。鉴于这个安全隐患,恶意程序可以发动权限升级攻击。而且,恶意开发者对用户发动TOCTOU攻击,攻击者必须先骗用户安装恶意软件。另一方面,权限的粗粒度,不合格的权限管理器和不充足的权限文件会导致过度要求的权限而没有中间进程。

权限的粗粒度

虽然安卓定义了130项权限,但是他们中大多数都是粗粒度的。特别是,互联网的权限,读取电话特许,和写设置许可是粗粒度的,他们给一个确定的应用程序访问到资源。就拿网络许可来说,互联网允许应用程序发送的HTTP(S)的要求到所有域,并连接到任意目的地和接口。其结果是,互联网权限提供了足够的表现力来执行控制在互联网上的应用程序访问。据巴雷拉等人的研究,62.36%下载的应用程序从谷歌播放商店使用此权限。然而,Felt et al发现约36%的应用程序,他们审查使用网络许可制造的HTTP(S)的要求到特定的域。这些安卓应用程序依赖于用于获取内容的远程服务器,非常类似于网络应用程序。此外,约7%的应用程序使用互联网,允许支持谷歌的AdSense在webview显示单个域广告。这表明许多应用程序将许可限制性的互联网允许在互联网上的应用程序,但要求一个特定的列表领域。虽然对于很多应用程序来说,互联网许可是必要的,如网络游戏,但是这种许可是不能被用户控制和限制的。一个恶意的应用程序可以伪装自己作为一个合法的应用程序来进行Internet访问,而无需用户滥用其互联网访问确认。

不称职的管理权限

身兼数职,包括开发商和最终用户,是参与授予应用程序的权限的过程。开发人员编写清单文件,请求权限应用程序,而最终用户批准请求。 在批准后,可申请与授予权限运行。此外,应用营销者对应用程序进行验证。如果应用程序从市场推迟,他们可能会中止许可授权。

不幸的是,开发人员和最终用户通常缺乏专业知识。此外,开发人员和最终用户可能会有利益冲突(Han等,2013)。当开发人员为他或她的申请许可写一个清单文件,开发人员可以不知道一些对于最终用户冒险的细节,如果应用程序使用这些权限授予。虽然一些热心的开发人员可能花费时间来了解每个130权限并适当地要求他们,其他开发人员可能选择只在索赔的权限,以确保他们的应用程序的工作任何方式(巴雷拉等,2010)。

对于最终用户,调查是由Felt等人进行的,调查表明,只有3%的因特网被调查者答对了全部的三个权限理解问题,24%的实验室研究参与者说它有用,但是并不理解。

不足够的权限文件

谷歌公司为Android应用开发者提供大量廉价的文件,但对如何使Android平台的权限是有限的(维达斯等,2011)。作为研究由毛毡等人,缺少的许可的使用信息可能会导致开发商的错误。在Android 2.2的文档中,提供了78权限要求方法;然而,Felt等人的测试表明权限要求为1259的方法,这是一个16倍改进的文档过来。该文档列出额外的权限在几个类的描述,但它目前尚不清楚其中的类方法需要说明的权限。此外,在Android的标识权限的文档中有6个错误。不准确并且不足够的权限信息混淆了安卓应用开发者,他们可能在写程序中伴随着猜想,假设和不断的尝试。因此,这个可能导致有缺陷的应用程序,这些程序会威胁到用户的安全和隐私。此外,权限的内容对于最终用户来说太难理解了,以interpret权限作为例子,当最终用户读取权限说明完全的互联网访问时,允许应用程序创建一个网络socket,他或者她通常认为这些描述过于复杂和深奥。当审批这些权限请求时,用户不知道将会面临什么样子的风险。

权限的过度索赔

权限的过度索赔是最能威胁到安卓的安全性的,它直接破坏了PLP原则,PLP规则的违反会使用户的隐私泄露和经济损失。例如,如果对一个游戏应用请求不必要的SEND-SMS权限,权限可以不经过用户的同意用来发送溢价率的消息。

Felt等人确定了过度特权应用程序的56%只有一个不必要的额外权限,94%有4个或者更少的额外权限。每个应用程序超过索赔率变低表明开发者正尝试正确的权限而不是为了更大数目权限的任意请求。开发者可能会由于以下几种原因犯错,第一,开发者往往喜欢用与他们设计的功能相关的名字来请求权限,即使实际上不需要这些权限,第二,开发者可以使用那些被附属应用请求的权限代替他们自己的应用。最后,开发者可能会由于经常使用复制粘贴,不推荐使用的权限和测试文物而犯错。如图1,权限过索赔问题可分为:恶意的和无意识的。另外的三个问题,包括权限细粒度,不称职的管理员权限,不足的权限允许文件,和过度索赔权限的驱动。

权限提升攻击

权限提升攻击允许恶意程序与其它程序协作来获得关键资源而不需要请求相应的权限,图2显示了权限攻击的分类,权限提升攻击分为两类:混淆副攻击和合谋攻击。混淆副攻击利用特殊设计程序不被保护的接口漏洞。如图3所示,应用程序A1不被权限P1授权。A1的一个组件C1不能直接访问被权限P1保护的系统资源R1。但是,C1能够传递性的访问R1如果程序A2被授予P1权限并且A2的一个组件C2不需要任何权限就能被访问。结果是,C1能够通过C2访问R1,

另外,共谋攻击可以由多个联合组权限产生的大量应用程序来进行,这使得他们能够执行未经授权或者恶意的操作。共谋攻击可以进一步以与其它程序通信的方式来分类,分为直接合谋攻击和间接共谋攻击,直接共谋攻击中应用程序直接通信,而间接共谋攻击是通过第三个应用程序或者组件通信。

间接合谋攻击通常涉及到另一个应用程序或者组件,这个程序或组件是一个能够提供公开或隐蔽信道的中介,诸如缓冲剂,文件和IO设备,使用一个数据对象作为持有某种信息的实体。换一句话说,该实体通常被看作是一个数据对象的容器。公开的通道的其他例子包括共享喜好,系统日志和UNIX socket通信。

相比之下,隐蔽信道使用的实体通常不被用于通信,我们可以通过它来绕过安卓的中间层。隐蔽信道的例子包括文件锁定,屏幕状态的变化,震动设置的变化,意图类型,线性枚举等。测量了一些显性和隐性的信道的吞吐量,结果显示,具有低的甚至隐蔽的通道的吞吐量仍然足矣交换信息。

对策

安装时策略实施。在2008年,Enck et al 提出了Kirin 并且在09年改善了Kirin。Kirin使用一系列的预定义规则执行策略强制。这些规则决定了权限配置和应用程序包清单文件中列举的行文字符串是否安全,Kirin不仅仅在一个单独的权限基础上评估应用,也考虑了权限联合与权限和动作字符串联合。举例,语音电话窃听者需要结合READ_PHONE_STATE、RECORD_AUDIO 和INTERNET三个部分。声音可以在遵循Kirin的安全规则下防止被下载,“一个应用没有必要有READ_PHONE_STATE、RECORD_AUDIO 和INTERNET三个准许标签。”

类似于Kirin,Ongtang等人在2009年提出安全应用交互,它的安装时策略调节应用程序定义的权限。除了安卓的分级保护授予策略,应用程序可以定义条

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147907],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。