CN115913764A - 基于生成对抗网络的恶意域名训练数据生成方法 - Google Patents
基于生成对抗网络的恶意域名训练数据生成方法 Download PDFInfo
- Publication number
- CN115913764A CN115913764A CN202211607919.8A CN202211607919A CN115913764A CN 115913764 A CN115913764 A CN 115913764A CN 202211607919 A CN202211607919 A CN 202211607919A CN 115913764 A CN115913764 A CN 115913764A
- Authority
- CN
- China
- Prior art keywords
- domain name
- network
- training
- encoder
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了基于生成对抗网络的恶意域名训练数据生成方法,涉及网络信息安全技术领域,包括:(1)获取真实Alexa域名,构建域名数据集;(2)构建域名自编码器网络并训练;(3)利用训练好的域名自编码器网络构建域名生成对抗网络模型;(4)真实数据与自身产生数据判断,进行判别输出;(5)采用MMD检验输出样本与真实域名判别是否来自相同分布;(6)输出训练数据。本发明采用基于最大均值差异MMD的两样本检验方法来验证生成器的输出样本与真实的Alexa域名样本来自相同的分布,保证生成模型和生成数据的有效性。
Description
技术领域
本发明网络信息安全技术领域,尤其涉及基于生成对抗网络的恶意域名训练数据生成方法。
背景技术
在互联网产业蓬勃发展的同时,诸如网络诈骗、DDoS攻击、勒索软件、计算机恶意程序感染等各类网络安全事件层出不穷,据国家计算机网络应急技术处理协调中心CNCERT/CC监测显示,2020年我国境内木马或僵尸程序控制服务器IP地址数量为12810个,境内木马或僵尸程序受控主机IP地址数量为5338246个,由此构成的僵尸网络已经成为当前网络安全领域的巨大威胁。
僵尸网络广泛采用域名生成算法生成大量的随机域名来躲避安全检测,恶意域名的准确检测和识别成为当前网络安全管理的重要课题。基于神经网络的深度学习算法在恶意域名检测方面表现优异,Woodbridge等人首次利用长短期记忆网络构建DGA域名检测器,并在检测准确率、召回率等方面相较于传统机器学习模型有着明显优势;Yu等人对利用不同的卷积神经网络训练出的DGA域名检测器检测准确率高达90%以上。袁辰等人提出一种DGA域名训练数据的生成模型,该模型结合了生成对抗网络的思想,直接将数据输入GAN原始模型进行学习训练,保持了数据的真实特性。Anderson等人将自编码器融入生成对抗网络,提出一种DGA生成模型和检测模型DeepDGA,通过多次迭代训练生成对抗网络后,生成器可以模拟出特征类似的真实DGA域名,使采用随机森林算法的DGA检测器的性能明显降低。
现有的DGA检测器均是基于公开的DGA域名数据集进行训练构建,缺乏最新的丰富的DGA域名训练样本数据,导致检测模型更新周期过长、过慢,检测的实效性、快速性不强,对未知的DGA域名检测效率不高。
发明内容
本发明提供了基于生成对抗网络的恶意域名训练数据生成方法,目的是为了解决现有技术中存在的缺点。
为了实现上述目的,本发明提供如下技术方案:基于生成对抗网络的恶意域名训练数据生成方法,包括如下步骤:
获取真实域名,构建域名数据集;
构建域名自编码器网络,将域名数据集输入域名自编码器网络进行预训练,得到训练后的域名自编码器网络;
利用训练好的域名自编码器网络构建域名生成对抗网络模型,通过对真实数据与域名生成对抗网络模型产生的恶意域名数据进行判断,并输出判断结果;
对域名生成对抗网络模型进行训练,并利用最大均值差异MMD检验判别域名生成对抗网络模型的输出样本是否与真实域名来自相同的分布,检验通过则停止训练,输出训练完成后的恶意域名训练数据。
优选的,所述构建域名自编码器网络包括:
通过3个平行的卷积网络和1个LSTM网络级联组成域名自编码器网络;
通过3个卷积网络的卷积滤波核尺寸对应捕获域名数据字符间的n-gram信息;
通过LSTM网络挖掘和表示变长域名序列的潜在特征,生成可变长序列。
优选的,所述将域名数据集输入域名自编码器进行预训练包括如下步骤:
对所述真实域名进行序列标记,进行独热编码;
将所述独热编码后的序列输入级联的卷积层,并将级联的卷积层输出结果并列拼接后送入到另一个卷积层;
将另一个所述卷积层输出结果输入展平层,利用展平层将输入序列平展成一个一维的矢量矩阵,作为编码器的输出;
通过重构层将一维的输入序列重组成一个二维矢量矩阵;
将所述二维矢量矩阵输入级联卷积层并输出,将输出结果并列拼接后送入输出卷积层;
将输出卷积层的结果去除序列标记,得到原始域名。
优选的,所述利用将训练好的域名自编码器构建域名生成对抗网络模型包括如下步骤:
利用解码器构建GAN网络生成器并进行训练;
利用编码器构建GAN网络判别器并进行训练;
通过所述GAN网络生成器与GAN网络判别器构成域名生成对抗网络模型。
优选的,所述GAN网络生成器的网络结构由一个全连接层与解码器构成,所述利用解码器构建GAN网络生成器并进行训练的训练步骤包括:
使用随机噪声发生器产生在[-1,1]上均匀分布的噪声;
通过全连接层对随机噪声的线性变换,得到与编码器输出维度一致的维度;
利用ReLU函数对线性变换的随机噪声进行激活;
将激活的随机噪声送入解码器,得到输出域名的标记采样。
优选的,所述GAN网络判别器的网络结构由编码器和一个全连接层构成,所述利用编码器构建GAN网络判别器并进行训练的训练步骤包括:
所述编码器接收真实的域名或生成器生成的假域名序列并进行编码;
将所述编码后的数据经过全连接层变换为低维数据;
通过Sigmoid函数对所述低维数据进行激活并输出结果。
优选的,在所述训练GAN网络生成器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络生成器的全连接网络进行训练;
在所述训练GAN网络判别器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络判别器的全连接网络进行训练。
优选的,对所述域名生成对抗网络模型进行训练,并采用标签光滑、改进损失更新来提升模型训练的稳定性。
优选的,所述最大均值差异MMD具体定义为:
其中,p和q分别两个分布,x和y分别为p和q对应生成的样本,Ex,Ey分别为x和y两个生成样本f上函数值均值,对两个均值做差得到这两个分布对应于函数f的均值差MeanDiscrepancy,最大均值差异的目标是寻找一个f使得均值差最大,即得到最大均值差异;F取为希尔伯特空间的单位球,分别为实际操作时借助预先设定的核函数。
本发明与现有技术相比具有以下有益效果:
1、通过预训练自编码器并将其应用于GAN网络最大程度地学习到了真实域名的潜在特性。
2、采用基于最大均值差异Maximum Mean Discrepancy,MMD的两样本检验方法来验证生成器的输出样本与真实的Alexa域名样本来自相同的分布,保证生成模型和生成数据的有效性。
3、在自编码器结构中除了设计卷积层来提取域名的n-gram信息外,还引入LSTM网络层以更好地捕获域名字符间的潜在特征,从而生成长度可变的字符序列。
4、将生成数据在基于LSTM网络的DGA域名检测器上进行验证,发现其能够有效降低检测模型的效率,而后进一步通过生成数据对域名检测器进行训练后,模型器性能明显提升。
附图说明
图1为本发明域名自编码器码器结构图;
图2为本发明生成对抗网络结构图;
图3为本发明生成对抗网络生成器结构图;
图4为本发明生成对抗网络判别器结构图;
图5为本发明自编码器训练损失图;
图6为本发明序列长度分布图;
图7为本发明字符频率分布图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明利用真实域名数据训练出一个自编码器,并将自编码器的编码网络和解码网络分别用作GAN网络的判别器与生成器,从而构建出一个基于GAN的DGA序列生成器。
其中,自编码器AutoEncoder,AE通常被视为无监督学习网络,常用于帮助数据分类、可视化和存储,其核心作用是对输入序列进行压缩降维,之后再进行重建恢复。一个典型的自编码器包括编码器和解码器两个部分,其中编码器通过一系列预先设计的神经网络结构将输入序列编码为相应的低维向量,称为编码过程;编码后的数据通过解码器中的隐藏层来重建输入数据,即为解码过程。通过定义合适的损失函数、选择恰当的网络模型、加以训练,可以近乎完美地重建输入序列,从而实现编码器输出的低维向量完整地表达原始序列内在特征的功能。
Goodfellow等在2014年提出的生成对抗网络Generative Adversarial Network,GAN是一种无监督式深度学习模型,其原理主要是通过两个神经网络相互博弈的方式来学习样本特征,从而根据原有数据集生成以假乱真的新数据。生成对抗网络包含两个独立的神经网络——生成网络G和判别网络D,D负责判别输入其中的数据是来自G产生的虚假数据还是真实的数据;而G则不断提升自己的造假能力只为生成能够成功欺骗D的对抗样本,双方在对抗过程中采取交替迭代的方法不断优化自身网络,从而形成一种对抗,最终达到平衡。
如图1-4所示,基于生成对抗网络的恶意域名训练数据生成方法,包括如下步骤:
步骤1:获取真实域名,构建域名数据集。
步骤2:构建域名自编码器网络,将域名数据集输入域名自编码器网络进行预训练,得到训练后的域名自编码器网络。
步骤3:利用训练好的域名自编码器网络构建域名生成对抗网络模型,通过对真实数据与域名生成对抗网络模型产生的恶意域名数据进行判断,并输出判断结果。
步骤4:对域名生成对抗网络模型进行训练,并利用最大均值差异MMD检验判别域名生成对抗网络模型的输出样本是否与真实域名来自相同的分布,检验通过则停止训练,输出训练完成后的恶意域名训练数据。
在步骤2中的的域名自编码器网络由3个平行的卷积网络和1个LSTM网络级联组成,通过3个卷积网络的卷积滤波核尺寸对应捕获域名数据字符间的n-gram信息,通过LSTM网络挖掘和表示变长域名序列的潜在特征,生成可变长序列。
在步骤2中,将域名数据集输入域名自编码器进行预训练包括如下步骤:
对真实域名进行序列标记,进行独热编码。
将独热编码后的序列输入级联的卷积层,并将级联的卷积层输出结果并列拼接后送入到另一个卷积层。
将另一个卷积层输出结果输入展平层,利用展平层将输入序列平展成一个一维的矢量矩阵,作为编码器的输出。
通过重构层将一维的输入序列重组成一个二维矢量矩阵。
将二维矢量矩阵输入级联卷积层并输出,将输出结果并列拼接后送入输出卷积层。
将输出卷积层的结果去除序列标记,得到原始域名。
在步骤3中,利用将训练好的域名自编码器构建域名生成对抗网络模型包括如下步骤:
利用解码器构建GAN网络生成器。
利用编码器构建GAN网络判别器。
通过GAN网络生成器与GAN网络判别器构成域名生成对抗网络模型。
GAN网络生成器的网络结构由一个全连接层与解码器构成,对GAN网络生成器进行训练,训练步骤包括:
使用随机噪声发生器产生在[-1,1]上均匀分布的噪声;
通过全连接层对随机噪声的线性变换,得到与编码器输出维度一致的维度;
利用ReLU函数对线性变换的随机噪声进行激活;
将激活的随机噪声送入解码器,得到输出域名的标记采样。
GAN网络判别器的网络结构由编码器和一个全连接层构成,对GAN网络判别器进行训练,训练步骤包括:
编码器接收真实的Alexa域名或生成器生成的假域名序列并进行编码;
将编码后的数据经过全连接层变换为低维数据;
通过Sigmoid函数对低维数据进行激活并输出结果。
在训练GAN网络生成器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络生成器的全连接网络进行训练;
在训练GAN网络判别器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络判别器的全连接网络进行训练。
对域名生成对抗网络模型进行训练时,采用标签光滑、改进损失更新来提升模型训练的稳定性。
在步骤4中,最大均值差异MMD具体定义为:
其中,p和q分别两个分布,x和y分别为p和q对应生成的样本,F取为希尔伯特空间的单位球,实际操作时借助预先设定的核函数。
以下为对基于生成对抗网络的恶意域名训练数据生成方法的各个步骤的详细解释:
(1)域名自编码器
一般的域名编/解码器常通过建立单个域名字符到数字编码的一一映射来实现,如现有文献中将域名字符转换为基于ASCII码的编码方式实现向量映射及逆映射。
为了更好地捕获域名字符间的潜在关系,并对长域名进行压缩表示,本文设计的自编码器编码网基于生成对抗网络的恶意域名训练数据生成方法络主要由3个平行的卷积网络和1个LSTM网络级联组成,3个平行的卷积层各自有100个滤波核,卷积核尺寸分别为2、3、4,对应捕获域名数据字符间的n-gram信息,LSTM网络用于挖掘和表示变长域名序列的潜在特征,从而实现可变长序列的生成。具体来说,首先将Alexa域名进行序列标记Tokenization,之后进行独热编码One-hot,再将编码后的序列输入到级联的卷积层,之后将级联卷积层的输出并列拼接后送入到另一个卷积层,最后通过展平层将输入序列平展成一个1维的矢量,作为编码器的输出。该输出表达了原序列数据经过编码器压缩提取后的核心信息。编码器的输出作为解码器的输入,首先通过重构层将一维的输入序列重组成一个二维矩阵,然后将二维矩阵输入到与编码器结构类似的级联卷积层,之后将级联卷积层的输出并列拼接后送入输出卷积层,输出卷积层的有37个卷积核,卷积核的个数对应域名序列化字典的长度,激活函数为Softmax。Softmax激活函数的输出表示了域名的每个字符在标记字典上的概率分布。自编码器网络结构如图1所示。
(2)生成对抗网络结构设计
在(1)中设计的编码器实现了复杂域名字符序列在低维特征空间中的压缩表示,解码器则可以将该压缩表示还原成原始域名。基于此,我们将解码器用于构造GAN网络生成器,将编码器用于GAN网络判别器,从而设计一个新的域名生成网络模型。其中GAN模型的生成器将被训练用于产生与AlexaTop100万数据尽可能相似的域名,而判别器则尽可能的识别出输入的域名数据是由生成网络产生的还是从真实数据集采样而来的,如下图2为生成对抗网络结构图。
生成器的网络结构由一个全连接层与解码器构成。首先使用随机噪声发生器产生在[-1,1]上均匀分布的噪声,之后通过全连接层完成随机噪声的线性变换,使其维度与编码器的输出维度一致,最后通过ReLU函数激活后送入预先训练好的解码器,得到输出域名的标记采样。直观上,全连接层学习了从均匀分布的噪声空间到低维编码特征空间映射,而该低维空间正是编码器用来学习生成真实域名的特征空间。为了保证解码器的输出就是生成的域名数据,本文在训练生成器时冻结解码器的参数值,生成器的结构如图3所示。
判别器的结构与生成器类似,由编码器和一个全连接网络构成。预先训练好的编码器作为判别网络接收真实的Alexa域名或者生成器生成的假域名序列,之后将其输出经过全连接层变换为低维数据,最后通过Sigmoid函数激活后输出。在训练判别器网络时同样把预训练好的编码器的权重参数冻结之后再进行训练。判别器的结构如图4所示。
(3)本文在采用标签光滑、改进损失更新等策略来提升模型训练的稳定性之外,特别考虑了借助统计中两样本检验的思想来指导模型的训练进程。一些实验中,常通过观察训练损失变化、肉眼判别域名相似度、绘制生成样本的直方图等手段来判别生成网络的训练质量,但这些操作很难给出明确的指标来判定GAN网络的训练质量。本文考虑在GAN模型训练的中间过程中,通过引入MMD检验来判别当前生成网络的输出样本是否与真实的Alexa域名样本来自相同的分布,即进行双样本检验。Gretton给出了MMD在双样本检验中的应用,其基本假设是:对于两个分布p和q,给定所有以分布生成的样本空间为输入的函数族F,若p、q对应生成的样本x和y在F中每个函数f上像的均值都相等,则可认为这两个分布相同。MMD具体定义如下:
其中,F取为希尔伯特空间的单位球,实际操作时借助预先设定的核函数,如高斯核函数来表示。
实验中,若MMD检验通过,则说明生成样本的质量较好、从统计检验的角度已无法区分其与真实域名的差别,此时可停止训练。
本发明对上述方法进行了实验与分析,具体内容如下:
(1)实验环境与数据集
本文实验主要使用PyTorch深度学习框架。具体实验环境配置如表1所示。
表1实验环境具体配置
环境配置 | 参数 |
操作系统 | 操作系统Ubuntu桌面版64bit |
内存 | 16GB 2400MHz DDR4 |
CPU | Intel Corei7-9700K八核3.6GHz |
GPU | GPU NVIDIA Geforce RTX2070 |
PyTorch | 1.9.0 |
本文实验所使用的数据集由两部分组成。第一部分从Alexa网站获取的排名前100万真实Web站的域名,这部分数据作为我们模型的训练数据。
第二部分是来自360安全实验室的现有DGA域名数据集,此部分用来对比实验。在实验之前,对使用的数据进行数据预处理,将所有域名一级域名和二级域名如.com,.net,.org等剔除,只保留主机域名进行模型训练。
(2)实验设计
1)训练自编码器
在对GAN模型进行训练之前,需要对自编码器预训练。该步骤的必要性在于,若不用Alexa域名对自编码器进行预训练,后续GAN网络的训练会高度不稳定,且很难收敛。具体的实验步骤如下所示:
a)抽取10万条Alexa数据,随机打乱后按80/20的百分比划分成训练集和测试集;尝试不同的数据批大小,如64、128、256等,最后综合考虑训练效率与模型表现,选择最优数据批大小为64。
b)对自编码器中编码器中的设计的LSTM网络的隐藏神经元个数尝试不同的取值进行消融实验对比,取值如5,10,50,100等,根据自编码器训练时间和后续用于GAN网络的表现,选择LSTM网络隐藏神经元个数为10。
c)用交叉熵作为训练的损失函数,即度量解码器Softmax输出的损失大小。
d)初始学习率设置为0.0001,后续随着损失的变小,学习率也随之减小,由此得到更好、更稳定的训练结果。
e)训练中采用自适应矩估计Adam优化算法来更新自编码器网络的权重,同时设置权重衰减率为0.8,即借助L2正则防止训练出现过拟合。
实验发现,仅通过不到10个训练周期,自编码器就能近似无损地恢复输入的Alexa域名。经过计算测试集上的均方误差MeanSquareError,MSE,约为3.234×10-5。这表明设计的自编码器结构可以完整地捕获复杂正常域名中的几乎全部信息,并给出相应的低维向量表示。图5为训练过程中自编码器损失值的变化过程,其中橫轴表示训练的周期,纵轴表示模型在测试集上的损失。可以明显看出随着训练次数增加,自编码器损失值逐渐降低并保持稳定,网络参数已非常稳定。
2)GAN生成对抗模型的训练与检验
在该阶段,训练好的自编码器将被拆分为编码器和解码器,并分别嵌入到GAN网络的判别网络和生成网络中。对于GAN的训练过程详述如下。
a)选取两部分数据作为训练数据,一部分是划分后的Alexa真实域名,另一部分是随机抽取的、服从均匀分布的噪声向量通过生成网络后产生的样本,噪声其维数设置为8。两部分样本各自采用5万条,其中Alexa域名被用作正样本,生成域名被用作负样本,用于判别网络的训练;此外,再将5万条生成域名当作正样本,用于生成网络的同步训练。
b)尝试不同的批数据大小64、128、256等进行消融对比实验,根据GAN网络训练效率和稳定性,选择最优数据批大小为128,训练周期设为50。
c)判别器使用交叉熵作为损失函数。
d)实验中设置负样本的标签为0,同时对正样本的标签进行光滑处理,即从1随机变换到0.8到1之间的小数,来提升训练的稳定性。
e)考虑到实验中判别器比生成器的收敛速度要快很多,在反向传播更新网络参数时,本文选取较强的Adam优化器来训练生成网络,同时采用较为朴素的动量随机梯度下降Stochastic GradientDescent,SGD优化器训练判别器,学习率分别设置为0.000001与0.0000001,同时使用权重衰减来减少训练的过拟合。
f)在训练过程中,在一些损失较小的周期间隔,对训练好的GAN网络中的生成器所生成的序列进行了MMD两样本检验,由此决定是否进行训练早停early stopping,完成GAN网络的训练。对MMD两样本检验的过程做更进一步的详细说明,注意到此处待检验的问题为:
H0:P真实域名=P生成域名,
其中,P真实域名和P生成域名分别表示真实域名与GAN网络生成域名的概率分布。实验中,通过计算MMD检验统计量,并进行Bootstrap抽样,可以估计出检验的p值p-value,p值越小,表明拒绝原假设的把握越大。表2中列出了在一些选定的训练周期,基于相应的生成样本计算出的p值。可以看出,在训练初期,尽管生成的样本看起来与Alexa域名接近,但对应检验的p值很小,显然生成网络输出的域名与真实域名仍有差异;但在训练后期p值增大,若选取显著性水平为0.05,我们已无法拒绝原假设,表明从统计检验的角度,我们已无法区分生成样本和Alexa样本是否来自不同的分布,这保证了生成样本的质量。总结来说,GAN网络的训练经过85个周期的反向传播更新,最终得到收敛。
表2生成模型MMD两样本检验p值
训练周期 | 0 | 10 | 30 | 50 | 85 |
p值 | 0 | 0.00004 | 0.0037 | 0.65 | 0.997 |
(3)实验结果分析
使用实验中训练完成的GAN模型中的生成器生成20万条数据并将其去重后作为实验结果分析的验证数据集,分别从生成序列展示、生成序列字符频率分布、生成序列长度统计及其在DGA检测器的表现进行对比分析,具体结果如下。
1)生成对抗网络生成序列结果
如下表3为Alexa真实域名、真实的DGA域名与使用对抗生成网络生成的字符序列数据。通过观察发现,生成序列长度可变,字符序列表示已经与真实DGA域名较为近似,可以作为域名使用。
表3 Alexa域名、真实DGA域名与生成序列对比表
Alexa域名 | 真实DGA域名 | 生成序列 |
tmall | Ekqnou | gritzro |
thinkmayor | gsivrsjm | |
ufloafhawfq | aheshfuffo | |
microsoftonline | aaaqbmnansnan | apiortwheyhgcw |
reserver-vos-voy | teswpukmvttjigbj | pohesrhh1yohhigwa |
2)生成序列与真实域名长度分布图
DGA域名检测器通常会将序列的长度特征作为判断该序列是否为Alexa域名或DGA域名的特征,所以如果生成序列在长度特征上与Alexa真实域名保持相似,则更有可能躲避DGA域名检测器的检测。如图6所示为Alexa真实域名与生成序列的长度分布图,图中横坐标表示域名序列长度,纵坐标为不同长度的域名数量所占比率。由图可以看出生成序列与真实域名在长度分布上非常接近,这一特性可以有效躲避一些以域名长度作为检测特征的DGA域名检测器,降低生成序列被发现的概率。
此处需要说明的是通过对真实域名数据的统计特性进行分析可以得出大部分正常域名的长度在20个字符以内,所以本文在训练模型时选择长度为20个字符的Alexa真实域名作为训练数据,生成的序列长度也是在20个字符以内。
3)生成序列与真实域名长度分布图
同序列长度一样,序列的字符频率分布特征同样是DGA域名检测器判别真实域名与DGA域名的重要因素,如果生成序列的字符频率分布特征能够与Alexa真实域名尽可能相似,则有很大可能降低被发现率。图7为Alexa真实域名与生成序列的字符频率分布图,图中横坐标表示域名序列中的各个字符,纵坐标表示各个字符在所有域名序列中所占比率。由图可以看出生成序列与Alexa域名字符频率分布十分相似,躲避DGA域名检测器的概率较大。
4)DGA域名检测器验证结果
本文使用基于LSTM网络构建的DGA域名检测器对生成数据进行验证测试,表4为测试结果,具体测试过程如下。
a)使用真实Alexa域名数据和DGA数据对基于LSTM网络的DGA域名检测器进行训练,之后使用真实的DGA数据作为验证集,发现模型的准确率和召回率均在91%以上。
b)将本文生成的序列20万条数据去重后按照1:9的比例进行划分,其中第一部分数据首先拿来作为验证集,与真实域名数据混合后输入a)中训练好的DGA域名检测器中进行验证,发现模型在生成数据上的准确率和召回率均大幅下降,检测性能明显降低,说明生成序列在对抗DGA域名检测器方面取得良好的效果,有很大的概率能够躲避模型的检测。
c)将生成序列的第二部分数据,即生成数据的90%作为训练集和测试集,对DGA域名检测器进行训练;
d)将b)中准备好的验证集c)中训练好的模型上进行验证,可以看到使用生成数据训练过后,模型发现生成序列的性能又有了提升,几乎回到了之前的水平。
表4DGA域名检测器测试结果
通过对生成序列在字符序列表示、序列长度、字符频率分布的对比,以及使用生成序列在基于LSTM的DGA域名检测器进行检测和加强训练,对生成序列进行多方位的对比和验证,各项结果充分说明生成序列既具有真实域名的特性,又具备对抗现有DGA域名检测器的特性,使用其不仅可以有效解决模型训练数据不足的问题,又可以提升模型在对抗型恶意域名数据上的鲁棒性,达到了本文的目的。
恶意域名数据集采集是训练DGA域名检测器工作中非常重要的一环,本文尝试将自编码器和生成对抗网络结合应用去生成恶意DGA域名序列,丰富恶意域名数据集,从而提升检测模型的性能,并通过实验验证了此方法的可行性。本文下一步工作将结合现有的深度学习技术继续改进域名特征提取算法,以期进一步提升生成域名的种类与质量,并评估生成模型的性能。
以上所述实施例仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换,均属于本发明的保护范围。
Claims (9)
1.基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,包括如下步骤:
获取真实域名,构建域名数据集;
构建域名自编码器网络,将域名数据集输入域名自编码器网络进行预训练,得到训练后的域名自编码器网络;
利用训练好的域名自编码器网络构建域名生成对抗网络模型,通过对真实数据与域名生成对抗网络模型产生的恶意域名数据进行判断,并输出判断结果;
对域名生成对抗网络模型进行训练,并利用最大均值差异MMD检验判别域名生成对抗网络模型的输出样本是否与真实域名来自相同的分布,检验通过则停止训练,输出训练完成后的恶意域名训练数据。
2.如权利要求1所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,所述构建域名自编码器网络包括:
通过3个平行的卷积网络和1个LSTM网络级联组成域名自编码器网络;
通过3个卷积网络的卷积滤波核尺寸对应捕获域名数据字符间的n-gram信息;
通过LSTM网络挖掘和表示变长域名序列的潜在特征,生成可变长序列。
3.如权利要求1所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,所述将域名数据集输入域名自编码器进行预训练包括如下步骤:
对所述真实域名进行序列标记,进行独热编码;
将所述独热编码后的序列输入级联的卷积层,并将级联的卷积层输出结果并列拼接后送入到另一个卷积层;
将另一个所述卷积层输出结果输入展平层,利用展平层将输入序列平展成一个一维的矢量矩阵,作为编码器的输出;
通过重构层将一维的输入序列重组成一个二维矢量矩阵;
将所述二维矢量矩阵输入级联卷积层并输出,将输出结果并列拼接后送入输出卷积层;
将输出卷积层的结果去除序列标记,得到原始域名。
4.如权利要求1所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,所述利用将训练好的域名自编码器构建域名生成对抗网络模型包括如下步骤:
利用解码器构建GAN网络生成器并进行训练;
利用编码器构建GAN网络判别器并进行训练;
通过所述GAN网络生成器与GAN网络判别器构成域名生成对抗网络模型。
5.如权利要求4所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,所述GAN网络生成器的网络结构由一个全连接层与解码器构成,所述利用解码器构建GAN网络生成器并进行训练的训练步骤包括:
使用随机噪声发生器产生在[-1,1]上均匀分布的噪声;
通过全连接层对随机噪声的线性变换,得到与编码器输出维度一致的维度;
利用ReLU函数对线性变换的随机噪声进行激活;
将激活的随机噪声送入解码器,得到输出域名的标记采样。
6.如权利要求4所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,所述GAN网络判别器的网络结构由编码器和一个全连接层构成,所述利用编码器构建GAN网络判别器并进行训练的训练步骤包括:
所述编码器接收真实的Alexa域名或生成器生成的假域名序列并进行编码;
将所述编码后的数据经过全连接层变换为低维数据;
通过Sigmoid函数对所述低维数据进行激活并输出结果。
7.如权利要求6所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,在所述训练GAN网络生成器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络生成器的全连接网络进行训练;
在所述训练GAN网络判别器的网络时,将预训练好的编码器的权重参数进行冻结,再对GAN网络判别器的全连接网络进行训练。
8.如权利要求1所述的基于生成对抗网络的恶意域名训练数据生成方法,其特征在于,对所述域名生成对抗网络模型进行训练,并采用标签光滑、改进损失更新来提升模型训练的稳定性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211607919.8A CN115913764A (zh) | 2022-12-14 | 2022-12-14 | 基于生成对抗网络的恶意域名训练数据生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211607919.8A CN115913764A (zh) | 2022-12-14 | 2022-12-14 | 基于生成对抗网络的恶意域名训练数据生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115913764A true CN115913764A (zh) | 2023-04-04 |
Family
ID=86496906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211607919.8A Pending CN115913764A (zh) | 2022-12-14 | 2022-12-14 | 基于生成对抗网络的恶意域名训练数据生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115913764A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117686937A (zh) * | 2024-02-02 | 2024-03-12 | 河南科技学院 | 一种用于电池系统内单体电池的健康状态估计方法 |
-
2022
- 2022-12-14 CN CN202211607919.8A patent/CN115913764A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117686937A (zh) * | 2024-02-02 | 2024-03-12 | 河南科技学院 | 一种用于电池系统内单体电池的健康状态估计方法 |
CN117686937B (zh) * | 2024-02-02 | 2024-04-12 | 河南科技学院 | 一种用于电池系统内单体电池的健康状态估计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413028B (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
CN111585948B (zh) | 一种基于电网大数据的网络安全态势智能预测方法 | |
CN111901340B (zh) | 一种面向能源互联网的入侵检测系统及其方法 | |
CN113961922B (zh) | 一种基于深度学习的恶意软件行为检测与分类系统 | |
CN112217787B (zh) | 一种基于ed-gan的仿冒域名训练数据生成方法及系统 | |
CN113556319B (zh) | 物联网下基于长短期记忆自编码分类器的入侵检测方法 | |
CN114239807A (zh) | 基于rfe-dagmm的高维数据异常检测方法 | |
CN1235108C (zh) | 一种计算机病毒检测和识别方法 | |
CN114978613B (zh) | 基于数据增强和自监督特征增强的网络入侵检测方法 | |
CN115622806B (zh) | 一种基于bert-cgan的网络入侵检测方法 | |
CN110968845A (zh) | 基于卷积神经网络生成的针对lsb隐写的检测方法 | |
CN115913764A (zh) | 基于生成对抗网络的恶意域名训练数据生成方法 | |
CN111130942B (zh) | 一种基于消息大小分析的应用流量识别方法 | |
Jalal et al. | Machine learning algorithms for detecting and analyzing social bots using a novel dataset | |
Xu et al. | A Hierarchical Intrusion Detection Model Combining Multiple Deep Learning Models With Attention Mechanism | |
CN111092873B (zh) | 非对称卷积网络的流量检测模型的训练方法及检测方法 | |
CN115356599B (zh) | 一种多模态城市电网故障诊断方法及系统 | |
CN115733673A (zh) | 一种基于多尺度残差分类器的数据异常检测方法 | |
Long et al. | Deep encrypted traffic detection: An anomaly detection framework for encryption traffic based on parallel automatic feature extraction | |
CN111865947B (zh) | 一种基于迁移学习的电力终端异常数据生成方法 | |
Samadzadeh et al. | Evaluating Security Anomalies by Classifying Traffic Using a Multi-Layered Model | |
CN114760128A (zh) | 一种基于重采样的网络异常流量检测方法 | |
CN113159181A (zh) | 基于改进的深度森林的工业控制网络异常检测方法和系统 | |
Zhao et al. | D3-SACNN: DGA domain detection with self-Attention convolutional network | |
Li et al. | Solving the data imbalance problem in network intrusion detection: A MP-CVAE based method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |