论文部分内容阅读
随着移动互联网的迅猛发展,移动应用软件广泛应用于人们日常生活与工作中,人们对移动设备的使用越来越多。常见的移动应用开发平台有Android平台和IOS平台,其中Android平台由于用户体验良好以及开放性与开源性的特征,受到了广大开发者的青睐,这使得市场上Android应用数量极其丰富,涉及到日常工作和生活的各个方面。在Android系统上的安卓应用日新月异,但由于各种Android市场对应用审核不严格,同时移动设备中存储了用户许多敏感数据,使其受到恶意应用越来越大的冲击,安卓安全形势日益严峻。安卓安全对人们的隐私和个人信息尤为重要,其中安卓漏洞问题也一直是人们研究的重点,目前Android漏洞检测主要包含了静态分析和动态分析。静态分析无法模拟应用程序的真实运行状态而存在误报率高问题,且对内存泄漏和并发错误诊断较差,动态分析能动态模拟应用的运行情况并相对静态分析具有较好的准确率,但动态分析分析起来复杂偏重量级并经常不能达到理想的效果。因此本文以提高安卓漏洞分析准确率为目的,对已有的安卓漏洞分析技术进行研究,提出了一种静态和动态分析相结合的安卓漏洞分析方法,基于该方法,设计并实现一个静动态相结合的安卓漏洞分析原型系统。第一章介绍了安卓漏洞分析系统的关键组成部分,给出了研究问题的研究背景和研究意义,并介绍了安卓漏洞分析技术的国内外研究现状。第二章介绍了安卓漏洞分析的相关技术基础。主要对Android系统架构进行了详细介绍,即内核、运行时、库和应用框架等。接着对安卓应用文件的安卓漏洞相关的文件进行了分析,着重对安卓项目的权限文件如Androidmanifest文件进行了详细介绍,对.dex文件和smali格式做了介绍,为后面章节的安卓漏洞分析技术奠定了理论基础。第三章分析了安卓漏洞分析关键技术。首先从六个方面简单介绍了安卓安全机制,然后分别对安卓漏洞静态分析技术和动态分析技术进行了详细说明,重点介绍了静态分析中的逆向工程和源码审计手段,以及动态分析中的沙盒分析与污点分析技术。通过对安卓漏洞分析关键技术的阐述,为第四章结合静动态安卓漏洞分析系统的设计提供了技术基础。第四章对安卓漏洞分析系统进行了整体设计,首先结合静态和动态分析技术给出了系统整体框架设计并对系统功能进行了总体描述,接着对系统用到的开发工具进行了简单介绍,最后分两个模块分别介绍了系统的详细设计思路。第五章提出了安卓漏洞分析系统的原型实现,介绍了搭建系统开发环境,对系统的原型实现分两部分进行阐述,最后验证了系统的有效性,对系统进行了性能测试。第六章对全文进行总结,阐述本文主要工作和重要成果,并对后续的研究提出了建设性的展望。