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

 2022-02-07 10:02

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


Android安全策略执行工具

Kathryn Cotterell, Ian Welch和 Aaron Chen

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

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

一.引言

谷歌的安卓系统在近几年主导了智能手机操作系统(os)。在2013年第二季度达到79.3%的市场份额[1]。Android是一个开源的操作系统,对移动厂商来说,为智能手机开发广义延伸[2] ,定制和发布自己的硬件是一个很受欢迎的选择。

Android操作系统的开源理念意味着攻击者能够以各种方式利用用户下载恶意软件。这可能是通过社会工程,钓鱼电子邮件,或驱动器的下载。开源方法也反映在Android生态系统所采用的开发和分销模式中.虽然EIOS要求开发者每年支付99美元在应用程序商店上发布应用程序,Android Play推出了一项25美元费用注册一个开发者帐的服务。Android开发人员也不局限于在Google Play上发布应用程序,因为有很多非官方的Android Markets将发布应用程序。iOS用户希望从AppStore之外下载应用程序,但必须先破解他们的手机。

每个Android应用程序包文件(APK)都需要用户确认,应用程序可能会使用一组权限来正确地运行,但是权限的实现是非常粗糙的[3].一旦安装在用户手机上,应用程序就没有义务通知用户它是如何、何时或为什么访问这些权限的,并且在卸载应用程序时不可能撤销权限。

我们通过开发一个新的安全工具,通过执行细粒度的策略来提供更大的透明度和控制,解决了对Android应用程序过于粗糙的控制问题。与以前的方法不同,我们的工具在应用程序级别强制执行这些策略,而不需要对Android操作系统进行修改。

A:意义

本文的主要意义有:

*对Android威胁的现状进行了回顾。该回顾讨论了来自研究人员和商业部门的Android 恶意软件缓解方法。发现了最有效的检测机制,涉及到了对时间监控应用程序许可证的修改.

*从审查的一套策略和要求进行了设计。这些要求是从目前解决方案的长处和弱点的观察中得出的结论。

*一个名为CombDroid的安全系统设计并集成了这些需求。该工具由两部分组成:类插入到应用程序中,该应用程序将拦截运行时的行为,以及一个接口处理APK仪表

*实现了一个名为Combdroid的安全工具并进行了评估。评估包括验证每个策略的强制执行机制和性能测试对应用程序功能的影响最小。Combdroid也测试了关闭的源程序,提出了成功的安全策略。

名为Combdroid的安全工具,其名字决定了其作为工具的功能。作为一个隐蔽的恶意软件拦截,和图像使用梳子密切检查应用程序和执行细粒度的策略是合适的。Droid这一术语通常也与Android设备相关,因此Combdroid准确地描述了系统的总体目标。

B:文章结构

本文的其余部分结构如下,第二部分提供了一个背景审查,其中包括对该项目的以前的贡献的分析,常见的恶意软件威胁和以前提出的方法的文献回顾。第三部分介绍了本工具的设计与实现。第四部分介绍了CombDroid的E评测,展示了性能和测试执行机制,并对结果进行了讨论。最后,第五部分给出了项目的结束语和未来工作方向的讨论机会.

二.背景及相关工作

本节首先回顾了Android技术的现状和研究人员首先提出的方法。Android OsisShow解释了权限和活动如何在安全问题上发挥作用。Android恶意软件和他们的应用程序的例子,然后审查。其次是对最近的研究工作,提出了Android保护工具的全面研究。

A:Android架构

Android体系结构由若干层组成:应用程序、Java类Frameworksi(Android中间件)、本地库、Dalvik虚拟机和核心库,以及Linux内核。Android应用程序安装在设备上,并有自己的目录。因为应用程序无法在一个和另一个之间共享数据,应用程序可以绕过这个限制,但是,通过使用进程间通信(IPC),数据将被序列化,通过内核发送,然后发送到CalleeWE将去序列化数据。应用程序使用目标来调用这样的行为,但不能依赖目标过滤,因为它不会阻止明确的目标[2]。

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

虽然应用程序仅限于其清单文件中列出的权限,但它们不限于调用其他应用程序来执行有权访问违规应用程序的权限的操作。利用这个优势的应用程序正在执行特权升级攻击。当合法应用程序被劫持以执行恶意应用程序时,它被称为混淆副攻击。尽管应用程序可以通过在每个组件中包含引用监视器检查来保护自己,但在Android OS中没有集中实施权限检查[4]。正如Enck等人[5]所证明的那样,没有用户的知识,应用程序可能会调用未受保护组件的呼叫并请求拨打电话号码。

(2)Dalvik虚拟机:APK使用Java和XML构建,编译成Java字节码后转换为Dalvik [6]可执行代码(.dex)以在Dalvik虚拟机上运行。打包并签名后,Android应用程序文件的源代码将不会被下载应用程序的用户访问,但有些工具会反汇编APK以显示其Dalvik字节码。这些工具,例如APKTool [7],可以在线免费获得。一旦代码被反汇编,具有恶意意图的开发人员就可以将字节码注入到重新调用自己的恶意活动中。签署应用程序也不需要任何特殊权限,这意味着最初由受信任的供应商分发的应用程序可能会被修改,重新签名并作为恶意软件分发给不知情的用户。攻击者通过反汇编工具修改代码的方法与本项目采用的方法相同,使用APKTool覆盖目标系统调用。

B. 恶意软件检测

近年来,已经有几种检测和缓解Android恶意软件的方法。这些方法包括防病毒软件,Play商店扫描仪和改进设备以提供运行时监控[8] [9] [10]。

(1)Play Store扫描仪:Google Bouncer [11]扫描提交到Google Play Store的应用程序,通过签名检测来识别已知的恶意软件。 Bouncer还会在模拟环境中执行提交的应用程序,以尝试识别在没有用户输入的情况下泄露的电话数据。然而,Bouncer并不是一个完整的解决方案,因为它可以在线购买经过验证的Google Play帐户并使用恶意功能更新应用程序。在Bouncer完成可视化扫描之前,应用程序也可以发挥良性

- 发现大约五分钟[9]。

(2)反病毒软件:反病毒(AV)软件被发现对Android恶意软件的大量变种基本无效。周等人[8] 显示,从Google Play商店下载的四款流行AV只能在1260个病毒样本中检测到20.2%到79.6%的恶意软件样本,表明仅仅依靠AV软件是不够的。

(3)权限分析:另一种方法是在安装之前分析应用程序,以确定它们是否因为它们请求的权限类型(Kirin [12])或使用外部库(RiskRanker [13])而可能是恶意的。尽管承诺这些方法会产生太多的误报,因为它的方法相当粗糙,因为它可能会阻止实际上不使用授予它的权限的应用程序。

(4)运行时监控:运行时监控是允许应用程序执行并在细粒度级别进行监控的地方。要执行运行时监控,必须修改应用程序或固件,允许插入挂钩并更改应用程序行为。以下讨论了在Android中间件或应用程序级别插入钩子的方法。

CRePe [14],SAINT [10],TaintDroid [15],AppFence [16]和Quire [17]都允许细粒度的监视和控制在Android应用程序的执行上。两者都是通过修改Android中间件和插入钩子来控制应用程序之间的IPC来实现的。这允许访问诸如电话的手机或短信功能的服务被精细控制。然而,所有这些方法都要求用户使用Andoid操作系统的修改版本,并将钩子放置在Android中间件或操作系统内核中,这对于广泛使用而言并不实用。

由徐等人开发的Aurasium [18] 提出了一个监控应用程序权限使用情况的解决方案,无需修改Android操作系统。 Aurasium使用APKTool来反汇编APK并插入他们自己的Java代码和本机库,然后将应用程序安装到设备上之前修改应用程序。作者充分利用了这一事实,即所有需要与操作系统交互的功能都必须通过仿生libc库,创建一个约束中心点。这允许在应用程序进行库调用时在运行时尽可能低的边界进行拦截,例如进行套接字连接或启动需要与libc.so库交互的SMS。

Aurasium符合我们对便携性和我们的要求。最初的工作着眼于扩展他们的方法。但是,我们决定采取不同的方法,避免需要更改低级库。相反,我们的方法是纯Java的解决方案。

三.设计和实施

A. 设计要求

我们根据最初的目标和文献综述的结果确定了以下一组要求。

1) 未违反强制策略的已修改应用程序应按预期运行。我们不希望该工具在应用不违反策略时给用户带来不便,因为这会导致用户不愿意使用该工具,从而在安装恶意APK时导致系统受到攻击。

2) 应用程序的检测应完全依赖于有权访问APK,并且不应假定源代码。在商业上,闭源项目目前还没有方法将类文件逆向工程化为更高级的语言。因此,推断程序的意图并不明智。

3) 违反一项或多项政策的应用程序应暂停执行,直至与用户授权。未能咨询用户将导致用户控制权的丧失,并降低用户对工具的信心。

4) 除非他们事先已经给予优先权,否则该应用程序的用户应该被授予决定是否允许或拒绝被政策拦截的方法(第III-B节)。该工具还必须记住策略首选项,以便在未来的交互过程中不会侵入可信或不可信的连接。

5) 除了能够下载和安装Android应用程序外,设计不应该假定用户的技术知识。该要求源于所有背景的用户拥有和操作Android设备的事实。因此,如果他们被认为具有较高的技术知识,那么它可能会隔离给用户群体。

B. 策略

为了评估我们的系统,必须列出一系列策略,这些政策将用于确保我们的系统正确拦截所需的活动。以下策略已被选中,因为它们解决了未经恶意软件许可而常用的操作[8] [19] [20] [21]。

1) 防止应用程序发送短信给未经授权的号码。应该拦截试图发送SMS消息的应用程序,并向用户显示收件人的编号。这使得用户能够做出明智的决定,决定他们是否想要继续进行SMS。

2) 阻止对未授权号码的电话呼叫。应该拦截试图发起电话呼叫的应用程序,并向用户显示收件人的号码。

3) 限制应用程序通过Web浏览器进行连接。应用程序尝试连接到特定域时应该知道用户,并且应该给出允许或拒绝URL的选项。

C. 设计和实施决策

为了满足设计要求,作出了以下关键设计和实施决策。

1) 在运行时拦截APK的挂钩方法:

在运行时拦截应用程序,最有效的方法似乎是在应用程序安装到设备上之前实际修改应用程序。如CRePe [14],TaintDroid [15],Apex [22]和Aurasium [18]等现有方法要么需要修改Android固件或Android应用程序。正如要求中所述,我们不想对用户的技术知识做出假设,因此将新固件部署到Android设备不是一个理想的选择。我们的设计基于程序对应用程序的修改,特别是覆盖可能充当恶意行为切入点的方法。这个设计来自观察,我们试图拦截的许多方法调用相同的类,如Activity,并且可以重写此类并从集中管理器拦截方法。这种方法包括反汇编APK,插入自定义拦截器类,并在适当的时候更改类路径,以便在恢复到正常任务流之前将Activity类指向自定义MyActivity类。

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

2) 用户界面:其中一个设计要求概述了不应该对用户的技术知识做出假设,并且鉴于拆卸和重新组装应用程序招募了apktool,keytool和jarsi

全文共19544字,剩余内容已隐藏,支付完成后下载完整资料


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

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

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