英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料
文摘
Android提供了第三方应用广泛API,包括访问手机硬件,设置,和用户数据。访问的隐私和安全相关的部分API的应用程序安装时有的的控制锡安系统。我们学习Android应用程序来确定Android开发者是否遵循最小特权的请求许可。我们建立了偷渡者,一个检测工具overprivilege编译的Android应用程序。偷渡者确定的一组API调用应用程序使用然后将这些API调用映射权限。我们使用汽车交配测试工具在Android API来构建允许地图检测overpriv——是必要的ilege。我们对一组940个应用程序和应用偷渡者nd,三分之一是超水准。我们调查overprivilege和nd证据证明开发商的原因正试图遵循最小特权但有时失败原因
insucient API文档。
分类和主题描述符
D.2.5(软件工程):测试和调试;
D.4.6(操作系统):安全与保护
一般条款
安全
关键字
Android,权限、最小特权
1。介绍
Android的自由和开放源码应用程序市场是一个流行的第三方应用程序的平台。到2011年,Android市场包括更多的应用程序比苹果的App Store[10]。Android支持第三方开发与广泛的API,它提供了ap -褶皱与访问手机硬件(如。,相机),无线蜂窝网络,用户数据和电话设置。
努力使数字或许可复制全部或部分的工作个人或教室使用是没有费用提供副本是理所当然没有或分布式的利润或商业优势和副本贝尔这个通知和完整的引文在第一页。否则,复制再版,张贴在服务器或重新分配到列表,需要事先明确许可和/或费用。
CCS #39;,17 - 21 10月11日,区间2011年,芝加哥,伊利诺斯州,美国。
版权2011 ACM 978 - 1 - 4503 - 0948 - 6/11/10hellip;10.00美元。
访问Android的隐私和安全相关的部分丰富的API由一个应用程序安装时有的——控制
锡安系统。每个应用程序必须申报前期它需要权限,用户期间它将得到权限。如果一个用户不想授予应用程序许可,他还是她可以取消安装过程。
安装时可以为用户提供控制权限在他们的隐私,减少错误和的影响在应用程序。然而,一个安装时每-任务系统是如果开发人员经常请求比他们需要更多的权限。超水准的应用-规划设计让用户不必要的警告和许可增加一个缺陷的影响或弱点。我们研究一个-机器人应用程序确定Android开发者遵循最小特权或他们的应用程序。
我们提出一个工具,检测偷渡者在编译的Android应用程序。偷渡者是由两个部分:一个静态分析工具,确定什么API调用的应用程序,允许地图为每个API调用需要哪些权限。一个android的文档不提供许可这种分析的信息,所以我们经验阻止-开采Android 2.2的访问控制策略。使用自动测试技术,我们实现了85%的Android的报道API。我们的权限映射提供了洞察Android许可制度,使我们能够识别。
我们应用偷渡者940 Android应用程序安卓市场和,大约三分之一的应用规划设计是超水准。超水准的应用程序一般要求一些额外的特权:只有一半以上包含一个额外的权限,只有6%的请求比四个不必要的权限。我们调查原因e和的许多开发人员错误从混乱的许可制度。我们的研究结果表明,开发人员正试图遵循最小特权,支持的潜在安装时每像Android的任务系统。
Android提供了开发人员文档,但其每任务的信息是有限的。每个——缺乏可靠的任务的信息可能会导致开发人员的错误。doc 只有78冰毒- 列表权限要求,而我们的测试显示许可要求1;259(docu sixteen-fold改进——的方法心理状态)。此外,我们确定6 Android中的错误许可文件。这个不精确的叶子开发人与猜测和mes补充参考材料圣人。开发人员混乱会导致超水准应用开发人员添加不必要的权限为了使应用程序正常工作。
的贡献。
我们提供以下贡献:
1。我们开发了偷渡者,检测overpriv——的工具ilege Android应用程序。我们评估940个从安卓市场偷渡者和阳离子nd,三分之一是超水准。
2。我们识别和量化的开发模式的错误导致overprivilege。
3所示。使用自动化测试技术,我们确定一个-droid的访问控制策略。我们的结果是fteen-fold改进文档。其他现有的工具(11、12)分析和未来的计划可以利用我们的权限映射到学习许可
在Android应用程序使用。偷渡者,有的-在android-permissions.org上锡安地图数据是可用的。
组织。第二部分概述了Android及其权限系统,第三节讨论我们的API测试-荷兰国际集团(ing)方法,第四节描述了我们的分析Android API。第五节描述了我们的静态分析工具检测overprivilege,第六节讨论我们的ap -皱纹overprivilege分析。
2。ANDROID权限系统Android有一个广泛的API和许可制度。我们rst提供Android应用程序的高级概述平台和权限。然后,我们提出一个详细的de -从普通的Android权限执行。
Android 2.1背景
Android智能手机用户可以安装第三方应用阳离子通过安卓市场[3]或亚马逊应用程序存储[1]。这些第三的质量和可信度方应用千差万别,因此Android对待所有应用阳离子作为潜在缺陷或恶意。每个应用程序运行过程中low-privilege用户ID,和应用只能访问自己的les默认情况下。应用程序是用Java编写的(可能伴随着本机代码),每个应用程序都运行在自己的虚拟机。Android控制对系统资源的访问与安装时间的权限。
Android 2.2穴134权限,猫-egorized威胁分为三个级别:
1。正常的权限保护访问API调用可能惹恼但不伤害用户。例如,SET_WALLPAPER更改用户的控制能力背景壁纸。
2。危险控制潜在的访问权限有害的API调用,如相关的花钱或收集私人信息。例如,丹-危险的权限需要发送短信或阅读的联系人列表。
3所示。签名/系统管理访问权限最危险的特权,比如共同的能力控制备份过程或删除应用程序包年龄。这些权限dicult获得:Sig -自然权限仅授予应用程序与设备制造商的certi——签署了凯特和SignatureOrSystem权限授予签署的应用程序或安装在spe -脸部用的系统文件夹。这些限制是限制签名/系统权限预装应用-规划设计,要求签名/系统权限由其他应用程序将被忽略。
应用程序可以沙地自己权限自我保护的目的,但我们关注Android-dened权限保护系统资源。
我们不考虑权限在任何阶段的分析。
同样,我们不考虑权限包含在谷歌应用程序(如Google阅读器,但不是操作系统的一部分。
权限与系统交互时可能需要API,数据库和消息传递系统。公共API[2]描述了8;648方法,其中一些受权限保护。用户数据存储在内容提供者和操作所需的权限在一些系统内容提供商。
例如,应用程序必须持有READ_CONTACTS许可以执行读取查询联系人内容提供商。应用程序可能还需要权限接收意图(即。,从操作系统消息)。意图的事件通知应用程序,如网络连接的改变,一些系统只交付给应用程序发送的意图与适当的权限。此外,权限需要发送意图模仿系统意图的内容。
2.2许可实施
我们描述系统如何API,内容提供商,意图实现和保护。据我们所知,我们是皇家莎士比亚剧院详细描述Android许可实施机制。
2.2.1 API
API结构。Android API框架由两部分组成:一个图书馆,驻留在每个应用程序的虚拟机和API的实现在系统中运行的进程(es)。API库与应用程序相同的权限运行伴随,而
API实现的系统进程没有限制。图书馆提供了与API交互实现语法糖。
API调用读取或改变全球手机状态代理库API实现的系统流程。API调用处理在三个步骤(图1)。首先,在图书馆公共API的应用程序调用。
第二,图书馆调用私有接口,也在图书馆。
私有接口是一个RPC存根。
第三,RPC存根与系统启动一个RPC请求过程要求执行所需的操作系统服务。
例如,如果一个应用程序调用ClipboardManager.getText()的调用将被传送到IClipboard存根美元代理,代理调用系统流程的ClipboardService。
应用程序可以使用Java反射[19]访问API库的所有隐藏和私人类、方法和古人。
一些私人接口没有任何相应的公共API;然而,应用程序仍然可以使用反射调用它们。
这些非公有制库方法仅供使用谷歌应用程序或框架本身,和开发人员不建议使用它们
因为他们可能会改变或消失之间释放[17]。
尽管如此,一些应用程序使用它们。
Java代码在系统运行过程是在一个单独的虚拟机,因此免疫反映。
权限。
执行权限,系统的各个部分调用权限验证机制来检查一个给定的应用程序是否有specied许可。
权限验证机制作为可信系统进程的一部分,实现和调用权限验证机制的分布在整个API。
没有集中的政策,当调用一个API检查权限。
相反,中介是取决于正确的位置的权限验证调用。
权限检查放置在API实现系统中的过程。
必要时,调用API实现权限验证机制来检查调用应用程序所需的权限。
在某些情况下,API库也可能多余地检查这些权限,但这种检查不能依赖:应用程序可以绕过他们直接与系统通信过程通过RPC存根。权限检查,因此不应该发生在API库。相反,系统的API实现过程应该调用权限验证机制。少量的权限执行Unix组,而不是Android许可验证机制。特别是,当一个应用程序安装互联网,WRITE_EXTERNAL_STORAGE,或蓝牙权限,分配给Linux团体访问相关的套接字和莱斯。
因此,Linux内核执行这些权限的访问控制策略。
API库(运行以同样的权利为应用程序)可以直接在相应的操作这些插座和莱斯,无需调用API实现的系统流程。
本机代码。应用程序可以包括本机代码除了Java代码,但本机代码仍受制于许可制度。
试图打开的套接字或莱斯由Linux权限。本机代码不能直接与系统通信API。
相反,应用程序必须创建Java包装器方法调用API代表本地代码。
Android权限执行像往常一样当API调用执行。
2.2.2内容提供商
系统安装内容提供商作为独立的应用程序,独立于系统进程和API库。
他们是受保护的静态和动态权限检查,使用相同的机制,可用于应用程序来保护自己的内容提供商。静态声明分配独立的读和写权限给定的内容提供者。
默认情况下,这些权限应用于所有存储的资源内容提供商。
限制也可以应用在尼珥粒度通过将权限与路径(例如、内容:/ / a / b)。
例如,一个内容提供者存储公共和私人笔记可能希望设置一个默认许可要求整个内容提供者,然后允许无限制的访问向公众笔记。
额外的许可要求同样可以对某些设置路径,使数据在这些路径只能如果调用应用程序的默认权限提供者以及path-specic权限。
2.2.3意图
Android的意图系统广泛用于国际米兰——应用程序之间和应用程序内部进行通信。
防止应用程序模拟系统的意图,Android限制谁可以发送特定的意图。
所有的意图是通过ActivityManagerService发送(一个系统服务),执行这个限制。
两种方法被用来限制发送系统的意图。
一些意图只能由应用程序发送适当的权限。
其他系统意图只能发送的UID和系统相匹配的过程。
意图在后者不能发送的应用程序中,不管他们持有哪些权限,因为这些意图必须源自系统流程。
应用程序可能还需要权限接收一些系统的意图。
操作系统使用标准的Android机制限制其意图。
一个应用程序(在本例中,操作系统)可能限制谁能收到一个意图通过附加许可要求意图[13]。
3所示。
允许测试
方法
Android的访问控制策略并没有很好的记载,但政策是必要的,以确定应用程序是否超水准。
为克服此缺点,我们根据经验确定Android执行访问控制策略。
我们使用测试来构造一个许可地图identies Android API中的每个方法所需的权限。
特别是,我们mody Android 2.2 #39;spermission verication日志权限检查发生的机制。
然后我们为API调用生成的单元测试用例,内容提供商和意图。
执行这些测试让我们观察与系统api进行交互所需的权限。
的核心挑战是构建单元测试,获得所有平台资源的调用覆盖。
3.1 API
如x2.2.1所述,Android API提供了应用程序与一个库,包括公共、私人和隐藏的类和方法。
私人的集合类包括RPC系统服务存根。
1所有这些类和方法都是使用Java反射访问应用程序,所以我们必须对他们进行测试来识别权限检查。
我们进行了测试分三个阶段:基于反馈的测试;
可定制的测试用例生成;手动verication。
3.1.1基于反馈的测试
全文共6559字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[144044],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。