论文部分内容阅读
随着互联网的飞速发展,人们生活的方方面面已经和互联网深度融合。生活因互联网变得更加方便的同时,也使得人们更加容易受到来自互联网威胁的伤害,特别是以恶意代码攻击为代表的安全威胁。一方面,恶意代码数量增长迅速;另一方面,虽然恶意代码分析和检测技术不断进步,但恶意代码在发展的过程中为了规避检测,不断进化产生新的变种,并迅速复制和传播,导致近几年安全事件集中爆发。传统静态分析方法往往无法有效解决加壳、混淆技术带来的影响;传统动态分析方法在处理海量恶意代码时往往效率不高且执行路径单一。在基于机器学习算法的恶意代码分析方法中,与深度学习算法相比,基于传统机器学习算法的分析方法在提取恶意代码特征方面存在无法自动提取特征而需要人工设计特征的不足。针对现有恶意代码分析方法存在的不足,本文基于深度学习的理论与方法,针对基于Word2Vec算法的恶意代码基因向量化表示、基于Doc2Vec算法的恶意代码基因序列向量化表示、基于神经网络的恶意代码分类与聚类等方面进行了研究。主要工作如下:1.提出了恶意代码基因提取和基于Word2Vec的恶意代码基因向量化表示方法。(1)在恶意代码基因提取阶段,从恶意代码行为层面出发,基于海量恶意代码的自动反汇编组件,利用行进递归算法实现恶意代码基因序列的提取;(2)在恶意代码基因的向量化表示阶段,基于Word2Vec算法构建恶意代码基因预测模型,将恶意代码基因转化为高维实数向量,并利用恶意代码基因向量之间的空间向量表征恶意代码基因之间的关联性和相似性。实验通过恶意代码基因向量的语义推理和可视化证明,基于Word2Vec的恶意代码基因向量化表示模型可以很好的表征恶意代码基因的语义特征;2.设计并实现了基于卷积神经网络(Convolution Neural Network,CNN)的分类模型SMM_CNN(Static Malware Matrix_Convolution Neural Network),模型针对两种输入完成两种不同的任务。(1)针对经混淆的恶意代码,将恶意代码可执行文件转化为二进制码矩阵作为模型的输入,通过神经网络自动从数据中提取特征,主要解决因无法正确反汇编而不能有效提取特征的问题;(2)针对未经混淆的恶意代码,在1中提到的恶意代码基因向量化的基础上将恶意代码基因序列矩阵化,以具有语义特性和序列特性恶意代码基因矩阵为输入,通过卷积层和池化层自动对恶意代码基因矩阵提取特征,进行家族分类。实验证明,针对经混淆的恶意代码,SMM_CNN模型的分类准确率比传统的图像纹理匹配模型高出了8.4%,一定程度上实现恶意代码静态抗混淆;而针对未经混淆的恶意代码,SMM_CNN模型的分类性能更佳,达到98.04%;3.设计并实现了SMM_CNN分类模型的改进模型SMGS_RCNN(Static Malware Gene Sequences_Recurrent Convolution Neural Network)模型。针对SMM_CNN模型获取恶意代码基因的全序列信息能力相对较弱的特点,该模型在SMM_CNN的基础上结合循环神经网络(Recurrent Neuron Network,RNN),利用LSTM(Long Short-Term Memory)组件的遗忘机制、增加保存机制和长期记忆信息机制,提取恶意代码基因序列的序列特征。实验证明,相对于SMM_CNN模型,SMGS_RCNN的分类准确率提高了0.83%;4.设计并实现了一种表征恶意代码基因序列信息和整体语义的恶意代码基因序列向量化表示方法,并将其应用在恶意代码的聚类中。在恶意代码基因序列向量化表示阶段,针对恶意代码基因序列构建预测模型,将恶意代码基因序列转化为高维实数向量,并通过恶意代码基因序列向量表征恶意代码基因上下文信息和恶意代码整体语义信息。通过无监督学习算法,实现恶意代码家族聚类。实验表明,相对于随机编码的表示方法,该方法在聚类模型上表现出更好的性能。