一种基于生成对抗网络的恶意软件检测器抗概念漂移方法与流程

专利2022-06-29  63


本发明属于网络安全技术领域,尤其涉及一种基于生成对抗网络的恶意软件检测器抗概念漂移方法。



背景技术:

网络环境日趋复杂,各种攻击手段层出不穷,恶意软件作为网络攻击的重要载体,具有破坏、窃取、勒索等多种功能。据卡巴斯基2019年度报告称(https://securelist.com/ksb-2019/“kasperskysecuritybulletin2019”),2019年度检测到新的恶意软件数量达到约两千四百万,为全世界网络安全带来了严重威胁。因此,能够有效检测恶意软件具有重要意义。

现阶段常规的防御恶意软件的手段,通常是使用商业反病毒软件。商业反病毒软件使用基于签名的方法或者基于启发式的方法,其优点是精度高,速度快。但是遇到新的恶意软件则无法有效检测,并且签名库需要线上实时更新,在一些应用场景下无法及时且有效防御恶意软件。检测恶意软件有动态检测与静态检测两大类方法,这些方法都能够在检测性能上获得良好的检测率,同时也有研究者考虑到了一些变种恶意软件和一些难以检测类型的恶意软件。但是,大多数的研究没有关注随时间产生的样本概念漂移的问题,当检测器使用新收集到的恶意软件时,由于样本概念漂移造成模型检测结果产生偏差。

近来,有越来越多的研究者开始关注由于新出现的恶意软件造成样本集产生偏差的问题。样本的偏差造成检测器模型老化,这在机器学习中是一个不可避免的问题,大多数恶意软件研究目的是提升检测恶意软件的精度,和恶意软件本身出现的逃逸问题检测。尽管恶意软件技术不断改进,同一类型或同一家族中新的恶意软件层出不穷(样本概念漂移),这本身是一种逃逸问题,大多数的研究对此应对不足。一种基于api调用、使用马尔科夫链的检测方法(onwuzurikel,maricontie,andriotisp,etal.mamadroid:detectingandroidmalwarebybuildingmarkovchainsofbehavioralmodels(extendedversion)[j].acmtransactionsonprivacyandsecurity(tops),2019,22(2):14.)能够长期有效的对抗样本的漂移问题,但是该方法基于静态检测,遇到加密的恶意样本则会导致该类型检测性能的下降。而众多恶意软件对抗样本问题的研究,绝大多数的关注点在防御对抗检测器攻击,而目前grosse等人(grossek,papernotn,manoharanp,etal.adversarialexamplesformalwaredetection[c]//europeansymposiumonresearchincomputersecurity.springer,cham,2017:62-79.)提出使用蒸馏法缓解对抗样本的问题,在一定程度上能缓解概念漂移造成的检测率下降。以上方法在对抗样本漂移上已经提出了较为有效的解决方法,但是这些研究更偏重于样本空间的偏差带来的影响,而未考虑时间偏差所造成的影响。



技术实现要素:

本发明针对现有的对抗样本漂移方法中存在的未考虑时间偏差所造成的影响,从而不能较好解决恶意样本随时间变化产生的概念漂移的问题,提出一种基于生成对抗网络的恶意软件检测器抗概念漂移方法。

为了实现上述目的,本发明采用以下技术方案:

一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,包括:

步骤1:从沙箱提取恶意代码的api调用序列,并通过word2vec将api调用序列转换为特征向量;

步骤2:基于所述特征向量训练辅助分类生成对抗网络;

步骤3:利用训练好的辅助分类生成对抗网络生成恶意代码api调用序列,同时加入实际的恶意代码api调用序列,通过gru网络进行训练得出恶意软件检测器;

步骤4:将恶意软件检测器的检测结果作为训练集,重新训练辅助分类生成对抗网络,按照步骤3方式重新训练恶意软件检测器,以提高恶意软件检测器的抗概念漂移性能。

进一步地,所述步骤1包括:

步骤1.1:将提取到的api调用序列排列为一组;

步骤1.2:针对api调用序列中每个函数,对每个函数周围2a个函数取平均值,a为上下文常量;

步骤1.3:设置训练迭代次数,对每个函数对应的平均值进行更新,将各函数对应的平均值与当前api调用序列的标签合并,作为api调用序列对应的特征向量。

进一步地,所述步骤2包括:

步骤2.1:在生成器的输入端,为每个特征向量增加一个符合高斯分布的随机数;

步骤2.2:生成器最后一层全连接层将数据送入两个激活函数sigmoid和softmax,将生成的数据映射为向量,并得到真假输出和类别输出;

步骤2.3:在生成器和判别器的网络全连接层之间均连接一层批量规范化层,以保证每一层神经网络的输入保持相同分布;

步骤2.4:通过adam优化器优化损失函数,完成辅助分类生成对抗网络训练。

进一步地,所述步骤3包括:

步骤3.1:利用训练好的辅助分类生成对抗网络生成恶意代码api调用序列,同时加入实际的恶意代码api调用序列,生成恶意代码数据集,将恶意代码数据集中各恶意代码api调用序列转换为特征向量;

步骤3.2:采用1层以上gru网络,将步骤3.1中的特征向量嵌入embedding层作为输入;

步骤3.3:将embedding层输出的特征作为gru层的输入;

步骤3.4:将gru层的输出作为全连接层的输入,使用relu作为全连接层的激活函数;

步骤3.5:使用softmax函数回归得到分类结果,完成恶意软件检测器的训练。

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

本发明采用api调用序列作为特征,训练生成对抗网络,使用训练好的生成对抗网络生成模拟概念漂移的样本,用于训练恶意软件检测器。同时依照恶意软件检测器检测结果再次作为训练集,重新训练生成器并产生生成样本,以重复训练检测模型,提高监测模型的抗概念漂移性能。本发明使用真实的恶意软件样本与生成的样本训练检测器模型,并按照线性的时间顺序分割恶意样本集作为测试集,验证本发明方法的有效性。结果表明,本发明在较长的时间维度下,能够较好解决恶意样本随时间变化产生的概念漂移的问题,且能够获得良好的检测精度,有效的抵抗检测器的老化。

附图说明

图1为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的基本流程图;

图2为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的辅助分类生成对抗网络结构示意图;

图3为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的双层gru神经网络模型结构示意图;

图4为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的辅助分类生成对抗网络的生成器和判别器损失值曲线图;

图5为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的训练分类结果图;其中(a)为未使用acgan生成样本,直接使用gru进行训练的分类结果图;(b)为使用acgan生成样本训练的结果图;

图6为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的时间漂移对准确率影响曲线图;

图7为本发明实施例一种基于生成对抗网络的恶意软件检测器抗概念漂移方法的重训练样本结果曲线图。

具体实施方式

下面结合附图和具体的实施例对本发明做进一步的解释说明:

如图1所示,一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,包括:

步骤s101:从沙箱提取恶意代码的api调用序列,并通过word2vec将api调用序列转换为特征向量;

步骤s102:基于所述特征向量训练辅助分类生成对抗网络;

步骤s103:利用训练好的辅助分类生成对抗网络生成恶意代码api调用序列,同时加入实际的恶意代码api调用序列,通过gru网络进行训练得出恶意软件检测器;

步骤s104:将恶意软件检测器的检测结果作为训练集,重新训练辅助分类生成对抗网络,按照步骤s103方式重新训练恶意软件检测器,以提高恶意软件检测器的抗概念漂移性能。

具体地,所述步骤s101包括:

本实施例使用的特征为从大量的已知恶意代码类型的恶意代码中提取的api调用序列。cuckoo是一种自动化的恶意软件分析系统,俗称沙箱。沙箱通过监视恶意软件在其内部的运行,记录恶意代码执行的函数和数据。将沙箱提取的函数序列作为原始数据,使用word2vec方法将api序列转换为特征向量。该特征向量作为对抗生成网络和gru网络的训练特征。

由于不同类型的恶意软件的api调用顺序不同,部分函数的组合能够表达更强的恶意性。而word2vec方法是一种浅层神经网络,该方法能够将api函数序列按照它们之间的前后顺序映射成n维的实数向量,通过函数与函数之间的距离使用实数表达它们的相似度。作为一种可实施方式,本实施例中采用分层softmax的cbow模型,使用csdmc2010api语料库,并结合从沙箱中提取的样本对语料库进行增量补充。我们将提取到的api调用序列排列为一组,其形式为f={f1,f2,f3,...,fn},其中fn代表序列中对应位置的函数。对于调用序列f,设置当前函数fn对周围2a个函数取平均,上下文常量a=2,则fn向量表示为:

本发明设置每次训练迭代次数为15次,经过梯度上升,对每次计算的均值进行小幅度的更新。最后与当前样本的(类别)标签合并输出一组向量v={label,v1,v2,v3,...,vn},其中label是one-hot形式,每个api的向量值映射到一个固定长度的数组中,其它没有出现在本次训练的函数位置填充0,使其成为固定长度的向量。

使用gensim包实现word2vec的训练与生成,并且是增量更新每一个新学习到的函数,即我们新词增加到现有模型中而不用全部重新学习。

具体地,所述步骤s102包括:

在以往的恶意代码分类检测研究中发现,恶意样本可以通过在高维空间中的聚类,体现一类恶意样本的相似性。但是在样本不足的情况下,无论是时下最先进的检测器,也不能够完全的拟合生成数据的分布。同时通过分析部分恶意样本的源代码可以看出,恶意样本a与恶意样本b在家族分类上分属两个家族,但是在某些细节存在相似性,这也是一般分类器不容易处理的部分。

本发明使用辅助分类生成对抗网络(acgan),在原有gan的基础上,对生成器和判别器使用标签数据训练,同时又在判别器末端重建标签信息,从而提升生成器的生成效果。

在生成器g的输入端,为每个类别样本增加一个符合高斯分布的随机数,以辅助生成类条件样本,辅助生成能够提升生成样本质量。判别器d的输入是真实的类型样本和生成的类型样本,其中输入判别器的样本包含一部分生成器产生的假数据,假数据仅用于训练判别器。本实施的辅助分类生成对抗网络如图2所示。

设置生成器包含3个全连接层,最后一层全连接层将数据送入两个激活函数sigmoid和softmax,将生成的数据映射为向量,并得到真假输出和类别输出。生成器和判别器的网络全连接层之间均连接了一层批量规范化层,以保证每一层神经网络的输入保持相同分布。生成器和判别器使用带泄露修正线性单元(leakyrelu)。判别器选取dropout策略,选取值为0.5,表示每层仅有一半的神经元参与运算,可以判别器过拟合。

训练整个acgan的目标函数生成两个部分,一个是数据真实与否的对数似然ls,另一个是数据类别准确性的对数似然lc:

ls=e[logp(s=real|xreal)] e[logp(s=fake|xfake)]

在本实施例中acgan的目的是尽量优化生成器的类别生成,所以略微降低了判别器博弈的权重,增加了生成器的代价函数权重,而最终整体网络的目的依然是使得判别器g的lc-ls最小,判别器d的lc ls最大,ci表示第i个类别,n为类别数。acgan使用adam优化器优化损失函数,设置学习率为0.0002,一阶矩估计的指数衰减率β1=0.5,adam能够自动调整学习率,有效防止收敛到局部最优的风险。

具体地,所述步骤s103包括:

本实施例中gru网络采用双层的gru网络作为神经网络的骨干,当获取到一个api调用序列的向量v={f1...fi...ft},fi是调用序列向量上表示某个时间点的输入,将向量v嵌入embedding层(嵌入层)作为输入,指定embedding层的输入维度,本层向量会将小随机数初始化,在后续训练中反向更新本层。

gru层将embedding层输出的特征作为输入,词向量ft-i经过embedding层映射后输出xi。每个gru层单元数与输入的api调用序列词向量一致,即样本提取的词向量长度为l则gru单元数也为l。在单一的gru单元中,每个单元接收上一个单元的隐藏层输出信息作为输入,经过计算后得出数值作为本单元的隐藏层输出,记为hi。在一个gru单元中包含两个门,一个是重置门,用来决定忘记过去的信息量,记做ri,另一个是更新门,决定要丢弃哪些信息以及要增加的信息记为zi。图3为本实施例中双层gru神经网络模型(恶意软件检测器),api序列依照顺序由前到后依次传播。

在图3中每个gru单元需要输出当前单元的隐藏状态hi,由嵌入的api当前序列xi,和第i-1个gru单元状态hi-1联合计算得出。重置门和更新门使用sigmoid函数,使用σ表示。将重置门和更新门的结果使用tanh函数计算候选隐藏状态计算一个gru单元的过程如下述表示:

zi=σ(wzxi uzhi-1)

ri=σ(wrxi urhi-1)

其中w,u为权重矩阵,在该gru网络中代表当前时间节点下的api序列的函数。增加的gru层数越多,学习能力能够有一定的提升,但增加层数到一定数量,检测性能则无法提升。所以我们在实施例中使用的gru网络设置为2层,预期能够达到最优效果。

在gru层所有隐藏状态输出后,传入全连接层。全连接层将所有gru隐藏状态作为输入,加权计算并经过激活函数可得到一个新的向量值。本实施例中gru网络中全连接层使用relu作为激活函数,全连接层每一个神经元的输出表述如下:

其中l表示层数,i代表当前层的第i个神经单元,w和b分别是当前单元的权重和偏置。全连接层输出后,最后使用softmax函数回归得到本次分类的结果。

为验证本发明效果,进行如下实验设置:

1、实验环境与数据集

本实施例实验环境分为两部分,一部分沙箱运行平台,另一部分是算法运行平台。沙箱的运行使用常规pc,cpu为intel(r)core(tm)i5-6500@3.20ghz,内存8gb,操作系统为ubuntu16.04的64位版本操作系统。其中沙箱的guest环境设置内存为2gb,windows7的32位sp1版本操作系统。算法运行平台使用cpu为intel(r)core(tm)i7-6800k,显卡为nvidia1080ti,显存11gb,cuda10toolkit。

本实施例数据集使用与研究(daiy,lih,qiany,etal.smash:amalwaredetectionmethodbasedonmulti-featureensemblelearning[j].ieeeaccess,2019,7:112588-112597.)的数据集一致,样本总量约27k,所有的样本按照virustotal检测结果可分为214个家族,8个大类型恶意样本,和少量无法归类样本,我们按照样本类型划分样本的信息见表1,由于hacktool功能多样,在本实验中仅使用前7个类别的数据。

表1恶意样本数据类别

另外根据virustotal的结果可以获得样本的创建时间,首次提交时间等关于样本的生成信息。由于创建时间可能受到恶意代码作者本地时间戳的影响,导致时间信息不准确,以virustotal的首次提交分析的时间作为样本的发现时间,以此获得样本数量与时间之间的关系,详细信息见表2。

表2恶意样本按时间分布数量

2、gru分类性能

在本实施例实验中,将恶意样本80%作为训练样本,20%作为测试样本,使用准确率(accuracy)和f1-score两个数值作为分类器整体性能的参考。使用混淆矩阵,用来说明使用gru网络在不同类型样本上的分类性能。其中使用准确率衡量分类器性能,是因为真正例(fp)和假反例(fn)均作为参考加入了计算,与精准率和召回率相比,准确率能提供更为公正的参考数值。f1-score是精准率和召回率的算数平均数除以几何平均数,即对精准率和准确率都进行了加权计算。准确率和f1-score的计算方式如下。

选用聚类(k-means),集成学习(随机森林),神经网络分类方法(多层感知机)和gru分类器进行实验对比。其中k-means方法选定聚类中心为7,设置k-means计算一次的最大迭代次数为300。设置随机森林估计量为100,即初始化为100棵决策树,最大特征数与word2vec向量长度一致。多层感知机设置优化函数与gru一致,使用adam方法,激活函数为relu,共两个隐藏层,输出为softmax。将以上四种方法使用实验设置中第1节的数据集,且每种方法的训练数据和测试数据一致,分类器总体分类结果如表3所示。

表3gru网络与其他分类方法对比结果

从表中可以看出,使用word2vec方法提取api调用序列的特征向量,无论是使用哪一种分类(或聚类)工具对恶意代码检测,均能获得较好的测试性能。使用集成学习和神经网络的方法能获得更高的准确率,且能看出本文所设计的gru网络能获得本组实验最高的f1-score,为98.0%,证明其有较好的检测性能。经过分类检测验证嵌套层结合双层gru组合的模型对检测性能有一定的提升,说明本方法对恶意样本检测分类的有效性。

3、生成样本分类性能检测

本节讨论训练acgan,并使用acgan生成的带标签的样本,对恶意代码分类的影响。设置辅助分类生成对抗网络的训练循环次数为10000个周期(epoch),生成器g和判别器d的loss结果如图4所示。

从图4中可以看出生成器和判别器的损失值,在大约第3000个周期以后趋于平稳,为保证生成器生成样本的稳定,设定在第5000个周期后进行样本生成,且通过对大量的生成的样本进行聚类,选取的生成样本与实际样本欧式距离相近,且数为训练的实际样本的两倍数量。将生成的样本与实际样本融合并加入gru网络进行训练,训练结果使用混淆矩阵展示,见图5。

图5中(a)部分是未使用acgan生成样本,直接使用gru进行训练的分类结果,图5中(b)部分是使用acgan生成样本训练的结果。混淆矩阵主要用于比较分类结果和实际测得值,实际的准确率显示在对角线上,每一行代表预测为该类别的比例,每一列表示数据实际分类结果的比例,在理想状态下对角线上每个数值应为1。从训练矩阵中可以看出,gru网络在未使用生成样本训练,分类结果基本可以维持在平均97%的准确率。而使用了acgan生成样本,结合真正样本进行训练的gru在整体分类的准确率上有轻微的提升。融合了acgan生成样本的训练,导致某些类在分类准确率上的轻微下降,从图5中可以看到后门类恶意代码检测的准确率下降约1%,原因在于后门类恶意代码的功能繁多,反观第2、3、4类恶意代码分别对应蠕虫、特洛伊木马与广告软件,其功能相对后门类恶意代码更为单一。

4、生成样本分析

每年新恶意代码的生成给恶意软件分析研究带来了不少的困难,同一个种类的恶意代码,会随着时间与编码技术的进步,使用新的编写工具,有可能造成代码优化的不同,导致检测失效。诸多的研究没有考虑恶意代码在时间上的影响,即训练的原始数据集,当数据集不断地增加新的恶意样本会造成整个数据集的偏离原始空间。

首先需要验证样本生成效果,使用变评估分自编码(vae),条件生成对抗网络(cgan)和本实验所使用的辅助分类gan。设置sgan的神经网络模型与acgan的神经网络模型基本一致,cgan是对传统gan的扩充,在原有网络结构下,训练时判别器和生成器的输入都加上标签信息,以辅助生成样本质量的提升。acgan的判别器与生成器在输入端与cgan一致,而输出端增加了标签信息的重建,通过代价函数来增强生成效果。

vae的基本结构是一个多层感知神经网络,从输入到输出之间有多个全连接的隐层,且整个网络可以分为两个部分,编码器和解码器。编码器的网络结构从输入层到编码层,神经元逐层减少,实际是一个降维的过程。解码器从编码层到输出层,神经元逐层增多,以还原数据。

将vae,cgan和acgan三个生成数据的生成结果做以下比较,见表4。

表4生成数据分类情况

从实验结果中可以看出,vae在生成结果上不占有优势,原因在于编码与解码过程中的数据损失。而基于gan的两个方法,生成的数据在判别器上所能达到的最高准确率均可以超过98%,但是判别器所能给出的信息仅仅是为了给生成器改进提供一个衡量指标。在cgan与acgan经过5000个周期以上的训练后,将只有生成数据输入并训练gru,对测试集进行分类,可得到acgan生成的数据获得最高的准确率,最高接近90%。但如果生成数据集加入真实数据集,则分类结果没有太大的差别。

5、漂移检测评估

将实验数据以在virustotal首次提交的时间,作为样本首次出现的时间,这样确定不会对实验结果产生影响。样本漂移检测目的是评估分类器随着时间的变化,本实施例选取一般神经网络检测器(本实施例的gru网络,不训练生成样本),带有对抗性的检测器,以及我们的对抗漂移性能的检测器。选择grosseetal.的对抗性研究(grossek,papernotn,manoharanp,etal.adversarialexamplesformalwaredetection[c]//europeansymposiumonresearchincomputersecurity.springer,cham,2017:62-79.),使用蒸馏法能够有效降低对抗样本的误报率,且在对抗样本漂移有一定的抵抗性能,根据原文中设置蒸馏温度t=10。

本实验将早于2011年的样本作为训练集,以及之后从2012年起始,每一年的样本作为测试集,评估检测器的准确率。图6是各种检测器与不同时间的样本之间准确率的关系。

从图6中可以看出,时间漂移导致检测器对恶意代码检测准确率的影响很大,不使用对抗样本的检测器超过两年以上的样本,将会导致低于75%的检测准确率,而使用蒸馏法与本实施例方法则能在两年的时间范围内,尚可保持在一个相对准确的检测结果,而超过3年则也会由于恶意样本的漂移导致检测率降低。所以设置了重训练的方式以缓解样本漂移带来的困扰,进行如下实验步骤:(1)将上一年度的样本作为原始训练集,并生成2倍的样本进行训练,使用第二年的样本作为测试集进行测试;(2)将测试集中检测出的恶意数据作为本年度的训练集,并生成2倍训练样本,使用下一年度的样本作为测试集;(3)重复(1)-(2)步骤。注意一点,此处所说的重训练并不是重新训练gru网络,而是在原先训练好的gru网络上进行训练。根据重训练的方法进行实验,结果见图7。

按照年度,将每个年度组的恶意代码都经过重训练,基本可以维持在最高水平,但是在实际的应用场景中,不可能总是能完全正确的检测出恶意软件,所以该组只作为一个参照的基准。而将所有实际检测出的恶意样本提取出后,经过重新训练,可以从图7中看出重训练后的检测准确率,有了明显的提升。在第二年度准确率保持在90%以上,第三年度的准确率依然可以保持约85%左右。综上所述,本实施例提出的方法在对抗随时间变化的漂移样本上,具有良好的检测性能,确认本实施例提出方法的可行性。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


技术特征:

1.一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,其特征在于,包括:

步骤1:从沙箱提取恶意代码的api调用序列,并通过word2vec将api调用序列转换为特征向量;

步骤2:基于所述特征向量训练辅助分类生成对抗网络;

步骤3:利用训练好的辅助分类生成对抗网络生成恶意代码api调用序列,同时加入实际的恶意代码api调用序列,通过gru网络进行训练得出恶意软件检测器;

步骤4:将恶意软件检测器的检测结果作为训练集,重新训练辅助分类生成对抗网络,按照步骤3方式重新训练恶意软件检测器,以提高恶意软件检测器的抗概念漂移性能。

2.根据权利要求1所述的一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,其特征在于,所述步骤1包括:

步骤1.1:将提取到的api调用序列排列为一组;

步骤1.2:针对api调用序列中每个函数,对每个函数周围2a个函数取平均值,a为上下文常量;

步骤1.3:设置训练迭代次数,对每个函数对应的平均值进行更新,将各函数对应的平均值与当前api调用序列的标签合并,作为api调用序列对应的特征向量。

3.根据权利要求1所述的一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,其特征在于,所述步骤2包括:

步骤2.1:在生成器的输入端,为每个特征向量增加一个符合高斯分布的随机数;

步骤2.2:生成器最后一层全连接层将数据送入两个激活函数sigmoid和softmax,将生成的数据映射为向量,并得到真假输出和类别输出;

步骤2.3:在生成器和判别器的网络全连接层之间均连接一层批量规范化层,以保证每一层神经网络的输入保持相同分布;

步骤2.4:通过adam优化器优化损失函数,完成辅助分类生成对抗网络训练。

4.根据权利要求1所述的一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,其特征在于,所述步骤3包括:

步骤3.1:利用训练好的辅助分类生成对抗网络生成恶意代码api调用序列,同时加入实际的恶意代码api调用序列,生成恶意代码数据集,将恶意代码数据集中各恶意代码api调用序列转换为特征向量;

步骤3.2:采用1层以上gru网络,将步骤3.1中的特征向量嵌入embedding层作为输入;

步骤3.3:将embedding层输出的特征作为gru层的输入;

步骤3.4:将gru层的输出作为全连接层的输入,使用relu作为全连接层的激活函数;

步骤3.5:使用softmax函数回归得到分类结果,完成恶意软件检测器的训练。

技术总结
本发明属于网络安全技术领域,公开一种基于生成对抗网络的恶意软件检测器抗概念漂移方法,包括:从沙箱提取恶意代码的API调用序列,并通过word2vec将API调用序列转换为特征向量;基于所述特征向量训练辅助分类生成对抗网络;利用训练好的辅助分类生成对抗网络生成恶意代码API调用序列,同时加入实际的恶意代码API调用序列,通过GRU网络进行训练得出恶意软件检测器;将恶意软件检测器的检测结果作为训练集,重新训练辅助分类生成对抗网络,重新训练恶意软件检测器,以提高恶意软件检测器的抗概念漂移性能。本发明可有效抵抗检测器的老化。

技术研发人员:戴裕昇;黄长江;戴青
受保护的技术使用者:河南信息安全研究院有限公司
技术研发日:2020.01.14
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-22096.html

最新回复(0)