论文部分内容阅读
随着移动互联网的高速发展,人们对智能设备的使用场景已经越来越多,其中以智能手机为主流的移动设备不仅为人们的生活添加了不少的娱乐性,也使人们在社交、出行、购物和阅读等方面更加便捷。Android系统由于其良好的操作界面和丰富的应用程序,自从发布以来便深受人们的青睐。但是,Android系统的安全问题也备受人们关注。自2010年,首个Android病毒Trojan-SMS被查到后,不同种类的Android恶意软件呈现出猛烈增长的状况。因此,针对Android恶意软件检测方法的研究是及其重要的。近年来,随着机器学习相关技术的不断发展,可以将机器学习的相关技术应用到Android恶意软件的检测方法中。但是,基于机器学习方法的Android恶意软件检测中存在一些潜在问题:第一,对于新出现的Android恶意软件,能搜集到的样本较少,使得分类器学习不充分导致分类准确率较低。第二,在传统的多视图协同训练方法中,通过两个充分冗余的视图训练出来两个分类器,在对一个未标记样本进行预测时,如果两个分类器的预测结果相反,同时置信度又相同的情况,该方案难以给出一个较为准确的结果。本文针对此两种情况,从以下三个方面提出了改进方案:第一,提出了使用Android应用软件的三种特征分别从不同的视图来描述该软件。通过对大量文献进行研究和实验,本文使用Android应用程序的权限申请特征、敏感API调用特征以及Dalvik OpCode特征分别构建三个视图从不同角度描述Android应用软件,并使用卡方检验方法过滤了一些与恶意软件弱相关性的权限。本文最终选取了120个常用的系统权限作为权限申请特征集合;33个敏感API调用序列构成API特征集合;包含了89条不同种类的Dalvik OpCode指令的OpCode特征集合。第二,提出了三个视图协同训练的检测方法。本文以Android应用软件的权限特征、API调用特征和OpCode特征分别建立三个子视图,针对不同子视图从支持向量机、朴素贝叶斯、K邻近、随机森林四个分类算法中分别甄选出最优的机器学习算法进行训练分类器。然后基于协同训练思想,利用单个分类器对未标记样本进行标记,把置信度最高的样本数据加入到另外两个分类器的训练集,以此达到三个分类器性能同步提升。第三,在对未知样本预测时,本文借鉴了集成学习策略,提出了通过三个分类器对未知样本的预测结果进行投票,以少数服从多数的思想得到最终结果。实验结果证明,本方案在单个视图分类最优的前提下,利用协同训练思想通过三个分类器进行协同训练后,各分类器的性能都有着明显的改善,表明本方案能够在已标记样本较少的情况下有效提升Android恶意软件的检测准确率。通过与传统的两视图协同分类对比实验结果显示,本方案可以在一定程度上弥补两视图协同分类方案因两个分类器预测结果相反,且置信度相等时难以给出准确结果的不足。