恶意软件家族检测方法、存储介质和计算设备与流程

文档序号:20442184发布日期:2020-04-17 22:29阅读:196来源:国知局
恶意软件家族检测方法、存储介质和计算设备与流程

本发明涉及软件安全技术领域,特别涉及一种恶意软件家族检测方法、存储介质和计算设备。



背景技术:

恶意软件由黑客或攻击者通过操作系统或应用软件的安全漏洞植入受害者的计算机,影响用户的正常操作,执行如收集敏感信息、窃取超级用户权限等恶意操作。通常,主流恶意软件包括恶意脚本、漏洞利用、后门、蠕虫、特洛伊木马、间谍软件、rootkit等,以及上述类型的组合或变体。恶意软件借助于互联网提供的各种途径得以迅速传播,影响网络的正常运作。近年来,恶意软件数量都呈指数增长,使得恶意软件分析人员和反病毒软件供应商难以从这些大规模数据中提取信息进行分析。

而新恶意软件家族的出现更是带来了新的威胁,这值得安全研究人员关注。与此同时,现有研究大多致力于将具有相似行为或特征的恶意软件分类到已知的恶意软件家族,但这种分类方式并不具备区分新恶意软件家族的能力,因为新恶意软件家族的样本没有参与训练过程。因此,如何正确、有效地检测恶意软件新家族是一个重要的研究问题。

深度学习的进步影响了自然语言处理和计算机视觉等各个领域问题的解决方法,摆脱了对特征工程的依赖,使得很多任务变得更加容易,一些任务完成得比人类更好。在普通的分类任务中,需要满足这样一个条件:测试集样本所属类别与训练集样本所属类别要一致。通过学习区分训练集中所有已知类别的样本,模型具有判断一个测试样本所属类别的能力。然而,深度神经网络存在一个已知的缺点:当预测训练集中不存在类别的样本时,它可能输出“过于自信”的值,即过拟合。这是因为神经网络输出的向量值对应每个类概率的总和通常为1,当一个未知类别的样本输入进来,它仍然会输出各类别的概率,总和依然为1,这种现象导致了神经网络对于它未见过的内容出现“过于自信”的问题。因此,如果待测样本属于未知类(即未对其进行训练的类),则该神经网络不具备输出正确结果的能力,从而造成错误分类。恶意软件分类研究领域中同样存在这样的问题,假设已经收集了每个现有恶意软件家族的所有样本进行训练,但是由于恶意软件研究领域天然的对抗性,恶意软件作者会不断地发布新的恶意软件家族,所以在相对开放的恶意软件分类环境中,待测样本可能属于训练集中的已知家族或训练集中不存在的新家族,若采用传统的分类方式,则会造成错误分类。针对上述问题,研究出一种恶意软件新家族检测技术是十分有必要的,即将不属于训练集所有已知家族的待测样本检测出来,并标记为新恶意软件家族。

在实际情况中,许多新家族的恶意软件没有记录,甚至没有被注意到。与此同时,对安全研究人员来说,快速了解新恶意软件家族的样本至关重要。一旦检测出恶意软件属于新恶意家族,他们可以优先关注此文件,人工分析它的行为(例如网络活动、系统调用等),只有了解恶意软件有关的行为,才能更好地移除它。简而言之,检测新恶意软件家族能够在一定程度上减轻网络空间安全的新威胁。

综上所述,研究恶意软件新家族检测技术并应用在相对开放的恶意软件检测环境中有着较为重要的意义。一方面可以避免将恶意软件新家族错误分类到已知的恶意软件家族,另一方面可以帮助安全研究人员及时关注新恶意软件家族。



技术实现要素:

本发明的第一目的在于克服现有技术的缺点与不足,提供一种恶意软件家族检测方法,该方法可以正确检测恶意软件的所属类别,分类效果良好。

本发明的第二目的在于提供一种存储介质。

本发明的第三目的在于提供一种计算设备。

本发明的第一目的通过下述技术方案实现:一种恶意软件家族检测方法,步骤如下:

s1、特征提取:对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量;

s2、孪生网络设计:将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练;

s3、新奇性度量:从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;

计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。

优选的,步骤s1中,对恶意软件训练样本进行特征提取,得到对应的特征向量,过程如下:

对恶意软件训练样本进行预处理:对每个恶意软件训练样本进行行为分析,生成对应的报告文件,提取出报告文件中的所有关键字并去重,将报告文件保存为文本文件;

遍历所有保存有关键字的文本文件,根据文本文件中的关键字构建字典,并统计每个关键字的出现次数,删除字典中出现次数等于样本数的关键字;

根据关键字出现次数,按照从大到小的顺序对字典进行排序,并取出出现次数最高的n个关键字作为新字典;

初始化一个n维的向量,该向量的n个维度分别对应n个不同的关键字,再次遍历所有保存有关键字的文本文件,判断关键字是否出现在新字典中,

若有,则将向量对应维度设为1;若无,则将向量对应维度设为0;

完成遍历的n维二值向量为特征向量。

更进一步的,利用沙箱对恶意软件训练样本进行预处理,具体是将恶意软件训练样本提交至沙箱中运行,沙箱为每个恶意软件生成包含行为分析报告的文本文件。

更进一步的,提取的关键字为unigrams,报告文件为json报告文件。

优选的,在步骤s2中,将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练,过程如下:

计算特征向量中每一位的像素值:将位数值0映射为像素值0,将位数值1映射为像素值255;

将n维的特征向量转换为x×y像素矩阵,n=x·y,x为像素矩阵的行数,y为像素矩阵的列数;

将像素矩阵转换为特征图像;

将特征图像进行两两配对,组合成大量图像对,图像对包括相似图像对和不相似图像对;

构建孪生网络模型:选择孪生网络的子网络类型,确定孪生网络模型的参数配置;

将图像对作为输入对孪生网络模型进行训练,孪生网络模型输出两个特征向量的相似度;

计算损失函数l(x1,x2,y),损失函数l(x1,x2,y)计算公式如下:

l(x1,x2,y)=-(ylogp(x1,x2)+(1-y)log(1-p(x1,x2)))+λ||w||2;

其中,x1和x2分别为图像对的两张特征图像;p(x1,x2)为孪生网络模型输出的相似度;y为标签;λ||w||2为l2权重衰减项;λ为权重衰减系数;w为子网络的权重;

通过最小化损失函数的计算结果,以使输出和目标输出的误差越来越小,直至孪生网络模型收敛;当孪生网络模型达到训练轮数时,训练完成。

更进一步的,子网络为卷积神经网络,孪生网络模型包括输入层、4个卷积层、3个池化层、3个全连接层和输出层;

输入层具有2个输入维度;4个卷积层分别为第一卷积层、第二卷积层、第三卷积层和第四卷积层,包含卷积核个数分别为32、64、64、128,卷积核均采用5×5的尺寸,激活函数为relu;3个池化层分别为第一池化层、第二池化层和第三池化层,3个池化层均采用最大池化,窗口大小均为2×2;3个全连接层分别为第一全连接层、第二全连接层和第三全连接层,第一全连接层的神经元个数为4096,第二全连接层的神经元个数为2048,第三全连接层的神经元个数为1;

输入层、第一卷积层、第一池化层、第二卷积层、第二池化层、第三卷积层、第三池化层、第四卷积层、3个全连接层和输出层依次连接,其中,第四卷积层与4096个神经元进行全连接,激活函数为relu;然后再与2048个神经元进行全连接,激活函数为relu,输入的特征图像映射成两个2048维的特征向量h1和h2,将h1和h2的绝对差作为第三全连接层的输入,通过第三全连接层中的sigmoid函数将输出转换为一个概率,即将输出归一化到[0,1]之间。

优选的,在步骤s3中,从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分,过程如下:

步骤1、从恶意软件测试集中取出一个待测样本;

步骤2、针对于每个待测样本,利用训练好的孪生网络模型计算出待测样本与恶意软件训练集中每个类中所有恶意软件训练样本的相似度均值;

步骤3、将相似度均值中的最大值作为待测样本的相似度得分;

步骤4、重复步骤1~3,直至取完恶意软件测试集的待测样本,每个待测样本对应得到一个相似度得分。

优选的,计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族,具体如下:

从恶意软件验证集取出多个验证样本,利用训练好的孪生网络模型统计每个验证样本与恶意软件训练样本的相似度得分;

在相似度得分的最高分数和最低分数之间,以最低分数为基础,以一个定值作为公差,依次递增得到多个分数,并将这些分数作为临时阈值,分别计算出对应的验证集的f1分数;

选取f1分数最高的临时阈值作为最终的阈值;

根据阈值区分待测样本的所属类别,当待测样本的类别不属于训练集中的已知恶意软件家族,则将其标记为新恶意软件家族;

所用的区分公式具体如下:

其中,x为待测样本,nd为恶意软件新家族检测器;score为相似度得分;τ为合适的阈值;knownfamily为已知恶意软件家族;newfamily为新恶意软件家族;otherwise表示score≤τ。

本发明的第二目的通过下述技术方案实现:一种存储介质,存储有程序,所述程序被处理器执行时,实现本发明第一目的所述的恶意软件家族检测方法。

本发明的第三目的通过下述技术方案实现:一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本发明第一目的所述的恶意软件家族检测方法。

本发明相对于现有技术具有如下的优点及效果:

(1)本发明恶意软件家族检测方法,包括先对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量;将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练;从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。本发明检测方法通过特征提取、孪生网络设计和新奇性度量这三个步骤实现对恶意软件的所属类别的检测,检测正确率高,分类效果良好;将不属于训练集中的已知恶意软件家族的恶意软件检测出来并标记为新恶意软件家族,能够在一定程度上减轻网络空间安全的新威胁。

(2)本发明恶意软件家族检测方法结合了孪生网络和特征图像,具有较高的查准率、召回率、f1分数和正确率,较低的误报率和漏报率。

(3)本发明恶意软件家族检测方法中,提取的特征并非采用人工特征,而是根据恶意软件运行时的特点自动提取特征,并且在训练期间不需额外加入与训练样本不同分布的样本,提取新特征的过程不需要多次训练模型,过程简单,具有较高的推广价值。

附图说明

图1是本发明恶意软件家族检测方法的流程图。

图2是特征向量生成过程的流程图。

图3是特征图像生成过程的流程图。

图4是孪生网络模型的结构图。

图5是新奇性度量的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1

本实施例公开了一种恶意软件家族检测方法,如图1所示,步骤如下:

s1、特征提取:对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量,如图2所示,过程如下:

s11、对恶意软件训练样本进行预处理:对每个恶意软件训练样本进行行为分析,生成对应的报告文件,提取出报告文件中的所有关键字并去重,将报告文件保存为文本文件。每个恶意软件是对应一个文本文件。

本实施例利用沙箱对恶意软件训练样本进行预处理,具体是将恶意软件训练样本提交至沙箱中运行,沙箱为每个恶意软件生成包含行为分析报告的文本文件。沙箱可以为cuckoo沙箱,cuckoo沙箱是一个特殊的系统环境记录运行在其中程序的行为,例如api函数调用、传递的参数、创建或删除的文件、访问的网站和端口等。

在本实施例中,提取的关键字为unigrams,报告文件为json报告文件。提取所有unigrams并去重,例如,给定序列"api":"deletefilew",提取的unigrams是‘"api":’和‘"deletefilew",’,再将json报告文件保存为txt文本文件。

s12、遍历所有保存有关键字的文本文件,根据文本文件中的关键字构建字典,并统计每个关键字的出现次数,删除字典中出现次数等于样本数的关键字,即删除共有的关键字,例如在本实施例中,删除字段名json这些不包含有效信息的unigrams。

s13、根据关键字出现次数,按照从大到小的顺序对字典进行排序,并取出出现次数最高的n个关键字作为新字典。本实施例n为20000,因此,本实施例的字典保存有所有恶意软件的top20000的关键字。

s14、初始化一个n维的向量,该向量的n个维度分别对应n个不同的关键字,再次遍历所有保存有关键字的文本文件,判断关键字是否出现在新字典中,

若有,则将向量对应维度设为1;若无,则将向量对应维度设为0;

完成遍历的n维二值向量为特征向量。

s2、孪生网络设计:将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练,过程如下:

s21、如图3所示,计算特征向量中每一位的像素值:将位数值0映射为像素值0,将位数值1映射为像素值255。

将n维的特征向量转换为x×y像素矩阵,n=x·y,x为像素矩阵的行数,y为像素矩阵的列数。本实施例具体是将20000维的特征向量转换为200×100的像素矩阵。

将像素矩阵转换为特征图像。

s22、将特征图像进行两两配对,组合成大量图像对,图像对包括相似图像对和不相似图像对。相似图像对也可以称为正样本对,不相似图像对也可以称为负样本对。

s23、构建孪生网络模型:选择孪生网络的子网络类型,确定孪生网络模型的参数配置。

在本实施例中,孪生网络模型的结构如图4所示,子网络为卷积神经网络cnn,孪生网络模型包括输入层、4个卷积层、3个池化层、3个全连接层和输出层。

参数配置如表1所示,输入层具有2个输入维度x1和x2。4个卷积层分别为第一卷积层、第二卷积层、第三卷积层和第四卷积层,包含卷积核个数分别为32、64、64、128,卷积核均采用5×5的尺寸,激活函数为relu。3个池化层分别为第一池化层、第二池化层和第三池化层,3个池化层均采用最大池化,窗口大小均为2×2。3个全连接层分别为第一全连接层、第二全连接层和第三全连接层,第一全连接层的神经元个数为4096,第二全连接层的神经元个数为2048,第三全连接层的神经元个数为1。

输入层、第一卷积层、第一池化层、第二卷积层、第二池化层、第三卷积层、第三池化层、第四卷积层、3个全连接层和输出层依次连接,其中,第四卷积层与4096个神经元进行全连接,激活函数为relu;然后再与2048个神经元进行全连接,激活函数为relu,输入的特征图像映射成两个2048维的特征向量h1和h2,将h1和h2的绝对差作为第三全连接层的输入,通过第三全连接层中的sigmoid函数将输出转换为一个概率,即将输出归一化到[0,1]之间。

表1

s24、将图像对作为输入对孪生网络模型进行训练,孪生网络模型输出两个特征向量的相似度。

s25、计算损失函数l(x1,x2,y),损失函数是预测和目标之间的二分类交叉熵,计算公式如下:

l(x1,x2,y)=-(ylogp(x1,x2)+(1-y)log(1-p(x1,x2)))+λ||w||2;

其中,x1和x2分别为图像对的两张特征图像;p(x1,x2)为孪生网络模型输出的相似度;y为标签;λ||w||2为l2权重衰减项;λ为权重衰减系数;w为子网络的权重;

通过最小化损失函数的计算结果,以使输出和目标输出的误差越来越小,直至孪生网络模型收敛;当孪生网络模型达到训练轮数时,训练完成。本实施例训练轮数具体设置为20轮。

s3、新奇性度量:如图5所示,从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;

计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。

其中,相似度得分的计算过程如下:

步骤1、从恶意软件测试集中取出一个待测样本;

步骤2、针对于每个待测样本,利用训练好的孪生网络模型计算出待测样本与恶意软件训练集中每个类中所有恶意软件训练样本的相似度均值;

步骤3、将相似度均值中的最大值作为待测样本的相似度得分;

步骤4、重复步骤1~3,直至取完恶意软件测试集的待测样本,每个待测样本对应得到一个相似度得分。

计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族,具体如下:

(1)从恶意软件验证集取出多个验证样本,利用训练好的孪生网络模型统计每个验证样本与恶意软件训练样本的相似度得分;

(2)在相似度得分的最高分数和最低分数之间,以最低分数为基础,以一个定值作为公差,依次递增得到多个分数,并将这些分数作为临时阈值,分别计算出对应的验证集的f1分数;f1分数可通过常用的f1计算公式计算得到。本实施例定值取0.1。

(3)选取f1分数最高的临时阈值作为最终的阈值。

(4)根据阈值区分待测样本的所属类别,当待测样本的类别不属于训练集中的已知恶意软件家族,则将其标记为新恶意软件家族。

所用的区分公式具体如下:

其中,x为待测样本,nd(noveltydetector)为恶意软件新家族检测器;score为相似度得分;τ为合适的阈值;knownfamily为已知恶意软件家族;newfamily为新恶意软件家族;otherwise表示score≤τ。

实施例2

本实施例公开了一种存储介质,存储有程序,所述程序被处理器执行时,实现实施例1所述的恶意软件家族检测方法,具体如下:

s1、特征提取:对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量;

s2、孪生网络设计:将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练;

s3、新奇性度量:从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;

计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。

本实施例中的存储介质可以是磁盘、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、u盘、移动硬盘等介质。

实施例3

本实施例公开了一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现实施例1所述的恶意软件家族检测方法,具体如下:

s1、特征提取:对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量;

s2、孪生网络设计:将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练;

s3、新奇性度量:从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;

计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。

本实施例中所述的计算设备可以是台式电脑、笔记本电脑、智能手机、pda手持终端、平板电脑或其他具有处理器功能的终端设备。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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