CN109344618B - 一种基于深度森林的恶意代码分类方法 - Google Patents

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

Info

Publication number
CN109344618B
CN109344618B CN201811187770.6A CN201811187770A CN109344618B CN 109344618 B CN109344618 B CN 109344618B CN 201811187770 A CN201811187770 A CN 201811187770A CN 109344618 B CN109344618 B CN 109344618B
Authority
CN
China
Prior art keywords
forest
image
malicious code
layer
gradient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811187770.6A
Other languages
English (en)
Other versions
CN109344618A (zh
Inventor
钱叶魁
卢喜东
杜江
杨瑞朋
黄浩
雒朝峰
宋彬杰
李宇翀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
People's Liberation Army Army Artillery Air Defense Academy Zhengzhou Campus
Original Assignee
People's Liberation Army Army Artillery Air Defense Academy Zhengzhou Campus
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by People's Liberation Army Army Artillery Air Defense Academy Zhengzhou Campus filed Critical People's Liberation Army Army Artillery Air Defense Academy Zhengzhou Campus
Publication of CN109344618A publication Critical patent/CN109344618A/zh
Application granted granted Critical
Publication of CN109344618B publication Critical patent/CN109344618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

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

Description

一种基于深度森林的恶意代码分类方法
技术领域
本发明属于网络安全技术领域,特别是涉及一种对恶意代码进行分类的方法。
背景技术
随着互联网的蓬勃发展,恶意代码已经成为威胁互联网安全的主要因素之一。通过将恶意代码映射为图像后属于同一家族的恶意代码图像具有视觉相似性,不同家族的恶意代码图像之间具有一定的差异性,根据恶意代码图像的这一特点,可以提取恶意代码图像特征并使用分类算法对恶意代码进行分类。例如Nataraj L等人将恶意代码二进制文件映射为图像,利用Gabor滤波器多尺度和多方向的特点提取图像的全局特征,然后使用最近邻算法对恶意代码进行分类。Kancherla K等人将恶意代码图像的强度特征和小波特征与Gabor滤波器提取的全局特征结合,然后使用这三种特征对恶意代码进行分类。Han K S等人将恶意代码图像的熵值映射到曲线上,然后计算曲线的相似度对恶意代码分类。Farrokhmanesh M等人将恶意代码映射为灰度图,使用三种哈希算法提取恶意代码的指纹,然后计算图像指纹之间的距离对恶意代码分类。但是上述对恶意代码分类的方法不能解决恶意代码二进制文件重新分配的问题,以及上述分类方法的分类精度还略低。
发明内容
本发明主要解决的技术问题是提供一种分类精度高的基于深度森林的恶意代码分类方法,并且解决恶意代码二进制文件重新分配的问题。
为解决上述技术问题,本发明的基于深度森林的恶意代码分类方法包括以下步骤:
步骤一:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;
步骤二:提取所述图像的HOG特征向量集f;
步骤三:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;
步骤四:构建随机森林;
步骤五:构建完全随机森林;
步骤六:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;
步骤七:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类。
进一步优选地,在步骤一中,将恶意代码二进制文件映射为图像的过程包括以下步骤:
步骤1-1:对所述恶意代码二进制文件,读取8bit为一个无符号的整型,固定的行宽为一个向量,生成一个二维数组;
步骤1-2:所述二维数组的每个元素范围取值为[0,255],其中0表示黑色,255表示白色,将所述二维数组可视化为一个灰度图像;
步骤1-3:所述灰度图像保存为无压缩的图像。
进一步优选地,在步骤一中,对所述图像进行缩放处理采用双三次插值法,选取所述图像待插值点周围16个点的灰度值作为三次插值,构造基函数的公式为:
Figure BDA0001826687160000031
双三次插值公式为:
Figure BDA0001826687160000032
其中,(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)的公式为:
Figure BDA0001826687160000041
Figure BDA0001826687160000042
进一步优选地,在步骤四中,构建随机森林的方法为:
步骤4-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集D,并由此构建K棵决策树;
步骤4-2:所述图像有H个特征,在每棵决策树的每个节点处随机抽取L个候选特征,通过计算每个候选特征的基尼指数,在L个候选特征中选择具有最小基尼指数值的特征进行节点分裂,其中,基尼指数的计算方法如下:
Figure BDA0001826687160000043
Figure BDA0001826687160000044
其中,|y|和pk为样本集D的类别数量和每个类别占总样本集的比例;Gimi(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:对最后一层的级联森林的所有输出的概率向量取均值,输出具有最大概率那一类的标签,作为最终恶意代码预测类别。
本发明的有益效果是:本申请通过结合图像特征提取技术与恶意代码分类技术,先将恶意代码映射为无压缩的灰度图像,基于图像缩放算法将所有图像变换为统一的尺寸,使用Gamma校正法将图像标准化,计算图像的梯度并构建方向梯度直方图,然后将块内方向梯度直方图进行归一化处理,收集所有块内的HOG特征结合成为最终HOG特征向量;最后将HOG特征向量转化为二维HOG特征矩阵,使用深度森林算法对恶意代码分类。本申请结合了方向梯度直方图的特征提取能力和深度森林算法的分类能力,充分利用了恶意代码图像的空间相似性。使本申请的基于深度森林的恶意代码分类方法在分类的准确率、宏F1度量上的精度都很高,并且本申请通过利用深度森林不同大小的窗口扫描HOG特征矩阵,也解决了二进制文件重新分配的问题。
附图说明
图1是本发明基于深度森林的恶意代码分类方法的实施例的流程图;
图2是本发明基于深度森林的恶意代码分类方法的实施例中恶意代码映射为图片的流程图;
图3是本发明基于深度森林的恶意代码分类方法的实施例中构建HOG特征的流程图;
图4是本发明基于深度森林的恶意代码分类方法的实施例中多粒度扫描流程图;
图5是本发明基于深度森林的恶意代码分类方法的实施例中级联森林生长流程图;
图6是本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为每个级联森林中树的数量(csdRFTree)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图;
图7为本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为级联森林中森林数量(csdRF)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图;
图8为本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为多粒度扫描中树的数量(mgsRFTree)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图;
图9为本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为多粒度扫描中树的最小分裂级数(msmgs)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图;
图10为本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为级联森林中最小分裂级数(mscsd)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图;
图11为本发明基于深度森林的恶意代码分类方法的实施例实验结果中参数为多粒度扫描的窗口大小(windows)对准确率(Accuracy)、宏F1度量(macro-F1)的影响趋势图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解的是,本发明中涉及到的相关模块及其实现的功能是在改进后的硬件及其构成的装置、器件或系统上搭载现有技术中常规的计算机软件程序或有关协议就可实现,并非是对现有技术中的计算机软件程序或有关协议进行改进。例如,改进后的计算机硬件系统依然可以通过装载现有的软件操作系统来实现该硬件系统的特定功能。因此,可以理解的是,本发明的创新之处在于对现有技术中硬件模块的改进及其连接组合关系,而非仅仅是对硬件模块中为实现有关功能而搭载的软件或协议的改进。
本技术领域技术人员可以理解的是,本发明中提到的相关模块是用于执行本申请中所述操作、方法、流程中的步骤、措施、方案中的一项或多项的硬件设备。所述硬件设备可以为所需的目的而专门设计和制造,或者也可以采用通用计算机中的已知设备或已知的其他硬件设备。所述通用计算机有存储在其内的程序选择性地激活或重构。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
下面对本发明的基于深度森林的恶意代码分类方法的实施方式进行详细描述,如图1所示,本发明的基于深度森林的恶意代码分类方法的实施例包括以下步骤:
步骤S1:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;
步骤S2:提取所述图像的HOG特征向量集f;
步骤S3:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;
步骤S4:构建随机森林;
步骤S5:构建完全随机森林;
步骤S6:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;
步骤S7:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类。
本实施例提出的基于深度森林的恶意代码分类方法采用不同恶意代码家族反汇编后的二进制文件作为分类样本集,本实施例的方法结合了方向梯度直方图的特征提取能力和深度森林算法的分类能力,充分利用了恶意代码图像的空间相似性。使本申请的基于深度森林的恶意代码分类方法在分类的准确率、宏F1度量上的精度都很高,并且本申请通过利用深度森林不同大小的窗口扫描HOG特征矩阵,也解决了二进制文件重新分配的问题。
进一步优选地,本实施例为了提取基于图像的恶意代码特征,需要将恶意代码二进制文件映射为图片。映射过程如图2所示,包括以下步骤:
步骤S1-1:对所述恶意代码二进制文件,读取8bit为一个无符号的整型(范围为0~255),固定的行宽为一个向量,生成一个二维数组;
步骤S1-2:所述二维数组的每个元素范围取值为[0,255],其中0表示黑色,255表示白色,将所述二维数组可视化为一个灰度图像,图像的宽度和高度根据文件大小而定;
步骤S1-3:所述灰度图像保存为无压缩的PNG图像。
进一步优选地,构建HOG特征的过程如图3所示:
首先,为了提取维数相等的HOG特征向量,并且能够得到图像的全局特征,本实施例中使用图像插值方法将所有恶意代码的图像变换为固定大小的尺寸。为了能够尽量保留恶意代码的图像的特征,使缩放后的图像具有较高的图像质量,本实施例中采用双三次插值方法对恶意代码的图像进行缩放。该方法选取恶意代码的图像待插值点周围16个点的灰度值作三次插值,不仅考虑到4个直接相邻点的灰度影响,而且考虑到各邻近点间灰度值变化率的影响。该方法需要选取插值基函数来拟合数据,通过如下公式构造基函数:
Figure BDA0001826687160000101
双三次插值公式为:
Figure BDA0001826687160000102
其中,(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)的像素值。
再次,计算恶意代码的图像横坐标和纵坐标方向的梯度,并据此计算每个像素点的梯度幅值和梯度方向。计算方法包括如下步骤:
步骤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)的公式为:
Figure BDA0001826687160000103
Figure BDA0001826687160000111
步骤2-2:将恶意代码的图像分割成n×n个像素组成的细胞单元,其中,n≥1,采用bin个方向的直方图统计每个细胞单元的梯度信息,将所述细胞单元内每个像素点的所述梯度幅值用梯度方向映射到直方图中固定的角度范围,计算细胞单元的特征向量,形成每个细胞单元的恶意代码特征描述符;
步骤2-3:将恶意代码的图像在空间上连通的细胞单元组合成块,共形成m个块,其中,m≥1,将一个快内的所有细胞单元的特征向量按一定方式串联起来,得到该块的HOG特征向量V;
步骤2-4:将每个块的HOG特征向量V进行归一化处理,归一化公式如下:
Figure BDA0001826687160000112
其中,V和V'为归一化前和归一化后HOG特征向量,||V||2为特征向量V的l2-范数。由于这些块是互有重叠的,这就意味着每一个细胞单元的特征会以不同的结果多次出现在最后的特征向量中。我们将归一化后的块描述符称为恶意代码HOG描述符;
步骤2-5:最后,收集恶意代码的图像中所有块的HOG特征向量V',结合成最终特征向量f={V1',V2'.......Vm'}。
上面对本实施例中提取恶意代码的图像的HOG特征向量的优选方案进行了描述,接下来对本实施例通过两部分描述对恶意代码分类过程的优选方案,第一部分从决策树的角度描述随机森林生成的过程,随机森林为组成深度森林的基本结构,第二部分描述深度森林算法对恶意代码分类的具体过程。
第一部分:随机森林是由一组决策树分类器{h(X,θk),k=1,……,K}组成的集成分类器,其中{θk}是服从独立同分布的随机向量,K表示随机森林中决策树的个数,在给定X情况下,其中,X为待分类恶意代码样本,每个决策树通过投票决定最优的分类结果。
构建随机森林的方法为:
步骤4-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集D,并由此构建K棵决策树;
步骤4-2:所述图像有H个特征,在每棵决策树的每个节点处随机抽取L个候选特征,通过计算每个候选特征的基尼指数,在L个候选特征中选择具有最小基尼指数值的特征进行节点分裂,其中,基尼指数的计算方法如下:
Figure BDA0001826687160000121
Figure BDA0001826687160000122
其中,|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棵决策树组成完全随机森林。
上述随机森林和完全随机森林已经构建完成,下面开始构建深度森林,深度森林是由多粒度扫描和级联森林两部分组成的多层结构,每层级联森林由相等数量的随机森林和完全随机森林组成。本实施例中随机森林在进行节点分裂时每次随机选取
Figure BDA0001826687160000123
(d为特征维数)个特征作为候选特征。
接下来使用深度森林对恶意代码进行分类,将恶意代码的图像HOG特征向量转化为矩阵,并且分为训练集和测试集,训练集用于训练深度森林,测试集用来评估深度森林。
如图4所示,多粒度扫描阶段,使用滑动窗口W×W和扫描步长S扫描训练集的样本,将每个窗口中的特征作为多粒度扫描森林的输入,输出每个窗口中特征的概率向量;然后将所有输出的概率向量按一定方式串联作为第一层级联森林的输入。
如图5所示,级联森林的第一层将多粒度扫描输出的所有概率向量按一定方式串联作为第一层的级联森林的输入,在级联森林的第二层,将第一层的级联森林的输入和第一层的级联森林的输出作为第二层的级联森林的输入,在级联森林的第三层,将第一层的级联森林的输入和第二层的级联森林的输出作为第三层的级联森林的输入,依次类推,在后续的每一层中,均将第一层的级联森林的输入和上一层的级联森林的输出作为本层的级联森林的输入;同时,级联森林每运算一层,使用测试集对已经生成的整个深度森林进行测试,如果测试集的准确率小于上一层的准确率,深度森林停止生长,级联森林的层数不在增加;否则继续增加级联森林的层数,直到测试集的准确率小于上一层的准确率为止;对最后一层的级联森林的所有输出的概率向量取均值,输出具有最大概率那一类的标签,作为最终恶意代码预测类别。
下面通过实验数据验证本实施例的分类精度。
1、实验环境的确定和实验数据集收集
本实施例运行的环境采用:CPU为Intel(R)Core(TM)i7-6800K双核处理器,配置两块4GB DDR3L内存;操作系统使用64位Windows10。恶意代码映射、HOG特征提取以及分类使用Python语言,相关包为Anaconda3-4.3.1-Windows-x86_64,包含实验过程中所有用到的包。
本实施例选取7个类别的9929条恶意代码二进制文件进行实验,基本信息如表1所示。
表1恶意代码数据集
恶意代码类别 类别号 数量
Ramniit 0 1513
Lollipop 1 2470
Kelihos_ver3 2 2936
Vundo 3 446
Kelihos_ver1 4 387
Obfuscator_ACY 5 1166
Gatak 6 1011
2、本实施采用准确率(Accuracy)、宏F1度量(macro_F1)两种评价指标评价本实施对恶意代码的分类效果。对于多分类问题,将每两两类别的组合对应一个混淆矩阵,然后再各混淆矩阵上计算查准率P和查全率R,记为(P1,R1),(P2,R2),…,(Pn,Rn),再计算平均值,得到宏查准率(macro_P)、宏查全率(macro_R),进而得到宏F1度量(macro_F1),各评价指标计算公式如下:
Figure BDA0001826687160000141
Figure BDA0001826687160000142
Figure BDA0001826687160000143
Figure BDA0001826687160000144
Figure BDA0001826687160000145
Figure BDA0001826687160000146
其中TP,FP,FN,TN分别表示被分类器识别为正的正样本、被分类器识别为正的负样本、被分类器识别为负的正样本、被分类器识别为负的负样本.P,R为各混淆矩阵的查准率和查全率。
3、在实验中我们选用数据集的80%做为训练集,20%做为测试集。在本文中将恶意代码图像缩放为128×128个像素的图像,每个细胞单元为16×16个像素,采用8个方向的直方图来统计这16×16个像素的梯度信息,然后将每4个单元格形成一个大的、连通的块,形成1568维的HOG特征向量,最后将特征向量转化为49×32的二维矩阵。其中,在数据处理阶段的Gamma值取0.5。
3.1结果比较
本实施例分类结果与本领域由Nataraj L最新提出的SPAM-GIST方法进行了比较。在本实施例的方法中,多粒度扫描和级联森林都包含两个森林、每个森林包含500棵树以及每棵树的最小分裂级数为10,扫描阶段窗口大小为32×32、步长1。在SPAM-GIST实验中,K近邻(K-Nearest Neighbor,KNN)分类算法的K=3,采用十折交叉验证(tenfold crossvalidation)估计每个样本的类别。在本文中两组实验分别进行十次取最好的结果作为最终结果,实验结果如表2所示:
表2本方法的实施例与SPAM-GIST实验结果
实验名称 分类器 Accuracy macro-F1
本实施例分类方法 深度森林 96.0% 95.2%
SPAM-GIST KNN 95.4% 94.4%
3.2参数敏感性分析
为了验证深度森林不同参数对实验结果的影响,实施例通过改变深度森林中多粒度扫描结构中窗口大小(windows)以及每个森林中树的数量(mgsRFTree)和最小分裂级数(msmgs)、级联森林中的森林数量(csdRF)和每个森林中树的数量(csdRFTree)和最小分裂级数(mscsd)对本实施例的分类方法进行评价,每个参数设定下做十组实验,并对实验结果取平均值做为最终结果。
如图6和图7所示可以看出,当改变参数csdRFTree、csdRF时,对实验结果几乎没有影响。
如图8和图9所示可以看出,当mgsRFTree、window增加时,本实施例分类方法的整体分类性能越好。
如图10和图11所示可以看出,随着msmgs、mscsd增加,本实施例分类方法的整体分类性能变得越差。
本实施例通过结合图像特征提取技术与恶意代码分类技术,先将恶意代码映射为无压缩的灰度图像,基于图像缩放算法将所有图像变换为统一的尺寸,使用Gamma校正法将图像标准化,计算图像的梯度并构建方向梯度直方图(Histogram Of Oriented Gradient,HOG);然后将块内方向梯度直方图进行归一化处理,收集所有块内的HOG特征结合成为最终HOG特征向量;最后将HOG特征向量转化为二维HOG特征矩阵,使用深度森林算法对恶意代码分类。通过上述实验可以很明显的得出本申请的基于深度森林的恶意代码分类方法在分类的准确率、宏F1度量上的精度都很高,并且本申请通过利用深度森林不同大小的窗口扫描HOG特征矩阵,也解决了二进制文件重新分配的问题。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。

Claims (7)

1.一种基于深度森林的恶意代码分类方法,其特征在于,包括以下步骤:
步骤一:数据预处理,将恶意代码二进制文件映射为图像,并对所述图像进行缩放和标准化处理;对所述图像进行缩放处理采用双三次插值法,选取所述图像待插值点周围16个点的灰度值作为三次插值,构造基函数的公式为:
Figure FDA0003148347800000011
双三次插值公式为:
Figure FDA0003148347800000012
其中,(x,y)为所述图像中待插值的像素点,
(xi,yi)(i,j=0,1,2,3)为所述待插值的像素点4×4邻域点;
步骤二:提取所述图像的HOG特征向量集f;
步骤三:将所述HOG特征向量集转化为矩阵,并且分为训练集和测试集;
步骤四:构建随机森林;
步骤五:构建完全随机森林;
步骤六:构建深度森林,所述深度森林由多粒度扫描和级联森林两部分组成的多层结构,每层结构的多粒度扫描和级联森林均包括相等数量的随机森林和完全随机森林,所述训练集用于训练深度森林,所述测试集用于评估所述深度深林;
步骤七:用深度森林对所述图像进行分类,即完成对所述图像对应的恶意代码的分类;用深度森林对恶意代码进行分类的方法包括以下步骤:
步骤7-1:使用滑动窗口W×W和扫描步长S扫描所述训练集,将每个滑动窗口中的特征作为多粒度扫描的输入,输出每个滑动窗口中特征的概率向量;
步骤7-2:将多粒度扫描输出的所有概率向量按一定方式串联作为第一层的级联森林的输入,在级联森林的第二层,将第一层的级联森林的输入和第一层的级联森林的输出作为第二层的级联森林的输入,在级联森林的第三层,将第一层的级联森林的输入和第二层的级联森林的输出作为第三层的级联森林的输入,依次类推,在后续的每一层中,均将第一层的级联森林的输入和上一层的级联森林的输出作为本层的级联森林的输入;
同时,级联森林每运算一层,使用测试集对已经生成的整个深度森林进行测试,如果测试集的准确率小于上一层的准确率,深度森林停止生长,级联森林的层数不在增加;否则继续增加级联森林的层数,直到测试集的准确率小于上一层的准确率为止;
步骤7-3:对最后一层的级联森林的所有输出的概率向量取均值,输出具有最大概率那一类的标签,作为最终恶意代码预测类别。
2.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤一中,将恶意代码二进制文件映射为图像的过程包括以下步骤:
步骤1-1:对所述恶意代码二进制文件,读取8bit为一个无符号的整型,固定的行宽为一个向量,生成一个二维数组;
步骤1-2:所述二维数组的每个元素范围取值为[0,255],其中0表示黑色,255表示白色,将所述二维数组可视化为一个灰度图像;
步骤1-3:所述灰度图像保存为无压缩的图像。
3.根据权利要求2所述基于深度森林的恶意代码分类方法,其特征在于,在步骤一中,对所述图像标准化处理采用Gamma校正法对所述图像进行颜色空间的标准化,Gamma校正公式如下:
I(x′,y′)=I(x,y)Gamma,其中I(x,y)表示在点(x,y)的像素值。
4.根据权利要求3所述基于深度森林的恶意代码分类方法,其特征在于,步骤二中提取所述图像的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′}。
5.根据权利要求4所述基于深度森林的恶意代码分类方法,其特征在于,在步骤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方向进行卷积计算,使用
Figure FDA0003148347800000031
梯度算子在y方向做卷积运算分别得到所述图像x方向梯度分量Gx(x,y)和y方向的梯度分量Gy(x,y);
步骤2-1-3:计算梯度幅值G(x,y)和梯度方向α(x,y)的公式为:
Figure FDA0003148347800000041
Figure FDA0003148347800000042
6.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤四中,构建随机森林的方法为:
步骤4-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集D,并由此构建K棵决策树;
步骤4-2:所述图像有H个特征,在每棵决策树的每个节点处随机抽取L个候选特征,通过计算每个候选特征的基尼指数,在L个候选特征中选择具有最小基尼指数值的特征进行节点分裂,其中,基尼指数的计算方法如下:
Figure FDA0003148347800000043
Figure FDA0003148347800000044
其中,|y|和pk为样本集D的类别数量和每个类别占总样本集的比例;Gini(De)、|D|、|De|,r分别为类别e的基尼值、样本总数、类别e的样本总数以及需要划分的特征;
步骤4-3:当每棵决策树中的节点中只有一个特征或节点中的特征数小于最小分裂级数时,停止生长;
步骤4-4:将生成的K棵决策树组成随机森林。
7.根据权利要求1所述基于深度森林的恶意代码分类方法,其特征在于,在步骤五中,构建完全随机森林的方法为:
步骤5-1:从训练集中,应用bootstrap方法有放回的随机抽取K个新的样本集,并由此构建K棵决策树;
步骤5-2:所述图像有H个特征,随机选取一个特征作为分裂树的分裂节点;
步骤5-3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;
步骤5-4:将生成的K棵决策树组成完全随机森林。
CN201811187770.6A 2018-02-08 2018-10-12 一种基于深度森林的恶意代码分类方法 Active CN109344618B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018101274524 2018-02-08
CN201810127452.4A CN108319855A (zh) 2018-02-08 2018-02-08 一种基于深度森林的恶意代码分类方法

Publications (2)

Publication Number Publication Date
CN109344618A CN109344618A (zh) 2019-02-15
CN109344618B true CN109344618B (zh) 2021-10-08

Family

ID=62903272

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810127452.4A Pending CN108319855A (zh) 2018-02-08 2018-02-08 一种基于深度森林的恶意代码分类方法
CN201811187770.6A Active CN109344618B (zh) 2018-02-08 2018-10-12 一种基于深度森林的恶意代码分类方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810127452.4A Pending CN108319855A (zh) 2018-02-08 2018-02-08 一种基于深度森林的恶意代码分类方法

Country Status (1)

Country Link
CN (2) CN108319855A (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190711A (zh) * 2018-09-18 2019-01-11 西南大学 一种基于深度森林模型的伤口感染电子鼻检测系统
CN109858477A (zh) * 2019-02-01 2019-06-07 厦门大学 用深度森林在复杂环境中识别目标物的拉曼光谱分析方法
CN110020617A (zh) * 2019-03-27 2019-07-16 五邑大学 一种基于生物特征的身份识别方法、装置和存储介质
CN111338683A (zh) * 2020-02-04 2020-06-26 北京邮电大学 一种算法类程序代码分类方法、装置、设备及介质
CN111382783A (zh) * 2020-02-28 2020-07-07 广州大学 恶意软件识别方法、装置及存储介质
CN111464773A (zh) * 2020-04-08 2020-07-28 湖南泽天智航电子技术有限公司 一种多路视频显示方法及系统
CN111563890A (zh) * 2020-05-07 2020-08-21 浙江大学 一种基于深度森林的眼底图像血管分割方法和系统
CN112347478B (zh) * 2020-10-13 2021-08-24 北京天融信网络安全技术有限公司 一种恶意软件检测方法及装置
CN112685738B (zh) * 2020-12-29 2022-10-14 武汉大学 一种基于多级投票机制的恶意混淆脚本静态检测方法
CN113037750B (zh) * 2021-03-09 2022-08-02 成都信息工程大学 一种车辆检测数据增强训练方法、系统、车辆及存储介质
CN113505730A (zh) * 2021-07-26 2021-10-15 全景智联(武汉)科技有限公司 基于海量数据的模型评价方法、装置、设备及存储介质
CN117235728B (zh) * 2023-11-16 2024-02-06 中国电子科技集团公司第十五研究所 一种基于细粒度标注模型的恶意代码基因检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866862A (zh) * 2015-04-27 2015-08-26 中南大学 一种带钢表面面积型缺陷识别分类的方法
CN106096411A (zh) * 2016-06-08 2016-11-09 浙江工业大学 一种基于字节码图像聚类的Android恶意代码家族分类方法
CN106446792A (zh) * 2016-08-31 2017-02-22 大连楼兰科技股份有限公司 一种道路交通辅助驾驶环境下的行人检测特征提取方法
CN107506796A (zh) * 2017-08-25 2017-12-22 电子科技大学 一种基于深度森林的阿尔兹海默病分类方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339368A (en) * 1991-11-21 1994-08-16 Unisys Corporation Document image compression system and method
US8306942B2 (en) * 2008-05-06 2012-11-06 Lawrence Livermore National Security, Llc Discriminant forest classification method and system
CN103984953B (zh) * 2014-04-23 2017-06-06 浙江工商大学 基于多特征融合与Boosting决策森林的街景图像的语义分割方法
CN104778470B (zh) * 2015-03-12 2018-07-17 浙江大学 基于组件树和霍夫森林的文字检测和识别方法
CN106846382A (zh) * 2017-01-22 2017-06-13 深圳市唯特视科技有限公司 一种基于直方图控制点的图像配准目标检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866862A (zh) * 2015-04-27 2015-08-26 中南大学 一种带钢表面面积型缺陷识别分类的方法
CN106096411A (zh) * 2016-06-08 2016-11-09 浙江工业大学 一种基于字节码图像聚类的Android恶意代码家族分类方法
CN106446792A (zh) * 2016-08-31 2017-02-22 大连楼兰科技股份有限公司 一种道路交通辅助驾驶环境下的行人检测特征提取方法
CN107506796A (zh) * 2017-08-25 2017-12-22 电子科技大学 一种基于深度森林的阿尔兹海默病分类方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于字节码图像的Android恶意代码家族分类方法;杨益敏等;《万方数据库》;20160802;正文第38-43页 *

Also Published As

Publication number Publication date
CN109344618A (zh) 2019-02-15
CN108319855A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
CN109344618B (zh) 一种基于深度森林的恶意代码分类方法
Qi et al. Pointnet++: Deep hierarchical feature learning on point sets in a metric space
Ali et al. A hybrid geometric spatial image representation for scene classification
CN110569860B (zh) 结合判别分析和多核学习的图像有趣性二分类预测方法
CN111415323B (zh) 图像的检测方法及装置,神经网络的训练方法及装置
Srivastava et al. Image classification using SURF and bag of LBP features constructed by clustering with fixed centers
CN112580480B (zh) 一种高光谱遥感影像分类方法及装置
Yu et al. Multi-trend binary code descriptor: a novel local texture feature descriptor for image retrieval
US11893497B2 (en) Method and apparatus for acquiring feature data from low-bit image
CN109711442B (zh) 无监督逐层生成对抗特征表示学习方法
CN111860124A (zh) 基于空谱胶囊生成对抗网络的遥感图像分类方法
CN110852351A (zh) 基于图像的垃圾分类方法、装置、终端设备和存储介质
Luo et al. Texture classification combining improved local binary pattern and threshold segmentation
Suganuma et al. Hierarchical feature construction for image classification using genetic programming
AU2009347563A1 (en) Detection of objects represented in images
CN112818774A (zh) 一种活体检测方法及装置
CN112037174A (zh) 染色体异常检测方法、装置、设备及计算机可读存储介质
Li Saliency prediction based on multi-channel models of visual processing
Ahmed et al. Blind copy-move forgery detection using SVD and KS test
Kannan Feature selection using genetic algorithms
Du et al. LAP: a bio-inspired local image structure descriptor and its applications
Harrison et al. Novel consensus approaches to the reliable ranking of features for seabed imagery classification
CN113947712A (zh) 一种基于胶囊微分对抗网络的高光谱异常检测方法与系统
Katsigiannis et al. FLBP: Fuzzy local binary patterns
Nhaila et al. Hyperspectral images classification and Dimensionality Reduction using Homogeneity feature and mutual information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant