论文部分内容阅读
Android系统自发布伊始就受到了市场的青睐,这与其开源的特性不无关系。随着基于Android系统移动手机种类和数量的增长,开源特性导致的安全问题变的越来越严重。尤其是用户隐私信息泄露漏洞,也因为Android系统自身以及第三方开发公司原因而普遍存在。传统的数据泄露漏洞检测技术存在检测覆盖率不足等问题。为了解决上述问题,本论文使用基于概率神经网络的机器学习方法分类Android系统中的API函数,并使用静态污点分析技术的漏洞检测模型对隐私数据泄露漏洞进行检测。主要进行了以下部分的研究:(1)对Android系统的安全机制以及发展比较成熟的漏洞检测技术进行详细研究。介绍了Android系统中Linux权限机制、“沙箱”机制、Android权限机制以及程序使用的签名机制等。又从污点传播分析技术、可达路径分析技术、符号执行技术以及模糊检测技术等方面介绍了常用的漏洞检测技术。(2)介绍了基于污点分析的检测技术中对source源函数列表和sink发送函数列表的获取方式,指出其中的不足。提出使用机器学习方法对Android系统的API函数进行分类。并详细介绍了API函数的特征分析以及提取方法,提出利用基于概率神经网络的机器学习分类算法,并通过Bagging集成方法对分类效果进行提升。(3)在通过机器学习得到source源函数列表和sink发送函数列表的基础上,实现了基于静态污点分析的数据泄露漏洞检测模型。通过Android应用程序预处理、控制流图生成、反射函数处理以及基于按需别名分析的静态污点分析,对可能的应用程序数据泄露漏洞进行检测。在提高漏洞检测覆盖率的基础上有效的避免静态污点分析的高误报率问题。本论文使用基于集成概率神经网络的机器学习方法以及基于静态污点传播分析的漏洞检测模型,使用Java语言、Soot开源分析工具以及matlab数学软件等对机器学习以及检测模型进行实现,并通过实验对分类效果的查准率和查全率以及漏洞检测模型的覆盖率方面进行了验证。