• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 政法军事 > 正文

    Android串谋攻击研究

    时间:2020-09-18 07:59:54 来源:达达文档网 本文已影响 达达文档网手机站


    打开文本图片集

    摘要:Android串谋攻击是指多个应用通过某种方式进行权限共享或通信,相互配合,协作完成恶意攻击。由于其实现的方式是由多个应用互相配合,组成一个权限整体,因此容易绕过传统的针对单一应用的权限检测,隐蔽性较强。Google 应用商店以及其他App发布平台没有对应用权限进行有效的审计,具有串谋攻击的应用可以被随意上传到App市场中,具有很大的潜在危害。该文论述了Android平台上应用程序串谋攻击的原理和实现方法,并提出了有效的检测策略。

    关键词: Android; 权限; 串谋攻击

    中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)27-0020-03

    1 引言

    Google公司发行的Android操作系统是目前最为广泛使用的智能设备操作系统,尤其在智能手机市场更是占据了主导地位。Android操作系统的开放性吸引了大批的开发者开发并发布他们的Android应用程序(App)。然而,Google商店及其他主要的App发布平台并没有对开发者上传的App进行有效的权限审计,这造成攻击者能够发行隐藏恶意活动的应用。

    目前,Android操作系统将应用权限的批准是由用户决定的,即应用程序在安装时或运行时(Android 6.0 版本以后)让用户选择接受还是拒绝应用程序所申请的所有权限。然而,大部分用户对应用程序所需要的权限并不了解,盲目的相信并接受权限申请,使得具有恶意目的的应用程序轻易获取了所需的权限。授予应用过多的权限使得它能够进行恶意活动,如泄露敏感信息,发送带有恶意链接的短信,扰乱设备正常功能等等,给用户造成严重的危害。

    为了对应用程序的权限是否合理进行检测,Enck[1]等人提出著名的Kirin方法,通过将应用所需的权限与一组预定义的安全策略规则进行比较,从而让用户知道该应用是否请求过多的权限而进行恶意活动。然而,Kirin只能对单一的应用进行检查。如果同一个开发者开发了多个恶意应用,每个应用都能单独通过检测,然后通过权限共享或应用间通信的方式形成一个串谋真题,Kirin方法就不能够有效将它们检测出来。下面本文从Android基本的安全机制、应用程序串谋攻击的原理以及串谋攻击的检测等方面进行论述。

    2 Android串谋攻击

    2.1 Android安全机制

    Android应用程序主要由四大组件组成:Activities(活动),Services(服务),Content providers(内容提供者)和Broadcaster receivers(广播接受者)。Activities是应用中负责与用户交互的组件,为应用提供可视化的用户界面;Services组件没有图形界面,在后台运行,一般不与用户直接交互,而是为其他组件提供后台服务或监控其他组件的运行状态;Content providers是应用间共享数据提供一种标准的机制;Broadcaster receivers组件接收广播消息,并让应用对外部事件做出响应。当然,并不是所有的Android应用都必须包含这四个组件,可以只包含其中的一个或几个。

    Android是一种权限分离的操作系统,每个应用都运行在一个叫Sandbox(沙箱)的独立环境中,Sandbox实现了应用与系统及其他应用间的相互隔离。每个应用拥有唯一的身份ID和Dalvik虚拟机,它只能访问自己或共享的文件,从而实现应用的安全隔离。Android安全机制要求所有的开发者使用所持有的证书和私钥对他们开发的应用进行数字签名。采用相同数字证书的App被Android系统认为是同一个应用。

    权限规定了Android系统中应用所能够访问的API及资源,是Android系统安全的核心机制之一。Android定义了135种权限共4个类别:normal,dangerous,signature和signature or system。应用的权限需要在AndroidManifest.xml文件中的Uses-permission标签进行声明。应用在安装时向用户申请权限,一旦授权后,除非将此应用删除,否则权限不会被移除。因此,这种权限机制将安全风险转移给了用户。

    2.2 串谋攻击分析

    2.2.1 应用程序间的数据共享

    Android操作系统提供了多种应用间通信的方式,进行串谋攻击的应用可以使用这些通信方式进行协调和共享数据,从而进行恶意活动。这里我们介绍最常用的4中应用间的通信方式:

    ⑴ Intents是用来向其他应用组件(Activities, Services or Broadcast Receivers)发出动作请求的消息对象,主要包括目标组件的名称、要执行的动作、数据等内容。Intents可以分为两种类型:显示Intents和隐式Intents。其中显示Intents通过名称指定目标组件,而隐式Intents并不指定目标名字,常用语激活其他应用程序中的组件。串谋的应用可以将窃取的消息存储在Intents的数据部分发送给另外一个应用执行其他的操作。

    ⑵ Content Providers为不同应用程序之间共享数据提供了统一的接口。与关系数据库类似,它将信息存储在表中,应用使用Content Resolver对象访问Content Providers提供的数据。访问Content Providers需要应用程序在其manifest文件中声明必要的权限。例如,一个应用程序想要访问用户的联系人列表则需要在它的manifest文件中声明READ_CONTACTS权限。应用需要URI才能 Content Providers查询或存储数据,Android系统上任何应用程序都可以通过这些URI来访问或操作数据,从而实现应用间的数据共享。

    ⑶ External Storage是指Android设备的外接存储,它以文件的形式存储数据,任何应用程序都可以通过公共文件或相关API对这些文件进行读写。应用访问外部存储需要声明READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限。

    ⑷ Shared Preferences是一种轻型的Android数据存储方式,它以键-值对的方式存储数据,通常用来存储一些简单的配置信息。尽管它的主要作用不是用于应用程序间的通信,但如果应用声明相应的权限也可以通过键-值对的方式共享数据。

    2.2.2 串谋攻击的定义及模型

    Android串谋攻击是指多个应用通过某种方式进行权限共享或通信,相互配合,协作完成恶意攻击。通过权限共享或相互通信,多个应用可以组成一个协作的整体进行恶意活动,而每一个单独的应用都能够绕过安全软件的权限检测,具有非常高的隐蔽性。

    如图1所示,通讯录App与在线音乐播放器App通过Shared Preferences的数据共享方式实现串谋攻击。通讯录软件具有READ CONTACTS权限,在线播放器拥有INTERNET联网权限,他们中任何一个单独使用都不会存在安全威胁,能够绕过安全软件的权限检查。但当它们同时安装到一个Android系统中,可以实现串谋攻击:通讯录首先读取手机中的联系人,然后通过Shared Preferences将联系人数据共享给在线音乐播放器。在线音乐播放器接收到数据后,通过所连接的互联网将联系人数据发送到远程的服务器上,造成用户信息的泄露。

    ①权限(Permissions)为某个App所申请的权限例,如读写文件、记录音视频、发送网络数据,记为Per。

    ②串谋攻击所带来的威胁(Threaten)是指App对用户或系统带来的恶意威胁,也是开发者希望串谋攻击所达到的目的,记为Threaten。

    ③规则(Rules)是预先定义的安全规则,是产生某种威胁时所必要的权限的集合。例如,窃取联系人资料需要读取联系人、向网络发送数据等动作和权限的组合是一条安全规则,所有安全规则的集合记为R。

    ④通信(Communication)是指App之间能够进行数据共享的方式,包括Shared Preferences、Content Providers、Intents等,所有的通信方式记为C。

    根据上述的实例我们可以总结出串谋攻击的基本模型:

    定义:如果集合S中包含两个以上的App,如果满足如下条件,则集合S中的App是串谋的:

    ① S中App存在通信c使得它们之间能够进行数据共享。

    ② 至少存在一条安全策略规则r∈R是集合S中App权限的并集Per(A) ∪Per(B)的子集

    根据上述定义可以来描述例1:

    我们将通讯录应用记为Contact_App,在线音乐播放器应用记为Music_App,那么,Contact_App和Music_App请求的权限为:Per(Contact_APP)={READ CONTACTS} 、Per(Music_APP)={INTERNET}。安全策略规则为窃取联系人数据规则(Steal_Contact_Data)r={Steal_Contact_Data}。该安全策略规则对应的威胁为窃取联系人数据:Threaten ={Steal_Contact_Data}。Contact_App与Music_App数据共享方式:c={Shared Preferences},则:

    {Per(Contact_App) ∪Per(Music_App),c∈C} → r{Steal_Contact_Data}

    即Contact_App和Music_App的权限合集匹配窃取联系人数据的安全规则(Steal_ Contact_Data),因此,这两个App是串谋攻击,能够造成联系人数据泄露的威胁Threaten (Steal_Contact_Data)。

    2.3 串谋攻击的检测策略

    正如引言中所述,传统的App权限检测方法只能够对单一的App进行权限检测,而对于将权限分散到多个App中的串谋攻击方式则效果不佳。因此,针对第二节中我们提到的串谋攻击的特点,本节提出了一种检测串谋攻击的策略,其主要步骤如下:

    ① 对于一个应用App1,检测它是否能够与其他应用通信,如果能,提取通信方式c和能够与其通信的App2,与App1组成集合S。

    ② 检查集合S中各应用的权限,将所有的权限求并集Per(S)。

    ③ 将Per(S)逐一与预定义的安全策略规则集R中的每一条安全策略规则进行比较。

    ④ 如果某一安全策略规则r中所包含的权限集合是Per(S)权限集合的一个子集,则该安全策略规则r与Per(S)相匹配,S中的应用是串谋关系,能够进行串谋攻击。

    ⑤ 如果不存在(4)中的匹配,则S中的应用不能进行串谋攻击。

    上述步骤中,提取应用的权限和通信方式c、预定义安全策略规则集R是本方法核心的部分。应用的APK文件中包含一个AndroidManifest.xml文件,这是应用的全局配置文件,其中包含了该应用所请求的所有权限。因此我们可以使用Androguard等工具对APK进行反编译后提取其中的权限。APP间的通信方式主要有Intents、Content Providers、External storage和Share Preferences。通过对APK反编译,提取所调用的API,结合已经提取出的权限列表可以确定与其他应用的通信方式。安全策略规则集则参考Enck等人提出的安全策略规则,对其进行扩充记录键盘输入信息、录制通话等安全策略规则。

    3 结论

    Android 串谋攻击是一种基于权限系统的攻击方式,由于这种攻击方式是将进行恶意活动的所需权限和实现操作分布在多个应用中,传统的权限检测方法无法很好的检测出来。本文介绍了串谋攻击的基本原理,尤其详细分析应用实现串谋攻击所使用的主要通信或数据共享方法,并给出了串谋攻击的模型定义,便于对此种攻击方式的研究和分析。针对Android串谋攻击的特点,本文提出了一种检测策略,即将能够互相通信的应用作为一个整体,对这个整体进行权限的检测,进而据此判断他们是否能够串谋进行恶意活动。

    虽然本文是初步的分析了串谋攻击的原理并提出了检测方法,但是这是在比较理想的境中进行的。在实际的Android应用市场环境中,应用之间存在各种实现数据共享的方式,而且用于判定的预定义的安全策略规则集也不够完备,这都需要进一步的研究和完善。

    参考文献:

    [1] Enck W, Ongtang M, and McDaniel P. On Lightweight Mobile Phone Application[C].Proceedings of the 16th ACM Conference on Computer and Communications Security, Chicago, USA, 2009:235-245,.

    [2] Cam N T, Van Hau P, Nguyen T. Android Security Analysis Based on Inter-application Relationships[M]//Information Science and Applications (ICISA) 2016. Springer Singapore, 2016: 689-700.

    [3] Kashefi I, Kassiri M, Salleh M. Preventing Collusion Attack in Android[J]. International Arab Journal of Information Technology (IAJIT), 2015, 12.

    [4] Marforio C, Francillon A, Capkun S, et al. Application collusion attack on the permission-based security model and its implications for modern smartphone systems[M]. Zürich, Switzerland: Department of Computer Science, ETH Zurich, 2011.

    [5] Memon A M, Anwar A. Colluding Apps: Tomorrow"s Mobile Malware Threat[J]. IEEE Security & Privacy, 2015, 13(6): 77-81.

    [6] Chin E, Felt A P, Greenwood K, et al. Analyzing inter-application communication in Android[C]//Proceedings of the 9th international conference on Mobile systems, applications, and services. ACM, 2011: 239-252.

    [7] Dicker C. Android Security: Delusion to Collusion[J]. 2014.

    [8] 闫梅,彭新光. 基于Android安全机制的权限检测系统[J]. 计算机工程与设计,2013(3):854-858.

    [9] 朱佳伟,喻梁文,关志,陈钟. Android权限机制安全研究综述[J]. 计算机应用究,2015(10):2881-2885.

    [10] 张金鑫,杨晓辉. 基于权限分析的Android应用程序检测系统[J]. 信息网络安全,2014(7):30-34.

    相关热词搜索: 攻击 研究 Android

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网