英语原文共 21 页
Android应用程序的隐私保护框架
摘要
Android操作系统在从智能手机到智能电视的各种设备中的广泛采用,使得它成为了恶意应用程序开发者的有趣目标。这些开发人员利用的主要缺陷之一是权限授予机制,该机制不允许用户容易理解授予权限的隐私含义。在本文中,我们提出了一种实施细粒度使用控制隐私策略的方法,该策略使用户能够通过应用工具控制应用程序对敏感资源的访问。这项工作的目的是加强用户对其移动设备隐私、机密性和安全性的控制,防止应用侵入行为。我们的方法依赖于仪器技术,包括一个细化步骤,在这个步骤中,用户定义的高级资源中心抽象策略被自动细化为可执行的具体策略。抽象策略考虑的是正在使用的资源,而不是允许应用程序访问特定敏感资源的特定多种具体API方法。例如,对用户位置的访问可以使用多个API方法来完成,这些API方法应该根据用户选择的隐私策略来检测和控制。我们展示了我们的方法如何应用于Android应用程序,并讨论了不同场景下的性能影响。
1 .介绍
Android是移动设备的主要操作系统;它目前拥有最大的安装基础( IDC,2013年),主要是因为( a )它支持各种不同的设备,如手表、平板电脑、电视机等。( b )它为最终用户提供了大量的应用程序(也称应用程序),通过官方市场满足他们的日常需求。由于它的大量采用以及每天用于执行在线任务,恶意开发人员/黑客越来越多地针对该操作系统。即使谷歌保镖( Google,2012年)安全服务在允许应用程序在Google Play上发布之前对其进行了审查,也有证据( Miners,2014年)表明恶意软件(恶意软件)也可以在合法的应用程序中发现。在大多数情况下,这些恶意软件应用程序的主要目标是访问敏感的电话资源,例如个人数据、电话计费系统、地理位置信息、家庭银行信息等。尽管在这项工作中,我们关注Android,但值得注意的是,类似的缺陷也有:
相应的作者。
电子邮件地址:加里·斯特里·欧罗巴( G·斯特里)、里卡多·内塞·欧罗巴( R·内塞)、格内纳特·欧罗巴( I·奈福维诺)。http://dx.doi.org/10.1016/j.cose.2016.07.005
0167 - 4048 / 2016提交人。这是一篇根据CC BY-NC-ND许可证( http://创意共享网站/许可证/by-nc-nd/4.0/ )公开发表的文章。
258
计算机与安全62 ( 2016 ) 257 - 277
文献中也报道了其他众所周知的移动平台(例如Damopoulos等人)。,2013年;埃格尔等人。,2011年)。
Android在权限受限的访问模型上构建了部分安全性,以提供对敏感资源(如sd卡、联系人)的访问。这意味着,为了获得对这些资源的访问,应用程序应该在清单中声明用户可能授予或不授予的所需权限。然而,应用程序可能会滥用这种模式来获取私人信息。典型的例子是请求比他们实际需要更多权限的应用程序,被称为过度特权( that等人)。,2011年)。每当操作系统或应用程序更新发生时,这些应用程序都可以被无声地转换成恶意软件,这种攻击被称为通过更新进行的特权升级(堆积)。
从Android的第一个版本( 78 )到版本6.0 ( 148 ),越来越多的许可无助于解决安全问题,因为这代表了Android攻击面的增加。此外,大多数用户仍在使用与Android 6.0不同的早期版本,这种版本没有预见到有可能选择性地决定应该将所请求权限的哪个子集授予应用程序。这个问题,再加上从安全和隐私的角度来看,不太容易理解每个请求的许可的含义,因为它们太多,并且没有明确记录,使得这种情况对用户来说非常危险。
考虑到这些缺点,在这篇论文中,我们提出了一种针对Android的表达性和细粒度的策略实施方法,能够选择性地防止侵犯隐私的应用行为。我们提出的方法建立在基于模型的安全工具包( SecKit )的基础上( Neisse等人)。,2015年),利用策略语言和策略决策点( PDP )组件,展示了如何在Android移动操作系统环境下实现策略细化和策略实施。现有的Android安全策略实施方法要么是硬编码接口,只有一组有限的实施选项( Beresford等人)。,2011年;周等人。,2011年),或者使用安全策略规范语言的灵活和细粒度的方法,侧重于低级操作(例如API调用或系统调用) ( Rasthofer等人。,2014年)。第一种方法缺乏灵活性,因为执行选项集有限,而第二种方法太低,考虑到用户策略的复杂性,无法理解和使用。大多数基于策略的方法,除了AppGuard ( Backes等人)。,2013年),不要修改信息,因为低级活动只能被允许或拒绝。此外,所支持的条件具有有限的表达能力,因为它们不包括使用基于事件的上下文情况的基于上下文的策略规范,也不包括基于信任的策略,而是只支持简单的上下文信息属性( Conti等人)。,2011年)。例如,不能在特定的事件条件下指定策略,即,当人们在家或不在家时,只考虑他们的状态。
与现有方法相比,我们的框架包括一个策略细化步骤,映射抽象的以用户为中心的里坡-
据http://developer.android.com/reference/android/·Manifest.permission.html说。
一套低级可执行的政策。与其他方法(例如Rasthofer等人)中使用的策略相比,这些抽象策略以更简洁的方式指定,更有意义。,2014年),更容易理解,无需考虑Android系统的许多低级技术细节。我们能够自动完善策略,因为我们的安全策略语言完全集成到将部署策略的目标系统的参考模型中。系统和细化关系的参考模型包括系统和可扩展工具包中表示的结构、行为、数据和身份模型,该工具包支持模块化规范和安全策略规则模板的重用。
细化后,使用不需要应用程序源代码的代码注入机制来实施低级策略。移动电话中安装的所有应用程序都必须进行仪表化,以便包含一个小的代码足迹,作为策略执行点( PEP )并控制应用程序的执行。注入的PEP联系策略决策点( PDP )组件,该组件评估低级策略,并通知PEP允许、拒绝、修改或延迟特定敏感API调用的执行的授权决策。我们在本文中的贡献是设计和实现了这种方法,用于在Android中指定、细化和实施表达性安全策略。我们的解决方案适用于所有Android版本,包括最新的6.0版本,并且不会对应用程序中已经定义的最小软件开发工具包( SDK )兼容性造成额外的限制。
从技术角度来看,所有不同的策略实施解决方案都可以用来减轻恶意软件应用程序以及具有隐私侵犯行为的应用程序。例如,考虑到恶意软件应用程序利用了进程间通信( IPC )机制中的漏洞,可以指定一项策略来拒绝访问IPC机制,以防止漏洞被利用。尽管我们承认这种可能性,但本文的重点是保护用户免受隐私侵犯行为的侵害,我们的所有示例策略都只是这种性质。最后,在这篇论文中,我们没有明确考虑那些共享资源和权限的应用,这些资源和权限在孤立的情况下看起来是无害的,但结合起来可能会带来隐私风险。我们的重点仅仅是规范和加强政策来限制单个应用程序的行为。
本文的其余部分组织如下。第2节简要概述Android安全模型。第3节介绍了威胁分析和隐私侵犯行为的例子。第4节详细描述了我们对安全策略规则的具体化、细化和实施的方法。第5节在一个注入代码的案例研究中展示了实施细节,而第6节分析了我们的性能评估结果,包括对拟议方案的假设和局限性的讨论。第7节讨论了相关的工作,并强调了与我们的方法相比的主要差异。第8节结束了这项工作,并为今后的工作提供了指导。
2 .Android安全模型
Android操作系统( OS )的安全性主要通过其分层来实现,分层提供平台
计算机与安全62 ( 2016 ) 257 - 277
259
图1 Android软件堆栈。
同时形成灵活性和资源分离。这种分离反映在整个软件实现中,如图1所示。堆栈的每个级别都假定下面的级别是安全的。在本文中,我们关注运行在达尔维克虚拟机( DVM )中的应用程序的安全性,这些应用程序有自己的安全环境和专用文件系统。
应用程序隔离的安全机制被称为Android应用程序沙箱,它也适用于应用程序调用的本机代码。这个沙箱是在内核中建立的,因此在所有的应用程序之上和之上的所有层上传播隔离。在Android操作系统中运行的所有应用程序都被分配了一个低权限的用户id,只允许访问自己的文件,不能直接交互,并且对操作系统资源的访问有限。隔离是对“进程间”安全缺陷的保护,这意味着给定应用程序中的安全问题不会干扰其他应用程序的资源。
在Android软件开发工具包( SDK )中,应用程序可以使用的功能在应用程序编程接口( API )中进行分类和分组,这些接口允许访问通常只能由操作系统访问的资源。例如,在受保护的API中,有SMS和MMS管理、位置信息访问、摄像机控制、网络访问等功能。对受保护API的访问是由许可机制规定的,在该机制中,应该向应用程序授予特定许可,以便允许访问特定API。未受保护的API不需要应用程序执行任何特殊许可。
更具体地说,考虑到给用户带来的风险级别,Android操作系统中的权限分为四个不同级别:正常、危险、签名和签名或系统。正常权限被认为对其他应用程序来说风险较低,
库和类通常用C/C 编写,并为特定的硬件平台编译,这可以由运行在Dalvik VM中的Java应用程序调用。
系统或用户。危险的权限对用户的个人数据和体验有很高的负面影响风险。签名权限用于保护仅可由使用相同开发者密钥签名的应用程序访问的导出接口。签名或系统权限用于保护核心资源,仅适用于使用固件密钥签名的可信系统应用程序。
应用程序所需的所有权限都在Mani-fest文件中声明。在Android 5.0版之前,当安装应用程序时,用户只被告知该应用程序所需的敏感权限,并且他们没有任何权限授予的选择:他们必须接受所有权限或者中止安装。然而,最新的Android - M版)版本除了提供安装时间权限之外,还提供运行时间或使用时间权限。使用时间许可给用户在运行时拒绝许可请求并永久撤销请求许可的可能性。这一新的隐私特性表明,Android社区认识到用户需要更高级的隐私和匿名控制。
尽管使用时间权限允许用户获得对受限资源的控制,但仍需要向后兼容,以对使用以前OS版本的数百万设备实施隐私控制。值得注意的是,根据Android Dashboard,截至2016年8月,不到15 %的可用设备支持An-droid的最新版本功能。此外,Android APIs中权限到方法的映射是一对多,这一特性导致应用程序实际使用哪种类型和实际功能不太清楚/不确定。此外,许多敏感的API缺乏保护,这就有可能操纵应用程序的功能和服务,也没有任何限制性的基于策略的方法来授权用户自动做出关于保护其数据、隐私和匿名性的决定,这表明Android平台需要补充性的重新搜索工作。
3 .威胁分析
现代移动操作系统的发展状态和移动服务的激增越来越受到恶意用户的关注。他们的主要目标是通过利用应用程序和操作系统级别的漏洞来获得对私有信息的访问。这不仅是恶意软件的情况,也是合法应用程序有时收集过多个人信息的情况。文献中的许多论文( Enck等人。,2010年;吉布勒等人。,2012年;施蒂帕罗和科尔涅利斯,2012年;周和江,2013年)展示了对用户个人数据具有高度入侵和操纵的应用程序。Android设计漏洞导致了这种利用( Shabtai等人)。,2010年),由数字业务中用户个人信息价值的增加触发。
http : / /开发者. Android . com /指南/主题/清单/许可元素. HTML . 4 http://developer.android.com/preview/features/runtime
-权限. html . 5 https://developer.android.com/about/dashboards/index.html.
260
计算机与安全62 ( 2016 ) 257 - 277
在这种情况下,已经提出了各种解决方案来识别可能的恶意应用和行为( Aafer等人)。,2013年;Arp等人。,2014年;谷歌,2012年;吴等人。,2012年)。然而,大多数这些机制都是基于对授予应用程序的许可的分析,即允许它们调用的API方法集。这种类型的分析是不够的,因为它可能会导致过度近似,将合法应用程序评为恶意(误报),并且无法检测到隐藏攻击。
此外,几乎不可能保证任何给定应用程序的公平性,因为已经证明可以绕过集中的安全检查(例如,谷歌保镖,2012年) ( Childin,2012年;米勒和奥贝德,2012年),而合法的高价应用程序( Geneiatakis等人。,2015年)可以被管理,以便提供对个人数据的访问,如Xing等人所示。( 2014年)。因此,即使Android应用商店中存在安全分析机制,也不能保证用户的隐私。此外,由于应用程序由活动、广播接收器、内容提供商和通信接口定义明确的服务组成,其他安装的服务和应用程序也可能会操纵这些接口来获取用户的私人信息。
因此,上述事实表明,存储在移动设备中的用户个人数据风险很高。概括来说,我们可以将合并Android OS应用程序的移动设备中的威胁分为三大类: ( 1 )源自Android架构并主要利用许可机制的威胁,( 2 )以隐私侵犯特征为特征的威胁,这些特征可能被恶意软件甚至合法应用程序利用,( 3 )与实施漏洞相关的威胁。在本文中,我们重点讨论前两类威胁。尽管在这次分析中,我们专注于Android操作系统,但我们相信类似的攻击可能会被用于其他移动平台,比如iOS。
3.1。Android的许可模式威胁
Android权限模型
资料编号:[4071]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。