【技术实现步骤摘要】
基于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域名检测方法先手动提取域名的长度、信息熵、元辅音字符比例和重复字符数等特征,再使用支持向量机、随机森林等机器学习算法 ...
【技术保护点】
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层和多 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。