安卓应用组件间通信的分析方法与实现
作者单位:西安电子科技大学
学位级别:硕士
导师姓名:田聪
授予年度:2017年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:安卓应用程序 组件间通信 复用意图 组件间意图修改 组件间通信流 组件间通信图
摘 要:随着移动互联网的普及和智能手机的广泛使用,Android系统已经成为智能手机市场最主流的操作系统。Android操作系统的成功在一定程度上归因于其通信模型,即组件间通信(ICC),该模型促进了具有松散耦合特点的Android应用程序的开发。Android应用组件间的数据交换可以发生在单个应用程序上,也可以跨越多个应用程序。不幸的是,提供组件间数据交换机制的ICC模型会被Android恶意程序滥用,从而对移动终端用户的隐私造成严重的威胁。因此,对于检测Android恶意应用的隐私数据泄露来说,ICC分析将扮演一个极其关键的角色,其分析结果能够直接影响泄露检测的准确性。然而,在现有的ICC分析方法中,均没有考虑到组件间意图修改(一个Intent在启动目标组件后、且在定义该Intent的组件外发生的修改,Inter-Component Intent Revision,ICIR)的使用。因此,与ICIR相关的隐私数据泄露可能会逃脱追踪。本文致力于Android应用中包含ICIR的ICC分析,主要贡献分为以下几点:1.根据Android应用组件间通信模型的特点以及现有工具的缺点,提出相关的分析理论和方法。(1)通过使用插桩的方法对Android应用程序进行分析,并对分析的结果进行整合,从而获得与ICIR相关的ICC值。(2)在补充分析ICIR的基础上,将污点流分析工具广泛使用的ICC Link模型扩展为表达性更强的ICC Flow(Inter-Component Communication Flow,ICCF)。(3)为了更加直观地提供ICC分析结果,本文构建了ICCG(Inter-Component Communication Graph,ICCG),ICCG较ICCF更便于访问和使用。2.基于已有的工具Soot和IC3,实现了Android应用组件间通信分析工具Icca,该工具不仅能分析ICIR相关的ICC值,构建ICCF、ICCG,而且提供面向污点流分析工具IccTA的接口,从而使得该污点流分析工具的结果更加完备。3.为了测试方法的正确性和有效性,以及工具Icca的健壮性,本文设计了一系列的实验。该实验涵盖2260个Android应用程序,包括在Google Play上随机下载的1000个Android应用,以及MalGenome数据集中的1260个恶意Android应用。而且,本文从ICIR分析、目标组件分析等五个方面对Icca进行评估,总体结果是令人满意的。