CN115270996A - 一种dga域名检测方法、检测装置及计算机存储介质 - Google Patents
一种dga域名检测方法、检测装置及计算机存储介质 Download PDFInfo
- Publication number
- CN115270996A CN115270996A CN202211118598.5A CN202211118598A CN115270996A CN 115270996 A CN115270996 A CN 115270996A CN 202211118598 A CN202211118598 A CN 202211118598A CN 115270996 A CN115270996 A CN 115270996A
- Authority
- CN
- China
- Prior art keywords
- domain name
- dga
- dga domain
- names
- domain names
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/144—Detection or countermeasures against botnets
Abstract
本发明公开了一种DGA域名检测方法、检测装置及计算机存储介质,基于LSTM的DGA域名检测模型对于检测百万级别DGA域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA域名的分类。但由于DGA域名多类不平衡特性,模型对于少数类的学习效果并不是特别明显,例如对于基于单词生成的DGA域名检测效果差。使用代价成本敏感的LSTM方法对DGA家族进行检测和损失函数上加入惩罚因子,提高训练学习中数量少的DGA家族重要性。在DGA域名检测模型基础上使用这种方法检测DGA域名的多分类,在少数域名的检测准确率方面,有较为明显的提升。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种DGA域名检测方法、检测装置及计算机存储介质。
背景技术
随着互联网技术的应用场景越来越广泛,互联网中网络安全攻击和入侵事件频繁发生。虽然网络中有各种网络安全防御工具的持续防护,但还是时不时会出现一些新的风险与挑战。无论是僵尸网络、木马、蠕虫、DDoS、APT以及其他任意的网络攻击行为,都需要解决一个相同的网络安全问题。即操控攻击方与受感染主机之间的通信,并对受控主机发起和执行操作的过程。攻击者往往会在双方成功建立通信信道后对目标系统进行远程控制、信息窃取、组建僵尸网络以发起大规模的攻击等非法操作。这些恶意行为使得在网络安全问题频繁发生,也让网络环境中的用户隐私数据在信息的完整性和可靠性防护方面增加了许多挑战。其中,僵尸网络会利用广泛使用的域名解析服务进行控制指令传输和躲避防火墙等安全设备的检测,从而实现对目标网络环境中主机的非法操作。因此,对非正常域名解析数据流量的检测是有助于发现和阻断僵尸网络的攻击行为。
攻击者利用域名解析过程,建立C&C(Command and Control,命令和控制) 的通信通道,进行分发破坏Web服务命令到受感染主机、接收在目标主机上窃取的数据、传播恶意软件等恶意行为。攻击者利用域名解析发起攻击的过程可以分为以下三个部分:首先是注册域名(例如abv.com),受感染主机中的恶意软件可以将隐私数据(例如信用卡号,登录网站密码或知识产权)编码为形式为 random-string.abv.com的DNS请求;其次,攻击者会将此DNS请求由DNS服务器转发到abv.com域的权威服务器(该服务器在攻击者的控制之下);最后,该域名服务器将应答响应发送给受感染主机。这个过程中提供了攻击者与受感染主机隐蔽的双向通信信道,攻击者通过该信道可以使用其他协议(例如SSH、FTP 等)远程登录到受感染主机,窃取受感染主机中重要数据并维持与恶意软件的通信进程。因此,检测DGA域名可以降低当前的网络中的潜在安全风险,能极大的减少由僵尸网络给互联网带来的安全威胁。
僵尸网络(Botnet)是通过网络之间的互相连接建立恶意程序的传播途径,从而进一步实现攻击者对于目标系统的控制和信息的窃取。目前绝大多数恶意软件利用域名解析过程控制受感染的主机和获取隐私敏感信息。僵尸网络会利用域名生成算法提高僵尸网络的生存能力,并延长自我生存时间和规避现有的安全检测技术。僵尸网络是网络安全最大的威胁之一,大多数的网络攻击都是依托于僵尸网络启动,例如分布式拒绝服务,点击欺骗,网络钓鱼,身份盗用,垃圾邮件,恶意软件感染。僵尸网络是由攻击者通过恶意软件控制、用户难以察觉的一组计算机集群,一个完整的僵尸网络由被控制的主机,C&C服务器和攻击者组成。攻击者是僵尸网络的控制方和攻击发起者,控制僵尸主机进行自我复制、垃圾邮件、拒绝攻击、窃取信息等非法行为。僵尸主机的数量近年来增加速度加快,分布在全球各地,形式多样。它的通信信道隐蔽,可以躲避防火墙的拦截以及安全软件的过滤。
在僵尸网络中,因使用硬编码的IP地址连接受感染主机的方式容易被管理者加入黑名单中,所以攻击者使用DNS的域名解析过程来连接服务器和发起攻击。而在实际环境中使用固定的域名地址解析服务器也会被黑名单策略阻止,所以攻击者使用DGA算法生成恶意域名后建立与C&C服务器的连接。域名生成算法会生成大量的域名,攻击者选择其中几个注册,使用这些注册的域名与受感染主机进行通信,构建僵尸网络,保护攻击者真正的服务器地址。
DGA是恶意软件运行时提供生成伪域名的程序或者是子程序,根据预定义的变量在任意给定时间计算生成查找的域名。攻击者提前编写好恶意软件中的DGA 程序,使攻击者和僵尸主机事先协商好生成DGA域名的方式,攻击者指定算法的输入数据生成DGA域名。在一定时间内,攻击者的服务器随机注册生成的域名。受感染主机在同一个时间内访问此域名,获取攻击者服务器的IP地址,随后建立与攻击者服务器的连接,两台机器以此方式交换信息。
研究现状:
现有工作主要集中在DGA域名的识别上,从识别技术的发展来看,主要经历以下两个阶段:
(1)基于机器学习的DGA域名检测
基于机器学习的DGA域名检测一般是先采用特征工程的方法对域名进行提取特征,再将这些特征运用到模型中以特征匹配的方式进行检测。其中,手工提取的特征主要分为DNS流量信息特征和域名字符特征。
(2)基于深度学习检测
现有域名检测方法大多都是在之前提取特征的基础上,对域名可提取的特征进行完善。但是这样的方式并不智能化,并且现有的DGA域名访问方式会无限向正常域名靠近。例如,构造DGA域名流量包的大小与正常DNS流量相同或生成可读可发音的域名,因此采用更智能的深度学习方法检测DGA域名。深度学习在自动学习DGA域名的特征上有良好表现,并且良好的硬件基础为深度学习的可实施性提供了极大的帮助。深度学习训练模型可以自动提取数据集中非线性的特征,节省了人力资源的消耗。
现有不足:
1.逆向分析恶意软件得到域名的生成方式再将可能生成的域名加入黑名单中这一方法会极大的浪费人力和资源。
2.机器学习手工提取语义词汇的特征耗费时间长,易被攻击者绕过问题
3.非DGA域名的数量要远远大于DGA域名的数量,在检测的时会略过数量少的DGA域名,导致对于数量少的恶意域名检测效果并不明显。
4.在与正常域名非常相似的DGA域名检测方面效果也并不明显
5.每种DGA域名的数量在所有域名的数量中所占的比例不同,所以二分类问题的解决方案不能直接应用在多分类域名上。
6.现有工作中,检测DGA域名的误报率高。
发明内容
本发明旨在解决上述现有技术中存在的问题,目的在于提供了一种DGA域名检测方法、检测装置及计算机存储介质,基于LSTM的DGA域名检测模型;加入代价成本敏感的LSTM方法对DGA家族进行检测;改进了基于DBN和LSTM的 DGA域名检测方法。
为了解决技术问题,本发明的技术方案是:
一种DGA域名检测方法,所述方法包括以下步骤:
S1,获取域名公开数据集,所述域名公开数据集包括:多个良性域名和多个DGA域名;
S2:对所述多个良性域名和多个DGA域名进行预处理,得到域名向量;
S3:根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络模型;所述循环神经网络模型为第一DGA域名检测模型;
S4:对S3得到的第一DGA域名检测模型,输入所述域名向量进行优化,得到第二DGA域名检测模型;
S5:对所述第二DGA域名检测模型加入成本敏感矩阵,得到初始DGA家族检测模型;
S6:把所述域名向量导入到预设的深度置信网络中,提取第一特征数据;
S7:把所述第一特征数据导入到预设阈值的长短期记忆网络中,提取第二特征数据;
S8:把所述第二特征数据输入到预设的分类器中进行训练,得到DGA家族分类器;
S9:根据得到的DGA家族分类器,更新所述初始DGA家族检测模型,得到最终DGA 家族检测模型。
基于LSTM的DGA域名检测模型对于检测百万级别DGA域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA域名的分类。但由于DGA域名多类不平衡特性,模型对于少数类的学习效果并不是特别明显,例如对于基于单词生成的DGA域名无法检测。
加入代价成本敏感的LSTM方法对DGA家族进行检测,在损失函数上加入惩罚因子,提高训练学习中数量少的DGA家族重要性。在DGA域名检测模型基础上使用这种方法检测DGA域名的多分类,在少数域名的检测准确率方面,有较为明显的提升。
进一步,所述对所述多个良性域名和多个DGA域名进行预处理,具体包括:
提取所述多个良性域名和多个DGA域名中字符串的每一个字符;
把所述每一个字符中唯一出现的字符作为有效字符,并将所述有效字符作为域名编码的有效字典;
根据所述域名编码的有效字典生成域名列表;
将所述域名列表编码成一个三维向量L;
采用词嵌入法对所述三维向量L进行降为操作,得到二维向量,即所述域名向量。
进一步,所述有效字符包括数字、字母、下划线和点号符。
进一步,在所述步骤S2之前,所述方法还包括:将所述多个良性域名和多个DGA 域名的字符串中每个字符采用独热方式进行编码,得到编码后的零一向量;
所述步骤S2中的根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络包括:根据所述编码后的零一向量,训练所述循环神经网络。
进一步,所述成本敏感矩阵公式具体如下:
其中,样本数据为x,类别的总数量是N,Ci,j表示当x是类别i时,将x误分类为类别j的代价成本。
进一步,所述预设的分类器采用Softmax分类器。
进一步,所述S7具体包括:
使用长短期记忆网络提取所述第一特征数据;计算所述良性域名和所述DGA 域名的长短期网络的输出值作为对比,把得到的对比值作为域名的特征,即第二特征数据。
一种DGA域名检测装置,包括:
存储器,用于存储非暂时性计算机可读指令;
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现上述中任意一项所述的DGA域名检测方法。
一种计算机存储介质,包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行上述中任一项所述的一种DGA域名检测方法或执行所述的一种DGA域名检测装置。
本发明的有益效果是:本发明一种DGA域名检测方法、检测装置及计算机存储介质:
1.基于LSTM的DGA域名检测模型对于检测百万级别DGA域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA域名的分类。但由于DGA 域名多类不平衡特性,模型对于域名中的少数类检测效果较差,例如对于基于单词生成的DGA域名无法检测。
2.加入代价成本敏感的LSTM方法对DGA家族进行检测,在损失函数上加入惩罚因子,提高训练学习中数量少的DGA家族重要性。在DGA域名检测模型基础上使用这种方法检测DGA域名的多分类,在少数域名的检测准确率方面,有较为明显的提升。
3.改进了基于DBN和LSTM的DGA域名检测方法。在数据预处理时结合了独热编码对域名数据进行预处理,然后再使用本发明的学习模型训练分类器。这种方法既有神经网络无需手工提取特征的特点,也在数据预处理的阶段也提取了域名中的字符级特征。结合了这两者不仅仅改善了之前的检测模型,提升了DGA 域名平均准确率,也有较低的误报率。
附图说明
图1是本发明的DGA域名检测模型训练方法的流程示意图;
图2是本发明的DGA家族检测模型训练方法的流程示意图;
图3是域名数据预处理流程图;
图4LSTM训练准确率图;
图5LSTM训练损失图;
图6训练批次大小为32时FDR和loss曲线图;
图7训练批次大小为64时FDR和loss曲线图;
图8训练批次大小为128时FDR和loss曲线图;
图9训练批次大小为128时FDR和loss曲线图。
具体实施方式
下面结合实施例描述本发明具体实施方式:
需要说明的是,本说明书所示意的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
实施例一:
本实施例涉及域名生成算法(Domain Generation Algorithm,简称DGA),生成的域名,简称为DGA域名。
如图1所示,一种DGA域名检测方法,所述方法包括以下步骤:
S1,获取域名公开数据集,所述域名公开数据集包括:多个良性域名和多个DGA域名;
S2:对所述多个良性域名和多个DGA域名进行预处理,得到域名向量;
S3:根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络模型;所述循环神经网络模型为第一DGA域名检测模型;
S4:对S3得到的第一DGA域名检测模型,输入所述域名向量进行优化,得到第二DGA域名检测模型;
S5:对所述第二DGA域名检测模型加入成本敏感矩阵,得到初始DGA家族检测模型;
S6:把所述域名向量导入到预设的深度置信网络中,提取第一特征数据;
S7:把所述第一特征数据导入到预设阈值的长短期记忆网络中,提取第二特征数据;
S8:把所述第二特征数据输入到预设的分类器中进行训练,得到DGA家族分类器;
S9:根据得到的DGA家族分类器,更新所述初始DGA家族检测模型,得到最终DGA 家族检测模型。
基于LSTM的DGA域名检测模型对于检测百万级别DGA域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA域名的分类。但由于DGA域名多类不平衡特性,模型对于少数类的学习效果并不是特别明显,例如在流量中的极少部分的DGA域名请求。
加入代价成本敏感的LSTM方法对DGA家族进行检测,在损失函数上加入惩罚因子,提高训练学习中数量少的DGA家族重要性。在DGA域名检测模型基础上使用这种方法检测DGA域名的多分类,在少数域名的检测准确率方面,有较为明显的提升。
所述对所述多个良性域名和多个DGA域名进行预处理,具体包括:
提取所述多个良性域名和多个DGA域名中字符串的每一个字符;
把所述每一个字符中的唯一字符作为有效字符,并将所述有效字符作为域名编码的有效字典;
根据所述域名编码的有效字典生成域名列表;
将所述域名列表编码成一个三维向量L;
采用词嵌入法对所述三维向量L进行降为操作,得到二维向量,即所述域名向量。
所述有效字符包括数字、字母、下划线和点号符。
在所述步骤S2之前,所述方法还包括:将所述多个良性域名和多个DGA域名的字符串中每个字符采用独热方式进行编码,得到编码后的零一向量;
所述步骤S2中的根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络包括:根据所述编码后的零一向量,训练所述循环神经网络。
所述成本敏感矩阵公式具体如下:
其中,样本数据为x,类别的总数量是N,Ci,j表示当x是类别i时,将x误分类为类别j的代价成本。
所述预设的分类器采用Softmax分类器。
所述S7具体包括:
使用长短期记忆网络提取所述第一特征数据;计算所述良性域名和所述DGA 域名的长短期网络的输出值作为对比,把得到的对比值作为域名的特征,即第二特征数据。
一种DGA域名检测装置,包括:
存储器,用于存储非暂时性计算机可读指令;
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现上述中任意一项所述的DGA域名检测方法。
一种计算机存储介质,包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行上述中任一项所述的一种DGA域名检测方法或执行所述的一种DGA域名检测装置。
实施例二:
本实施例二应用于实施例一所述的一种DGA域名检测方法、检测装置及计算机存储介质,具体包括:
依据本实施例提出的DGA域名检测方法,包括以下步骤:
步骤S1,搜集域名公开数据集,包括良性域名和DGA域名;
步骤S2,对步骤S1获取域名进行数据预处理,预处理后得到域名向量;
步骤S3,对步骤S2中的处理后的域名输入到DGA域名检测模型;
步骤S4,在S3步骤中加入成本敏感矩阵后,建立DGA家族检测模型;
步骤S5,对S2预处理后的数据导入到深度置信网络中自动提取特征;
步骤S6,对S5中提取的特征再导入到长短期记忆网络中自动提取特征;
步骤S7,将S6中得到的特征输入到一个分类器中进行训练,以得到DGA家族分类器;
步骤S8,判断S7中分类的结果属于哪一个DGA恶意家族。
在本实施例的一种优选实施方式中,在步骤S2中对待处理域名进行预处理包括以下步骤:
将良性域名和DGA域名出现的每一个字符提取出来作为有效字符;
有效字符包含数字、字母、下划线和点号符,并将有效字符作为域名编码的有效字典;
将域名转为一维的二进制向量X=(x1.x2,…,xm);
根据以上处理域名的方法,将域名列表编码为一个三维向量L=(x,y,z), x表示域名每个字母根据独热编码方法转为的向量,y表示域名列表中域名的最大长度,z表示域名在域名列表中的坐标;
使用词嵌入对步骤S2中的三维向量L降维,将其从较为稀疏的三维向量转换为二维向量。
在本实施例的一种优选实施方式中,在步骤S3包括:
神经网络学习后的隐向量表示为H,H={h1,h2,…,ht};
根据记忆门保存到隐神经元中的信息message的方式如下:
messaget=σ(Wxt+Uwt-1)
其中σ表示激活函数,W表示当前隐藏层和上个隐藏层之间的连接权重,U 表示当前神经元输入xt和隐藏神经元wt-1之间的权重矩阵。
从输入的信息xt进行学习,成为长期记忆的候选添加记忆,公式如下:
lstm′t=tanh(Wxt+Uwt-1)
输入门对要保存的信息进行使用和保存放在keep中,公式如下:
keept=σ(Wxt+Uwt-1)
将神经元中有用信息保存以供后续分类器使用,公式如下:
lstmt=messaget·lstmt-1+keept·lstm′t
隐状态中的关注向量focus即输出门,输出门的计算公式如下:
focust=σ(Wfxt+Ufwt-1)
隐状态的计算公式如下:
wt=focust·φ(lstmt)
使用长短期记忆网络提取域名中的信息作为特征;并且计算良性域名和DGA 域名的长短期网络的输出值作为对比,对比值作为域名的特征。
使用上述计算得到的特征输入到分类器训练DGA域名分类器,判断域名属于良性域名还是DGA域名。
在本实施例的一种优选实施方式中,在步骤S4包括:
在上述分类器的损失函数计算步骤中,加入成本敏感矩阵;
成本敏感矩阵公式如下所示:
样本数据为x,类别的总数量是N,Ci,j表示当x是类别i时,将x误分类为类别j的代价成本。
在计算时,代价成本函数Z(c)最小时,分类值与真实值最相似公式如下所示:
其中,j为样本真实标签,c为预测标签。P(j|x)表示样本x被分类为j的后验概率。当c=j表示分类结果正确,Cc,j=0。
在本实施例的一种优选实施方式中,在步骤S5包括:
可见层的DGA域名变量v=[v1,v2,…,vm]T,
隐藏层的变量h=[h1,h2,…,hm]T,
可见单元和隐藏单元的(v,h)的能量函数的公式如下:
vi,hj表示可见单元i和隐藏单元j的状态。ai,bj是可见单元和隐藏单元的偏差,wij代表可见层向量和隐藏层向量之间的权重。通过激活函数连接可见单元和隐藏单元,
可见层和隐藏层(v,h)的联合概率分布,公式如下:
由输入的可见向量v得到的第j个隐藏单元向量h状态的概率函数,公式如下:
由先前获得的隐藏向量h得到第i个可见单元向量v状态的概率函数,公式如下:
给定X,模型产生的能量y使能量E最小,计算公式如下:
超参数W约束能量函数ε中最小值,计算公式如下:
ε={E(W,y,x):W∈W}
在本实施例的一种优选实施方式中,在步骤S6的实施方式和同S3所述。
在本实施例的一种优选实施方式中,在步骤S7包括:
分类DGA域名选用Softmax分类器,
以域名类别i的输出为例,定义Softmax函数的公式如下所示:
在本实施例的一种优选实施方式中,在步骤S8还包括:
网络最后隐状态输出是似然函数的拟合,使用Simoid函数将输出转为零到一之间的值作为输出域名分类的概率,选取概率中数值最大的值作为预测该域名的类别。
实施例三:
本实施例三应用于实施例二,具体包括:
为更进一步阐述本实施例为达成预定发明目的所采取的技术手段及结果,以下结合附图,对本实施例提出的DGA域名检测模型训练方法、DGA域名检测方法的详细说明如后。
如图2所示,本实施例的DGA检测模型主要包含以下几个步骤:
步骤S1,搜集域名公开数据集,包括良性域名和DGA域名,将这些域名样本标记为良性域名和DGA域名,使用该标记作为先验信息进行监督学习。
步骤S2,根据标记后的域名,使用长短期记忆网络提取域名中的信息作为特征,对于预处理后的域名,采用相同的结构的循环神经网络进行训练,获取对良性域名和DGA域名的网络结果。
步骤S3,将S2获取的特征输入到一个分类器中进行分类,得到DGA域名分类器,并且计算良性域名和DGA域名的长短期网络的输出值作为对比,对比值作为域名的特征。
在步骤三用的是逻辑回归分类器进行训练,该逻辑回归分类器用于将域名进行二分类。
本实施例中,在研究中将成本敏感矩阵引入长短期记忆网络中预测域名的概率计算公式如下:
其中C[class(v),h]表示代价预测的成本函数,表示第i个输出神经元的实际输出yi和目标最小化网络的代价成本函数。将惩罚因子引入分类器培训的过程中,使损失函数对于数量少的DGA家族类别分配更多的因子,以体现少数类别的重要性。
本实施例中,DGA家族检测模型的算法如下所示:
DBN(Deep Belief Network,深度置信网络)是采用RBM(Restricted BoltzmannMachine,受限玻尔兹曼机)组成的。每一个受限玻尔兹曼机由一个输入层和一个隐藏层组成,两个层之间的神经网络是全连接,在同一层之间没有连接,两层之间通过能量计算连接。
本实施例的网络结构是由若干层受限玻尔兹曼机和一层前反馈神经网络组成深层神经网络,具体的算法如下所示。
算法1RBM训练算法
输入:如图3所示,训练独热编码后的DGA域名数据集L,输入RBM模型的可见层神经元的值由独热编码中字典的排序的值决定,输入层的个数为n。学习率Ё,隐藏层结点个数m,权值W和偏置向量a,b,最大训练周期T。
输出:连接权重矩阵W,输入层的偏置向量a,隐藏层的偏置向量b
训练方法:
算法2基于DBN的模型训练过程
输入:训练独热编码后的DGA域名数据集L,输入DBN模型的可见层神经元的值由独热编码中字典的排序的值决定,输入层的个数为n。学习率Ё,隐藏层结点个数m,权值W和偏置向量a,b,最大训练周期T。DBN的训练层数L。
Wk是l层的权重,k∈{1,l}
bk是在l层可见层偏置矢量,k∈{1,l}
ak是在l层隐藏层偏置矢量,k∈{1,l}
输出:分类DGA域名概率
训练过程:
预训练:
评估指标
在分类评估性能标准中,常采用准确率(Accuracy)、精确度(Precision)、召回率(Recall)、F-measure、G-mean和曲线下面积(Area Under the Curve, AUC)来反映算法的性能,其中准确率、精确度、召回率、F-measure是利用混淆矩阵统计的数值计算所得。混淆矩阵是对算法归类正确,归类错误的统计数值,将最后的统计数值放入表格中。
在DGA域名检测的分类中,DGA域名的与正常域名相比而言具有类别多,数量少的特点。所以在混淆矩阵中,DGA域名为正类(Positive),良性域名为负类(Negatives)。在分类算法中,预测为正类真实情况中也为正类,预测为负类真实情况中也为负类,即预测的情况和真实情况一致,此时分类为正确(True)。与分类正确相反的情况即预测情况和真实情况不符合,此时分类为错误(False)。
在混淆矩阵中将预测结果分为四类,其中正类分类正确(True Positive, TP)是预测是正类中实际上是正类的个数;误报(False Positive,FP)是预测是负类中实际上是正类的个数;漏报(False Negative,FN)是预测是正类中实际上负类的个数;负类分类正确(True Negative, TN)是预测是负类中实际上是负类的个数。混淆矩阵示意如下表所示。
混淆矩阵
召回率TPR是指预测为正类样本中实际为正类样本的个数在所有正类样本中的比重,公式如下:
Accuracy表示预测值分类正确的概率,公式如下:
Precision表示预测值是正类中实际为正类个数的比重,如下公式所示。
Recall表示预测为正类样本中实际为正类样本的个数在所有正类样本中的比重,公式如下:
F-measure是精确度和调和率的加权调和平均值,公式如下:
其中β是可以调整的参数,通常取β值为1,即F1值。
G-mean是反应正类和负类的总体分类性能。
误报率FDR是所有样本分类中发生错误的比率,公式如下:
通过以上指标将混淆矩阵的结果转为零到一之间的概率,有利于对训练结果进行标准化的衡量。但这些指标对于多类不平衡训练模型并不完全适用,使用公式的变形将二分类的衡量标准扩展到多分类任务当中。其中MG是对于召回率的评估指标扩展得到,公式如下:
对于多类分类任务中所有分类召回率的平均值,其中C表示类别的个数。
在多分类任务中,对于AUC的扩展是一个重要的指标,即MAUC。公式如下:
其中,C表示类别的个数,类别i和类别j的AUC表示为Ai,j,最后取平均值计算类别i和类别j的AUC值。
宏平均算术值(MAvA)是平均召回率,即对于每种类别计算召回率的平均值,公式如下:
实验结果:
步骤S3中,分类DGA域名的结果为:
在二分类检测中,使用本实施例所描述的学习模型检测DGA域名的准确率为98.81%。训练时的损失率,在迭代次数100之内,几乎降为零,而对测试集的测试时的损失率在百分之九以下。在验证集中损失率为8.47%。
加入代价敏感矩阵后,分类DGA家族的结果为如下表所示:
在与良性域名十分相似的DGA恶意域名检测方面提升非常多。例如Symmi 恶意家族检测评估指标提升了百分之五十。根据良性域名设计DGA恶意域名生成方式的Padcrypt恶意家族从无法检测到检测评估指标提升百分之九十八。这些评估指标对比LSTM检测效果是较为明显的改进。
步骤S7中的结果为
将DBN、LSTM、DBN-LSTM等各种模型构架进行数据集分析,所有的模型都采用32批次的训练大小,嵌入的长度为128,学习速率是0.0001,结果下表中显示。
使用不同深度学习框架的测试结果
方法 | 准确率 | 损失率 |
DBN | 27.27% | 2.92% |
LSTM | 49.76% | 3.7122 |
DBN-LSTM | 77.44% | 4.98% |
可以理解:
1.本发明基于LSTM的DGA域名检测模型对于检测百万级别DGA域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA域名的分类。但由于DGA域名多类不平衡特性,模型对于少数类的学习效果并不是特别明显,例如对于基于单词生成的DGA域名无法检测。
2.加入代价成本敏感的LSTM方法对DGA家族进行检测,在损失函数上加入惩罚因子,提高训练学习中数量少的DGA家族重要性。在DGA域名检测模型基础上使用这种方法检测DGA域名的多分类,在少数域名的检测准确率方面,有较为明显的提升。
3.改进了基于DBN和LSTM的DGA域名检测方法。在数据预处理时结合了独热编码对域名数据进行预处理,然后再使用本发明的学习模型训练分类器。这种方法既有神经网络无需提取特征的特点,也在数据预处理的阶段也提取了域名中的字符级特征。结合了这两者不仅仅改善了之前的检测模型,提升了DGA 域名平均准确率,也有较低的误报率。
实施例4:
本实施例的测试验证分为三个部分进行。
基于深度学习的DGA检测:
学习模型使用Python语言,并结合Keras库和TensorFlow框架完成开发。模型中的原始数据是域名字符串,不使用其他附加辅助信息。通过在真实DGA 恶意域名和良性数据集上运行数据,验证检测DGA恶意域名方法的准确性和鲁棒性。
在本次实验中,将损失函数的S设为2对域名进行二分类,即将域名分类良性域名和DGA恶意域名。迭代次数设为100次,将使用LSTM模型学习后,将准确率和损失率记录做成图以观察该学习方法对与分类域名的效果,如图4-图5 所示。
在二分类检测中,训练的准确率在迭代100次之内,几乎达到1,测试集的准确率在百分之九十九上下波动,证明LSTM模型对于学习域名这样的长序列的文本分类是非常有效的。训练时的损失率,在迭代次数100之内,几乎降为零,而对测试集的测试时的损失率在百分之八以下。证明预测值与域名真实的标签几乎相同。
本次基于LSTM的DGA恶意域名检测方法对于检测百万级别DGA恶意域名有一定的效果,能在短时间内提取域名中的特征并将特征用于DGA恶意域名的分类。但由于DGA恶意域名多类不平衡特性,模型对于少数类的学习效果并不是特别明显,例如对于基于单词列表生成的DGA恶意域名无法检测。
基于成本敏感LSTM的检测方法:
使用逆向技术对DGA恶意域名样本分析所耗费的时间和计算资源成本较大,因此非DGA的收集数目远大于DGA恶意域名。在收集到的数据集中,非 DGA恶意域名与DGA恶意域名所占的比例大约是1:1000]。针对DGA恶意域名数据集的多类不平衡性,在最小化代价函数的时加入对每个分类失败的惩罚因子。本次式样中LSTM模型使用加入代价成本敏感矩阵的损失函数,其函数表示如下公式所示。
其中C[class(v),h]表示代价预测的成本函数,表示第k个输出神经元的实际输出yk和目标最小化网络的代价成本函数。将惩罚因子引入分类器培训的过程中,使损失函数对于数量少的类别分配更多的因子,以体现少数类别的重要性。
通过在真实DGA恶意域名和良性数据集上运行学习模型,验证检测DGA恶意域名方法有一定的准确性和鲁棒性。从表1.1可以看出,平均准确率是57%,平均召回率是60%,平均f1-score是60%。
表1.1 基于成本矩阵的DGA恶意域名检测结果
实验结果表明,经过加入代价敏感矩阵的LSTM训练模型对于分类出基于单词列表生成的DGA恶意域名的检测效果比较好,其中恶意家族suppobox检测的准确率为百分之九十九;恶意家族Matsnu检测的准确率为百分之三十八,恶意家族necurs检测的准确率为百分之七十七,对于仅使用LSTM的检测效果是较为明显的改进。
深度置信网络LSTM的DGA恶意域名检测:
本小节基于以下两个方面讨论实验结果:
第一方面:将LSTM,Cost-LSTM,DBN-LSTM等各种模型构架进行数据集分析,所有的模型都采用32批次的训练大小,嵌入的长度为128,学习速率是0.1,结果在表1.2显示。
第二方面:在结果中,对于本章节的DBN框架,使用不同的超参数运行,例如嵌入层层数,训练尺寸,结果在表1.3中显示。
表1.2 使用不同深度学习框架的测试结果
方法 | 准确率 | 误报率 | 损失率 |
LSTM | 40% | 30% | 30% |
Cost-LSTM | 51% | 30% | 5.6% |
DBN-LSTM | 86.59% | 5.92% | 4.98% |
表1.3 Cost-LSTM的测试结果
方法 | 嵌入层 | 批次大小 | 准确率 | 误报率 | 时间 |
DBN-LSTM | 128 | 256 | 47.54% | 40.07% | 762s |
DBN-LSTM | 128 | 128 | 61.15% | 31% | 940s |
DBN-LSTM | 128 | 64 | 77.96% | 28.48% | 1240s |
DBN-LSTM | 128 | 32 | 86.59% | 5.92% | 1673s |
在1.2节的训练实验中,直到训练到第五十次训练时期,训练的准确性会增加,并且损失会随之减小。在50次之后,损失率增加,精度逐渐降低,这导致测试的准确性降低,训练准确率99%以上,但测试精度训练不超过51%。
通过对1.2节的实验分析测试结果,有些错误的分类导致测试的精度较少,为了解决以上错误,在LSTM网络的输入层中叠加DBN,以此提高模型的学习特征的学习率。从实验结果可以看出,使用改进的检测方法,提高了DGA恶意域名的平均检测率。
由于在多分类中,只使用平均准确率对模型评估并不全面,因此同时使用误报率FDR和训练损失数值对模型进行评估。将不同超参数下的误报率FDR在迭代100次中,变化情况绘制成曲线图,如图所示图6-图9所示。
本次实验主要是针对基于字符生成的DGA恶意域名提出了基于 DBN-LSTM的DGA恶意域名检测算法,算法结合了独热编码对域名数据进行预处理,然后再使用深度学习中的深度置信网络的LSTM学习模型训练分类器。这种方法继承了神经网络无需提取特征的特点,而在数据预处理的阶段也提取了域名中的单词级特征。结合了这两者不仅仅改善了之前的检测模型,提升了DGA恶意域名平均准确率,也有较低的误报率。
上面对本发明优选实施方式作了详细说明,但是本发明不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
不脱离本发明的构思和范围可以做出许多其他改变和改型。应当理解,本发明不限于特定的实施方式,本发明的范围由所附权利要求限定。
Claims (9)
1.一种DGA域名检测方法,其特征在于,所述方法包括以下步骤:
S1,获取域名公开数据集,所述域名公开数据集包括:多个良性域名和多个DGA域名;
S2:对所述多个良性域名和多个DGA域名进行预处理,得到域名向量;
S3:根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络模型;所述循环神经网络模型为第一DGA域名检测模型;
S4:对S3得到的第一DGA域名检测模型,输入所述域名向量进行优化,得到第二DGA域名检测模型;
S5:对所述第二DGA域名检测模型加入成本敏感矩阵,得到初始DGA家族检测模型;
S6:把所述域名向量导入到预设的深度置信网络中,提取第一特征数据;
S7:把所述第一特征数据导入到预设阈值的长短期记忆网络中,提取第二特征数据;
S8:把所述第二特征数据输入到预设的分类器中进行训练,得到DGA家族分类器;
S9:根据得到的DGA家族分类器,更新所述初始DGA家族检测模型,得到最终DGA家族检测模型。
2.根据权利要求1所述的一种DGA域名检测方法,其特征在于,所述对所述多个良性域名和多个DGA域名进行预处理,具体包括:
提取所述多个良性域名和多个DGA域名中字符串的每一个字符;
把所述每一个字符中唯一出现的字符作为有效字符,并将所述有效字符作为域名编码的有效字典;
根据所述域名编码的有效字典生成域名列表;
将所述域名列表编码成一个三维向量L;
采用词嵌入法对所述三维向量L进行降为操作,得到二维向量,即所述域名向量。
3.根据权利要求2所述的一种DGA域名检测方法,其特征在于,所述有效字符包括数字、字母、下划线和点号符。
4.根据权利要求3所述的一种DGA域名检测方法,其特征在于,在所述步骤S2之前,所述方法还包括:将所述多个良性域名和多个DGA域名的字符串中每个字符采用独热方式进行编码,得到编码后的零一向量;
所述步骤S2中的根据所述域名公开数据集来训练并生成用于特征提取的循环神经网络包括:根据所述编码后的零一向量,训练所述循环神经网络。
6.根据权利要求1所述的一种DGA域名检测方法,其特征在于,所述预设的分类器采用Softmax分类器。
7.根据权利要求1所述的一种DGA域名检测方法,其特征在于,所述S7具体包括:
使用长短期记忆网络提取所述第一特征数据;计算所述良性域名和所述DGA域名的长短期网络的输出值作为对比,把得到的对比值作为域名的特征,即第二特征数据。
8.一种DGA域名检测装置,包括:
存储器,用于存储非暂时性计算机可读指令;
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现权利要求1-7中任意一项所述的DGA域名检测方法。
9.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行如权利要求1至7中任一项所述的一种DGA域名检测方法或执行如权利要求8所述的一种DGA域名检测装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021110692348 | 2021-09-13 | ||
CN202111069234.8A CN113905016A (zh) | 2021-09-13 | 2021-09-13 | 一种dga域名检测方法、检测装置及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115270996A true CN115270996A (zh) | 2022-11-01 |
Family
ID=79027996
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111069234.8A Withdrawn CN113905016A (zh) | 2021-09-13 | 2021-09-13 | 一种dga域名检测方法、检测装置及计算机存储介质 |
CN202211118598.5A Pending CN115270996A (zh) | 2021-09-13 | 2022-09-13 | 一种dga域名检测方法、检测装置及计算机存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111069234.8A Withdrawn CN113905016A (zh) | 2021-09-13 | 2021-09-13 | 一种dga域名检测方法、检测装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113905016A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116318845A (zh) * | 2023-02-09 | 2023-06-23 | 国家计算机网络与信息安全管理中心甘肃分中心 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844682B (zh) * | 2022-04-11 | 2023-05-26 | 广东工业大学 | 一种dga域名检测方法及系统 |
-
2021
- 2021-09-13 CN CN202111069234.8A patent/CN113905016A/zh not_active Withdrawn
-
2022
- 2022-09-13 CN CN202211118598.5A patent/CN115270996A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116318845A (zh) * | 2023-02-09 | 2023-06-23 | 国家计算机网络与信息安全管理中心甘肃分中心 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113905016A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | A dimension reduction model and classifier for anomaly-based intrusion detection in internet of things | |
CN109922069B (zh) | 高级持续性威胁的多维关联分析方法及系统 | |
Ahmadian Ramaki et al. | A systematic review on intrusion detection based on the Hidden Markov Model | |
CN108449342A (zh) | 恶意请求检测方法及装置 | |
Peng et al. | Network intrusion detection based on deep learning | |
CN115270996A (zh) | 一种dga域名检测方法、检测装置及计算机存储介质 | |
CN109450845B (zh) | 一种基于深度神经网络的算法生成恶意域名检测方法 | |
WO2020230053A1 (en) | Detection of phishing campaigns | |
CN111224941B (zh) | 一种威胁类型识别方法及装置 | |
Yang et al. | Detecting stealthy domain generation algorithms using heterogeneous deep neural network framework | |
Rahim et al. | Detecting the Phishing Attack Using Collaborative Approach and Secure Login through Dynamic Virtual Passwords. | |
Mohan et al. | Spoof net: syntactic patterns for identification of ominous online factors | |
Andrade et al. | A model based on LSTM neural networks to identify five different types of malware | |
Malaysia | An enhanced online phishing e-mail detection framework based on evolving connectionist system | |
CN110351291B (zh) | 基于多尺度卷积神经网络的DDoS攻击检测方法及装置 | |
CN110855716B (zh) | 一种面向仿冒域名的自适应安全威胁分析方法及系统 | |
Kalaivani et al. | A Hybrid Deep Learning Intrusion Detection Model for Fog Computing Environment. | |
Nowroozi et al. | An adversarial attack analysis on malicious advertisement url detection framework | |
CN113965393B (zh) | 一种基于复杂网络和图神经网络的僵尸网络检测方法 | |
CN110958244A (zh) | 一种基于深度学习的仿冒域名检测方法及装置 | |
CN114826681A (zh) | 一种dga域名检测方法、系统、介质、设备及终端 | |
CN112887323B (zh) | 一种面向工业互联网边界安全的网络协议关联与识别方法 | |
Harbola et al. | Improved intrusion detection in DDoS applying feature selection using rank & score of attributes in KDD-99 data set | |
Li et al. | Automatic XSS detection and automatic anti-anti-virus payload generation | |
Wang et al. | DDOFM: Dynamic malicious domain detection method based on feature mining |
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 |