基于GAN和Char-CNN的DGA域名检测方法技术

技术编号:24331392 阅读:85 留言:0更新日期:2020-05-29 19:44
本发明专利技术提出了一种基于GAN和Char‑CNN的DGA域名检测方法,用于解决现有技术存在的低随机性DGA域名的检测召回率低的问题,实现步骤为:获取训练样本集和验证样本集;构建生成对抗网络GAN和字符级卷积神经网络Char‑CNN;对生成对抗网络GAN进行迭代训练;获取增广训练集;对字符级卷积神经网络Char‑CNN进行迭代训练;基于训练好的字符级卷积神经网络Char‑CNN`对域名进行检测。本发明专利技术利用GAN生成对抗域名用以增广数据集,提升了训练样本集的丰富度,残差块结构降低了检测模型的错误率,提高了低随机性DGA域名的检测召回率,同时Char‑CNN需要计算的超参数少,缩短了检测模型的训练时间。

DGA domain name detection method based on GaN and char CNN

【技术实现步骤摘要】
基于GAN和Char-CNN的DGA域名检测方法
本专利技术属于网络安全
,涉及一种DGA域名检测方法,特别涉及一种基于GAN和Char-CNN的DGA域名检测方法,可用于定位感染主机、关闭僵尸网络和防御网络攻击。
技术介绍
DGA域名是一种根据数字、日期、Twitter热点等随机种子,采用域名生成算法DGA(DomainGenerationAlgorithms)定期生成的域名。网络攻击者注册DGA域名,作为僵尸程序与命令和控制服务器通信的媒介,这些大量潜在的DGA域名使执法人员很难有效地关闭僵尸网络。DGA域名严重威胁网络主机的安全,尤其是新出现的低随机性DGA域名隐蔽性强,威胁更大,对DGA域名进行有效检测具有重要意义。DGA域名检测任务就是对域名的特征进行提取,通过对提取的特征进行计算,输出预测概率,进而检测域名是否为DGA域名。评价DGA域名检测效果的指标有很多,如受试者工作特征曲线、F1值、检测召回率等,其中,检测召回率表示被检测出的DGA域名占所有DGA域名的比值,因而对检测召回率指标的评价较为重要。DGA域名检测方法可分为基于黑名单的DGA域名检测方法、基于机器学习的DGA域名检测方法和基于深度学习的DGA域名检测方法。其中,基于黑名单的DGA域名检测方法通过判断域名是否在预先设置的黑名单列表中,来检测域名是否为DGA域名,黑名单需要不断更新,导致该方法实时性差。基于机器学习的DGA域名检测方法先手动提取域名的长度、信息熵、元辅音字符比例和重复字符数等特征,再使用支持向量机、随机森林等机器学习算法检测DGA域名,可进行实时检测。基于深度学习的DGA域名检测方法通过神经网络模型自动提取域名的潜在特征,经过神经元计算后输出预测概率,从而检测域名是否为DGA域名,在基于深度学习的DGA域名检测方法中,特征维度的多少、训练样本集的丰富度和检测模型的错误率是影响召回率的主要因素。传统的基于深度学习的DGA域名检测方法都是通过单个神经网络提取特征,特征提取的维度单一,为解决这一问题,近些年又陆续提出了通过集成神经网络提取域名多维度特征,进而检测DGA域名的方法。例如,中电长城网际系统应用有限公司的罗赟骞等人在2018年第37卷第10期的《信息技术与网络安全》上发表了论文“基于深度学习的集成DGA域名检测方法”,提出了一种基于深度学习的集成DGA域名检测方法。该方法融合深度学习中的循环神经网络RNN和卷积神经网络CNN,构建了由字符嵌入层、特征提取层和分类层三部分组成的集成检测模型。特征提取层采用CNN模型和RNN模型分别从空间和时间的维度自动提取输入字符的特征,有效提高了DGA域名的检测召回率。但是该方法仍然存在不足:训练样本集中包含的低随机性DGA域名的数量太少,丰富度低,同时在网络层次过深时会出现梯度消失的问题,错误率升高,导致低随机性DGA域名的检测召回率低;循环神经网络RNN中每个时间步的计算都依赖于前一个时间步的计算和输出,需要计算的超参数多,增加了检测模型的训练时间。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提出一种基于GAN和Char-CNN的DGA域名检测方法,用于解决现有技术存在的低随机性DGA域名的检测召回率低的问题。为实现上述目的,本专利技术采取的技术方案包括如下步骤:(1)获取训练样本集和验证样本集:(1a)从热门域名集Alexa中顺次选取前L个热门域名组成训练样本集A,L≥600000;(1b)从良性域名集TRANCO中随机选取M个类别为0的良性域名,并对每个良性域名的类别进行标注,同时从DGA域名集DGArchive中随机选取N个类别为1的DGA域名,并对每个DGA域名的类别进行标注,然后将α*M个良性域名和α*N个DGA域名,以及各域名对应的标签组合成训练样本集B,将其余M-α*M个良性域名和其余N-α*N个DGA域名,以及各域名对应的标签组合成验证样本集,其中,M≥100000,N≥100000,0.6≤α≤0.8;(2)构建生成对抗网络GAN和字符级卷积神经网络Char-CNN:构建包括生成器网络和判别器网络的生成对抗网络GAN,其中,生成器网络包括全连接层、多个残差块、一维卷积层和激活层;判别器网络包括一维卷积层、多个残差块和全连接层;构建包括嵌入层、多个一维卷积层、多个激活层、多个一维最大池化层、多个残差块、Dropout层和多个全连接层的字符级卷积神经网络Char-CNN;(3)对生成对抗网络GAN进行迭代训练:(3a)设迭代次数为q1,最大迭代次数为Q1,Q1≥2000,并令q1=0;(3b)将随机噪声noise1作为生成器网络的输入进行计算,得到m个对抗域名向量,同时对从训练样本集A中随机选取的m个热门域名进行编码,得到m个热门域名向量,其中,64≤m≤L;(3c)将m个对抗域名向量以及m个热门域名向量作为判别器网络的输入进行预测,得到概率集合其中,为第i个对抗域名向量来源于训练样本集A的概率,dj为第j个热门域名向量来源于训练样本集A的概率,1≤i≤m,1≤j≤m;(3d)根据计算生成器网络的损失lossg和判别器网络的损失lossd;(3e)采用Adam算法,并通过lossg和lossd对生成对抗网络GAN进行训练,再判断q1=Q1是否成立,若是,得到训练好的生成对抗网络GAN`,否则,令q1=q1+1,并执行步骤(3b);(4)获取增广训练集:(4a)将随机噪声noise2作为训练好的生成对抗网络GAN`的输入进行计算,得到P个对抗域名向量,并对每个对抗域名向量进行解码,得到P个类别为1的对抗域名,其中,20000≤P≤L;(4b)对每个对抗域名的类别进行标注,并将P个对抗域名以及每个对抗域名的标签添加到训练样本集B中,得到增广训练集;(5)对字符级卷积神经网络Char-CNN进行迭代训练:(5a)设迭代次数为q2,最大迭代次数为Q2,Q2≥1000,并令q2=0;(5b)对从增广训练集中随机选取的n个域名进行编码,得到n个域名向量,并将n个域名向量作为字符级卷积神经网络Char-CNN的输入进行预测,得到概率集合{p1,p2,...,pk,...,pn},其中,pk为第k个域名的类别为1的概率,1≤k≤n,32≤n≤(α*M+α*N+P);(5c)根据{p1,p2,...,pk,...,pn},计算字符级卷积神经网络Char-CNN的损失loss;(5d)采用RMSprop算法,并通过loss的值对字符级卷积神经网络Char-CNN进行训练,得到训练后的Char-CNN模型Char-CNNq2;(5e)对从验证样本集中随机选取的c个验证域名进行编码,得到c个验证域名向量,并将c个验证域名向量作为Char-CNNq2的输入进行预测,得到概率集合其中,为第v个验证域名的类别为1的概率,1≤v≤c,32≤c≤(M-α*M+N-α*N);(5f)根据计算c个验证样本的检测准确率Accurac本文档来自技高网
...

【技术保护点】
1.一种基于GAN和Char-CNN的DGA域名检测方法,其特征在于,包括如下步骤:/n(1)获取训练样本集和验证样本集:/n(1a)从热门域名集Alexa中顺次选取前L个热门域名组成训练样本集A,L≥600000;/n(1b)从良性域名集TRANCO中随机选取M个类别为0的良性域名,并对每个良性域名的类别进行标注,同时从DGA域名集DGArchive中随机选取N个类别为1的DGA域名,并对每个DGA域名的类别进行标注,然后将α*M个良性域名和α*N个DGA域名,以及各域名对应的标签组合成训练样本集B,将其余M-α*M个良性域名和其余N-α*N个DGA域名,以及各域名对应的标签组合成验证样本集,其中,M≥100000,N≥100000,0.6≤α≤0.8;/n(2)构建生成对抗网络GAN和字符级卷积神经网络Char-CNN:/n构建包括生成器网络和判别器网络的生成对抗网络GAN,其中,生成器网络包括全连接层、多个残差块、一维卷积层和激活层;判别器网络包括一维卷积层、多个残差块和全连接层;/n构建包括嵌入层、多个一维卷积层、多个激活层、多个一维最大池化层、多个残差块、Dropout层和多个全连接层的字符级卷积神经网络Char-CNN;/n(3)对生成对抗网络GAN进行迭代训练:/n(3a)设迭代次数为q...

【技术特征摘要】
1.一种基于GAN和Char-CNN的DGA域名检测方法,其特征在于,包括如下步骤:
(1)获取训练样本集和验证样本集:
(1a)从热门域名集Alexa中顺次选取前L个热门域名组成训练样本集A,L≥600000;
(1b)从良性域名集TRANCO中随机选取M个类别为0的良性域名,并对每个良性域名的类别进行标注,同时从DGA域名集DGArchive中随机选取N个类别为1的DGA域名,并对每个DGA域名的类别进行标注,然后将α*M个良性域名和α*N个DGA域名,以及各域名对应的标签组合成训练样本集B,将其余M-α*M个良性域名和其余N-α*N个DGA域名,以及各域名对应的标签组合成验证样本集,其中,M≥100000,N≥100000,0.6≤α≤0.8;
(2)构建生成对抗网络GAN和字符级卷积神经网络Char-CNN:
构建包括生成器网络和判别器网络的生成对抗网络GAN,其中,生成器网络包括全连接层、多个残差块、一维卷积层和激活层;判别器网络包括一维卷积层、多个残差块和全连接层;
构建包括嵌入层、多个一维卷积层、多个激活层、多个一维最大池化层、多个残差块、Dropout层和多个全连接层的字符级卷积神经网络Char-CNN;
(3)对生成对抗网络GAN进行迭代训练:
(3a)设迭代次数为q1,最大迭代次数为Q1,Q1≥2000,并令q1=0;
(3b)将随机噪声noise1作为生成器网络的输入进行计算,得到m个对抗域名向量,同时对从训练样本集A中随机选取的m个热门域名进行编码,得到m个热门域名向量,其中,64≤m≤L;
(3c)将m个对抗域名向量以及m个热门域名向量作为判别器网络的输入进行预测,得到概率集合其中,为第i个对抗域名向量来源于训练样本集A的概率,dj为第j个热门域名向量来源于训练样本集A的概率,1≤i≤m,1≤j≤m;
(3d)根据计算生成器网络的损失lossg和判别器网络的损失lossd;
(3e)采用Adam算法,并通过lossg和lossd对生成对抗网络GAN进行训练,再判断q1=Q1是否成立,若是,得到训练好的生成对抗网络GAN`,否则,令q1=q1+1,并执行步骤(3b);
(4)获取增广训练集:
(4a)将随机噪声noise2作为训练好的生成对抗网络GAN`的输入进行计算,得到P个对抗域名向量,并对每个对抗域名向量进行解码,得到P个类别为1的对抗域名,其中,20000≤P≤L;
(4b)对每个对抗域名的类别进行标注,并将P个对抗域名以及每个对抗域名的标签添加到训练样本集B中,得到增广训练集;
(5)对字符级卷积神经网络Char-CNN进行迭代训练:
(5a)设迭代次数为q2,最大迭代次数为Q2,Q2≥1000,并令q2=0;
(5b)对从增广训练集中随机选取的n个域名进行编码,得到n个域名向量,并将n个域名向量作为字符级卷积神经网络Char-CNN的输入进行预测,得到概率集合{p1,p2,...,pk,...,pn},其中,pk为第k个域名的类别为1的概率,1≤k≤n,32≤n≤(α*M+α*N+P);
(5c)根据{p1,p2,...,pk,...,pn},计算字符级卷积神经网络Char-CNN的损失loss;
(5d)采用RMSprop算法,并通过loss的值对字符级卷积神经网络Char-CNN进行训练,得到训练后的Char-CNN模型Char-CNNq2;
(5e)对从验证样本集中随机选取的c个验证域名进行编码,得到c个验证域名向量,并将c个验证域名向量作为Char-CNNq2的输入进行预测,得到概率集合其中,为第v个验证域名的类别为1的概率,1≤v≤c,32≤c≤(M-α*M+N-α*N);
(5f)根据计算c个验证样本的检测准确率Accuracy;
(5g)判断q2=Q2是否成立或Accuracy是否不再增加,若是,得到训练好的字符级卷积神经网络Char-CNN`,否则,令q2=q2+1,并执行步骤(5b);
(6)基于训练好的字符级卷积神经网络Char-CNN`对域名进行检测:
(6a)设待检测域名的数量为t,并对每个待检测域名进行编码,得到t个待检测域名向量,t≥1;
(6b)将t个待检测域名向量作为训练好的字符级卷积神经网络Char-CNN`的输入进行预测,得到概率集合并判断是否成立,若是,...

【专利技术属性】
技术研发人员:杨超杨延洲苏锐丹郑昱尤伟陈明哲王潇皓
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1