论文部分内容阅读
移动互联网的快速发展和移动智能终端的迅速普及使得各类应用商店中应用程序的数量和下载量呈现出爆炸性增长,同时出现的是大量移动恶意代码被注入到应用程序中,给用户带来了严重的安全隐患,其中最严重也是用户最担心的是敏感数据的泄露。因此,敏感数据的安全性研究在当下具有非常重要的意义。 由于移动智能终端自身的运算和续航等问题,目前运行于终端上的检测敏感数据泄露的应用软件大都只能进行简单的访问提醒和泄露预警等工作,而且这些应用由于申请权限过高,本身就存在着泄露敏感数据行为的可能性。有一些研究方法是将检测系统部署在计算机中,通过静态行为分析或者动态行为分析的方法检测敏感数据的泄露行为。这些方法大多只兼顾到一个方面,并且由于基本依靠人工检测,效率很低。基于以上问题,本文设计并实现了运行于计算机中的对敏感数据泄露行为进行检测的系统——离线分析系统。本系统针对应用程序进行检测和分析,能够在保持移动智能终端完整性的前提下,检测出设备中可能或确实发生了敏感数据泄露行为的应用程序,并以报告的形式呈现给用户。本文的具体工作内容如下: 1.针对Android平台设计了离线分析系统,并开发了图形化界面,本系统既包含静态行为分析方法,又包括动态行为分析方法。 2.静态分析模块对采集到的应用程序进行反编译,分析配置文件中的权限信息等内容以及源码中调用的API信息,同时在该模块中设计了一套风险评级标准,用于判定应用程序的风险等级。动态分析模块将应用程序安装到模拟器中,利用自动化交互模块模拟人机交互,触发恶意行为,并通过Sdroid子系统记录敏感数据的泄露行为。 3.研究污点传播系统TaintDroid的原理,包括污点标签的添加、传播以及检测机制,并在此基础上进行扩展、改进和优化,增加了污点标签的类型,支持了第三方动态库的调用,添加了关键函数调用的记录等,从而实现了运行于模拟器中的动态污点检测子系统Sdroid的设计。 4.设计和实现了自动化测试模块,该模块能够实时分析界面和控件信息,并自动完成文本输入和按键点击等交互事件。提出了用无向图的方式构造Activity的调用层次图,并以邻接表的形式进行存储。 5.设计并实现了其他模块,导入APK文件模块实现了用户设备中应用程序的采集,报告生成模块用于输出检测报告,历史纪录模块用于保存检测结果。