论文部分内容阅读
面对近年来层出不穷的安卓恶意软件给广大用户带来的安全威胁,快速精准的安卓恶意软件检测技术研究刻不容缓。虽然现有基于机器学习的检测方法能检测出部分未知安卓恶意软件,但是仍然面临着特征繁杂、检测效率低和技术实现复杂等难题。本文对基于机器学习的检测方法进行了深入的研究。针对高维特征影响机器学习模型训练效率的问题,本文提出一种特征选择新方法。该方法根据特征在样本数据集的分布特点,计算特征在恶意软件中出现的频率和在恶意软件和正常软件中出现的频率差异,并取上述两值的调和平均数,即敏感系数,度量特征识别恶意软件的能力,选择敏感系数较高的特征。实验中对权限和API两类特征进行选择,结果表明,经过特征选择后,梯度提升决策树(Gradient Boosting Decision Tree,GBDT)分类模型在保证检测准确率的同时训练时间可缩短80%以上。针对基于混合多特征的检测方法效率有待提高的问题,本文提出一种基于两级分类的检测方法。第一级分类利用提取较快的权限特征快速识别恶意软件,并判断恶意类别识别的可靠性,对识别不可靠以及识别为正常的软件进行第二级分类,以减少误检测和漏检测;第二级分类利用检测精度较高的API特征识别恶意或正常软件,从而保证了检测精度,又提高了整体的检测效率。与单纯混合多个API特征的检测方法对比,实验结果表明该方法在保证98.4%的检测准确率的同时平均检测时间可缩短43%。针对基于程序结构分析的检测方法中,静态代码分析复杂度和工作量大的问题,本文提出一种基于深度API结构关系分析的检测方法。该方法选取敏感系数较高的API特征,并分析其在程序结构上的共现关系,以避免程序的全局结构分析,降低静态代码分析的复杂度。为了进一步学习API特征及其结构关系,构造共现矩阵用于卷积神经网络学习分类。实验结果表明该方法的检测准确率可达99.2%,优于基于权限、API和操作码序列的检测方法。综上所述,本文筛选了权限和API特征,并在此基础上提出两种新的安卓恶意软件检测方法。与相关研究相比,这两种方法在检测效率和技术实现复杂度上存在一定的优势。