恶意软件可视化分类方法、装置、设备及可读存储介质与流程-开云(中国)Kaiyun·官方网站 -APP下载

文档序号:34131600发布日期:2023-11-28阅读:373来源:国知局


1.本技术涉及网络信息安全的恶意技术领域,尤其涉及一种恶意软件可视化分类方法、软件装置、可视可读设备及可读存储介质。化分


背景技术:

2.随着互联网技术的类方流程快速发展,恶意软件的法装数量正在迅速增长,严重威胁着网络安全。置设据瑞星公司《2021年中国网络安全报告》称:2021年瑞星“云安全”系统共截获病毒样本总量1.19亿个。备及其中,存储新增木马病毒8,050万个,介质勒索软件样本32.22万个,恶意挖矿病毒样本总体数量为485.62万个。软件因而,可视可读准确,化分快速地进行恶意软件分类识别对遏制其增长及扩散具有重要的类方流程现实意义。
3.目前大部分杀毒软件及其厂商常用静态方法对恶意软件进行分类识别,如特征码和2-gram特征匹配等。此类方法通过反汇编技术提取软件静态特征进行特征匹配以确定其是否为恶意软件。它的优点是速度快,检测率高且误报率低,但是需要及时更新特征语料库,且难以抵御短时间内爆发的0-day恶意软件攻击。此外,此类方法容易受到代码混淆,加壳,加密的干扰,导致分类识别准确率下降,致使安全人员在第一时间内错过对恶意软件进行反制的时机。
4.基于动态方法对恶意软件进行分类识别不易受到代码混淆,加壳,加密等技术的影响,但是需要在虚拟机上收集不同恶意软件族类的动态特征,如函数调用序列,运行行为或修改注册表操作等。该方法对0-day等未知的恶意软件的分类识别效果要优于静态方法,但是需要消耗大量的计算机资源和时间,且需要操作人员具备相关的恶意软件领域知识。因而,研究一种分类速度快,能抗混淆,准确率高的恶意软件分类方法具有重要的科研理论价值和实际应用价值。
5.恶意软件可视化是指通过图像生成技术将恶意软件分类问题转化为图像分类问题的一种分类方法。当下,大部分新型恶意软件都是在某个原有恶意软件族上增加少量功能模块的变种,两者之间有大量的复用代码和明显的家族特征。恶意软件可视化以此作为理论基础,结合代码同源性分析,提取图像纹理特征,采用智能的方式对恶意软件族进行分类识别。han等人将恶意软件的二进制信息转换为彩色图像矩阵,并利用图像处理方法对恶意软件族进行分类。su等人提取恶意软件.asm文件前64个出现频率最高的操作码,组成64*64的操作码2-gram灰度图,并采用深度学习模型进行训练后实现家族分类。nataraj等人首先使用gist将恶意软件族的相似性图像分类为灰度图像,计算纹理特征,并使用欧氏距离的k-近邻算法进行分类。
6.恶意软件可视化方法不仅在分类速度上优于静态方法,且对最新的变种,加密加壳等恶意软件,在分类准确度上也远远超过动态方法。此外,恶意软件可视化不需要操作者具备恶意软件领域相关知识,极大地降低了分类操作过程的难度。但是,恶意软件可视化方法也有其不足之处:(1)由于恶意软件的大小不一致,需要对生成的恶意软件图像进行裁剪,缩小,放大以确保网络能够正常训练,而这可能会导致图像信息丢失或不同恶意软件家
族图像纹理及图像轮廓相似性过高,进而可能导致模型过拟合等问题出现。(2)采用全局特征计算每个图像矩阵坐标的像素值可能会导致相近恶意软件家族在局部纹理上具有一定的相似性,导致网络出现漏报,误报等情况。


技术实现要素:

7.本技术提供了一种恶意软件可视化分类方法、装置、设备及可读存储介质,本技术最大程度的保留了恶意软件的特征信息,且生成的恶意软件可视化图像在图像纹理上的区异性更大。
8.第一方面,本技术实施例提供了一种恶意软件可视化分类方法,该方法包括:
9.确定预设数据集中各个恶意软件样本.asm文件的.text节及.code节中2-gram操作码序列频数,并基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重;
10.基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重;
11.结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列,并基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像;
12.将预设数据集中全部恶意软件样本对应的simhash图像按比例划分为测试集和训练集;
13.将训练集中各个恶意软件样本对应的simhash图像输入至cnn分类器进行恶意软件分类的训练;
14.将测试集中各个恶意软件样本对应的simhash图像输入至训练完成的cnn分类器进行恶意软件分类,输出各个恶意软件样本对应的恶意软件类型。
15.进一步的,所述基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重的步骤包括:
16.将所有恶意软件样本.asm文件中各个2-gram操作码序列的全部频数之和,所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和输入至第一公式进行计算,得到所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,所述第一公式为:
[0017][0018]
其中,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
fre
为所有恶意软件样本.asm文件中单个2-gram操作码序列的全部频数之和,n为所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和。
[0019]
进一步的,所述基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重的步骤包括:
[0020]
将所有恶意软件样本.asm文件中.asm文件中各个2-gram操作码序列的idf权重,各个2-gram操作码序列在全部恶意软件样本.asm文件中的概率输入至第二公式进行计算,
得到各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,所述第二公式为:
[0021]
opw=op
idf
*op
tf
[0022]
其中,opw为单个恶意软件样本中单个2-gram操作码序列的tf-idf权重,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
tf
为单个2-gram操作码序列在单个恶意软件样本.asm文件中的概率。
[0023]
进一步的,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码所采用的哈希编码为sha256和sha512编码两者结合的编码。
[0024]
进一步的,所述结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列的步骤包括:
[0025]
为各个恶意软件样本中所有2-gram操作码序列进行simhash哈希编码;
[0026]
将各个2-gram操作码序列中哈希编码后对应为1的位置替换为对应2-gram操作码序列的tf-idf权重,将各个2-gram操作码序列中哈希编码后对应为0的位置替换为对应2-gram操作码序列的tf-idf权重后取负数,得到加权后各个2-gram操作码序列对应的序列值;
[0027]
把各个恶意软件样本中各个2-gram操作码序列对应的序列值累加,得到各个恶意软件样本对应的simhash序列。
[0028]
进一步的,所述基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像的步骤包括:
[0029]
确定各个恶意软件样本对应的simhash序列中所在位置是否为正数;
[0030]
若为正数,则赋值为整数255;
[0031]
若不为正数,则赋值为0,直至各个恶意软件样本对应的simhash序列中所有位置均赋值完成,则进行灰度图像转换,生成各个恶意软件样本对应的simhash图像。
[0032]
进一步的,cnn分类器对应卷积神经网络中包括三层卷积层、三层池化层、一层全连接层以及一层softmax分类器,其中,三层卷积层的卷积核尺寸为3*3,卷积核数量分别为20、50、100,并采用relu作为激活函数;三层池化层尺寸均为2*2;通过softmax分类器进行分类确定的恶意软件类型包括蠕虫、木马以及病毒在内的9种。
[0033]
第二方面,本发明还提供一种恶意软件可视化分类装置,所述装置包括:
[0034]
第一计算模块,用于确定预设数据集中各个恶意软件样本.asm文件的.text节及.code节中2-gram操作码序列频数,并基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重;
[0035]
第二计算模块,用于基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重;
[0036]
图像生成模块,用于结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列,并基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像;
[0037]
数据集划分模块,用于将预设数据集中全部恶意软件样本对应的simhash图像按比例划分为测试集和训练集;
[0038]
训练模块,用于将训练集中各个恶意软件样本对应的simhash图像输入至cnn分类器进行恶意软件分类的训练;
[0039]
测试模块,用于将测试集中各个恶意软件样本对应的simhash图像输入至训练完成的cnn分类器进行恶意软件分类,输出各个恶意软件样本对应的恶意软件类型。
[0040]
进一步的,所述第一计算模块,还具体用于:
[0041]
将所有恶意软件样本.asm文件中各个2-gram操作码序列的全部频数之和,所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和输入至第一公式进行计算,得到所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,所述第一公式为:
[0042][0043]
其中,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
fre
为所有恶意软件样本.asm文件中单个2-gram操作码序列的全部频数之和,n为所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和。
[0044]
进一步的,所述第二计算模块,还具体用于:
[0045]
将所有恶意软件样本.asm文件中.asm文件中各个2-gram操作码序列的idf权重,各个2-gram操作码序列在全部恶意软件样本.asm文件中的概率输入至第二公式进行计算,得到各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,所述第二公式为:
[0046]
opw=op
idf
*op
tf
[0047]
其中,opw为单个恶意软件样本中单个2-gram操作码序列的tf-idf权重,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
tf
为单个2-gram操作码序列在单个恶意软件样本.asm文件中的概率。
[0048]
进一步的,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码所采用的哈希编码为sha256和sha512编码两者结合的编码。
[0049]
进一步的,所述图像生成模块,还具体用于:
[0050]
为各个恶意软件样本中所有2-gram操作码序列进行simhash哈希编码;
[0051]
将各个2-gram操作码序列中哈希编码后对应为1的位置替换为对应2-gram操作码序列的tf-idf权重,将各个2-gram操作码序列中哈希编码后对应为0的位置替换为对应2-gram操作码序列的tf-idf权重后取负数,得到加权后各个2-gram操作码序列对应的序列值;
[0052]
把各个恶意软件样本中各个2-gram操作码序列对应的序列值累加,得到各个恶意软件样本对应的simhash序列。
[0053]
进一步的,所述图像生成模块,还具体用于:
[0054]
确定各个恶意软件样本对应的simhash序列中所在位置是否为正数;
[0055]
若为正数,则赋值为整数255;
[0056]
若不为正数,则赋值为0,直至各个恶意软件样本对应的simhash序列中所有位置均赋值完成,则进行灰度图像转换,生成各个恶意软件样本对应的simhash图像。
[0057]
进一步的,cnn分类器对应卷积神经网络中包括三层卷积层、三层池化层、一层全连接层以及一层softmax分类器,其中,三层卷积层的卷积核尺寸为3*3,卷积核数量分别为
20、50、100,并采用relu作为激活函数;三层池化层尺寸均为2*2;通过softmax分类器进行分类确定的恶意软件类型包括蠕虫、木马以及病毒在内的9种。
[0058]
第三方面,本技术实施例还提供一种恶意软件可视化分类设备,所述恶意软件可视化分类设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的恶意软件可视化分类程序,其中所述恶意软件可视化分类程序被所述处理器执行时,实现如上述所述的恶意软件可视化分类方法的步骤。
[0059]
第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有恶意软件可视化分类程序,其中所述恶意软件可视化分类程序被处理器执行时,实现如上述所述的恶意软件可视化分类方法的步骤。
[0060]
综上,与现有技术相比,本技术实施例提供的技术方案带来的有益效果至少包括:
[0061]
本技术实施例提供的一种恶意软件可视化分类方法、装置、设备及可读存储介质,本技术在可视化恶意软件时,采用simhash方法生成恶意软件对应的恶意软件可视化图像,不用考虑因恶意软件大小而导致生成的恶意软件可视化图像尺寸不同问题,更无需对生成的恶意软件可视化图像进行裁剪,缩小,放大等操作,通过这种方式最大程度上保留了恶意软件的特征信息。此外,还采用了tf-idf权重作为simhash方法的权重进行计算,比原有的以普通的2-gram频数作为权重生成的恶意软件可视化图像在图像纹理上的区异性更大。
附图说明
[0062]
图1为本技术一个实施例提供的恶意软件可视化分类方法的流程示意图;
[0063]
图2为本技术一个实施例提供的恶意软件可视化分类方法的分类准确度图;
[0064]
图3为本技术一个实施例提供的恶意软件可视化分类方法的其他衡量指标图;
[0065]
图4为本技术一个实施例提供的恶意软件可视化分类方法的cnn分类器对应的卷积神经网络架构图;
[0066]
图5为本技术一个实施例提供的恶意软件可视化分类方法的恶意软件类型以及对应数量图;
[0067]
图6为本技术一个实施例提供的恶意软件可视化分类装置的功能模块示意图;
[0068]
图7为本技术一个实施例方案中涉及的恶意软件可视化分类设备的硬件结构示意图。
具体实施方式
[0069]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0070]
请参见图1,本技术实施例提供了恶意软件可视化分类方法,该方法具体包括:
[0071]
步骤s10,确定预设数据集中各个恶意软件样本.asm文件的.text节及.code节中2-gram操作码序列频数,并基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重;
[0072]
步骤s20,基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计
算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重;
[0073]
步骤s30,结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列,并基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像;
[0074]
步骤s40,将预设数据集中全部恶意软件样本对应的simhash图像按比例划分为测试集和训练集;
[0075]
步骤s50,将训练集中各个恶意软件样本对应的simhash图像输入至cnn分类器进行恶意软件分类的训练;
[0076]
步骤s60,将测试集中各个恶意软件样本对应的simhash图像输入至训练完成的cnn分类器进行恶意软件分类,输出各个恶意软件样本对应的恶意软件类型。
[0077]
本实施例中,针对现有技术中采用恶意软件可视化方法确定恶意软件类型的方式存在的不足,在可视化恶意软件时,采用simhash方法生成恶意软件对应的恶意软件可视化图像,不用考虑因恶意软件大小而导致生成的恶意软件可视化图像尺寸不同问题,更无需对生成的恶意软件可视化图像进行裁剪,缩小,放大等操作,通过这种方式最大程度上保留了恶意软件的特征信息。此外,还采用了tf-idf权重作为simhash方法的权重进行计算,比以普通的2-gram频数作为权重生成的图像在图像纹理上的区异性更大。
[0078]
具体地,对cnn分类器进行训练和分类的预设数据集采用微软2015年在kaggle发布的竞赛数据集big2015,包括蠕虫,木马,病毒等9个家族,其中包括10868个恶意软件样本.asm文件。其中,.asm文件又称为汇编文件,每个.asm文件由多个节组成,如.code节,.text等,每个节中有多个操作码,每个节之间可以提取一串很长的操作码序列,不同节之间的操作码序列合在一起,再按照一定方式提取2-gram操作码序列,例如.asm文件中的.text节下有这样一个由多个操作码组合的序列:[mov,push,call,db]则提取的2-gram操作码序列为[mov,push],[push,call],[call,db]。
[0079]
本实施例方案中,首先提取每个样本的.text节及.code节2-gram操作码序列频数作为基础特征。然后基于2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,再基于各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重。待确定各个2-gram操作码序列的tf-idf权重后,再tf-idf权重作为simhash方法的权重进行计算。具体地,结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列,再基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像。通过结合tf-idf权重,所得到的的simhash图像中更细微的图像纹理特征会被放大,比以普通的2-gram频数作为权重生成的图像在图像纹理上的区异性更大,解决了采用全局特征计算每个图像矩阵坐标的像素值可能会导致相近恶意软件家族在局部纹理上具有一定的相似性,导致网络出现漏报,误报等情况的问题。
[0080]
同时,simhash方法是使用算法生成的一串长向量,比如一张32*32大小的图像,总共有1024个像素值(32*32),而用simhash算法生成的长向量可以选择不同的哈希算法计算出1024像素值;需要64*64则选择不同的哈希算法组合成为4096的长向量即可,因此不需要
考虑图像生成尺寸不同的问题。由于采用simhash方法生成的恶意软件可视化后的simhash图像不需要放大缩小,也就不会导致在放大/缩小的过程中simhash图像的关键信息丢失或不同恶意软件家族图像纹理及图像轮廓相似性过高,进而可能导致模型过拟合等问题出现。
[0081]
其中,经过恶意软件可视化后可得到10760张恶意软件simhash图,将预设数据集中这些simhash图像按8:2的比例对应划分为训练集和测试集。在对cnn分类器进行训练时,将训练集中各恶意软件样本对应的simhash图像输入至cnn分类器进行恶意软件分类的训练。将测试集中各个恶意软件样本对应的simhash图像输入至训练完成的cnn分类器进行恶意软件分类,即可输出各个恶意软件样本对应的恶意软件类型。训练好后的cnn分类器经测试集测试比对可以确定其输出的恶意软件样本类型的预测精准度,可达到95.19%的精准度,其预测的结果由图2所示,cnn分类器模型的其它衡量指标由图3所示。
[0082]
进一步地,一实施例中,所述基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重的步骤包括:
[0083]
将所有恶意软件样本.asm文件中各个2-gram操作码序列的全部频数之和,所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和输入至第一公式进行计算,得到所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,所述第一公式为:
[0084][0085]
其中,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
fre
为所有恶意软件样本.asm文件中单个2-gram操作码序列的全部频数之和,n为所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和。
[0086]
本实施例中,因为预设训练集中不同恶意软件样本对应的.asm文件中的2-gram操作码序列是存在重复出现的,.asm文件中常见的单个操作码大概有200多个左右,组合而成的2-gram操作码序列在不同的.asm文件中基本都存在重复。计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,比如,计算2-gram操作码序列(mov,push)的idf权重,例如,若有1.asm,3.asm,4.asm这3个不同的.asm文件,则全部恶意软件.asm文件中2-gram序列的频数之和就是将这三个.asm文件中出现的所有(mov,push)频数(出现次数)累加,得到此序列在全部恶意软件样本中出现的频数之和为1000;而全部恶意软件中所有2-gram操作码序列的频数之和为100000(也包括(mov,push)在内),则计算(mov,push)序列的idf权重op
idf
便为:log(100000/1000)。
[0087]
进一步地,一实施例中,所述基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重的步骤包括:
[0088]
将所有恶意软件样本.asm文件中.asm文件中各个2-gram操作码序列的idf权重,各个2-gram操作码序列在全部恶意软件样本.asm文件中的概率输入至第二公式进行计算,得到各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,所述第二公式为:
[0089]
opw=op
idf
*op
tf
[0090]
其中,opw为单个恶意软件样本中单个2-gram操作码序列的tf-idf权重,op
idf
为所
有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
tf
为单个2-gram操作码序列在单个恶意软件样本.asm文件中的概率。
[0091]
本实施例中,计算各个2-gram操作码序列的tf-idf权重需要基于各个2-gram操作码序列的idf权重,与各个2-gram操作码序列在各个恶意软件样本.asm文件中的频率计算确定。其中,各个2-gram操作码序列在单个恶意软件样本.asm文件中的概率通过频数计算得来的。即单个2-gram操作码序列(mov,push)在单个恶意软件样本.asm文件中的概率是计算单个.asm文件中出现的(mov,push)频数除以这个.asm文件中不同的序列频数之和,如假设1.asm中(mov,push)频数为100,而1.asm中所有不同的序列(保留(mov,push))的和为10000,则(mov,push)的概率=1000/10000。
[0092]
进一步地,一实施例中,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码所采用的哈希编码为sha256和sha512编码两者结合的编码。
[0093]
本实施例中,采用sha256和sha512编码两者结合的编码对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,在单独一个sha256或sha512是不足以达到需要的尺寸的情况下,通过两种编码的结合可以适配不同需求尺寸的要求。例如,尺寸为32*24的图像需要的向量(拉平)是768(32*32),而sha256(256就是向量的长度)和sha(512)的组合为768,每个序列的向量长度都为768,最后得到的simhash序列长度为768,生成的simhash图像尺寸也是32*24。
[0094]
进一步地,一实施例中,所述结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列的步骤包括:
[0095]
为各个恶意软件样本中所有2-gram操作码序列进行simhash哈希编码;
[0096]
将各个2-gram操作码序列中哈希编码后对应为1的位置替换为对应2-gram操作码序列的tf-idf权重,将各个2-gram操作码序列中哈希编码后对应为0的位置替换为对应2-gram操作码序列的tf-idf权重后取负数,得到加权后各个2-gram操作码序列对应的序列值;
[0097]
把各个恶意软件样本中各个2-gram操作码序列对应的序列值累加,得到各个恶意软件样本对应的simhash序列。
[0098]
本实施例中,具体地,基于simhash哈希编码确定各个恶意软件样本对应的simhash序列时,先为各个恶意软件样本中所有2-gram操作码序列选择不同的哈希算法进行组合进行simhash哈希编码,达到simhash哈希编码后可转换为相同指定图像大小尺寸的向量长度,并通过哈希编码能够给不同的2-gram操作码序列不同的编码,从而确定不同序列之间的向量,并保证它们之间不同。在编码后,将各个2-gram操作码序列中哈希编码后对应为1的位置替换为对应2-gram操作码序列的tf-idf权重,将各个2-gram操作码序列中哈希编码后对应为0的位置替换为对应2-gram操作码序列的tf-idf权重后取负数,得到加权后各个2-gram操作码序列对应的序列值。把各个恶意软件样本中各个2-gram操作码序列对应的序列值累加,得到各个恶意软件样本对应的simhash序列。如(mov,push)编码后的hash值为101101,tf-idf权重值为2,则通过加权计算为(2
ꢀ‑
2 2 2
ꢀ‑
2 2);(mov,mov)编码后的hash值为101001,tf-idf权重值为3,则通过加权计算为(3
ꢀ‑
3 3
ꢀ‑
3-3 3),累加(mov,push)与(mov,mov)序列后的simhash序列为(5
ꢀ‑
5 5
ꢀ‑
1-5 5)。
[0099]
进一步地,一实施例中,所述基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像的步骤包括:
[0100]
确定各个恶意软件样本对应的simhash序列中所在位置是否为正数;
[0101]
若为正数,则赋值为整数255;
[0102]
若不为正数,则赋值为0,直至各个恶意软件样本对应的simhash序列中所有位置均赋值完成,则进行灰度图像转换,生成各个恶意软件样本对应的simhash图像。
[0103]
本实施例中,在得到各个恶意软件样本对应的simhash序列后,首先确定各个恶意软件样本对应的simhash序列中所在位置是否为正数,若为正数,则赋值为整数255。若不为正数,则赋值为0,直至各个恶意软件样本对应的simhash序列中所有位置均赋值完成,则进行灰度图像转换,从而生成各个恶意软件样本对应的simhash图像。如累加(mov,push)与(mov,mov)序列后的simhash序列为(5
ꢀ‑
5 5
ꢀ‑
1-5 5),则对应赋值后为(255 0 255 0 0 255),再基于(255 0 255 0 0 255)转换为对应的simhash图像。
[0104]
进一步地,一实施例中,cnn分类器对应卷积神经网络中包括三层卷积层、三层池化层、一层全连接层以及一层softmax分类器,其中,三层卷积层的卷积核尺寸为3*3,卷积核数量分别为20、50、100;三层池化层尺寸均为2*2,并采用relu作为激活函数;通过softmax分类器进行分类确定的恶意软件类型包括蠕虫、木马以及病毒在内的9种。
[0105]
本实施例中,cnn分类器采用卷积神经网络来处理simhash图像的图像纹理特征。基于cnn分类器对恶意软件分类的分类效率和分类准确度需求、数据集规模和可用的计算资源的综合考虑,本实施例方案中cnn分类器采用的卷积神经网络如图4所示,包含:卷积层,池化层,激活层,全连接层。卷积层通过设置不同的卷积核可以对图像的表层,深层图像纹理特征进行提取,因此本发明中采用三层卷积层,卷积核尺寸都为3*3,卷积核数量为20,50,100,并采用relu作为激活函数。之后通过2*2池化层对数据进行降维,进一步筛选特征的同时,减少模型计算量,最后通过全连接层进入softmax分类器进行分类。其中,通过softmax分类器进行分类确定的恶意软件类型包括蠕虫、木马以及病毒在内的9种,具体地,采用本发明提出的可视化方式生成的图像类型及数量由图5所示。
[0106]
本技术实施例还提供一种恶意软件可视化分类装置。
[0107]
参照图6,恶意软件可视化分类装置第一实施例的功能模块示意图。
[0108]
本实施例中,所述恶意软件可视化分类装置包括:
[0109]
第一计算模块10,用于确定预设数据集中各个恶意软件样本.asm文件的.text节及.code节中2-gram操作码序列频数,并基于所述2-gram操作码序列频数计算确定所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重;
[0110]
第二计算模块20,用于基于所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重计算确定各个恶意软件样本中各个2-gram操作码序列的tf-idf权重;
[0111]
图像生成模块30,用于结合各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码,计算得到各个恶意软件样本对应的simhash序列,并基于各个恶意软件样本对应的simhash序列生成各个恶意软件样本对应的simhash图像;
[0112]
数据集划分模块40,用于将预设数据集中全部恶意软件样本对应的simhash图像按比例划分为测试集和训练集;
[0113]
训练模块50,用于将训练集中各个恶意软件样本对应的simhash图像输入至cnn分类器进行恶意软件分类的训练;
[0114]
测试模块60,用于将测试集中各个恶意软件样本对应的simhash图像输入至训练完成的cnn分类器进行恶意软件分类,输出各个恶意软件样本对应的恶意软件类型。
[0115]
进一步地,一实施例中,所述第一计算模块10,还具体用于:
[0116]
将所有恶意软件样本.asm文件中各个2-gram操作码序列的全部频数之和,所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和输入至第一公式进行计算,得到所有恶意软件样本.asm文件中各个2-gram操作码序列的idf权重,所述第一公式为:
[0117][0118]
其中,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
fre
为所有恶意软件样本.asm文件中单个2-gram操作码序列的全部频数之和,n为所有恶意软件样本.asm文件中所有2-gram操作码序列的频数之和。
[0119]
进一步的,所述第二计算模块20,还具体用于:
[0120]
将所有恶意软件样本.asm文件中.asm文件中各个2-gram操作码序列的idf权重,各个2-gram操作码序列在全部恶意软件样本.asm文件中的概率输入至第二公式进行计算,得到各个恶意软件样本中各个2-gram操作码序列的tf-idf权重,所述第二公式为:
[0121]
opw=op
idf
*op
tf
[0122]
其中,opw为单个恶意软件样本中单个2-gram操作码序列的tf-idf权重,op
idf
为所有恶意软件样本.asm文件中单个2-gram操作码序列的idf权重,op
tf
为单个2-gram操作码序列在单个恶意软件样本.asm文件中的概率。
[0123]
进一步的,对各个恶意软件样本中的各个2-gram操作码序列进行simhash哈希编码所采用的哈希编码为sha256和sha512编码两者结合的编码。
[0124]
进一步的,所述图像生成模块30,还具体用于:
[0125]
为各个恶意软件样本中所有2-gram操作码序列进行simhash哈希编码;
[0126]
将各个2-gram操作码序列中哈希编码后对应为1的位置替换为对应2-gram操作码序列的tf-idf权重,将各个2-gram操作码序列中哈希编码后对应为0的位置替换为对应2-gram操作码序列的tf-idf权重后取负数,得到加权后各个2-gram操作码序列对应的序列值;
[0127]
把各个恶意软件样本中各个2-gram操作码序列对应的序列值累加,得到各个恶意软件样本对应的simhash序列。
[0128]
进一步的,所述图像生成模块30,还具体用于:
[0129]
确定各个恶意软件样本对应的simhash序列中所在位置是否为正数;
[0130]
若为正数,则赋值为整数255;
[0131]
若不为正数,则赋值为0,直至各个恶意软件样本对应的simhash序列中所有位置均赋值完成,则进行灰度图像转换,生成各个恶意软件样本对应的simhash图像。
[0132]
进一步的,cnn分类器对应卷积神经网络中包括三层卷积层、三层池化层、一层全连接层以及一层softmax分类器,其中,三层卷积层的卷积核尺寸为3*3,卷积核数量分别为
20、50、100,并采用relu作为激活函数;三层池化层尺寸均为2*2;通过softmax分类器进行分类确定的恶意软件类型包括蠕虫、木马以及病毒在内的9种。
[0133]
其中,上述恶意软件可视化分类装置中各个模块的功能实现与上述恶意软件可视化分类方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
[0134]
本技术实施例提供一种恶意软件可视化分类设备,该恶意软件可视化分类设备可以是个人计算机(personal computer,pc)、笔记本电脑、服务器等具有数据处理功能的设备。
[0135]
参照图7,图7为本技术实施例方案中涉及的恶意软件可视化分类设备的硬件结构示意图。本技术实施例中,恶意软件可视化分类设备可以包括处理器1001(例如中央处理器central processing unit,cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wi-fi接口);存储器1005可以是高速随机存取存储器(random access memory,ram),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图7中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0136]
继续参照图7,图7中作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及恶意软件可视化分类程序。其中,处理器1001可以调用存储器1005中存储的恶意软件可视化分类程序,并执行本技术实施例提供的恶意软件可视化分类方法的步骤。
[0137]
其中,恶意软件可视化分类程序被执行时所实现的方法可参照本技术恶意软件可视化分类方法的各个实施例,此处不再赘述。
[0138]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0139]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
网友询问留言已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
技术分类