论文部分内容阅读
随着安卓系统市场占有率成为全球首位,安卓系统的应用安全问题也愈加严峻,恶意应用程序逐渐对安卓平台的安全性构成了诸多威胁,这些应用程序的数量和多样性不断增加,使得传统的防护手段逐渐失效,如何有效的检测安卓恶意应用成为了移动安全领域的一个重点研究课题。目前,安卓恶意应用检测包括基于静态分析技术的检测方法和基于动态分析技术的检测方法,同时两种检测方法又分别结合恶意样本规则库和机器学习技术进行具体实现。本文研究范畴为基于机器学习技术和静态分析技术的安卓恶意应用检测方法。为通过安卓应用的静态代码特征结合机器学习算法实现安卓恶意应用检测,本文提出了一种基于代码语义的多维特征提取方法、一种基于频繁模式的特征处理方法,并基于以上方法设计实现了一种基于机器学习的安卓恶意应用检测系统。本文主要研究内容如下:(1)研究安卓应用的静态代码特征提取方法。在应用机器学习算法对安卓应用进行检测的过程中,如果静态代码特征提取不够深入,会直接导致检测过程中的召回率低、准确性差等问题。本文为全面有效提取安卓应用的静态代码特征,提出了一种基于代码语义的多维特征提取方法。该方法对安卓APK文件进行解析,从逆向代码特征、程序语义特征、漏洞模式特征三个方面进行特征提取,解决了APK程序内部的用户自定义函数问题、代码混淆保护问题、死代码问题、数据流分析冗余问题,有效实现了对安卓应用程序的静态分析;(2)研究安卓应用静态代码特征处理方法。随着技术发展,安卓应用能够提取的静态代码特征维度已能够达到十万级单位,影响特征提取及检测效率。本文为对静态代码特征进行有效筛选,提出了一种基于频繁模式的特征处理方法。该方法对形成的多维语义特征进行基于支持度、区分度和相似度的特征过滤,并进行了频繁特征模式的挖掘,能够有效去除冗余特征,提高模型训练和恶意应用检测的效果和性能;(3)研究基于机器学习的安卓恶意应用检测方法。为通过安卓应用静态代码特征,基于机器学习算法完成安卓恶意应用检测,本文设计并实现了一种基于机器学习的安卓恶意应用检测系统。该系统结合基于代码语义的多维特征提取方法、基于频繁模式的特征处理方法,并基于机器学习技术实现了对安卓恶意应用的识别,最终检测准确度达到了96.5%。