CN114844682B - 一种dga域名检测方法及系统 - Google Patents
一种dga域名检测方法及系统 Download PDFInfo
- Publication number
- CN114844682B CN114844682B CN202210375971.9A CN202210375971A CN114844682B CN 114844682 B CN114844682 B CN 114844682B CN 202210375971 A CN202210375971 A CN 202210375971A CN 114844682 B CN114844682 B CN 114844682B
- Authority
- CN
- China
- Prior art keywords
- domain name
- layer
- dga
- classification model
- detected
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2431—Multiple classes
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
Abstract
本发明提出一种DGA域名检测方法及系统,涉及网络安全的技术领域,获取域名公开数据集,对域名公开数据集进行预处理,得到训练数据集,将训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型,在对待检测域名进行多分类以确定待检测域名所属DGA家族前,尽可能通过二分类模型筛选出待检测域名中的良性域名,即筛选出不属于DGA域名的域名,再对属于DGA域名的待检测域名进行多分类以确定属于DGA域名的待检测域名所属DGA家族,能够降低将良性域名误报为DGA家族的概率。
Description
技术领域
本发明涉及网络安全的技术领域,更具体地,涉及一种DGA域名检测方法及系统。
背景技术
随着互联网的快速发展,网络空间已然成为我们日常生活中各方面都流行的信息交换环境,网络空间的安全面临着越来越多的挑战,作为网络攻击平台,僵尸网络(botnet)能够通过命令和控制(command and control,C&C)服务器一对多地操控僵尸主机对目标主机发起网络攻击活动。
网络攻击者可利用特定的域名生成算法(domiangeneration algorithms,DGA)在较短的时间内随机生成大量的C&C服务器域名,该域名称为DGA域名,网络攻击者对生成的大量DGA域名中的少数DGA域名进行注册,当目标主机访问任意一个被注册的DGA域名时,网络攻击者即能够与C&C服务器建立通信以对目标主机进行网络攻击,因此,对DGA域名的检测能够降低网络中的潜在安全风险,从而保证互联网安全。
由于生成DGA域名的算法有多种,根据生成DGA域名的算法可将DGA域名进行分类,得到不同的DGA家族,每一种DGA家族代表由相同算法生成的DGA域名,为了更好地应对大量DGA域名所带来的网络风险,需要对不同的DGA家族采取对应的防御措施,因此,确定DGA域名所属家族能够进一步保证互联网安全。
深度学习算法能够自动提取目标域名的特征,并根据目标域名的特征检测目标域名是否为DGA域名,然而,在目标域名集中良性域名与DGA域名并存,深度学习算法对目标域名集进行检测时,有较大概率忽略数量较少DGA域名,检测准确率较低,为解决以上问题,现有技术提出了一种DGA域名检测方法,在对目标域名集进行检测时,提升了数量少的DGA域名的检测权重,容易检测出数量少的DGA域名,从而确定DGA域名所属DGA家族,提高检测准确率,但该检测方法对目标域名集中的良性域名识别率较低,将良性域名分类为DGA域名的概率仍较大,因此,将良性域名误报为DGA家族的概率较高。
发明内容
为解决传统DGA域名检测方法在对目标域名集进行检测时,容易将目标域名集中的良性域名误报为DGA家族的问题,本发明提出一种DGA域名检测方法及系统,尽可能筛选出目标域名集中的良性域名,再对目标域名集中的剩余域名进行DGA域名多分类,能够降低将良性域名误报为DGA家族的概率。
为了达到上述技术效果,本发明的技术方案如下:
一种DGA域名检测方法,包括:
S1.获取域名公开数据集;
S2.对所述域名公开数据集进行预处理,得到训练数据集;
S3.将所述训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;
S4.获取待检测域名,将待检测域名输入所述训练好的二分类模型,得到待检测域名属于DGA域名的概率;
S5.根据所述待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则执行步骤S6;若否,记录不属于DGA域名的待检测域名,作为良性域名,返回执行步骤S4;
S6.将属于DGA域名的待检测域名输入所述训练好的多分类模型,得到第一DGA域名多分类结果概率集合;
S7.根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族。
在本技术方案中,在对待检测域名进行多分类以确定待检测域名所属DGA家族前,尽可能通过二分类模型筛选出待检测域名中的良性域名,即筛选出不属于DGA域名的域名,再对属于DGA域名的待检测域名进行多分类以确定属于DGA域名的待检测域名所属DGA家族,能够降低将良性域名误报为DGA家族的概率。
优选的,对域名公开数据集进行预处理,得到训练数据集的过程包括:
将域名公开数据集中域名的所有大写字符转换成小写字符;
删除域名公开数据集中域名的顶级域名,保留域名的主域名作为初始二分类模型以及初始多分类模型的原始输入,得到待嵌入数据集;
对待嵌入数据集进行嵌入操作,得到训练数据集。
在此,对输入初始二分类模型以及初始多分类模型的域名公开数据集进行预处理,使域名公开数据集更为符合初始二分类模型以及初始多分类模型所需求的输入数据类型,能够大大提升训练初始二分类模型以及初始多分类模型的过程的效率。
优选的,所述初始二分类模型包括依次连接的第一卷积神经网络、代价敏感的第一长短期记忆网络、第一注意力层、第一Dropout层以及第一Sigmoid分类层,所述第一卷积神经网络包括第一卷积层和第一最大池化层,所述初始多分类模型包括依次连接的第二卷积神经网络、代价敏感的第二长短期记忆网络、第二注意力层、第二Dropout层以及第一Softmax分类层,所述第二卷积神经网络包括第二卷积层和第二最大池化层。
在此,通过卷积神经网络、代价敏感的长短期记忆网络以及注意力机制构建初始二分类模型以及初始多分类模型,提升了训练后的模型在检测DGA域名时的容错能力。
优选的,训练初始二分类模型以及初始多分类模型的过程包括:
通过第一卷积层对训练数据集进行卷积操作,得到训练数据集的第一空间特征;将第一空间特征输入第一最大池化层进行池化操作,得到第一池化层数据;将第一池化层数据输入代价敏感的第一长短期记忆网络,得到第一池化层数据的第一时间特征;将所述第一时间特征输入第一注意力层,得到第一注意力层数据;将第一注意力层数据在第一Dropout层进行Dropout操作并进行全连接操作后,输入第一Sigmoid分类层,得到训练数据集中的域名属于DGA域名的概率;
通过第二卷积层对训练数据集进行卷积操作,得到训练数据集的第二空间特征;将第二空间特征输入第二最大池化层进行池化操作,得到第二池化层数据;将第二池化层数据输入代价敏感的第二长短期记忆网络,得到第二池化层数据的第二时间特征;将所述第二时间特征输入第二注意力层,得到第二注意力层数据;将第二注意力层数据在第二Dropout层进行Dropout操作并进行全连接操作后,输入第一Softmax分类层,得到第二DGA域名多分类结果概率集合。
在此,通过训练数据集对初始二分类模型以及初始多分类模型进行训练,训练数据集依次通过模型的卷积神经网络、代价敏感的长短期记忆网络、注意力层、Dropout层以及分类层转化为初始输出结果,提升了方案的可实现性。
优选的,当训练数据集中的域名属于DGA域名的概率满足第一预设条件时,结束对初始二分类模型的训练;当第二DGA域名多分类结果概率集合满足第二预设条件时,结束对初始多分类模型的训练。
在此,当对初始二分类模型以及初始多分类模型的训练达到预设条件时,停止训练过程,避免对模型进行无休止的训练,使训练后的模型符合预设检测要求。
优选的,将待检测域名输入所述二分类模型,得到待检测域名属于DGA域名的概率的过程包括:
将所述待检测域名输入第三卷积神经网络,通过第三卷积层对待检测域名进行卷积操作,得到待检测域名的第三空间特征,将第三空间特征输入第三最大池化层进行池化操作,得到第三池化层数据,第三卷积层以及第三最大池化层包含于所述二分类模型,第三卷积神经网络包含于所述二分类模型;
将所述第三池化层数据输入代价敏感的第三长短期记忆网络,得到第三池化层数据的第三时间特征,代价敏感的第三长短期记忆神经网络包含于所述二分类模型;
将所述第三时间特征输入第三注意力层,得到第三注意力层数据,第三注意力层包含于所述二分类模型;
将第三注意力层数据在第三Dropout层进行Dropout操作并进行全连接操作后,输入第二Sigmoid分类层,得到待检测域名属于DGA域名的概率,第三Dropout层以及第二Sigmoid分类层均包含于所述二分类模型。
在此,经过训练后得到的二分类模型能够依次通过二分类模型所包含的卷积神经网络、代价敏感的长短期记忆网络、注意力层、Dropout层以及Sigmoid分类层将待检测域名转化为输出结果,通过输出结果检测待检测域名是否为DGA域名,提升了方案的可实现性。
优选的,将所述待检测域名输入所述多分类模型,得到第一DGA域名多分类结果概率集合的过程包括:
将所述待检测域名输入第四卷积神经网络,通过第四卷积层对待检测域名进行卷积操作,得到待检测域名的第四空间特征,将第四空间特征输入第四最大池化层进行池化操作,得到第四池化层数据,第四卷积层以及第四最大池化层包含于所述多分类模型,第四卷积神经网络包含于所述多分类模型;
将所述第四池化层数据输入代价敏感的第四长短期记忆网络,得到第四池化层数据的第四时间特征,代价敏感的第四长短期记忆神经网络包含于所述多分类模型;
将所述第四时间特征输入第四注意力层,得到第四注意力层数据,第四注意力层包含于所述多分类模型;
将第四注意力层数据在第四Dropout层进行Dropout操作并进行全连接操作后,输入第二Softmax分类层,得到第一DGA域名多分类结果概率集合,第四Dropout层以及第二Softmax分类层均包含于所述多分类模型。
在此,经过训练后得到的多分类模型能够依次通过多分类模型所包含的卷积神经网络、代价敏感的长短期记忆网络、注意力层、Dropout层以及Softmax分类层将属于DGA域名的待检测域名转化为输出结果,通过输出结果确定待检测域名所属的DGA家族,提升了方案的可实现性。
优选的,步骤S5的过程包括:
若待检测域名属于DGA域名的概率大于等于预设值,则确定该待检测域名属于DGA域名,以该待检测域名继续执行步骤S6;若待检测域名属于DGA域名的概率小于预设值,则确定该待检测域名不属于DGA域名,将该待检测域名记录为良性域名,返回执行步骤S4。
优选的,第一DGA域名多分类结果概率集合包括多个概率值,多个概率值中的每一个概率值对应一个DGA家族,根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族的过程包括:
确定第一DGA域名多分类结果概率集合中的最大概率值,将该最大概率值对应的DGA家族确定为属于DGA域名的待检测域名所属DGA家族。
在此,通过二分类模型输出的概率值大小判断DGA域名是否属于DGA域名,同过多分类模型输出的概率集合中的最大概率值确定属于DGA域名的待检测域名所属DGA家族,提升了方案的可实现性。
本发明还提出一种DGA域名检测系统,包括:
获取单元,用于获取域名公开数据集;
预处理单元,用于对所述域名公开数据集进行预处理,得到训练数据集;
训练单元,用于将所述训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;
第一检测单元,用于获取待检测域名,将待检测域名输入训练好的二分类模型,得到待检测域名属于DGA域名的概率;
判断单元,用于根据所述待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则将判断结果输入到第二检测单元;若否,记录不属于DGA域名的待检测域名,作为良性域名,返回到第一检测单元重新操作;
第二检测单元,用于将属于DGA域名的待检测域名输入所述多分类模型,得到第一DGA域名多分类结果概率集合;
确定单元,用于根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族。
本发明提出的DGA域名检测系统用于执行本发明提出的DGA域名检测方法。
与现有技术相比,本发明技术方案的有益效果是:
在对待检测域名进行多分类以确定待检测域名所属DGA家族前,尽可能通过二分类模型筛选出待检测域名中的良性域名,即筛选出不属于DGA域名的域名,再对属于DGA域名的待检测域名进行多分类以确定属于DGA域名的待检测域名所属DGA家族,能够降低将良性域名误报为DGA家族的概率。
附图说明
图1表示本发明提出的DGA域名检测方法的流程示意图;
图2表示本发明提出的二分类模型结构的示意图;
图3表示本发明提出的多分类模型结构的示意图;
图4表示本发明提出的DGA域名检测系统的示意图;
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好地说明本实施例,附图某些部位会有省略、放大或缩小,并不代表实际尺寸;
对于本领域技术人员来说,附图中某些公知内容说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
附图中描述位置关系的仅用于示例性说明,不能理解为对本专利的限制;
实施例1
考虑传统DGA域名检测方法在对目标域名集进行检测时,容易将目标域名集中的良性域名误报为DGA家族的问题,本实施例提出一种DGA域名检测方法,尽可能筛选出目标域名集中的良性域名,再对目标域名集中的剩余域名进行DGA域名多分类,能够降低将良性域名误报为DGA家族的概率,该方法的流程示意图如图1所示,包括以下步骤:
S1.获取域名公开数据集;
在本步骤中,首先获取域名公开数据集,域名公开数据集包括DGA域名以及良性域名,具体的,域名公开数据集中的良性域名数据来自Alexa前100万个域名,DGA域名来自Netlab 360发布的真实DGA域名,对于域名公开数据集中域名的具体来源,此处不作限定。
S2.对域名公开数据集进行预处理,得到训练数据集;
在本步骤中,将步骤S1中域名公开数据集中域名的所有大写字符转换成小写字符,删除域名公开数据集中域名的顶级域名,保留域名的主域名作为步骤S3的初始二分类模型以及初始多分类模型的原始输入,得到待嵌入数据集,对待嵌入数据集进行嵌入操作,得到训练数据集。其中,域名由两个或两个以上的词构成,中间由点号分隔开,位于最右边的词称为顶级域名。
具体的,卷积神经网络所接受的输入序列是固定长度的向量,设定固定长度为L,假设L=64,则域名结构域序列记为Si={c1,c2,c3,...,cn},其中n为结构域的长度,例如,由suppobox生成的域名triesoctover.net在字符转换以及保留主域名后,将表示为{t,r,i,e,s,o,c,t,o,v,e,r},嵌入操作中只处理固定长度为L的字符串,如果输入的字符串长度大于L,则需要截断超过部分,当输入字符串长度小于L时,该字符串将被填充。
在嵌入操作中,将给定的Si={c1,c2,c3,...,cn}转换成嵌入向量Xi={x1,x2,x3,...,xn},每个字符的向量表示为等式(1):
xi=RELU(Wexi+be) (1)
其中,We∈Rd×l是权重矩阵,be∈Rd是偏置向量,d表示嵌入维度的大小。RELU是修正线性单元,定义为:RELU(x)=max(x,0)。
S3.将训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;
在本步骤中,将步骤S2中经预处理得到的训练数据集输入初始二分类模型以及初始多分类模型,并通过训练数据集对模型进行训练,得到训练好的二分类模型以及多分类模型,二分类模型以及多分类模型能够对DGA域名进行检测。
S4.获取待检测域名,将待检测域名输入训练好的二分类模型,得到待检测域名属于DGA域名的概率;
在本步骤中,当初始二分类模型经过训练得到二分类模型后,将待检测域名输入二分类模型,由二分类模型输出待检测域名属于DGA域名的概率。
具体的,待检测域名是逐个获取并且逐个检测的,可选的,待检测域名也可批量获取,并对批量获取的待检测域名逐个进行检测,对于待检测域名获取的方式此处不作限定。
可选的,由二分类模型输出的待检测域名属于DGA域名的概率可以是概率值,该概率值表示待检测域名属于DGA域名的概率,对于待检测域名属于DGA域名的概率具体的形式,此处不作限定。
S5.根据待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则执行步骤S6;若否,记录不属于DGA域名的待检测域名,作为良性域名,返回执行步骤S4;
向二分类模型输入待检测域名后,二分类模型输出的待检测域名属于DGA域名的概率如步骤S5所述,在一种可选方案中,该待检测域名属于DGA域名的概率为概率值,该概率值表示待检测域名属于DGA域名的概率,若该概率值大于或等于预设值,则确定该待检测域名属于DGA域名,并以该待检测域名继续执行步骤S6,若该概率值小于预设值,则确定该待检测域名属于良性域名,将其记录以实现良性域名的筛选,并返回执行步骤S4,重新获取其他待检测域名并执行后续步骤。
可以理解的是,待检测域名属于DGA域名的概率除了是概率值之外,实际应用中也可是其他用于判断待检测域名是否为DGA域名的结果,对于待检测域名属于DGA域名的概率具体的形式,此处不作限定。
S6.将属于DGA域名的待检测域名输入训练好的多分类模型,得到第一DGA域名多分类结果概率集合;
当步骤S5中确定待检测域名属于DGA域名时,将该待检测域名输入多分类模型,多分类模型输出的第一DGA域名多分类结果概率集合,在一种可选方案中,可以是多个概率值,其中,多个概率值中的每一个概率值都有对应的DGA家族,例如,假定第一DGA域名多分类结果概率集合包括三个概率值,分别为概率值1、概率值2以及概率值3,假定DGA家族有三个,分别为家族A、家族B以及家族C,则概率值1表示待检测域名属于家族A的概率,概率值2表示待检测域名属于家族B的概率,概率值3表示待检测域名属于家族C的概率。
S7.根据第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族。
在步骤S6中获得第一DGA域名多分类结果概率集合后,在第一DGA域名多分类结果概率集合所包括的多个概率值中确定最大概率值,并确定该最大概率值对应的DGA家族,则属于DGA域名的待检测域名所属的DGA家族为该最大概率值对应的DGA家族。
本实施例在整体上,在对待检测域名进行多分类以确定待检测域名所属DGA家族前,尽可能通过二分类模型筛选出待检测域名中的良性域名,即筛选出不属于DGA域名的域名,再对属于DGA域名的待检测域名进行多分类以确定属于DGA域名的待检测域名所属DGA家族,能够降低将良性域名误报为DGA家族的概率。
实施例2
请参阅图2以及图3,本实施例对实施例1中所提到的训练初始二分类模型以及初始多分类模型的过程进行进一步说明,初始二分类模型包括依次连接的第一卷积神经网络(convolutional neural networks,CNN)、代价敏感(cost-sensitive,CS)的第一长短期记忆网络(long short-term memory,LSTM)、第一注意力层(attention)、第一Dropout层以及第一Sigmoid分类层,第一卷积神经网络包括第一卷积层和第一最大池化层,初始多分类模型包括依次连接的第二卷积神经网络、代价敏感的第二长短期记忆网络、第二注意力层、第二Dropout层以及第一Softmax分类层,第二卷积神经网络包括第二卷积层和第二最大池化层。
通过第一卷积层对训练数据集进行卷积操作,得到训练数据集的第一空间特征;将第一空间特征输入第一最大池化层进行池化操作,得到第一池化层数据;将第一池化层数据输入代价敏感的第一长短期记忆网络,得到第一池化层数据的第一时间特征;将第一时间特征输入第一注意力层,得到第一注意力层数据;将第一注意力层数据在第一Dropout层进行Dropout操作并进行全连接操作后,输入第一Sigmoid分类层,得到训练数据集中的域名属于DGA域名的概率;
通过第二卷积层对训练数据集进行卷积操作,得到训练数据集的第二空间特征;将第二空间特征输入第二最大池化层进行池化操作,得到第二池化层数据;将第二池化层数据输入代价敏感的第二长短期记忆网络,得到第二池化层数据的第二时间特征;将第二时间特征输入第二注意力层,得到第二注意力层数据;将第二注意力层数据在第二Dropout层进行Dropout操作并进行全连接操作后,输入第一Softmax分类层,得到第二DGA域名多分类结果概率集合。
具体的,在一种可选方案中,第一卷积层和/或第二卷积层具体可以是1D-CNN,包括64个卷积核,每个卷积核的大小为3,步长为1。
具体的,CS-LSTM由三个门控单元表示,分别是遗忘门、输入门和输出门,表示为等式(2):
其中,σ是Sigmoid逻辑函数,f,i,o和C分别代表遗忘门,输入门,输出门和细胞向量,这些向量的维度与隐藏层向量h的维度一致,Wf,Wi和WO分别表示遗忘门,输入门和输出门的权重矩阵。
CS-LSTM引入了成本项,直接将错误分类成本加入到LSTM的反向传播中,CS-LSTM的代价函数表示为等式(3):
E(t)=-∑p∈sample∑ktk(t)log yk(t)c[class(p),k] (3)
其中,每个样本p与成本项C[class(p),k]相关联,class(p)以及k分别表示实际类和预测类,成本项表示分类的重要性,以便给属于主流类的样本分配比较低的值,成本项控制权重更新的大小,强调训练误差较大的样本,使学习有意地偏向小类,在代价矩阵上,假设在一个类别中的样本一样重要。C[i,i]表示类i的错误分类代价:
其中,γ∈[0,1]是一个权衡参数,γ=1表示C[i,i]与类的大小ni称反比,这时小类与主流类的数量被重新平衡为1:1:...:1,可选的,设定γ=0.4。
具体的,注意力层能够检测基于字典的DGA域名,发现DGA域名的关键部分,集中于DGA域名序列的某些部分,有效地过滤出与DGA域名无关的噪声,通过注意力机制训练每个字符权重,以关注关键特征,计算注意权重向量的公式为等式(5):
at=softmax([ati,at2,...,at(t-1)]) (5)
[h1,h2,...,ht]是由CS-LSTM产生的输入矩阵,然后根据注意力权重向量和隐藏状态计算语境向量,等式(6):
h′=tanh(Wc[ct;ht] (7)
注意力隐藏状态h'由等式(7)得出,基于当前隐藏状态ht和语境向量ct得出,Wc为注意力层的权重矩阵,权重向量能够自动学习单词特征并记录域中的重要信息,一个域特征可以通过与权重向量相乘表示。
具体的,在一种可选方案中,Dropout层的Dropout可以设置为0.4,在每个训练批次中,通过忽略一半的特征检测器,可以明显地减少过拟合现象,这种方式可以减少特征检测器间的相互作用,Dropout层的网络计算公式如下:
rj (l)~Bernoulli(p) 8)
具体的,初始二分类模型的第一Sigmoid分类层使用Sigmoid函数,通过公式(12)能够得出待检测域名属于DGA域名的概率,初始多分类模型的第一Softmax分类层使用Softmax函数,通过公式(13)能够得出属于DGA域名的待检测域名属于对应DGA家族的概率。
可选的,当训练数据集中的域名属于DGA域名的概率满足第一预设条件时,结束对初始二分类模型的训练;当第二DGA域名多分类结果概率集合满足第二预设条件时,结束对初始多分类模型的训练,具体的,在一种实现方式中,第一预设条件以及第二预设条件为由训练数据集中的域名属于DGA域名的概率或第二DGA域名多分类结果概率集合所作出的判断结果与实际结果产生偏差的概率小于或等于预设概率。
本实施例中,通过CNN、CS-LSTM以及注意力机制构建初始二分类模型以及初始多分类模型,提升了训练后的模型在检测DGA域名时的容错能力,同时提升了方案的可实现性。
实施例3
请参阅图2以及图3,本实施例对实施例1中所提到的将待检测域名输入二分类模型,得到待检测域名属于DGA域名的概率的过程,以及将待检测域名输入多分类模型,得到第一DGA域名多分类结果概率集合的过程进行进一步说明:
将待检测域名输入第三卷积神经网络,通过第三卷积层对待检测域名进行卷积操作,得到待检测域名的第三空间特征,将第三空间特征输入第三最大池化层进行池化操作,得到第三池化层数据,第三卷积层以及第三最大池化层包含于二分类模型,第三卷积神经网络包含于二分类模型,将第三池化层数据输入代价敏感的第三长短期记忆网络,得到第三池化层数据的第三时间特征,代价敏感的第三长短期记忆神经网络包含于二分类模型,将第三时间特征输入第三注意力层,得到第三注意力层数据,第三注意力层包含于二分类模型,将第三注意力层数据在第三Dropout层进行Dropout操作并进行全连接操作后,输入第二Sigmoid分类层,得到待检测域名属于DGA域名的概率,第三Dropout层以及第二Sigmoid分类层均包含于二分类模型。
将待检测域名输入第四卷积神经网络,通过第四卷积层对待检测域名进行卷积操作,得到待检测域名的第四空间特征,将第四空间特征输入第四最大池化层进行池化操作,得到第四池化层数据,第四卷积层以及第四最大池化层包含于多分类模型,第四卷积神经网络包含于多分类模型,将第四池化层数据输入代价敏感的第四长短期记忆网络,得到第四池化层数据的第四时间特征,代价敏感的第四长短期记忆神经网络包含于多分类模型,将第四时间特征输入第四注意力层,得到第四注意力层数据,第四注意力层包含于多分类模型,将第四注意力层数据在第四Dropout层进行Dropout操作并进行全连接操作后,输入第二Softmax分类层,得到第一DGA域名多分类结果概率集合,第四Dropout层以及第二Softmax分类层均包含于多分类模型。
对于在二分类模型以及多分类模型中,根据输入的待检测域名输出待检测域名属于DGA域名的概率以及第一DGA域名多分类结果概率集合的过程的具体使用的公式以及参数,与实施例2中对初始二分类模型以及初始多分类模型的训练过程使用的公式以及参数类似,具体此处不再赘述。
下面对本发明中的系统进行描述,请参阅图4,本发明中的DGA域名检测系统包括:
获取单元401,用于获取域名公开数据集;
预处理单元402,用于对所述域名公开数据集进行预处理,得到训练数据集;
训练单元403,用于将所述训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;
第一检测单元404,用于获取待检测域名,将待检测域名输入训练好的二分类模型,得到待检测域名属于DGA域名的概率;
判断单元405,用于根据所述待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则将判断结果输入到第二检测单元;若否,则返回到第一检测单元重新操作;
第二检测单元406,用于将属于DGA域名的待检测域名输入所述多分类模型,得到第一DGA域名多分类结果概率集合;
确定单元407,用于根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族。
本发明中,第二检测单元406在对待检测域名进行多分类以确定待检测域名所属DGA家族前,尽可能通过判断单元405筛选出待检测域名中的良性域名,即筛选出不属于DGA域名的域名,确定单元407再对属于DGA域名的待检测域名进行多分类以确定属于DGA域名的待检测域名所属DGA家族,能够降低将良性域名误报为DGA家族的概率。
显然,本发明的上述实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种DGA域名检测方法,其特征在于,包括:
S1.获取域名公开数据集;
S2.对所述域名公开数据集进行预处理,得到训练数据集;
S3.将所述训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;所述初始二分类模型包括依次连接的第一卷积神经网络、代价敏感的第一长短期记忆网络、第一注意力层、第一Dropout层以及第一Sigmoid分类层,所述第一卷积神经网络包括第一卷积层和第一最大池化层,所述初始多分类模型包括依次连接的第二卷积神经网络、代价敏感的第二长短期记忆网络、第二注意力层、第二Dropout层以及第一Softmax分类层,所述第二卷积神经网络包括第二卷积层和第二最大池化层;
训练初始二分类模型以及初始多分类模型的过程包括:
通过第一卷积层对训练数据集进行卷积操作,得到训练数据集的第一空间特征;将第一空间特征输入第一最大池化层进行池化操作,得到第一池化层数据;将第一池化层数据输入代价敏感的第一长短期记忆网络,得到第一池化层数据的第一时间特征;将所述第一时间特征输入第一注意力层,得到第一注意力层数据;将第一注意力层数据在第一Dropout层进行Dropout操作并进行全连接操作后,输入第一Sigmoid分类层,得到训练数据集中的域名属于DGA域名的概率;
通过第二卷积层对训练数据集进行卷积操作,得到训练数据集的第二空间特征;将第二空间特征输入第二最大池化层进行池化操作,得到第二池化层数据;将第二池化层数据输入代价敏感的第二长短期记忆网络,得到第二池化层数据的第二时间特征;将所述第二时间特征输入第二注意力层,得到第二注意力层数据;将第二注意力层数据在第二Dropout层进行Dropout操作并进行全连接操作后,输入第一Softmax分类层,得到第二DGA域名多分类结果概率集合;
S4.获取待检测域名,将待检测域名输入所述训练好的二分类模型,得到待检测域名属于DGA域名的概率;
S5.根据所述待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则执行步骤S6;若否,记录不属于DGA域名的待检测域名,作为良性域名,返回执行步骤S4;
S6.将属于DGA域名的待检测域名输入所述训练好的多分类模型,得到第一DGA域名多分类结果概率集合;
S7.根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族。
2.根据权利要求1所述的DGA域名检测方法,其特征在于,所述对域名公开数据集进行预处理,得到训练数据集的过程包括:
将域名公开数据集中域名的所有大写字符转换成小写字符;
删除域名公开数据集中域名的顶级域名,保留域名的主域名作为初始二分类模型以及初始多分类模型的原始输入,得到待嵌入数据集;
对待嵌入数据集进行嵌入操作,得到训练数据集。
3.根据权利要求2所述的DGA域名检测方法,其特征在于,当训练数据集中的域名属于DGA域名的概率满足第一预设条件时,结束对初始二分类模型的训练;当第二DGA域名多分类结果概率集合满足第二预设条件时,结束对初始多分类模型的训练。
4.根据权利要求3所述的DGA域名检测方法,其特征在于,所述将待检测域名输入所述二分类模型,得到待检测域名属于DGA域名的概率的过程包括:
将所述待检测域名输入第三卷积神经网络,通过第三卷积层对待检测域名进行卷积操作,得到待检测域名的第三空间特征,将第三空间特征输入第三最大池化层进行池化操作,得到第三池化层数据,第三卷积层以及第三最大池化层包含于所述二分类模型,第三卷积神经网络包含于所述二分类模型;
将所述第三池化层数据输入代价敏感的第三长短期记忆网络,得到第三池化层数据的第三时间特征,代价敏感的第三长短期记忆神经网络包含于所述二分类模型;
将所述第三时间特征输入第三注意力层,得到第三注意力层数据,第三注意力层包含于所述二分类模型;
将第三注意力层数据在第三Dropout层进行Dropout操作并进行全连接操作后,输入第二Sigmoid分类层,得到待检测域名属于DGA域名的概率,第三Dropout层以及第二Sigmoid分类层均包含于所述二分类模型。
5.根据权利要求4所述的DGA域名检测方法,其特征在于,所述将所述待检测域名输入所述多分类模型,得到第一DGA域名多分类结果概率集合的过程包括:
将所述待检测域名输入第四卷积神经网络,通过第四卷积层对待检测域名进行卷积操作,得到待检测域名的第四空间特征,将第四空间特征输入第四最大池化层进行池化操作,得到第四池化层数据,第四卷积层以及第四最大池化层包含于所述多分类模型,第四卷积神经网络包含于所述多分类模型;
将所述第四池化层数据输入代价敏感的第四长短期记忆网络,得到第四池化层数据的第四时间特征,代价敏感的第四长短期记忆神经网络包含于所述多分类模型;
将所述第四时间特征输入第四注意力层,得到第四注意力层数据,第四注意力层包含于所述多分类模型;
将第四注意力层数据在第四Dropout层进行Dropout操作并进行全连接操作后,输入第二Softmax分类层,得到第一DGA域名多分类结果概率集合,第四Dropout层以及第二Softmax分类层均包含于所述多分类模型。
6.根据权利要求5所述的DGA域名检测方法,其特征在于,步骤S5的过程包括:
若待检测域名属于DGA域名的概率大于等于预设值,则确定该待检测域名属于DGA域名,以该待检测域名继续执行步骤S6;若待检测域名属于DGA域名的概率小于预设值,则确定该待检测域名不属于DGA域名,将该待检测域名记录为良性域名,返回执行步骤S4。
7.根据权利要求6所述的DGA域名检测方法,其特征在于,第一DGA域名多分类结果概率集合包括多个概率值,多个概率值中的每一个概率值对应一个DGA家族,根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族的过程包括:
确定第一DGA域名多分类结果概率集合中的最大概率值,将该最大概率值对应的DGA家族确定为属于DGA域名的待检测域名所属DGA家族。
8.一种DGA域名检测系统,其特征在于,包括:
获取单元,用于获取域名公开数据集;
预处理单元,用于对所述域名公开数据集进行预处理,得到训练数据集;
训练单元,用于将所述训练数据集分别输入初始二分类模型以及初始多分类模型,并训练初始二分类模型以及初始多分类模型,得到训练好的二分类模型以及多分类模型;
第一检测单元,用于获取待检测域名,将待检测域名输入训练好的二分类模型,得到待检测域名属于DGA域名的概率;
判断单元,用于根据所述待检测域名属于DGA域名的概率判断待检测域名是否属于DGA域名,若是,则将判断结果输入到第二检测单元;若否,记录不属于DGA域名的待检测域名,作为良性域名,返回到第一检测单元重新操作;
第二检测单元,用于将属于DGA域名的待检测域名输入所述多分类模型,得到第一DGA域名多分类结果概率集合;
确定单元,用于根据所述第一DGA域名多分类结果概率集合确定属于DGA域名的待检测域名所属DGA家族;
所述初始二分类模型包括依次连接的第一卷积神经网络、代价敏感的第一长短期记忆网络、第一注意力层、第一Dropout层以及第一Sigmoid分类层,所述第一卷积神经网络包括第一卷积层和第一最大池化层,所述初始多分类模型包括依次连接的第二卷积神经网络、代价敏感的第二长短期记忆网络、第二注意力层、第二Dropout层以及第一Softmax分类层,所述第二卷积神经网络包括第二卷积层和第二最大池化层;
训练初始二分类模型以及初始多分类模型的过程包括:
通过第一卷积层对训练数据集进行卷积操作,得到训练数据集的第一空间特征;将第一空间特征输入第一最大池化层进行池化操作,得到第一池化层数据;将第一池化层数据输入代价敏感的第一长短期记忆网络,得到第一池化层数据的第一时间特征;将所述第一时间特征输入第一注意力层,得到第一注意力层数据;将第一注意力层数据在第一Dropout层进行Dropout操作并进行全连接操作后,输入第一Sigmoid分类层,得到训练数据集中的域名属于DGA域名的概率;
通过第二卷积层对训练数据集进行卷积操作,得到训练数据集的第二空间特征;将第二空间特征输入第二最大池化层进行池化操作,得到第二池化层数据;将第二池化层数据输入代价敏感的第二长短期记忆网络,得到第二池化层数据的第二时间特征;将所述第二时间特征输入第二注意力层,得到第二注意力层数据;将第二注意力层数据在第二Dropout层进行Dropout操作并进行全连接操作后,输入第一Softmax分类层,得到第二DGA域名多分类结果概率集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375971.9A CN114844682B (zh) | 2022-04-11 | 2022-04-11 | 一种dga域名检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375971.9A CN114844682B (zh) | 2022-04-11 | 2022-04-11 | 一种dga域名检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114844682A CN114844682A (zh) | 2022-08-02 |
CN114844682B true CN114844682B (zh) | 2023-05-26 |
Family
ID=82564732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210375971.9A Active CN114844682B (zh) | 2022-04-11 | 2022-04-11 | 一种dga域名检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844682B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116318845B (zh) * | 2023-02-09 | 2024-06-18 | 国家计算机网络与信息安全管理中心甘肃分中心 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935097A (zh) * | 2020-07-16 | 2020-11-13 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN112235434A (zh) * | 2020-10-16 | 2021-01-15 | 重庆理工大学 | 融合k-means及其胶囊网络的DGA网络域名检测识别系统 |
CN112926647A (zh) * | 2021-02-23 | 2021-06-08 | 亚信科技(成都)有限公司 | 模型训练方法、域名检测方法及装置 |
CN113905016A (zh) * | 2021-09-13 | 2022-01-07 | 西安胡门网络技术有限公司 | 一种dga域名检测方法、检测装置及计算机存储介质 |
-
2022
- 2022-04-11 CN CN202210375971.9A patent/CN114844682B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935097A (zh) * | 2020-07-16 | 2020-11-13 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN112235434A (zh) * | 2020-10-16 | 2021-01-15 | 重庆理工大学 | 融合k-means及其胶囊网络的DGA网络域名检测识别系统 |
CN112926647A (zh) * | 2021-02-23 | 2021-06-08 | 亚信科技(成都)有限公司 | 模型训练方法、域名检测方法及装置 |
CN113905016A (zh) * | 2021-09-13 | 2022-01-07 | 西安胡门网络技术有限公司 | 一种dga域名检测方法、检测装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114844682A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583501B (zh) | 图片分类、分类识别模型的生成方法、装置、设备及介质 | |
CN111126069B (zh) | 一种基于视觉对象引导的社交媒体短文本命名实体识别方法 | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
CN111061843B (zh) | 一种知识图谱引导的假新闻检测方法 | |
CN108647736B (zh) | 一种基于感知损失和匹配注意力机制的图像分类方法 | |
CN111352965B (zh) | 序列挖掘模型的训练方法、序列数据的处理方法及设备 | |
CN112749274B (zh) | 基于注意力机制和干扰词删除的中文文本分类方法 | |
CN112861945B (zh) | 一种多模态融合谎言检测方法 | |
CN112182585B (zh) | 源代码漏洞检测方法、系统及存储介质 | |
CN112784031B (zh) | 一种基于小样本学习的客服对话文本的分类方法和系统 | |
Ra et al. | DeepAnti-PhishNet: Applying deep neural networks for phishing email detection | |
CN110084609B (zh) | 一种基于表征学习的交易欺诈行为深度检测方法 | |
CN112819063B (zh) | 一种基于改进的Focal损失函数的图像识别方法 | |
Alexandridis et al. | Long-tailed instance segmentation using gumbel optimized loss | |
CN113761359B (zh) | 数据包推荐方法、装置、电子设备和存储介质 | |
CN114844682B (zh) | 一种dga域名检测方法及系统 | |
CN115344863A (zh) | 一种基于图神经网络的恶意软件快速检测方法 | |
CN115982706A (zh) | 基于api调用序列行为多视角融合的恶意软件检测方法 | |
Pan et al. | A network traffic classification method based on graph convolution and lstm | |
CN117201082A (zh) | 融合TextCNN和GAN的网络入侵检测方法 | |
CN114896598B (zh) | 一种基于卷积神经网络的恶意代码检测方法 | |
Kaur et al. | E-mail spam detection using refined mlp with feature selection | |
Berrahal et al. | A Comparative Analysis of Fake Image Detection in Generative Adversarial Networks and Variational Autoencoders | |
Gurunath et al. | Insights Into Deep Steganography: A Study of Steganography Automation and Trends | |
Lu et al. | [Retracted] Efficient Object Detection Algorithm in Kitchen Appliance Scene Images Based on Deep Learning |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |