一种恶意软件检测器训练方法及系统、检测方法及系统与流程

文档序号:21695956发布日期:2020-07-31 22:35阅读:166来源:国知局
一种恶意软件检测器训练方法及系统、检测方法及系统与流程

本发明涉及计算机恶意软件检测或处理技术领域,尤其涉及一种一种恶意软件检测器训练方法及系统、检测方法及系统。



背景技术:

恶意软件指有目的地实现攻击者破坏计算机、服务器、客户端或计算机网络的软件程序。代表类型有病毒、蠕虫、特洛伊木马、后门、rootkits、勒索软件、僵尸网络等。恶意软件危害巨大,对恶意软件的检测和防范是网络空间安全中长期存在的重要课题。

目前恶意软件检测方法包括传统的基于专家经验的分析方法和基于大数据的机器学习方法。机器学习方法让机器从大量样本中学习正常软件及恶意软件的特征,并根据其学习后获得的记忆对目标软件的善恶进行判别,无需专家经验且效率高。然而,越来越多的机器学习算法面临对抗攻击的挑战,即样本经过特定加噪处理后能让机器识别错误。目前已有研究人员提出有效的针对基于机器学习的恶意软件检测器的攻击方法。

生成式对抗网络是一种深度学习模型,模型通过框架中生成模块和判别模块的互相博弈学习产生理想的输出。

公开号为cn110826059a的中国发明“面向恶意软件图像格式检测模型的黑盒攻击的防御方法及其装置”提供了一种面向恶意软件图像格式检测模型的黑盒攻击的防御方法,包括:1)获取数据集,分为训练集和测试集;2)转换为恶意软件图像格式;3)构建基于深度卷积生成对抗网络(dcgan)生成扰动的黑盒攻击模型,黑盒攻击模型结构分为生成器和判别器两部分;4)经过步骤3)构建的生成器和判别器之间的不断对抗过程,生成器最终生成能够模仿样本b的对抗样本;5)将步骤4)获取的对抗样本对恶意软件汇编格式检测模型重训练进行优化,获得能够防御对抗攻击的恶意软件检测模型;6)利用能够防御对抗攻击的恶意软件检测模型对恶意软件进行识别。此发明还包括实施面向恶意软件图像格式检测模型的黑盒攻击的防御方法的装置。

公开号为cn110619216a的中国发明“一种对抗性网络的恶意软件检测方法及系统”提供了一种对抗性网络的恶意软件检测方法及系统,可以基于历史软件数据,分析构建一个噪声模拟恶意软件模型,将正常软件、恶意软件输入一个黑盒模型,进行打标,生成软件样本,使用该软件样本训练所述噪声模拟恶意软件模型,模型自身还有不断复合、变异恶意软件的能力。当噪声模拟恶意软件模型训练完毕后,在接入机器学习模块,作为机器学习模块的模拟恶意软件源,不间断地恶意软件训练机器学习模块,帮助提升机器学习模块检测的能力。

上述两个公开申请从不同方面公开了恶意软件的检测方法及装置。然而,对于加噪处理后的恶意软件,上述两个公开申请并未公开解决方法。



技术实现要素:

本发明要解决的技术问题是提供一种具有良好鲁棒性,能够检测加噪处理后的恶意软件的使用生成对抗网络优化的恶意软件检测方法及系统。

为解决上述问题,本发明的技术方案为:

一种恶意软件检测器训练方法,包括以下步骤:

将软件样本输入检测器d,训练所述检测器d;

生成器g生成噪声代码;

所述噪声代码插入恶意软件样本,形成噪声恶意软件样本;

将所述噪声恶意软件样本输入所述检测器d,训练所述检测器d;

其中,所述检测器d为生成对抗网络中的判别模型,所述生成器g为生成对抗网络中的生成模型。

进一步地,将所述软件样本输入所述检测器d前,所述方法还包括对所述软件样本进行预处理,所述预处理为将所述软件样本的每个字节作为一个范围在0到255间的整数,并将所有所述整数按原顺序排列,生成特征向量,当所述特征向量长度超过200万时,舍弃超出200万的部分;当所述特征向量长度不足200万时,用0填充,使所述特征向量长度达到200万。

进一步地,其特征在于,所述噪声代码为将一串服从伯努利分布的随机字节输入所述生成器g生成的二进制代码。

进一步地,其特征在于,所述噪声代码插入恶意软件样本包括将所述噪声代码整体插入所述恶意软件样本的中间或末尾。

进一步地,所述方法还包括对所述噪声恶意软件样本进行修正,所述修正为调整所述噪声恶意软件样本头部字段值。

进一步地,在所述生成器g生成所述噪声代码前,所述方法还包括,依据所述训练器d的反馈训练所述生成器g。

进一步地,其特征在于,依据所述训练器d的反馈训练所述生成器g包括:

调整所述生成器g的参数;

生成训练噪声代码,将所述训练噪声代码插入所述恶意软件样本,形成训练噪声恶意软件样本;

将所述训练噪声恶意软件样本输入所述检测器d,得到输出;

重复上述步骤,直到所述检测器d的输出趋向于0;

其中,输出为0代表软件的恶意程度为0。

一种恶意软件检测器训练系统,包括:

检测器d单元,用于检测软件;

生成器g单元,用于为恶意软件生成噪声代码;

修正器单元,用于将所述噪声代码插入所述恶意软件。

一种恶意软件检测方法,使用权利要求1-7中任一个训练得到的检测器d进行恶意软件检测。

一种恶意软件检测系统,包括检测单元,所述检测单元用于使用权利要求1-7中任一个训练得到的检测器d进行恶意软件检测。

与现有技术相比,本发明具有如下有益效果:

1.本发明可以识别加噪后的恶意软件,有助于提高网络安全;

2.本发明使用检测器d和生成器g组成生成对抗网络,在训练中不断提升生成器g生成噪声代码的能力,不断提升检测器d检测加噪后的恶意软件的能力;

3.本发明使用修正器修正加入噪声代码的恶意软件,使新恶意软件可用并保留原有恶意软件功能,模拟真实环境中的加噪恶意软件,提高检测能力;

4.本发明使用修正器调整二进制可执行文件头部字段值,可以使新恶意软件可用并保留原有恶意软件功能;

5.本发明使用生成器g生成噪声代码,可生成大量噪声代码,提高训练效率;

6.本发明使用大量对抗样本训练检测器d,在训练时学习识别恶意软件的重要特征,可以提高检测器d的鲁棒性。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。

图1为本发明系统框架图示意图;

图2为本发明训练检测器d流程示意图;

图3为本发明训练生成器g流程示意图。

具体实施方式

为了对本发明的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

实施例:

如图1-3所示为一种恶意软件检测器训练方法及系统、检测方法及系统。

一种恶意软件检测器训练系统,包括:

检测器d单元,用于检测软件并输出反馈;

生成器g单元,用于为恶意软件生成噪声代码;

修正器单元,用于将噪声代码插入恶意软件,并对恶意软件进行修正。

优化器optimd单元,用于设定和调整检测器d的参数;

优化器optimg单元,用于设定和调整生成器g的参数。

其中,检测器d为生成对抗网络中的判别数学模型,使用神经网络,用于拟合一个函数f(x),x是一个二进制可执行文件经过预处理后得到的特征向量,f(x)输出的函数值介于0-1之间。数值越大,代表软件是恶意软件的概率越大。

二进制可执行文件与本申请中提到的软件意思等同。

生成器g为生成对抗网络中的生成数学模型,使用神经网络。将一串服从伯努利分布的随机字节输入生成器g,生成器g会生成一段二进制代码。

生成对抗网络是指由检测器d和生成器g组成的结构,使用生成对抗网络可以让检测器d不断得到训练,能够在面对对抗样本时保持准确率。

一种恶意软件检测器训练方法,包括以下步骤:

将软件样本输入检测器d,训练检测器d;

生成器g生成噪声代码;

噪声代码插入恶意软件样本,形成噪声恶意软件样本;

将噪声恶意软件样本输入检测器d,训练检测器d。

具体地,将软件样本输入检测器d,训练检测器d包括:

准备软件样本集,软件样本集包括恶意软件和非恶意软件。

优化器optimd随机初始化训练检测器d的参数,参数包括初始权重、学习率、单次正向传播的批大小和训练的周期数。

将软件样本进行预处理,将二进制可执行文件(即软件样本)的每个字节作为一个范围在0到255间的整数,并将所有整数按原顺序排列,生成特征向量,当特征向量长度超过200万时,舍弃超出200万的部分,当特征向量长度不足200万时,则用0填充,使特征向量长度达到200万。

每个软件样本经预处理后得到一个特征向量。

将软件样本集的特征向量作为训练数据输入检测器d中,检测器d输出反馈。

优化器optimd调整、优化检测器d的参数,直至检测器d稳定,即恶意软件的值均趋于1并无法再上升,非恶意软件的值均趋于0并无法再下降。

生成器g生成噪声代码包括:

生成器为每个恶意软件生成一段噪声代码。其中,噪声代码和训练噪声代码为将一串服从伯努利分布的随机字节输入生成器g生成的二进制代码。

噪声代码插入恶意软件样本,形成噪声恶意软件样本包括:

修正器将噪声代码插入恶意软件样本,形成噪声恶意软件样本。多个噪声恶意软件样本组成噪声恶意软件样本集。

进一步地,修正器将噪声代码的整体插入恶意软件样本的中间或末尾,也即随机插入exe文件中的某个节中,形成噪声恶意软件样本,并对噪声恶意软件样本的头部字段值进行修正。修正为调整噪声恶意软件样本(二进制可执行文件)头部字段值,使新的恶意软件样本可用,且保持原有特征。

修正器为一段代码程序,本领域技术人员无需创造性劳动即可进行编程,以实现插入功能和修正功能。

将噪声恶意软件样本输入检测器d,训练检测器d包括:

将噪声恶意软件样本集添加到准备的软件样本集中,对噪声恶意软件样本进行预处理。将所有的特征向量输入检测器d中,使用优化器optimd调整、优化检测器d的参数,直至检测器d稳定,输出的值不再升高。

进一步地,在生成器g生成噪声代码前,方法还包括,依据训练器d的反馈训练生成器g,包括:

优化器optimg随机初始化生成器g的参数;

生成器g为每个恶意软件样本生成训练噪声代码;

修正器将训练噪声代码插入恶意软件样本,并对其中训练噪声代码插入恶意软件样本头部的部分进行修正,形成训练噪声恶意软件样本集;

将训练噪声恶意软件样本集输入初步训练完成的检测器d,检测器d输出反馈。

优化器optimg调整、优化生成器g的参数,重复上述三个步骤,直至检测器d的输出趋于稳定,且反馈趋向于非恶意软件,即检测器d的输出趋向于0。

生成器g训练完成。

这一步的目的是为了训练后的生成器g生成的噪声代码可以使检测器d误判。

例如:恶意软件样本m,加入噪声代码1后为m1,将m1预处理后输入检测器d中,检测器d输出一个趋近于1的值,例如0.6,代表m1(m)为恶意软件。调整生成器g,生成噪声代码2,加入恶意软件样本m,形成m2,将m2预处理后输入检测器d中,检测器d输出一个趋近于0的值,例如0.2,代表m2(m)为非恶意软件。依次循环,直至检测器d输出的值趋近于0且不再下降。

经过此种方法训练得到的生成器g生成的噪声代码因为会使检测器d误判,所以在接下来训练检测器d的时候,检测器d的检测能力不断上升,直至在检测加了噪声代码的恶意软件的时候不再误判。检测能力上升后的检测器d此时又可以用来训练生成器g,直至生成器g的噪声代码让其误判。如此循环往复,检测器d的检测能力不断提高。

一种恶意软件检测方法,使用上述方法中训练得到的检测器d进行恶意软件检测。

一种恶意软件检测系统,包括检测单元,检测单元用于使用上述方法训练得到的检测器d进行恶意软件检测。

本行业的技术人员应该了解,本发明不受上述实施例的限制,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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