本发明专利技术公开了一种基于参数优化元学习的恶意软件家族分类方法,包括恶意软件文件预处理、神经网络模型训练、模型测试和模型微调步骤。本发明专利技术将原始恶意软件转化为可视化的灰度图像,将灰度图像进行特征提取并使用基于参数优化的元学习方法加以训练;在训练过程中,对于类精度低的恶意软件家族的灰度图像样本作为困难样本,加入下一轮训练任务继续训练分类器,以便实现所有恶意软件的准确分类。本发明专利技术可以在网络模型简单、样本少的情况下实现恶意软件的高精度分类,且具有较高的泛化能力。
【技术实现步骤摘要】
一种基于参数优化元学习的恶意软件家族分类方法
本专利技术涉及一种恶意软件家族分类方法,尤其涉及一种基于参数优化元学习的恶意软件家族分类方法,属于网络安全
技术介绍
随着网络应用的发展和物联网的盛行,恶意软件成了网络安全的主要威胁之一。从2019年到2020年,恶意软件增长了近1亿。同时,攻击者又通过代码变换、代码插入、子程序重构等方法产生了恶意软件的变种来逃避杀毒软件的检测。因此,恶意软件检测与分类成了网络安全领域一个非常重要的课题,尤其随着大数据时代的到来,需要提出一个更简单且有效的方法去分类恶意软件家族。在恶意软件分类领域,目前主要使用的是以机器学习为代表的方法来分类,通过将原始二进制文件样本可视化为图片,从而把恶意软件分类问题转化为图片分类问题,并且取得了很好的分类精度。但对于模型的复杂度以及样本的数量等问题,这些方法没有考虑率模型的开销以及合适的策略去处理样本不平衡,并且对于新出现的恶意家族的样本,传统的机器学习方法分类效果较差。
技术实现思路
本专利技术要解决的技术问题是提供一种基于参数优化元学习的恶意软件家族分类方法。为了解决上述技术问题,本专利技术采用的技术方案是:一种基于参数优化元学习的恶意软件家族分类方法,包括如下步骤:步骤1:恶意软件文件预处理:将样本恶意软件文件逐一转换为灰度图像样本;所述灰度图像样本随机划分为训练集Dtrain,验证集Dval,测试集Dtest;步骤2:神经网络模型训练:步骤2-1:抽取训练数据:从训练集Dtrain随机抽取样本构成1个以上任务,每个任务包括支撑集Dsupport和搜索集Dquery;步骤2-2:使用支撑集Dsupport中的灰度图像样本来计算模型参数,进行第一次梯度更新;损失函数使用交叉熵损失函数,计算方法为:其中,x(j)和y(j)是第j灰度图像样本和标签,fφ是初始化参数为φ的神经网络模型;lT(fφ)是交叉熵损失函数,θ'i是第i个任务支撑集样本计算的第一次更新参数,α为学习率,是损失函数对初始化参数φ的梯度;步骤2-3:以第一次更新参数θ'i为初始参数,使用搜索集Dquery中的灰度图像样本学习模型参数,使损失函数之和最小;步骤2-4:以第一次更新参数θ'i为模型参数,以任务中灰度图像样本的损失函数总和为目标函数,优化模型参数,模型参数更新方法为:其中,β为学习率,Ti为第i个任务,为搜索集Dquery上的任务对初始参数φ梯度,φ为更新后的参数;步骤2-5:计算任务中灰度图像样本在当前模型参数条件下各恶意软件家族的训练精度,并根据训练精度进行恶意软件家族排序,对于准确率低于预设阈值的恶意软件家族将所使用的灰度图像样本作为困难样本加入下一轮训练的任务中;步骤2-6:判断本次与上次训练的模型参数对各恶意软件家族分类的训练精度之差是否小于收敛阈值或是否为最后一个任务,如果是,结束转向步骤3,否则转向步骤2-2;步骤3:模型测试:在测试集Dtest中随机选择1批以上任务进行模型测试,计算各恶意软件家族分类的准确率、精确率、召回率、f1-score指标;步骤4:模型微调:随机在训练集中抽取1个以上任务,用任务中支撑集Dsupport中的灰度图像样本对步骤3训练好的模型进行微调,微调方法与步骤2相同,用Dquery集去测试模型输出准确率。进一步,所述神经网络模型包含四个结构相同的神经块,各神经块包括一个卷积层,一个BatchNorm层和一个ReLu非线性层;各神经块的输出经2×2的最大池化层后进入分类层Linear,输出分类概率。更进一步,第一个卷积块中卷积核的大小为3×3×6,输出的特征图的大小为40×40×6;第二个卷积块中卷积核的大小为3×3×16,输出的特征图的大小为20×20×16;第三个卷积块中卷积核的大小为3×3×32,输出特征图的大小为10×10×32;第四个卷积块中卷积核的大小为3×3×32,输出特征图的大小为5×5×32。采用上述技术方案所取得的技术效果在于:1、本专利技术利用元学习提取基于任务的样本,使用样本数量少也可以保证分类精度,本专利技术为恶意软件分类提供有力支撑;2、本专利技术采用了困难样本挖掘方法再训练网络模型,进一步提高分类精度,更好的保证网络安全;3、本专利技术模型简单,所用的参数量少,计算量小。附图说明图1是本专利技术的流程图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。如图1所示,一种基于参数优化元学习的恶意软件家族分类方法,包括以下步骤:步骤1:恶意软件文件预处理:将样本恶意软件文件逐一转换为灰度图像样本;所述灰度图像样本随机划分为训练集Dtrain,验证集Dval,测试集Dtest;步骤2:神经网络模型训练:步骤2-1:抽取训练数据:从训练集Dtrain随机抽取样本构成1个以上任务,每个任务包括支撑集Dsupport和搜索集Dquery;步骤2-2:使用支撑集Dsupport中的灰度图像样本来计算模型参数,进行第一次梯度更新;损失函数使用交叉熵损失函数,计算方法为:其中,x(j)和y(j)是第j灰度图像样本和标签,fφ是初始化参数为φ的神经网络模型;lT(fφ)是交叉熵损失函数,θ'i是第i个任务支撑集样本计算的第一次更新参数,α为学习率,是损失函数对初始化参数φ的梯度;步骤2-3:以第一次更新参数θ'i为初始参数,使用搜索集Dquery中的灰度图像样本学习模型参数,使损失函数之和最小;步骤2-4:以第一次更新参数θ'i为模型参数,以任务中灰度图像样本的损失函数总和为目标函数,优化模型参数,模型参数更新方法为:其中,β为学习率,Ti为第i个任务,为搜索集Dquery上的任务对初始参数φ梯度,φ为更新后的参数;步骤2-5:计算任务中灰度图像样本在当前模型参数条件下各恶意软件家族的训练精度,并根据训练精度进行恶意软件家族排序,对于准确率低于预设阈值的恶意软件家族将所使用的灰度图像样本作为困难样本加入下一轮训练的任务中;步骤2-6:判断本次与上次训练的模型参数对各恶意软件家族分类的训练精度之差是否小于收敛阈值或是否为最后一个任务,如果是,结束转向步骤3,否则转向步骤2-2;步骤3:模型测试:在测试集Dtest中随机选择1批以上任务进行模型测试,计算各恶意软件家族分类的准确率、精确率、召回率、f1-score指标;步骤4:模型微调:随机在训练集中抽取1个以上任务,用任务中支撑集Dsupport中的灰度图像样本对步骤3训练好的模型进行微调,微调方法与步骤3相同,用Dquery集去测试模型输出准确率。所述神经网络模型包含四个结构相同的神经块,各神经块包括一个卷积层,一个BatchNorm层和一个ReLu非线性层;各神经块的输出经2×2的本文档来自技高网...
【技术保护点】
1.一种基于参数优化元学习的恶意软件家族分类方法,其特征在于:包括如下步骤:/n步骤1:恶意软件文件预处理:将样本恶意软件文件逐一转换为灰度图像样本;所述灰度图像样本随机划分为训练集D
【技术特征摘要】
1.一种基于参数优化元学习的恶意软件家族分类方法,其特征在于:包括如下步骤:
步骤1:恶意软件文件预处理:将样本恶意软件文件逐一转换为灰度图像样本;所述灰度图像样本随机划分为训练集Dtrain,验证集Dval,测试集Dtest;
步骤2:神经网络模型训练:
步骤2-1:抽取训练数据:从训练集Dtrain随机抽取样本构成1个以上任务,每个任务包括支撑集Dsupport和搜索集Dquery;
步骤2-2:使用支撑集Dsupport中的灰度图像样本来计算模型参数,进行第一次梯度更新;损失函数使用交叉熵损失函数,计算方法为:
其中,x(j)和y(j)是第j个灰度图像样本和标签,是初始化参数为的神经网络模型;是交叉熵损失函数,θ′i是第i个任务支撑集样本计算的第一次更新参数,α为学习率,是损失函数对初始化参数的梯度;
步骤2-3:以第一次更新参数θ′i为初始参数,使用搜索集Dquery中的灰度图像样本学习模型参数,使损失函数之和最小;
步骤2-4:以第一次更新参数θ′i为模型参数,以任务中灰度图像样本的损失函数总和为目标函数,优化模型参数,模型参数更新方法为:
其中,β为学习率,Ti为第i个任务,为搜索集Dquery上的任务对初始参数梯度,为更新后的参数;
步骤2-5:计算任务中灰度图像样本在当前模型参数条件下各恶意软件家族的训练精度,并根据训练精度进行恶意...
【专利技术属性】
技术研发人员:王方伟,柴国芳,王长广,李青茹,赵冬梅,曾水光,
申请(专利权)人:河北师范大学,
类型:发明
国别省市:河北;13
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。