一种Android安全策略执行工具外文翻译资料

 2022-12-18 15:46:30

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


一种Android安全策略执行工具

KATHRYN COTTEREL JAN WELCH AARON CHEN

惠灵顿维多利亚大学工程与计算机科学学院,新西兰惠灵顿999030

摘要: Android操作系统(OS)近年来由于其可访问性,可用性和开源理念而成为主导的智能手机操作系统。因此,这也使其成为攻击者的热门目标,这些攻击者的目标是在Android设备上安装恶意软件并利用Android的粗粒度,非撤销权限系统。该项目设计,实现和评估名为COMBdroid的安全工具,该工具通过实施细粒度的用户定义策略来解决Android中的这些安全问题。COMBdroid在安装之前修改应用程序,允许它在运行时覆盖安全漏洞点。作为概念验证,我们在COMBdroid中实现了三个策略。本文记录了COMBdroid的开发过程,从文献综述中得出设计决策,详细介绍了设计和实施,并通过评估证明了程序的有效性。

关键词: 移动计算,Java,Android,安全性

1.介绍

谷歌的 Android近年来一直主导着智能手机操作系统(OS),在2013年第二季度占据了79.3%的市场份额[1]。由于Android是为具有大量文档的智能手机开发的开源操作系统[2],因此它一直是移动设备中的热门选择供应商可以在自己的硬件上进行定制和分发。

Android操作系统的开源哲学意味着攻击者能够以各种方式利用用户下载恶意应用程序。这可能是通过社交工程,网络钓鱼电子邮件或偷渡式下载。开源方法也反映在Android生态系统采用的开发和分发模型中。虽然iOS要求开发人员每年支付99美元在应用程序商店中分发应用程序,但Android Play会收取25美元的一次性费用来注册开发者帐户。Android开发者也不仅限于在Google Play上发布他们的应用程序,因为有很多非官方的Android市场会分发应用程序。但是,希望从App Store外部下载应用程序的iOS用户必须首先越狱他们的手机。

下载的每个Android应用程序包文件(APK)都要求用户确认应用程序可能使用某组权限才能正常运行,但权限实现非常粗糙[3]。一旦安装在用户电话上,应用程序就没有义务告知用户访问这些权限的方式,时间或原因,并且在不卸载应用程序的情况下无法撤销权限。Welch和A.Chen在新西兰惠灵顿维多利亚大学工程与计算机科学学院。K. Cotterell作为她的工程学士学位最后一年项目的一部分开展了这项工作。我们通过开发一种新的安全工具,通过实施细粒度策略为用户提供更高的透明度和控制,解决了对Android应用程序过于粗略控制的问题。与以前的方法不同,我们的工具在应用程序级别强制执行这些策略,而无需修改Android操作系统。

1.1 捐款

本文的主要贡献是:已对Android威胁的当前状态进行了审核。该评论讨论了研究人员和商业领域的Android恶意软件和缓解方法。发现最有效的检测机制涉及修改应用程序以允许运行时监控。从审查中设计了一套政策和要求。这些要求来自对当前解决方案的优势和劣势的观察。设计了一个名为COMBdroid的安全系统并集成了这些要求。该工具由两个主要部分组成 - 插入到应用程序中的类,它将在运行时拦截行为,以及一个用于处理APK检测的接口。

实现并评估了名为COMBdroid的安全工具。评估包括验证每个策略的执行机制,性能测试对应用程序功能的影响最小。COMBdroid还在闭源应用程序上进行了测试,提出了成功的策略实施。创建的安全工具的名称COMBdroid被确定为该工具用作COvert恶意软件拦截器,并且使用梳子密切检查应用程序并执行细粒度策略的图像是合适的。术语Droid通常也与Android设备相关联,因此COMBdroid准确地描述了系统的总体目的。

1.2 纸业组织

本文的其余部分组织如下,第二部分提供了背景审查,其中包括对此项目的先前贡献的分析,常见的恶意软件威胁以及对先前提出的方法的文献综述。第三部分介绍了我们工具的设计和实现。第四部分介绍了COMBdroid的评估,展示了性能和测试执行机制,并讨论了结果。最后,第五部分给出了项目的结束语,并讨论了未来工作方向的机会。

2.背景和相关的工作

本节回顾了研究人员提出的Android技术和先前方法的状态。首先,讨论Android操作系统,解释权限和活动如何在安全问题中发挥作用。然后审查Android恶意软件及其应用程序示例。随后对最近提出Android保护工具的研究工作进行了全面研究。

2.1 Android架构

Android体系结构由多个层组成:应用程序,Java类框架(Android中间件),本机库,Dalvik虚拟机和核心库,以及Linux内核。Android应用程序安装在设备上,并有自己的目录,意图是应用程序无法在另一个之间共享数据。但是,应用程序可以通过使用进程间通信(IPC)来规避此限制,其中数据将被序列化,通过内核发送,然后发送给被调用者,后者将对数据进行反序列化。要调用此类行为,应用程序会使用意图,但不能依赖意图过滤,因为它不会阻止显式意图[2]。

Android权限:Android应用程序要求用户同意一组安装权限,如果不删除应用程序则无法撤消。请求的权限在APK的清单文件中声明,例如用于拨打电话的CALL_PHONE,或用于建立网络连接的INTERNET。通常,应用程序将拥有他们请求的权限的合法理由。例如,个性化键盘应用程序可能需要完全的因特网访问才能下载其他语言的模块。但是,粗粒度权限不要求应用程序声明何时或出于何种目的使用授予的权限。通常,当不信任应用程序时,知情用户将是显而易见的,例如请求写入和发送SMS消息的权限的益智游戏。其他时候,具有恶意意图的应用程序将不那么明显。如果社交网络应用程序请求访问用户的联系人,则没有限制来阻止应用程序在没有用户知识的情况下将联系人发送到不受信任的服务器。

虽然应用程序仅限于其清单文件中列出的权限,但它们不限于调用另一个应用程序来执行有权访问权限的应用程序的操作。利用此功能的应用程序正在执行权限提升攻击。当合法的应用程序被劫持以执行恶意应用程序的任务时,它被称为混乱的副攻击。虽然应用程序可以通过在每个组件中包含引用监视器检查来保护自己,但是在Android OS中没有集中执行权限检查[4]。正如Enck等[5]所证明的那样。在用户不知情的情况下,应用程序可以调用对未受保护的组件的呼叫并请求拨打电话号码。Dalvik虚拟机:APK是使用Java和XML构建的,在编译为Java字节码后转换为Dalvik [6]可执行代码(.dex)以在Dalvik虚拟机上运行。打包和签名后,下载应用程序的用户将无法访问Android应用程序文件的源代码,但有些工具可以反汇编APK以显示其Dalvik字节码。这些工具,如APKTool [7],可在线免费获取。一旦代码被反汇编,具有恶意意图的开发人员就可以为调试自己的恶意活动的重新路由调用注入字节码。签署应用程序也不需要任何特殊权限,这意味着最初由受信任供应商分发的应用程序可能会被修改,重新签名并作为恶意软件分发给不知情的用户。攻击者用来通过反汇编工具修改代码的方法与本项目采用的方法相同,使用APKTool覆盖目标系统调用。

2.2恶意软件检测

近年来,有几种方法可以检测和减轻Android恶意软件。这些方法包括防病毒软件,Play商店扫描仪和改装设备,以提供运行时监控[8] [9] [10]。Play商店扫描程序:Google Bouncer [11],扫描提交到Google Play商店的应用程序,通过签名检测识别已知的恶意软件。Bouncer还在模拟环境中执行提交的应用程序,以尝试识别在没有用户输入的情况下泄露的电话数据。但是,保镖不是一个完整的解决方案,因为可以在线购买经过验证的Google Play帐户并使用恶意功能更新应用程序。在Bouncer完成可视化扫描之前,应用程序也可以是良性的。.

发现大约五分钟[9]。反病毒软件:已发现反病毒(AV)软件对大量Android恶意软件变种无效。周等人[8]据证明,从Google Play商店下载的四个流行的AV只能检测出1260个中的20.2%到79.6%的恶意软件样本,显示它仅仅依赖于AV软件是不够的。权限分析:另一种方法是在安装之前分析应用程序,以确定它们是否可能是恶意的,因为它们请求的权限类型(Kirin [12])或使用外部库(RiskRanker [13])。虽然这些方法很有希望产生太多的误报,因为它的方法非常粗糙,因为它可能会阻止实际上没有使用授予它的权限的应用程序。运行时监控:运行时监控是允许应用程序执行的位置,并在细粒度级别进行监控。要执行运行时监视,必须修改应用程序或固件,允许插入挂钩并更改应用程序行为。以下讨论在Android中间件或应用程序级别插入挂钩的方法。CRePe [14],SAINT [10],TaintDroid [15],AppFence [16]和Quire [17]都允许细粒度的监控和控制在。Android应用程序的执行。两者都是通过修改Android中间件和插入钩子来控制应用程序之间的IPC来实现的。这允许访问诸如电话之类的服务或电话的SMS功能被控制在细粒度级别。但是,所有这些方法都要求用户使用带有Android中间件或操作系统内核的钩子的Andoid操作系统的修改版本,这对于广泛使用来说是不实用的。

Aurasium,由Xu等人开发[18]提供了一种监控应用程序权限使用的解决方案,而无需对Android操作系统进行修改。Aurasium在应用程序安装到设备之前修改应用程序,使用APKTool反汇编APK并插入自己的java代码和本机库。作者利用这一事实,所有需要与操作系统交互的功能必须通过Bionic libc库,从而创建一个集中的约束点。这允许在应用程序进行库调用时在运行时最低可能边界进行拦截,例如进行套接字连接或启动需要与libc.so库交互的SMS。Aurasium符合我们的便携性和我们的要求最初的工作考虑扩展他们的方法。但是,我们决定采用不同的方法,避免需要更改低级库。相反,我们的方法是仅限Java的解决方案。

3.设计和实施

3.1设计要求

我们根据原始目标和文献综述的结果确定了以下一系列要求。未违反强制策略的已修改应用程序应按预期运行。当应用程序未违反策略时,我们不希望该工具给用户带来不便,因为这会导致用户不愿意使用该工具,从而导致在安装恶意APK时系统受损。应用程序的工具应该完全依赖于访问APK,并且不应该代替源代码。在商业闭源项目中,目前没有将类文件逆向工程为更高级语言的方法。因此,假定该计划的意图是不明智的。违反一个或多个策略的应用程序应暂停执行,直到它与用户进行协商。未能咨询用户将导致用户失去控制,并降低用户对工具的信心。应该授予申请的用户关于是否允许或拒绝政策截获的方法(第III-B节)的决定,除非他们在事实之前给予了优先权。该工具还必须记住策略首选项,因此在将来的交互过程中它不会干扰受信任或不受信任的连接。

除了他们能够下载和安装Android应用程序的事实之外,设计不应该对用户的技术知识做出任何假设。该要求源于所有背景的用户拥有和操作Android设备的事实。因此,如果假定他们具有高技术知识,则可能会隔离用户组。

3.2 政策

为了评估我们的系统,必须概述一套策略,这些策略将用于确保我们的系统正确拦截所需的活动。选择了以下策略,因为它们解决了未经恶意软件许可而常用的操作[8] [19] [20] [21]。防止应用程序向未经授权的号码发送SMS消息。应拦截尝试发送SMS消息的应用程序,并向用户显示收件人的号码。这允许用户做出关于他们是否希望SMS继续进行的明智决定。防止拨打未经授权的号码。应拦截尝试发起电话呼叫的应用程序,并向用户显示收件人的号码。限制应用程序通过Web浏览器建立连接。应该让用户知道应用程序何时尝试连接到特定域,并且应该选择允许或拒绝URL。

3.3 设计和实施决策

以下关键设计和实施决策是为了满足设计要求。挂钩方法拦截APK在运行时:到在运行时拦截应用程序,最有效的方法似乎是在应用程序安装到设备之前对应用程序进行实际修改。现有方法如CRePe [14],TaintDroid [15],Apex [22]和Aurasium [18]要么需要修改Android固件,要么修改Android应用程序。如要求中所述,我们不希望对用户的技术知识做出假设,因此在Android设备上部署新固件不是理想的选择。我们的设计基于对应用程序的编程修改,特别是可以作为恶意行为入口点的重写方法。这种设计来自于我们试图拦截的许多方法都调用同一个类(如Activity),并且可以覆盖此类并从集中式管理器中截取方法。这种方法涉及反汇编APK,插入自定义拦截器类,并在适当时更改类路径以将Activity类定向到自定义MyActivity类,然后再恢复到正常任务流。

通过这种挂钩方法,我们将所有Android应用程序使用的超类Activity更改为指向MyActivity。我们提供的类MyActivity包含依赖于用户策略的自定义策略检查方法。这是一种比现有方法更简单的方法,因为我们的字节码修改不需要修改方法字节码。

用户界面:其中一个设计要求概述了不应该对用户的技术知识做出任何假设,并且考虑到反汇编和重新组装应用程序会招募apktool,keytool和jarsigner的帮助,实现用户界面以补充挂钩似乎是明智的方法。

策略配置文件:安全工具的要求之一是,如果它已向用户授予关于连接的权限,并且用户指示了如何处理连接的首选项,则它必须能够存储和重新收集此信息以供将来使用互动。为了允许细粒度策略,最好是为用户提供每个号码或URL的选择,无论他们

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


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

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

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