一种基于深度森林的恶意代码分类方法技术

技术编号:18526400 阅读:28 留言:0更新日期:2018-07-25 12:56
本发明专利技术公开了基于深度森林的恶意代码分类方法,属于网络安全技术领域,包括步骤:数据预处理,将恶意代码二进制文件映射为图像,并对图像进行缩放和标准化处理;提取图像的HOG特征向量集;将HOG特征向量集转化为矩阵,并且分为训练集和测试集;构建随机森林;构建完全随机森林;构建深度森林,深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构由相等数量的随机森林和完全随机森林组成;用深度森林对所述图像进行分类。本申请充分利用了恶意代码图像的空间相似性。使本申请的基于深度森林的恶意代码分类方法在分类的准确率、宏F1度量上的精度都很高,并且本申请通过利用深度森林不同大小的窗口扫描HOG特征矩阵,也解决了二进制文件重新分配的问题。

【技术实现步骤摘要】
一种基于深度森林的恶意代码分类方法
本专利技术属于网络安全
,特别是涉及一种对恶意代码进行分类的方法。
技术介绍
随着互联网的蓬勃发展,恶意代码已经成为威胁互联网安全的主要因素之一。通过将恶意代码映射为图像后属于同一家族的恶意代码图像具有视觉相似性,不同家族的恶意代码图像之间具有一定的差异性,根据恶意代码图像的这一特点,可以提取恶意代码图像特征并使用分类算法对恶意代码进行分类。例如NatarajL等人将恶意代码二进制文件映射为图像,利用Gabor滤波器多尺度和多方向的特点提取图像的全局特征,然后使用最近邻算法对恶意代码进行分类。KancherlaK等人将恶意代码图像的强度特征和小波特征与Gabor滤波器提取的全局特征结合,然后使用这三种特征对恶意代码进行分类。HanKS等人将恶意代码图像的熵值映射到曲线上,然后计算曲线的相似度对恶意代码分类。FarrokhmaneshM等人将恶意代码映射为灰度图,使用三种哈希算法提取恶意代码的指纹,然后计算图像指纹之间的距离对恶意代码分类。但是上述对恶意代码分类的方法不能解决恶意代码二进制文件重新分配的问题,以及上述分类方法的分类精度还略低。
技术实现思路
本专利技术主要解决的技术问题是提供一种分类精度高的基于深度森林的恶意代码分类方法,并且解决恶意代码二进制文件重新分配的问题。为解决上述技术问题,本专利技术的基于深度森林的恶意代码分类方法包括以下步骤:步骤一:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;步骤二:提取所述图像的HOG特征向量集f;步骤三:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;步骤四:构建随机森林;步骤五:构建完全随机森林;步骤六:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;步骤七:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类。进一步优选地,在步骤一中,将恶意代码二进制文件映射为图像的过程包括以下步骤:步骤1-1:对所述恶意代码二进制文件,读取8bit为一个无符号的整型,固定的行宽为一个向量,生成一个二维数组;步骤1-2:所述二维数组的每个元素范围取值为[0,255],其中0表示黑色,255表示白色,将所述二维数组可视化为一个灰度图像;步骤1-3:所述灰度图像保存为无压缩的图像。进一步优选地,在步骤一中,对所述图像进行缩放处理采用双三次插值法,选取所述图像待插值点周围16个点的灰度值作为三次插值,构造基函数的公式为:双三次插值公式为:其中,(x,y)为所述图像中待插值的像素点,(xi,yj)(i,j=0,1,2,3)为所述待插值的像素点4×4邻域点。进一步优选地,在步骤一中,对所述图像标准化处理采用Gamma校正法对所述图像进行颜色空间的标准化,Gamma校正公式如下:I(x′,y′)=I(x,y)Gamma,其中I(x,y)表示在点(x,y)的像素值。进一步优选地,步骤二中提取所述图像的HOG特征向量集f包括以下步骤:步骤2-1:对所述图像中的像素点(x,y)计算梯度幅值G(x,y)和梯度方向α(x,y);步骤2-2:将所述图像分割成n×n个像素组成的细胞单元,其中,n≥1,将所述细胞单元内每个像素点的所述梯度幅值用梯度方向映射到直方图中固定的角度范围,计算细胞单元的特征向量,形成每个细胞单元的恶意代码特征描述符;步骤2-3:将所述图像在空间上连通的所述细胞单元组合成块,共形成m个块,其中,m≥1,将所述块中的所有细胞单元的特征向量按一定方式串联起来,得到所述块的HOG特征向量V;步骤2-4:将每个所述块的HOG特征向量V进行归一化处理,得到归一化后的HOG特征向量V',形成恶意代码HOG描述符;步骤2-5:收集所述图像内的所有块归一化处理后的HOG特征向量V',结合成最终特征向量f={V1',V2'.......Vm'}。进一步优选地,在步骤2-1中,对所述图像中的像素点(x,y)计算梯度幅值G(x,y)和梯度方向α(x,y)的方法包括以下步骤:步骤2-1-1:计算所述图像的像素点(x,y)的横坐标和纵坐标方向的梯度,计算公式为:Gx(x,y)=H(x+1,y)-H(x-1,y)Gy(x,y)=H(x,y+1)-H(x,y-1)其中,Gx(x,y),Gy(x,y),H(x,y)分别表示所述图像中像素点(x,y)处的水平方向梯度、垂直方向梯度和像素点坐标;步骤2-1-2:使用[-1,0,1]梯度算子在图像x方向进行卷积计算,使用[1,0,-1]T梯度算子在y方向做卷积运算分别得到图像x方向梯度分量Gx(x,y)和y方向的梯度分量Gy(x,y);步骤2-1-3:计算梯度幅值G(x,y)和梯度方向α(x,y)的公式为:进一步优选地,在步骤四中,构建随机森林的方法为:步骤4-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集D,并由此构建K棵决策树;步骤4-2:所述图像有H个特征,在每棵决策树的每个节点处随机抽取L个候选特征,通过计算每个候选特征的基尼指数,在L个候选特征中选择具有最小基尼指数值的特征进行节点分裂,其中,基尼指数的计算方法如下:其中,|y|和pk为样本集D的类别数量和每个类别占总样本集的比例;Gini(De)、|D|、|De|,r分别为类别e的基尼值、样本总数、类别e的样本总数以及需要划分的特征;步骤4-3:当每棵决策树中的节点中只有一个特征或节点中的特征数小于最小分裂级数时,停止生长;步骤4-4:将生成的K棵决策树组成随机森林。进一步优选地,在步骤五中,构建完全随机森林的方法为:步骤5-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集,并由此构建K棵决策树;步骤5-2:所述图像有H个特征,随机选取一个特征作为分裂树的分裂节点;步骤5-3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;步骤5-4:将生成的K棵决策树组成完全随机森林。进一步优选地,在步骤七中,用深度森林对恶意代码进行分类的方法包括以下步骤:步骤7-1:使用滑动窗口W×W和扫描步长S扫描训练集,将每个滑动窗口中的特征作为多粒度扫描的输入,输出每个滑动窗口中特征的概率向量;步骤7-2:将多粒度扫描输出的所有概率向量按一定方式串联作为第一层的级联森林的输入,在级联森林的第二层,将第一层的级联森林的输入和第一层的级联森林的输出作为第二层的级联森林的输入,在级联森林的第三层,将第一层的级联森林的输入和第二层的级联森林的输出作为第三层的级联森林的输入,依次类推,在后续的每一层中,均将第一层的级联森林的输入和上一层的级联森林的输出作为本层的级联森林的输入;同时,级联森林每运算一层,使用测试集对已经生成的整个深度森林进行测试,如果测试集的准确率小于上一层的准确率,深度森林停止生长,级联森林的层数不在增加;否则继续增加级联森林的层数,直到测试集的准确率小于上一层的准确率为止;步骤7-3:对最后一层的级联森林的所有输出的概率向量取均值,输出具有最大概率那一类的标签,作为最终恶意代码预测类本文档来自技高网...

【技术保护点】
1.一种基于深度森林的恶意代码分类方法,其特征在于,包括以下步骤:步骤一:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;步骤二:提取所述图像的HOG特征向量集f;步骤三:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;步骤四:构建随机森林;步骤五:构建完全随机森林;步骤六:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;步骤七:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类。

【技术特征摘要】
1.一种基于深度森林的恶意代码分类方法,其特征在于,包括以下步骤:步骤一:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;步骤二:提取所述图像的HOG特征向量集f;步骤三:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;步骤四:构建随机森林;步骤五:构建完全随机森林;步骤六:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;步骤七:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类。2.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤一中,将恶意代码二进制文件映射为图像的过程包括以下步骤:步骤1-1:对所述恶意代码二进制文件,读取8bit为一个无符号的整型,固定的行宽为一个向量,生成一个二维数组;步骤1-2:所述二维数组的每个元素范围取值为[0,255],其中0表示黑色,255表示白色,将所述二维数组可视化为一个灰度图像;步骤1-3:所述灰度图像保存为无压缩的图像。3.根据权利要求2所述基于深度森林的恶意代码分类方法,其特征在于,在步骤一中,对所述图像进行缩放处理采用双三次插值法,选取所述图像待插值点周围16个点的灰度值作为三次插值,构造基函数的公式为:双三次插值公式为:其中,(x,y)为所述图像中待插值的像素点,(xi,yj)(i,j=0,1,2,3)为所述待插值的像素点4×4邻域点。4.根据权利要求3所述基于深度森林的恶意代码分类方法,其特征在于,在步骤一中,对所述图像标准化处理采用Gamma校正法对所述图像进行颜色空间的标准化,Gamma校正公式如下:I(x′,y′)=I(x,y)Gamma,其中I(x,y)表示在点(x,y)的像素值。5.根据权利要求4所述基于深度森林的恶意代码分类方法,其特征在于,步骤二中提取所述图像的HOG特征向量集f包括以下步骤:步骤2-1:对所述图像中的像素点(x,y)计算梯度幅值G(x,y)和梯度方向α(x,y);步骤2-2:将所述图像分割成n×n个像素组成的细胞单元,其中,n≥1,将所述细胞单元内每个像素点的所述梯度幅值用梯度方向映射到直方图中固定的角度范围,计算细胞单元的特征向量,形成每个细胞单元的恶意代码特征描述符;步骤2-3:将所述图像在空间上连通的所述细胞单元组合成块,共形成m个块,其中,m≥1,将所述块中的所有细胞单元的特征向量按一定方式串联起来,得到所述块的HOG特征向量V;步骤2-4:将每个所述块的HOG特征向量V进行归一化处理,得到归一化后的HOG特征向量V',形成恶意代码HOG描述符;步骤2-5:收集所述图像内的所有块归一化处理后的HOG特征向量V',结合成最终特征向量f={V1',V2'.......Vm'}。6.根据权利要求5所述基于深度森林的恶意代码分类方法,其特征在于,在步骤2-1中,对所述图像中的像素点(x,y)计算梯度幅值G(x,y)和梯度方向α(x,y)的方法包括以下步骤:步骤2-1-1:计算所述图像的像素点(x,...

【专利技术属性】
技术研发人员:钱叶魁杜江杨瑞朋黄浩雒朝峰宋彬杰牟轶哲夏军波
申请(专利权)人:中国人民解放军陆军炮兵防空兵学院郑州校区
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1