Android应用程序间通信威胁和检测技术外文翻译资料

 2023-08-09 16:10:28

ELSEVIER

Computers
amp;
Security

Available online at www.sciencedirect.com

SdenceDirect

journal homepage: www.elsevier.com/locate/cose

卄 Android inter-app communication threats and detection techniques

Shweta Bhandaria,[1], Wafa Ben Jaballahb, Vineeta Jaina, Vijay Laxmia, Abka Zemmaric, Manoj Singh Gaurd, Mohamed Mosbahc, Mauro Contie

a Malauiya National Institute of Technology Jaipur (M.NIT Jaipur), Jaipur, Rajasthan, India

b Thales Group, France

c LaBRI - University of Bordeaux, CNRS, 33405 TUlence, France

d Indian Institute of Technology Jammu, Jamp;K, India

e University of Padua, Padua, Italy

ARTICLE INFO

ABSTRACT

Article history:

Received 8 December 2016

Received in revised form 3 June

2017

Accepted 4 July 2017

Available online 14 July 2017

Keywords:

App collusion

Privacy leakage

Inter component communication

Inter-app communication

Multi-app analysis

With the digital breakthrough, smart phones have become very essential component for many routine tasks like shopping, paying bills, transferring money, instant messaging, emails etc. Mobile devices are very attractive attack surface for cyber thieves as they hold personal details (accounts, locations, contacts, photos) and have potential capabilities for eavesdropping (with cameras/microphone, wireless connections). Android, being the most popular, is the target of malicious hackers who are trying to use Android app as a tool to break into and control device. Android malware authors use many anti-analysis techniques to hide from analysis tools. Academic researchers and commercial anti-malware companies are putting great effort to detect such malicious apps. They are making use of the combinations of static, dynamic and behavior-based analysis techniques.

Despite of all the security mechanisms provided by Android, apps can cany out malicious actions through inter-app communication. One such inter-app communication threats is collusion. In collusion, malicious functionality is divided across multiple apps. Each participating app accomplishes its part and communicate information to another app through Inter Component Communication (ICC). ICC does not require any special permissions. Also there is no compulsion to inform user about the communication. Each participating app needs to request a minimal set of privileges, which may make it appear benign to current state-of-the-art techniques that analyze one app at a time.

There are many surveys on app analysis techniques in Android; however they focus on single-app analysis. This survey highlights several inter-app communication threats, in particular collusion among multiple-apps. In this paper, we present Android vulnerabilities that may be exploited for canying privilege escalation attacks, privacy leakage and collusion attacks. We cover the existing threat analysis, scenarios, and a detailed comparison of tools for intra- and inter-app analysis. To the best of our knowledge this is the first survey on inter-app communication threats, app collusion and state-of-the-art detection tools in Android.

copy; 2017 Elsevier Ltd. All rights reserved.

  1. Introduction

Nowadays, mobile devices such as smartphones, are widely used for social networking, online shopping, banking, etc. Mobile applications are increasingly playing an essential role in our daily life, making the safety guards in mobile operating systems an important concern for researchers and practitioners. Android is the most popular mobile operating system, with 84% of the worldwide smartphone sales to end users in first quarter of 2016 (IDCReport), and over 50 billion app downloads so far. The large popularity of Android and its open nature made it a primary target of hackers who are now developing malicious apps at an industrial scale (Bugiel et al., 2011; Dietz et al., 2011; Elish et al., 2015; Enck( 2011; Enck et al., 2014; Li et alM 2015a; Lu et 2012; Shekhar et al, 2012).

An Android app consists of components and uses a special interaction mechanism to perform Inter-Component Communication (ICC). ICC enables modular design and reuse of functionality across apps and app components. In Android, ICC communication model is implemented as a message-passing system, where messages are encapsulated as Intent objects. Through Intents, an app (or app component) can utilize functionality exposed by another app (or app component), e.g., by passing a message to the browser to render content or to a navigation app to display a location and provide directions to it, This light communication model has been used by developers to design rich application scenarios by reusing existing functionality Unfortunately, because many Android developers have limited expertise in security, the ICC mechanism has brought a number of vulnerabilities (Chin et al., 2011; Enck et aL, 2014; Felt et al.)2011; Li et aL, 2015a; Sbirlea et al., 2013; Schlegel et al,, 2011). Some of the ICC vulnerabilities viz. Activity hijacking vulnerability (where a malicious Activity is launched in place of the intended Activity), Intent spoofing vulnerability (where a malicious app sends Int

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


Android应用程序间通信威胁和检测技术

1.导言

如今,智能手机等移动设备广泛应用于社交网络、网上购物、银行等领域。 移动应用在我们的日常生活中发挥着越来越重要的作用,使移动操作系统中的安全防护成为研究人员和从业人员的重要关注。 安卓是最受欢迎的移动操作系统,2016年第一季度全球智能手机对终端用户的销售占84%(IDCReport),到目前为止,APP下载量超过500亿次.. 安卓的广泛普及及其开放的性质使它成为黑客的主要目标,他们现在正在工业规模上开发恶意应用程序。

一个Android应用程序由组件组成,使用一种特殊的交互机制来执行组件间通信(ICC)。 ICC可以通过应用程序和应用程序组件实现模块化设计和重用功能。 在Android中,ICC通信模型被实现为消息传递系统,其中消息被封装为Intent对象。 通过Intents,应用程序(或应用程序组件)可以利用另一个应用程序(或应用程序组件)暴露的功能,例如将消息传递给浏览器以呈现内容或导航应用程序以显示位置并向其提供方向,这种轻型通信模型已被开发人员使用,通过重用现有功能来设计丰富的应用场景,不幸的是,由于许多Android开发人员在安全方面的专门知识有限,ICC机制带来了一些漏洞(Chin等人,2011年;Enck等人,2014年;Felt等人)。)2011年;Li等人,2015年a;Sbirlea等人,2013年;Schlegel等人,2011年)。 国际商会的一些弱点就是。 活动劫持漏洞(其中恶意活动被启动以取代预期的活动)、意图欺骗漏洞(恶意应用程序将意图发送到最初不期望该应用程序的意图的导出组件)等。

不同的研究努力从不同的角度调查了弱点(Bhandari等人,2016年;Bosu等人)。(2017年;Chen等人,2017年;Li等人,2015年b;Liu等人,2017年;Ravitch等人,2014年;Sadeghi等人,2015年),包括发现信息泄漏、分析最不优先原则和增强Android保护机制,尽管取得了重大进展,但这些安全技术基本上是为了检测和减轻单个应用程序中的漏洞(Arp等人,2014年;Bhandari等人),(2015年;Chin等人 )2011年;Gordon等人“2015年;Wei等人,2014年),但未能识别由于多个应用程序交互而产生的漏洞。 由于多个应用程序的交互而产生的漏洞,如串通攻击和特权升级链,无法通过孤立地分析单个应用程序的技术来检测。 因此,迫切需要在这种迅速增长的领域采用安全分析技术,以考虑到这种通信漏洞。

最近,一些研究论文描述了恶意软件串通的原则(Bagheri等人,2015年;Bosu等人,2017年;Bugiel等人,2011年;Chen等人,2017年;Fang等人,2014年;Felt等人,2011年;Liu等人,2017年;Marforio等人,2012年;Markmann等人,2013年;Schlegel等人,2011年),这是恶意软件作者可能演变成的下一步。 串通是指由同一开发人员开发的两个或多个应用程序可能(不必要)相互交互以执行恶意任务的场景。 恶意软件串通的危险在于,每个串通恶意软件只需要请求一组最小的特权,这可能使其在单一应用程序分析机制下显得良性(Bagheri等人,2015年;Bosu等人)。t 2017年;Elish等人,2015年;Liu等人,2017年)。 这个场景可以被认为是两个实用应用程序,一个用于出租车预订,另一个是浏览器应用程序。 现在出租车预订应用程序需要访问客户端的位置,浏览器应用程序需要与互联网连接。 让我们假设这两个应用程序都是由同一个对手开发的,他故意在这两个应用程序之间设置一个通信通道。 每当用户调用出租车预订应用程序,连同服务给用户,它也发送位置信息到浏览器应用程序。 由于浏览器可以访问Internet,所以它可以很容易地将用户的位置信息发送到任何命令和控制(Camp;C)服务器。 恶意软件作者有很强的动机来编写串通恶意软件。

良性应用对中ICC调用的广泛使用使准确的分类具有很大的挑战性(Bosu等人,2017年;Elish等人,2015年;Octeau等人,2016年)。 学术界和行业研究人员提出了分析和检测共谋攻击的解决方案和框架(Bagheri等人)。t2015年;Bhandari等乩,2016,2017年;Bosu等人,2017年;Bugiel等人,2011年;Chen等人,2017年;Klieber等人。t 2014年;Li等人,2015年a,2015年b;Liu等人。t2017年;Ravitch等人)(2014年)。 其中一些甚至可以作为开源(Bosu等人)m2017年;Klieber等人t2014年;Li等人 )2015a,2015b)。 解决方案可以用三种广泛的分析来表征;静态分析、动态分析和基于政策执行的分析。

在(Bosu等人)。t作者提出了一种名为DIALDroid的工具,作为最近最先进的应用程序间ICC分析工具,用于大规模检测串通和特权升级。 他们还提供了第一个应用程序间合谋的30个应用程序的实际应用基准。 到目前为止,这是文献中最有效的应用程序间漏洞检测工具。 MR-Droid(Liu等人,2017年)旨在检测应用程序之间的通信威胁,特别是意图劫持、意图欺骗和串通。 提出了一个基于Map Reduce的框架来扩展组合应用分析。 Did Fail(Klieber等人,2014年)是在一组应用程序中检测组件内和组件间信息流的另一个最先进的方法。 在(Bugiel等人,2011年)中,作者提出了XMandroid,这是第一种检测Android平台中共谋攻击的方法。 它声称在挂起的意图和动态构建的组件(如广播接收器)之间的传输信道的情况下,识别特权升级。 FUSE(Ravitch等人,2014年)是一个工具,首先是单应用静态分析,并附带皮棉工具,以减轻静态分析的局限性,然后是多应用信息流分析。 国际通信委员会TA(Li等人)m 是一个静态污染分析器,用于检测Android应用程序中组件之间的隐私泄漏。 如果与APKCombiner(Li等人,2015a)相结合,它也可以检测应用程序之间的泄漏路径。

本文旨在对Android框架下的应用程序间通信威胁,特别是合谋攻击进行综述。 它提供了对关键研究挑战的更好理解.. 我们提出了一个抽象的共谋定义,并强调了其起源。 在此过程中,我们涵盖了Android模型、Android的通信和权限模型以及导致可能的共谋攻击的主要漏洞。 我们还介绍了现有的威胁分析和详细的技术比较,用于应用程序内和应用程序间分析。 本综述深入了解了已知工具的优点和缺点,并为研究人员提供了这些工具之间的明确比较。 最后,我们对我们未来的研究方向提出了一个见解。

本次调查论文组织如下.. 第二节介绍了Android模型。 在第三节中,我们提出了过程间通信(IPC)模型作为Android编程模型的关键特征之一。 然后,在第4节中,我们提出了Android安全风险。 在第5节中,我们通过提供一个正式的定义来阐述串通,并提供可能发生串通攻击的情况,然后是发现串通攻击的主要挑战。 在第六节中,我们回顾了应用分析。 第7节回顾了最先进的方法,它们之间的彻底比较,以发现串通和吸取经验教训。 在第8节中,我们总结了这篇论文,并对我们未来的研究方向提出了见解。

2.Android

Android是在Android开源项目(AOSP)下开发的,由开放手机联盟(OHA)推广,由谷歌(Wikipedia)维护。 Android是在Linux内核之上开发的,因为它具有强大的驱动模型、高效的内存、流程管理和对核心服务的网络支持。 Linux内核是专门为有限资源组成的嵌入式环境定制的。

Android应用程序是用java编写的;然而,本机代码和共享库是在C/C 中开发的,以支持高性能(Android)。 在Android viz中有两个运行时环境可用。 Dalvik虚拟机(DVM)和Android Runtime(ART)。 在DVM中,使用即时(JIT)编译器将Andro记应用程序的Dex文件按需翻译到各自的本机表示。 然而,在ART的情况下,执行提前(AOT)编译,即在安装时,应用程序本身被编译到就绪状态(Android)。 因此,ART大大提高了Android设备的性能和电池寿命。

一旦操作系统启动完成,一个被称为合子(所有应用程序的父)的过程就会初始化。 当zygote启动时,它预加载所有必要的Java类和资源,启动System Server并打开一个套接字/dev/socket/zygote来侦听启动应用程序的请求。 因此,合子处理和加速应用程序的启动过程。

在下面的部分中,我们介绍了主要的Android应用程序组成,然后是Android安全模型Viz。 应用程序签名、应用程序权限和沙箱环境。

2.1安卓应用程序组成

Android应用程序以常规格式以二进制文件的形式分发,使用.apk作为文件扩展名。 它通常包含以下文件和目录(维基百科)。

  1. 清单文件:清单文件是一个XML配置文件(Android Manifest.xml),每个应用程序一个。 它用于声明应用程序的各种组件、它们的封装(公共或私有)以及应用程序所需的权限。 Android API提供对特定于移动设备的功能的编程访问,如GPS、振动器、通讯录、数据连接、呼叫、短信、摄像机等。 这些API通常受权限保护。 例如Vibrator类,要使用android.. 操作系统。 振动器。 振动(长毫秒)功能,它启动手机振动器几毫秒,权限Android,权限。 必须在应用程序清单文件中声明VIBRATE。
  2. Dex文件:Dalvik可执行文件(classes.dex),其中包含程序的字节码。
  3. 资源目录:资源,包括字符串文字、它们的翻译和对二进制资源的引用。
  4. 布局目录:描述用户界面元素的XML布局。
  5. lib目录:包含特定于处理器软件层的编译代码的目录。
  6. 资产目录:包含应用程序资产的目录,可以由资产管理器检索。

一个Android应用程序由以下四个组件的任何组合组成:

  • 活动:Android库包括一组专门为移动设备接口构建的GUI组件,它们具有小屏幕和低功耗。 这类组件的一种类型是Activity,它表示用户可见的屏幕;
  • 服务:它们执行背景计算;
  • 内容提供者:它们充当类似数据库的数据存储;
  • 广播接收器:它们处理发送给多个目标的通知。

2.2Android安全模型

Android的安全性取决于通过结合应用程序签名、沙箱和权限来限制应用程序。

2.2.1应用程序签名

应用程序签署是进入官方Android市场(GooglePlayStore)的先决条件。 应用程序签名是谷歌与第三方开发人员之间的信任点,以确保应用程序的完整性和开发人员的声誉。 大多数开发人员使用他们可以自己生成的自签名证书,这并不意味着对开发人员的身份进行任何验证。 相反,它们启用了应用程序的无缝更新,并允许由同一开发人员(Android)创建的兄弟应用程序之间的数据重用。

2.2.2申请许可

应用程序权限模型规范应用程序如何访问某些敏感资源,如用户*个人信息或传感器数据(例如相机、GPS等)。 例如,应用程序必须具有READ_CONTACTS权限才能读取用户手机中的条目(Feltet,2011年)。 系统权限分为四个保护级别.. 这份手稿最相关的两个级别是正常和危险的权限。 当应用程序需要访问应用程序沙箱外的数据或资源时,需要正常的权限,但对用户的隐私或其他应用程序的操作几乎没有风险。 例如,设置警报的权限是正常权限。 当应用程序想要涉及用户私有信息或可能影响用户存储数据或其他应用程序操作的数据或资源时,需要危险的权限。 例如,读取用户联系人的能力是一个危险的权限(Android)。 应用程序还可以定义自己的权限,以限制可以执行敏感任务的应用程序中组件的使用。 第三级权限是签名权限,由开发人员在自己的应用程序之间传输资源和数据,同时保护它们不受其他开发人员的应用程序的影响(Egners等人)。)2012)。 最后,签名或系统权限是高级权限,包括更改安

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


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

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

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