论文部分内容阅读
Android手机系统由于其易用和开放性,迅速占领了智能手机操作系统市场的最大份额。而其开放性也导致系统本身安全问题尤为突出。自2010年起大量Android恶意软件爆发式地发展起来,并且种类多种多样。恶意软件的数量已超出了对软件进行人工分析所能承受的量级。随着机器学习领域研究的深入,采用机器学习方法对海量恶意软件进行分析鉴别已成为一个趋势。但基于机器学习方法的Android恶意软件检测存在一些潜在的问题,该文重点关注三个问题:1.对于新出现类型的Android恶意软件,能收集到的样本数量有限,这将使学习的过程不充分从而导致最后的恶意软件鉴别准确率降低。2.随着Android抗逆向分析技术的发展,普通的基于反编译方式的静态分析方法将在运用了此技术的恶意软件上失效。3.由于用于描述一个Android软件的特征太多,一些特征维度非但无法对恶意软件的正确鉴别提供支持,反而会起到相反的作用。去除这些冗余的特征维度是改善检测性能的有效途径。为了改善Android恶意软件静态检测中,在已知样本较少的情况下,检测准确率较低的情况。该文在机器学习的基础上,提出一种多视图协同训练(Multiview Co-training Classification,MVCC)的检测方法。该方法对Android软件进行逆向分析及特征提取,将特征分割权限申请和API调用两个非重叠子视图,针对子视图分别生成分类器。同时基于Co-training协同训练算法,对两个分类器进行协同训练,实现了在已知样本较少的情况下,两个单独分类器检测性能的同步提升。实验结果证明,多视图协同训练方案能有效提升已知样本较少情况下的Android恶意软件静态检测准确率。针对一些因采用了DEX加密等加固手段而无法实现反编译静态特征提取的Android应用软件,提出了一种动态特征提取方案,实现了基于Zygote注入技术的动态API调用视图的特征提取。该方案将APK样本安装到测试机上,并编写基于uiautomator框架的用户UI行为模拟程序和触发多种系统广播的测试程序来触发样本潜在的API调用行为。同时基于Xposed框架Hook目标程序的部分安全敏感API来实现样本API调用的动态监测和动态API视图上的特征提取。对静态权限申请视图和动态API调用视图两个子视图的分类器进行了协同训练,实验验证了Multi-view Co-training Classification对动态API视图和权限视图同样适用。为解决API视图和权限视图上的部分冗余特征对分类器分类性能的不良影响问题,该文提出逆向特征过滤(Reverse Feature Filtering,RFF)算法。RFF算法比较了完全特征下的检测结果和缺少某一维特征时的检测结果,然后将结果信息反馈给样本特征重构模块来对冗余特征群做综合比较,剔除其中对分类器性能影响最差的特征维度,然后迭代比较和剔除过程直到分类性能最优为止。该算法去除了部分冗余的特征维度,提高了分类器的泛化推广能力,进一步提高了对未知恶意软件的检测准确率。