一种基于深度森林的恶意代码分类方法与流程

文档序号:15020451发布日期:2018-07-25 00:34阅读:来源:国知局

技术特征:

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,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)的公式为:

7.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤四中,构建随机森林的方法为:

步骤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棵决策树组成随机森林。

8.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤五中,构建完全随机森林的方法为:

步骤5-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集,并由此构建K棵决策树;

步骤5-2:所述图像有H个特征,随机选取一个特征作为分裂树的分裂节点;

步骤5-3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;

步骤5-4:将生成的K棵决策树组成完全随机森林。

9.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤七中,用深度森林对恶意代码进行分类的方法包括以下步骤:

步骤7-1:使用滑动窗口W×W和扫描步长S扫描所述训练集,将每个滑动窗口中的特征作为多粒度扫描的输入,输出每个滑动窗口中特征的概率向量;

步骤7-2:将多粒度扫描输出的所有概率向量按一定方式串联作为第一层的级联森林的输入,在级联森林的第二层,将第一层的级联森林的输入和第一层的级联森林的输出作为第二层的级联森林的输入,在级联森林的第三层,将第一层的级联森林的输入和第二层的级联森林的输出作为第三层的级联森林的输入,依次类推,在后续的每一层中,均将第一层的级联森林的输入和上一层的级联森林的输出作为本层的级联森林的输入;

同时,级联森林每运算一层,使用测试集对已经生成的整个深度森林进行测试,如果测试集的准确率小于上一层的准确率,深度森林停止生长,级联森林的层数不在增加;否则继续增加级联森林的层数,直到测试集的准确率小于上一层的准确率为止;

步骤7-3:对最后一层的级联森林的所有输出的概率向量取均值,输出具有最大概率那一类的标签,作为最终恶意代码预测类别。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1