登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 计算机类 > 软件工程 > 正文

Android应用程序之间的通信分析外文翻译资料

 2022-12-03 11:12  

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


Android应用程序之间的通信分析

摘要

现代智能手机操作系统支持第三方应用程序的开发与开放系统api。除了开放API,Android操作系统还提供了丰富的应用程序之间的消息传递系统。这样可以鼓励应用程序之间的合作,减少开发人员负担,从而促进了组件的重用。不幸的是,消息传递也是一个应用程序攻击的表面。用户妥协的隐私信息的内容可以被察觉、修改、盗取或者覆盖。同时,恶意应用程序可以注入伪造或者恶意消息,从而导致违反用户数据和应用程序违反安全策略。

我们检查Android应用程序交互和在应用程序组件识别安全风险。我们提供一个工具,ComDroid,检测应用程序通信的漏洞。开发人员可以在发布之前使用ComDroid来分析自己的应用程序,可以是安卓市场上的应用分析评论家和终端用户来分析应用程序。我们在ComDroid的帮助下分析了20个应用程序发现34可利用的漏洞,其中12个应用至少有一个漏洞。

分类和主题描述符号

D.2.5 (软件工程):测试和调试;

D.4 (操作系统):安全与保护

一般条款

安全

关键字

Android,信息传递,意图,手机安全

  1. 简介

在过去的十年里,手机已经从简单的设备用于电话和短信的简单设备进化成可以运行的第三方软件的复杂设备。手机用户不再局限于简单的通讯录和操作系统、手机制造商所提供的其他基础功能。他们可以根据他们的选择自由的定制手机安装的第三方应用程序。手机制造商提供开发平台和软件商店(例如安卓市场,苹果APP市场),让开发人员可以在哪里发布他们的应用程序,来支持第三方应用程序开发人员。

Android的应用程序通信模型进一步促进丰富的应用程序的开发。Android开发者可以利用其他应用程序提供的现有的数据和服务,同时仍然允许一个单一的印象,无缝应用程序。例如,一个餐厅检索软件就可以要求其他应用软件来现实餐厅的网站,提供餐厅位置的地图和打电话给餐厅。这种通信模型减少了开发人员负担和促进功能重用。Android将应用程序分成组件,提供一个消息传递系统来达到这样的目的,使得组件可以内部和跨应用程序进行通信。

Android的消息传递系统如果使用不当可以成为攻击表面。在本文中,我们讨论Android消息传递和识别不安全开发实践的风险。如果一个消息发送者指定收件人不正确,那么攻击者可以拦截消息危害其机密性或完整性。如果一个组件不限制谁可以发送消息,然后攻击者可以注入恶意信息。

我们已经在大环境中看到许多而已的手机应用程序。例如,SMS消息间谍职业伪装本身作为一个提示计算器,并将所有发送和接收的短信转发给第三方,同样,MobiStealth记录短信,呼叫历史,浏览器历史、GPS定位等等。这是令人担忧的,因为用户依赖于他们的手机来执行私人和敏感的任务,如发送电子邮件,拍照,并进行银行交易。因此,对于帮助开发人员写安全的应用程序同时不在对手面前泄漏或改变用户数据,它是非常重要的。

我们检查了Android通信模型和安全风险,包括个人数据丢失和损坏,网络钓鱼和其他意想不到的行为。我们提出了一个分析工具,ComDroid,Android应用程序来检测这些漏洞的潜在情况。我们用ComDroid分析了20个应用,在12个应用程序发现34漏洞。大多数这些漏洞源于事实的意图可以用于帧内和跨应用程序的通信,所以我们提供了改变Android帮助开发者区分内部和外部的信息与建议。

  1. Android概观

Android的安全模型与标准桌面安全模型有很大的不同。Android应用程序被视为互相不信任的当事人;他们是彼此孤立的,并没有获得对方的私人数据。我们提供了一个概述的安卓安全模型和跨应用程序的通信设施。

虽然其他智能手机平台也有类似的安全模型,我们专注于Android,因为它有最先进的应用通信系统。Android消息传递系统的复杂性意味着它有最大的攻击面。在第6节中,我们比较和对比其他移动操作系统的Android。

    1. 威胁模型

安卓市场包含一个广泛的第三方应用程序,用户可以安装不同的信任级别的应用程序。用户安装未知的开发人员开发的应用程序是仗着信赖的处理私人信息的应用程序,例如财务数据和个人照片。例如,用户可以安装一个非常可信的银行应用程序和一个自由游戏应用程序。游戏中不应该能够获得用户的银行账户信息。

在Android安全模型下,所有的应用程序都被视为潜在的恶意。每个应用程序都运行在自己的进程中,并有一个低权限用户ID,并且应用程序只能默认访问他们自己的文件。这些隔离机制的目的是保护应用程序远离来自恶意软件的敏感信息。

尽管他们的默认隔离,应用程序可以通过消息传递随意的沟通。通信可以成为攻击向量。如果一个开发者意外地暴露了功能,那么应用程序就可以被欺骗来执行一个不受欢迎的行为。在本文中,我们考虑如何应用程序可以防止这些类型的通信为基础的攻击。

除了提供跨应用程序隔离,安卓安全模型保护系统应用程序防止恶意应用程序的攻击。默认情况下,应用程序不具有与系统接口的敏感部分进行交互的能力;然而,用户可以在安装过程中授予应用程序附加权限。我们不考虑对操作系统的攻击,相反,我们专注于确保应用程序之间的相互攻击。

    1. 意图

Android提供了一个先进的消息传递系统,其意图是用来连接应用程序。一个意图是一个消息,它声明一个收件人,并且可以选择包含数据; 一个意图可以被认为是一个包含一个远程过程来调用和包含相关联的参数的自包含的对象。应用程序使用意图为应用程序间通信和内部应用中的通信。一些事件通知是系统的事件,只能由操作系统发送。我们称这些信息系统广播意图。

意图可用于显式或隐式通信。一个明确的意图,它应该被传递到一个特定的应用程序所指定的意图,而隐式意图请求交付到任何支持所需操作的应用程序。换句话说,一个明确的意图识别的意图收件人的名字,而一个隐含的意图离开它的安卓平台,以确定哪些应用程序应该得到的意图。例如,考虑一个应用程序存储联系人信息。为了实现这一点,联系人应用程序可以直接发送一个明确的意图,谷歌地图,或它可以发送一个隐含的意图,将交付给任何应用程序,它提供了映射功能(例如,雅虎!地图或必应地图)。使用显式意图保证意图传递给收件人,而隐式允许晚运行不同应用之间的结合。

    1. 组成部分

意图被传送到应用程序组件,这是合乎逻辑的应用构建块。安卓定义了四种类型的组件:

bull;活动提供用户界面。活动开始的意图,他们可以将数据返回到调用组件完成后。所有可见部分的应用程序是活动。

bull;在后台运行的后台和不与用户进行交互。下载一个文件或解压缩档案的操作,可以在服务。其他组件可以绑定到一个服务,该服务允许在目标服务的接口中声明的绑定调用方法。意图是用来启动和绑定服务。

bull;广播接收机接收多个应用程序的意图。接收方被触发由接收一个适当的意图,然后在后台运行的背景来处理事件。接收器通常是短暂的,他们通常将消息传递给活动或服务。有三种类型的广播意图:正常,粘粘的,责令。正常广播被发送到所有注册的接收器,然后他们消失。有序的广播被传送到一个接收器,同时,在一个有序的广播传送链的任何接收器可以停止其传播。广播接收器有能力设置其优先级的接收命令的广播。粘性的广播保持访问后,他们已经交付,并重新广播到未来的接收器。

bull;内容提供者的数据库的应用程序定义的URI寻址。它们被用于持久的内部数据存储,并作为一种机制,用于在应用程序之间共享信息。

意图可以是三的四个组成部分之间发送:活动、服务和广播接收机。意图可以用来启动活动;启动,停止,并绑定服务;广播信息的广播接收机。所有这些形式的沟通可以使用显式或隐式意图。默认情况下,组件只接收内部应用程序的意图(并因此没有外部调用)。

    1. 组件声明

为了接受意图,组件必须在应用程序清单申报。一个清单是在安装过程中伴随着应用程序的配置文件。开发人员使用清单来指定外部的意图(如果有的话)应该交给应用程序的组件。

  1. 意图为基础的攻击面

我们研究Android通信面临的安全挑战从发送者和接受者的意图的角度。在第3.1节中,我们讨论了如何发送一个意图的错误的应用程序可以泄露用户信息。数据可以通过窃听和权限被盗可以应用之间的偶然转移。在3.2节中,我们考虑的漏洞来接收外部的意图,即从其他应用程序相关的,未来的意图。如果一个组件被意外地公开,那么外部应用程序可以以令人惊讶的方式调用它的组件或将恶意数据注入到它。我们总结了安全的安卓通信在3.3节指南。

在我们讨论组件安全的过程中,我们把注意力集中在出口组件上。我们也排除出口组件和广播意图是与权限,其他应用程序无法获得保护。如第2.4.2解释说,正常的和危险的权限不提供组件或意图很强的保护:正常的权限将被自动授予,而危险的用户批准授予权限。 签名级别和系统签名级别权限,然而,是很难获得的。我们认为组件和广播意图是与签名级别或系统签名级别权限为私人保护。

    1. 未经授权的意图凭据

当一个应用程序发出一个隐含的意图时,就无法保证意图将接收到预定的收件人。恶意应用程序可以拦截一个隐含的意图,简单地通过声明一个意图过滤器与所有的行动,数据,和类别中列出的意图。恶意的应用程序,然后获得所有的数据,在任何匹配的意图,除非该意图是受恶意应用程序缺乏的权限保护。拦截还可以导致控制流攻击,如拒绝服务或网络钓鱼。我们考虑如何攻击可以被安装在用于广播接收机,意图的活动,和服务。我们还讨论了意图,特别危险,如果截获的特殊类型。

    1. 意图欺骗

恶意应用程序可以启动一个意图欺骗攻击通过发送一个意图导出组件是不期望从应用程序的意图。如果受害者的应用程序需要在收到这样的意图,攻击可以触发该动作。例如,当一个组件被导出,即使它不是真正的意思是公开的,这种攻击可能是可能的。虽然开发人员可以通过在清单中设置权限要求或动态检查来电者的身份来限制组件曝光,但它们并不总是这样做。

    1. 通信安全指南

开发商应谨慎发送隐式和输出部件。发送私人数据时,应用程序应该尽可能使用显式意图。内部沟通可以而且应该始终使用显式意图。如果这是不可能使用明确的意图,那么开发商应该指定保护意图强烈的权限。以响应意图的其他组件返回的结果需要进行验证以确保他们从期望源获得有效的结果。

  1. COMDROID

我们提供了一个工具,ComDroid,检测Android应用程序中潜在的安全漏洞。对Android平台的应用包括Dalvik可执行(DEX),运行于Android的Dalvik虚拟机文件。我们首先分解应用DEX文件使用公开可用的dedexer工具。ComDroid解析拆卸输出dedexer和日志组件和意图的潜在漏洞。

  1. 估计价值

我们在Android市场中50大热门付费应用和50到100大最受欢迎的免费应用程序上运行ComDroid。我们报告ComDroid的预警率和讨论共同应用的弱点。我们强调ComDroid问题警告潜在的安全问题;人工审核还需要明确的意图或组件的功能和决定是否暴露可导致严重的漏洞。我们手动检查20应用程序检查ComDroid的警告,评估我们的工具和检测漏洞。

  1. 其他移动平台

Windows Phone 7(WP7)和iOS提供的第三方应用平台。然而,他们的应用程序间通信系统比Android的WP7应用程序只能发送消息给少数可信赖的系统应用不太复杂的(例如,浏览器);第三方应用程序无法接收讯息。因此,我们不知道任何WP7应用与通信相关的安全风险。

iOS应用程序可以选择接受应用程序间的信息通过注册自定义URI方案与操作系统。当应用程序接收到消息时,该应用程序被打开并移动到前台。这是发送一个意图启动活性相当,和恶意的iOS应用程序可以安装一个活动劫持攻击通过注册为另一种应用方案。然而,剩下的Android通信攻击并不适用于iOS。iOS开发者不太可能无意中暴露的功能因为计划只用于公共接口;二ff不同类型的信息是用于内部通信。我们对于Android的建议的目的是在Android系统中创建内部和外部信息的区别。

  1. 相关的工作

攻击面 检查系统的概念,以确定和量化的攻击面是不是新的。

非移动系统 Android的跨应用通信系统类似于一个(本地)网络系统。因此,它必须处理标准的威胁,适用于所有的通讯系统,例如,窃听、欺骗、拒绝服务等。正如我们在本文中所示,这些威胁是存在于机器人的意图系统Android 我们不是第一个意识到,安卓开发者犯错误,可以妥协的安全。Burns讨论共同开发的错误,如使用意图过滤器,而不是权限。

  1. 结论

虽然安卓消息传递系统促进了丰富的、协作的应用程序的创建,但它也引入了攻击的潜在可能性,如果开发人员不采取预防措施。我们研究了应用程序的通信在安卓和目前的几个类的潜在攻击的应用。外向的沟通可以把一个应用在广播盗窃的风险(包括窃听、拒绝服务),数据盗窃,结果该fi阳离子,活动和服务劫持。传入的通信可以把一个应用程序的恶意活动和服务的发射和广播注入的风险。

我们提供了一个工具,ComDroid,开发者可以使用这些类型的漏洞。我们的工具依赖于地塞米松代码,所以第三者

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


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

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图