论文部分内容阅读
Android操作系统自2008年问世之后,经过几年的迅猛发展现已成为市场占有率最高的手机操作系统。基于此系统开发的Android应用数量庞大,但质量却参差不齐。手机内保存着用户的大量个人隐私信息,如果安装了存在漏洞的应用程序,其漏洞容易被恶意攻击者利用,导致用户隐私泄露和财产损失。目前各应用市场均没有有效的对Android应用进行自身安全性检测的机制,因此本文旨在提出一个全面有效的对Android应用进行漏洞检测的方法以提高Android应用的安全性。 本文对现有的针对Android应用分析的研究进行了调研,现有的研究主要分为静态分析和动态分析两种,由于静态分析不需要实际运行应用程序,具有快速高效、代码覆盖率高等优点,适用于大批量样本的检测,因此本文将采用静态分析的方法。对Android应用漏洞的静态分析研究中检测精度最高的为基于数据流的研究,但现有提供数据分析的研究都只是针对某一类型漏洞进行检测,其应用在漏洞检测上的实际效果还有待检验。提供整体漏洞检测方案的研究如Androbugs工具虽然提供了对Android应用中常见的多个漏洞进行检测的方法,但是其并没有提供数据流级别的检测,导致某些特定的漏洞的检测精度差强人意。 为弥补现有研究中缺乏基于数据流分析的漏洞检测方法研究,本文根据Android应用的特点,提出了一种基于Dalvik寄存器污点分析的Android应用漏洞检测方法,它能够有效的对Android应用中存在的多个常见漏洞进行检测,帮助开发人员定位到漏洞的位置,增强应用的安全性。本文的研究内容和成果如下: (1)统计了多个存在于Android应用中的常见漏洞,并根据漏洞的存在原理和位置对其进行分类,同时根据其检测原理进行了编码以实现相应的漏洞检测; (2)分析了Android应用漏洞的检测原理,总结了多个漏洞检测项并指出基于数据流的检测是提高检测效率和精度的关键环节; (3)提出了基于数据流分析的Android应用漏洞检测方法,其根据Android应用的特点将Dalvik寄存器作为污点,设计了污点分析模块以实现数据流分析功能; (4)实现了该Android应用漏洞检测方法的原型系统AndroDetector,将其与多个漏洞检测平台进行对比实验,实现结果表明本文提出的Android应用漏洞检测方法能够有效快速的检测常见的多种Android应用漏洞。