
卢喜东 等:一种基于深度森林的恶意代码分类方法
1455
图像之间具有一定的差异性
[3]
.根据恶意代码图像的这一特点,在实验中,可以提取恶意代码图像特征,然后使用
分类算法对提取的特征进行分类.例如,Nataraj 等人
[3−5]
利用 Gabor 滤波器提取恶意代码图像的全局特征,该滤
波器多尺度、多方向的特点能够提取图像的全局特征,最后使用最近邻算法对恶意代码进行分类.Kancherla 等
人
[6]
将利用 Ga bor 滤波器提取的恶意代码图像的全局特征与恶意代码图像的小波特征和强度特征结合在一起,
然后使用结合在一起的特征对恶意代码进行分类.Han 等人
[7]
将恶意代码转化为图像,然后计算图像的熵值并
映射到曲线上,最后,通过计算曲线的相似度来对恶意代码分类.Farrokhm ane sh 等人
[8]
使用 3 种不同的哈希算法
提取恶意代码灰度图的指纹;然后,计算图像指纹之间的距离对恶意代码分类.但是,这些方法不能解决恶意代
码二进制文件重新分配的问题,并且在分类精度还有上升的空间.
针对上述问题,本文提出一种基于深度森林(deep forest,简称 DF)
[9]
的恶意代码分类方法(malicious code
classification method based on deep forest,简称 MCDF), 利用特征分类技术与图像特征提取技术,将恶意代码映
射为灰度图像,并利用缩放算法将所有图像变换为统一的尺寸,使用 Gamma 校正法将图像标准化,计算图像的
梯度并构建方向梯度直方图(histogram of oriented gradient,简称 HOG)
[10]
;然后将块内方向梯度直方图进行归一
化处理,收集所有块内的 HOG 特征结合成为最终 HOG 特征向量;最后将 HOG 特征向量转化为二维 HOG 特征
矩阵,使用深度森林算法对二维 HOG 特征矩阵分类.
本文的主要工作包括以下 3 点.
(1) 本文提出了通过提取恶意代码图像 HOG 特征来对恶意代码进行分类的方法.从恶意代码二进制文件
映射到 HOG 特征矩阵,然后使用特征匹配算法对恶意代码分类,该方法在一定程度上可以确定未知
恶意代码的类别.
(2) 提出深度森林的恶意代码分类方法,利用深度森林不同大小的窗口扫描 HOG 特征矩阵,在一定程度
上可以解决二进制文件重新分配的问题.
(3) 利用 7 组恶意代码数据集对本文方法进行实验,验证分类的精确性和有效性.
1 相关工作
恶意代码特征提取及分类方法是本文的主要研究工作.首先需要对恶意代码进行分析,分析恶意代码具有
的特征;然后研究恶意代码二进制文件的特征提取方法,使提取的特征能够尽量表征恶意代码的本质,最后基于
提取的特征对恶意代码进行分类.因此,本文的相关研究工作主要有恶意代码分析、恶意代码特征提取、恶意
代码分类方法这 3 个方面.
动态分析和静态分析为恶意代码分析领域中普遍采用的两种方法.动态分析所分析的代码就是实际执行
的代码,在代码运行过程中进行分析,每次运行只能得到 1 条路径的行为,但是,一些恶意代码存在多条执行路
径.如 Na taraj 等人
[4]
采用法医对照比较的方法,通过比较感染前和感染后系统的组合特征来分类恶意代码,改善
了动态分析方法的单一执行路径问题.毛蔚轩等人
[11]
提出了一种主动学习的方法,利用很少的样本即可对未知
样本进行检测.静态分析首先对可执行程序进行反汇编,并在此基础上提取代码的特征信息.例如,Wang 等人
[12]
提取操作码序列,并将操作码序列映射为图像,进而对恶意代码进行检测.该方法在检测速度和检测精度上取得
了良好的效果,但易受代码混淆技术的干扰.Farrokhmane sh 等人
[13]
提出利用音频的方法分析恶意代码,该方法
将恶意代码二进制文件转化为音频,然后从音频中提取恶意代码特征对恶意代码进行检测.该方法在检测速度
和检测精度上取得了良好的效果,但不能解决垃圾代码插入的问题.Nataraj 等人
[3,14]
提出利用信号处理的方法
分析恶意代码,该方法将不同家族恶意代码二进制文件转化为相等长度的向量,通过随机投影降维来检测恶意
代码.该方法解决了代码顺序变换的问题,但易受恶意代码二进制文件重新分配的干扰.
特征的提取能力直接影响分类精度和分类效率,如何降低混淆技术的干扰,提取到恶意代码的本质特征,对
恶意代码变种进行准确分类,是恶意代码研究的热点.将恶意代码映射为图像和信号并提取图像和信号的特征
是一种新颖的特征提取方法,如 Nataraj 等人
[3,14]
将反汇编的恶意代码二进制文件映射为稀疏的信号,并从信号
中提取恶意代码特征,解决了代码顺序变换的问题,但易受恶意代码二进制文件重新分配的干扰.韩晓光等人
[15]
评论