论文部分内容阅读
由于Android系统在移动终端市场上占有较高的使用率,这使得针对Android系统的恶意软件数量也在逐年急剧增长,而这些恶意软件严重地侵害了广大用户的隐私和消费安全,因此针对Android系统中恶意应用软件检测技术的研究显得尤为重要。目前主流的静态检测方法面临着两方面问题:一方面,随着恶意软件的代码混淆技术的发展,主流的静态检测方法因为无法识别混淆后的代码而导致检测率逐年降低;另一方面,传统的静态检测方法只采用单一特征或算法来进行恶意软件检测,导致检测精确度不高。因此,本文提出了基于多模型融合的Android恶意软件检测方法,来解决上述问题。论文的主要工作如下:(1)针对当前主流的静态检测方法无法识别混淆后的代码,导致检测率降低的问题,提出了一种基于抽象API调用序列的Android恶意软件检测方法。该方法采用Package模式和Family模式来识别和抽象出原始API中混淆的包名/家族名、开发者的自定义包名/家族名、系统原生的API包名/家族名以及第三方组织提供的API包名/家族名。实验结果表明,相比传统的API调用序列检测方法,基于抽象API调用序列的Android恶意软件检测方法的精确率提高了13.7%,从而证明了该方法能有效识别Android应用层中的混淆代码,提高了恶意软件检测的准确率。(2)针对传统的静态检测方法只采用单一特征或算法来进行恶意软件检测,导致检测精确度不高的问题,提出了一种基于多模型融合的Android恶意软件检测方法。该方法提取了应用软件中的权限、Dalvik操作码以及抽象API调用序列三类特征,并均使用SVM、RandomForest和AdaBoost三种分类算法来构建基于权限的检测模型、基于Dalvik操作码的检测模型和基于抽象API调用序列的检测模型。最后,采用Stacking算法将这三种模型融合起来,进行恶意软件检测。实验结果表明,相比上述三种单一特征模型检测方法中的最好结果,该方法的精确率提高了2.1%,召回率提高了2.6%,误报率减低了1.5%,从而验证了该方法优于单一特征模型检测方法。(3)设计并实现了基于多模型融合的Android恶意软件检测方法,并使用多项评价指标进行统计分析。实验结果表明,该方法的检测率达到了98.2%,召回率高达99%,误报率降低到2.1%。相比主流的静态检测方法——基于权限和源代码的多分类器融合方法和基于多特征的检测方法中的最好结果,该方法的精确率提高了3%,召回率提高了3.3%,误报率降低了1.6%,从而验证了该方法具有更有效检测恶意软件的能力。