CN116318845B - 一种正负样本比例不平衡条件下的dga域名检测方法 - Google Patents
一种正负样本比例不平衡条件下的dga域名检测方法 Download PDFInfo
- Publication number
- CN116318845B CN116318845B CN202310090122.3A CN202310090122A CN116318845B CN 116318845 B CN116318845 B CN 116318845B CN 202310090122 A CN202310090122 A CN 202310090122A CN 116318845 B CN116318845 B CN 116318845B
- Authority
- CN
- China
- Prior art keywords
- domain name
- data
- positive
- bilstm
- loss
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 27
- 238000012549 training Methods 0.000 claims abstract description 51
- 230000007246 mechanism Effects 0.000 claims abstract description 37
- 238000013145 classification model Methods 0.000 claims abstract description 35
- 238000007781 pre-processing Methods 0.000 claims abstract description 10
- 238000013461 design Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 85
- 239000013598 vector Substances 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 20
- 238000013528 artificial neural network Methods 0.000 claims description 11
- 238000011156 evaluation Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 9
- 210000002569 neuron Anatomy 0.000 claims description 8
- 238000002474 experimental method Methods 0.000 claims description 7
- 238000005457 optimization Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000006403 short-term memory Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000007637 random forest analysis Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000003066 decision tree Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013400 design of experiment Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/1441—Countermeasures against malicious traffic
-
- 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
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种正负样本比例不平衡条件下的DGA域名检测方法,涉及网络安全技术领域,包括:获取正样本的DGA域名数据与负样本的Alexa合法域名数据;对域名数据预处理得到训练集;构建损失敏感注意力BiLSTM分类模型;将训练集中的数据输入损失敏感注意力BiLSTM分类模型进行训练;获取待检测域名,将待检测域名输入已经训练好的损失敏感注意力BiLSTM分类模型,得到待检测域名属于DGA域名的概率。本发明使用代价敏感类损失函数FocalLoss替代传统交叉熵损失函数,并引入自注意力机制,设计了损失敏感注意力BiLSTM分类模型,可以在正负样本比例不平衡条件下对DGA域名进行有效识别。
Description
技术领域
本发明涉及互联网网络安全技术领域,尤其涉及一种正负样本比例不平衡条件下的DGA域名检测方法。
背景技术
恶意攻击者通常使用木马或僵尸程序来感染主机并组建僵尸网络,为后续开展DDoS攻击、APT窃密攻击等恶意行为创造有利条件,为了控制僵尸网络,攻击者通常使用域名生成算法快速产生大量域名,并根据实际需求在域名服务商处注册其中某些域名,在利用僵尸网络发动攻击时,木马程序将根据事先设定好的算法查询DGA域名来找到与控制服务器相对应的IP地址进而建立通信信道。实践证明,利用上述方式可以有效避开安全设备的追踪拦截,大幅提升安全研究人员的阻断代价,因此对于DGA域名的检测、追踪以及封堵技术的研究成为当前网络安全领域的热点课题。
以采用的技术来划分,DGA域名的检测工作主要经历了基于逆向过程的分析检测、基于机器学习技术的检测和基于深度学习技术的检测三个阶段。2016年,Woodbridge等人率先将长短期记忆(Long Short-TermMemory,LSTM)网络应用于GDA域名检测,该模型利用LSTM层自动化提取字符词向量中的时序特征,在检测效率和精确率、召回率等指标方面明显优于基于统计特征和字符分布特征的隐马尔可夫模型和随机森林模型。Qiao等人将全局注意力机制与LSTM网络相结合用于DGA域名的检测,在数量较少的DGA域名样本上相较于对比模型有着不错的检测效果。此外,还有很多基于LSTM网络的变种模型被用于DGA域名的检测任务。
当前针对DGA域名的检测技术已经实现了检测流程自动化,而且检测结果也有着较高的准确率,但是也面临着诸多新的挑战,具体表现为现有模型在网络搭建和选择算法的时候并没有充分考虑正常网络流量中DGA域名与合法域名正负样本比例不平衡的问题,这将导致训练好的模型在真实的网络流量和训练数据上的表现有着明显差距。
发明内容
本发明提供了一种正负样本比例不平衡条件下的DGA域名检测方法,目的是为了解决现有技术中存在的缺点。
为了实现上述目的,本发明提供如下技术方案:一种正负样本比例不平衡条件下的DGA域名检测方法,包括如下步骤:
获取正样本的DGA域名数据与负样本的Alexa合法域名数据;
将所述DGA域名数据与Alexa合法域名数据进行预处理,并将预处理好的域名字符串按不同比例随机划分得到数据集;
构建损失敏感注意力BiLSTM分类模型;
将数据集中的数据输入损失敏感注意力BiLSTM分类模型进行训练;
获取待检测域名,将待检测域名输入训练好的损失敏感注意力BiLSTM分类模型,得到待检测域名属于DGA域名的概率;
所述损失敏感注意力BiLSTM分类模型在BiLSTM网络的基础上使用代价敏感类函数Focal Loss作为损失函数,同时引入自注意力机制设计,模型结构包括输入层、词嵌入层、BiLSTM层、Dropout层、全连接层与输出层。
优选的,对所述DGA域名数据与Alexa合法域名数据进行预处理,包括如下步骤:
去除DGA域名数据与Alexa合法域名数据中的一级域名和二级域名,只保留域名字符串;
利用域名字符串中的元素构建字典D;
选取固定值L作为所有域名字符串的统一长度值,在编码时对于长度大于L的只截取前L个字符,若长度不足L个字符则用数字0进行填充;
利用字典D对所有域名字符串进行编码处理,最终得到一个向量矩阵。
优选的,将预处理好的域名字符串按不同比例随机划分得到数据集,包括如下步骤:
使用预处理完毕的DGA域名字符串和Alexa合法域名字符串构建各自的样本库;
从DGA域名样本库、Alexa合法域名样本库中分别按照1:50、1:100、1:150、1:200不同的比例随机抽取相应的样本,来生成四组数据量均为30万条的实验所需数据集;
按照8:1:1的比例将每组数据集划分为训练集、验证集和测试集。
优选的,所述构建损失敏感注意力BiLSTM分类模型,具体包括如下步骤:
在BiLSTM网络中增加注意力机制,在网络每次更新状态时都会重新读取一遍之前所有时刻的状态并记录在上下文向量ci中,降低长距离依赖序列中有效信息被遗忘的概率,提升模型整体表现;
通过将代价敏感类损失函数Focal Loss作为BiLSTM网络的损失函数,解决数据集中正负样本比例不平衡的问题。
优选的,所述通过将代价敏感类损失函数Focal Loss作为BiLSTM网络的损失函数,解决数据集中正负样本比例不平衡的问题,具体包括如下步骤:
以标准交叉熵损失函数为基础构建Focal Loss损失函数,构建过程如下:
以二分类为例,交叉熵损失函数表达式为:
其中,表示模型的预测值,样本的真实标签为y∈{0,1},为了便于表示,做如下变换:
因此,交叉熵损失函数可表示为:
在交叉熵损失函数中引入权重因子α来解决正负类样本比例之间不平衡的问题,取值范围为[0,1];
CE(p)=-αlog(p)
增加参数γ解决易分类样本和复杂样本之间的不平衡问题,取值范围为[0,5];
CE(p)=-(1-p)γlog(p)
将上述两式合并后得到Focal Loss损失函数的表达式:
FL(p)=-α(1-p)γlog(p)
带入参数p后得到Focal Loss损失函数的最终形式为:
其中,CE表示交叉熵损失函数,FL表示Focal Loss损失函数,p表示样本预测值为正类的概率,表示样本预测标签值,y表示样本的真实标签值,α、γ均为Focal Loss损失函数的超参数。
优选的,所述将训练集中的数据输入损失敏感注意力BiLSTM分类模型进行训练,包括如下步骤:
所述训练集中通过输入层通过独热编码构建n*y维向量;
将n*y维向量输入x维的词嵌入层,获得n*x维的向量;
设模型初始学习率为0.001,采用自适应矩估计优化算法更新网络的权重;
通过BiLSTM层提取域名序列中的特征,输出n*隐藏神经元个数维的向量;
利用全连接层拉伸BiLSTM层的输出向量,将输出向量转换为低维数据;
采用Sigmoid作为输出层的分类函数,输出(0,1)之间的实数,若输出结果位于(0,0.5)之间则判定为正常域名,输出结果位于[0.5,1)之间则判定为DGA域名。
优选的,在所述BiLSTM训练时中对其进行优化,包括如下步骤:
采用Focal Loss函数作为损失函数,计算神经网络训练结果的损失值,利用反向传播机制调整网络参数,对神经网络进行训练优化;
采用Dropout层来降低模型训练过程中出现过拟合现象的概率;
使用不同的数据批大小,考虑训练效率与模型表现,选择最优数据批大小。
优选的,通过评价指标对训练好的所述损失敏感注意力BiLSTM分类模型进行评价。
优选的,通过评价指标对训练好的所述损失敏感注意力BiLSTM分类模型进行评价,具体包括如下步骤:
选取分类任务中的召回率、精确率、F1值以及不平衡样本分类问题中的PR曲线Precision-Recall Curve,PRC与横轴、纵轴所组成的面积作为模型性能的评价指标,具体公式为:
其中,Recall为召回率,Precision为精确率,F1-Score为F1值,TP为真正例,表示真实类别为正类,预测类别也为正类;FP为假正例,表示真实类别为正类,预测类比为负类;FN为假负例,真实类别为负类,预测类别为正类;TN为真负例,真实类别为负类,预测类别却为负类。
本发明与现有技术相比具有以下有益效果:本发明使用代价敏感类函数FocalLoss代替传统的交叉熵损失函数,同时引入自注意力机制,设计了损失敏感注意力BiLSTM分类模型,然后在预处理好的正负样本比例不平衡的数据集上对模型进行训练并利用测试集验证模型表现。本发明考虑的正常网络流量中DGA域名与合法域名正负样本比例不平衡的问题,提高了现有模型对于真实的网络流量和训练数据上的表现的平衡性,可以在不同正负样本比例不平衡条件下对DGA域名进行有效识别。
附图说明
图1为本发明提供的LSTM网络单元内部结构示意图;
图2为本发明提供的BiLSTM网络结构示意图;
图3为本发明提供的自注意力机制RNN结构示意图;
图4为本发明提供的损失敏感注意力BiLSTM分类模型结构示意图;
图5为本发明提供的不同模型在同一比例数据上的分类表现图;
图6为本发明提供的不同模型在同一比例数据上的分类表现图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
为了理解和说明,下面详细说明本发明实施例提供的一种正负样本比例不平衡条件下的DGA域名检测方法。
本发明的目的是设计出一个损失敏感注意力BiLSTM分类模型用于检测正负样本比例不平衡条件下的DGA域名,相较于现有模型,使用损失敏感(Cost-Sensitive)类目标函数Focal Loss函数来替代传统的交叉熵(Cross-Entropy)作为损失函数,Focal Loss损失函数在交叉熵的基础上引入通过权重参数alpha和gamma,可在控制正负样本比重的同时降低大量简单负样本在模型训练中所占的权重,使模型在训练优化时可以更加专注于少量难分类样本,提升模型在不平衡数据上的分类表现。此外,在双向长短期记忆(BidirectionalLong Short Term Memory,BiLSTM)网络的基础上引入自注意力机制(Self-AttentionMechanism),通过为提取到的抽象特征分配相应的权重来降低长距离依赖序列中有效信息被遗忘的概率,提升模型整体表现。
针对真实网络流量中DGA域名与正常域名分布不平衡的问题,基于上述理论背景设计了损失敏感注意力BiLSTM分类模型,故本发明的***总体构架图如图4所示,下面对本发明的提出的一种正负样本比例不平衡条件下的DGA域名检测方法进行详细说明,包括如下步骤:
步骤1:获取正样本的DGA域名数据与负样本的Alexa合法域名数据。
步骤2:将所述DGA域名数据与Alexa合法域名数据进行预处理,并将预处理好的域名字符串按不同比例随机划分得到数据集。
步骤3:构建损失敏感注意力BiLSTM分类模型。
步骤4:将数据集中的数据输入损失敏感注意力BiLSTM分类模型进行训练。
步骤5:获取待检测域名,将待检测域名输入已经训练好的损失敏感注意力BiLSTM分类模型,得到待检测域名属于DGA域名的概率。
其中,所述损失敏感注意力BiLSTM分类模型在BiLSTM网络的基础上使用代价敏感类函数Focal Loss作为损失函数,同时引入自注意力机制设计,模型结构包括输入层、词嵌入层、BiLSTM层、Dropout层、全连接层与输出层。
本发明经过处理后的域名数据以词向量矩阵的形式输入BiLSTM层提取每个域名不同字符之间的关联特征,最后利用全连接层进行预测并通过输出层得到预测结果。
a)域名经过数据预处理后转化为25×40维的矩阵,即输入层的维度为25×40。
b)词嵌入层:设置词嵌入层的维度为60维,输入数据经过词嵌入层转换为25×60维的矩阵,将低维稀疏向量映射成高维稠密向量,在保留不同词汇之间的关联关系的同时还可以进一步挖掘出同一词汇所蕴藏的深层次特征。
c)BiLSTM层:BiLSTM层用于提取输入域名序列中的特征,设置隐藏神经元个数为120个,输出为25×120维的特征向量。同时自注意力机制的加入使得网络可以提取到域名序列中长距离字符间的内在关联,降低网络在处理长距离序列时重要信息的遗忘率。
d)全连接层:全连接层的作用是拉伸BiLSTM层的输出向量,将其输出转换为低维数据,设置第一层全连接层神经元个数为20个,第二层全连接层神经元个数为8个。
e)输出层:输出层位于全连接层之后,采用Sigmoid作为分类函数,该层的输出为(0,1)之间的实数,当输出结果位于(0,0.5)之间则判定为正常域名,输出结果位于[0.5,1)之间则判定为DGA域名。
f)激活函数:在本文中,BiLSTM层和全连接层均使用ReLU作为激活函数,该函数单侧抑制的特性可以使得神经网络中的神经元具有稀疏激活性,且函数本身没有复杂的数学运算,无饱和区,不存在梯度消失的问题,可以有效提升神经网络的训练效率和学习精度。
g)损失函数:在神经网络训练过程中,通过损失函数来计算训练结果的损失值,然后利用反向传播机制调整网络参数,进而使网络不断地训练优化。在本文中,考虑到训练数据正负样本比例不平衡的特性,使用Focal Loss函数作为损失函数。
此外,为防止分类模型在训练过程中出现过拟合,提升模型泛化能力,在网络结构中增加了Dropout层,在每一次迭代训练时按照预先设定好好的概率随机将部分神经元的输出丢弃掉,在本文中,Dropout的概率设置为0.5。
其中,BiLSTM神经网络为:
长短期记忆(Long ShortTerm Memory,LSTM)网络本质上是一种循环神经网络(Recurrent Neural Networks,RNN),它由一系列LSTM单元(LSTM Unit)组成,可以将输入信息的状态包含在输出状态中并通过循环结构转移到下一个状态,使得整个网络有了“记忆”特性,从而实现对前文的信息进行记忆并应用于当前输出的计算过程中,因而在语音、文本等时序数据处理任务中有着广泛应用。LSTM网络单元内部结构如图1所示。
LSTM网络共有四个状态向量矩阵,ft、it、ot和ct分别代表遗忘门、输入门、输出门和单元向量,Wf、Wo、Wi分别表示连接遗忘门、输出门和输入门的权重矩阵,其中σ是Sigmoid函数tanh是双曲正切函数,这些向量的维度与隐藏层向量ht的维度一致,其前向传播计算方法见公式1至公式5所示。
LSTM网络通过在神经元内部增加遗忘门、输入门、输出门来对上一个状态的输出进行选择性“忘记”,对当前状态的输入进行选择性“记忆”,决定哪些信息将被作为当前状态的输出,通过这种结构,LSTM网络可以避免简单循环神经网络的梯度消失问题,进而学习和捕获到长依赖时间序列中多个字符之间的复杂依赖关系。
LSTM网络在形态上呈现出一种链式结构,单向LSTM网络其输入方式通常跟人的阅读习惯类似,都是从左往右进行,但是具体到实践中,无论是哪种输入方式LSTM网络都可以学习到序列中隐藏的特征。如图2所示,在LSTM网络中尝试添加两条链式结构,一条从左往右输入、一条从右往左输入,两条链式结构是完全独立的,不共享参数和状态,在训练过程中单元状态的更新和参数矩阵的计算与单向LSTM网络完全一致,待各自输出相应的状态向量后再将其拼接得到整个网络的状态,这种网络被称为双向长短期记忆(BidirectionalLong Short Term Memory,BiLSTM)网络。
由图2可知,BiLSTM网络本质上是由两个单向LSTM网络组成的,在特定时刻t,正向LSTM网络负责利用t-1时刻的信息,逆向LSTM网络负责利用t+1的信息。
(1)A1→A2→…→Ai为正向LSTM网络,参与正向计算,t时刻的输入为当前时刻的输入序列和t-1时刻的输出ht-1。
(2)A'i→…→A'2→A'1为逆向LSTM网络,参与反向计算,t时刻的输入为当前时刻的输入序列和t+1时刻的输出h′t+1。
(3)最终t时刻的输出同时取决于ht-1与h′t+1。
由于单向LSTM网络在训练过程中会或多或少遗忘掉一些较早时刻的输入信息,而BiLSTM网络得益于其特殊的网络形态,可以尽可能多地提供上下文信息,使网络得到更充分的学习,因而在很多情况下都可以取得比单向LSTM网络更好的学习效果。
自注意力机制:
注意力机制(Attention Mechanism)最早是在视觉图像领域提出来的,其灵感来源于对人类视觉的研究,人类在观察时并不会时刻都关注事物的所有场景,而是根据需求观察特定的一部分,例如通过对事物快速地进行全局扫描来获得需要重点关注的区域,进而锁定注意力焦点,接下来就可以根据实际需求在特定区域集中更多的注意力资源,以此来获取关注对象的局部细节信息,同时抑制其他干扰信息。同样,深度学习技术中的注意力机制在功能上等同于与人类的选择性机制,也是为了从大量信息中筛选出跟当前任务关系最为紧密的有效信息。
注意力机制(Attention Mechanism)自诞生以来就在计算机视觉和自然语言处理领域有着广泛应用,而后随着注意力模型关注范围和应用领域的不同逐渐衍生出全局注意力(Global Attention)、局部注意力(Local Attention)、硬注意力(Hard Attention)、层次注意力(Hierarchical Attention)、自注意力(Self-Attention)等多种注意力机制。其中,自注意力机制(Self-Attention Mechanism)由于其关注范围是输入序列自身的元素,降低了对外部信息的依赖,因而更擅于提取数据或特征的内部关联关系。在文本处理任务中,自注意力机制通过计算输入序列中每个词汇与其他所有词汇之间的内在关联进而得到输入序列的句法特征和语义特征,相比单一循环神经网络在长距离依赖特征上有着更加良好的表现,可以有效解决长距离依赖的问题,下面通过RNN来介绍自注意力机制的工作原理。
RNN在计算新的隐藏层状态时,首先将旧的状态与当前时刻的输入做拼接,然后将得到的向量与参数矩阵相乘,最后通过双曲正切激活函数进行非线性变化后即可得到新的状态。加入自注意力机制后,网络在更新状态时不再仅仅依赖于上一时刻的状态,而是通过引入上下文向量ci的方式让之前所有时刻的状态都参与到当前时刻状态的计算中去,模型结构如图3所示。
以t3时刻为例,要得到该时刻隐藏层的状态h3,首先需要计算上下文向量c2,c2是已有状态h2、以及初始状态h0的加权平均值,权重αi表示t2时刻的状态h2与所有时刻状态的相关性,由于初始状态h0是全零向量,因此可以忽略掉h0,最终得到的c2是h1和h2的函数。
Weight:αi=align(hi,h2) (6)
c2=α1·h1+α2h2 (7)
将上下文向量c2与t3时刻的输入x3拼接后与参数矩阵相乘,再通过双曲正切激活函数tanh做非线性变换即可得到t3时刻的状态h3。
同样地,在ti时刻,首先需要计算上一时刻的上下文向量ci-1,再通过ci-1和新的输入xi同得到当前时刻的状hi,重复该过程即可得到所有时刻的状态。
RNN在处理输入序列时需要按照前后次序依次进行,对于距离较远且相互依赖的特征要经过若干时间步的信息累积才能将两者联系起来,当序列中不同词汇之间距离较远时有效捕获的可能性将会更小。而引入自注意力机制后,网络在每次更新状态时都会重新读取一遍之前所有时刻的状态并记录在上下文向量ci中,此过程不需要依赖输入序列中词与词之间的顺序,而是通过计算词与词之间的相似度去挖掘内在关联信息,使得远距离依赖特征之间的距离被极大缩短,网络可以有效捕获到输入序列中的句法特征或者语义特征,这样就可以有效避免RNN的遗忘问题,在提升网络性能的同时还可以进行并行计算,因此自注意力机制在自然语言处理领域有着广泛应用。
代价敏感损失函数:
交叉熵损失(Cross Entropy Loss)函数可以对同一随机变量所对应的两种不同概率分布之间的差异进行衡量,表现在机器学***衡的问题,而且样本中还存在大量的简单负样本,而交叉熵损失函数的上述特性就会使得这些简单负样本对模型的训练损失起主要贡献作用,主导梯度更新方向,导致模型训练迭代过程比较缓慢甚至无法优化至最优。
为了解决上述问题,于是有了代价敏感(Cost-Sensitive)类损失函数,此类损失函数通过引入参数的方式减少简单负样本在模型训练过程中所占的比重,同时加大对难分类样本错误分类时的惩罚力度。Focal Loss损失函数就是一种代价敏感(Cost-Sensitive)类损失函数,它由Lin等人于2017年提出,目的是为了解决目标检测领域中由于样本类别不平衡所导致的One-Stage算法准确率不高的问题,Focal Loss损失函数在标准的交叉熵损失函数的基础上演变而来,这里以二分类为例,交叉熵损失函数见公式9、10所示。
其中,表示模型的预测值,样本的真实标签为y∈{0,1},为了便于表示,做如下变换:
因此,交叉熵损失函数可表示为:
Focal Loss损失函数引进了两个惩罚因子,如公式13所示,为了解决数据集中正负样本比例不平衡的问题,引入一个权重因子α,α的大小取决于负样本的比重,取值范围为[0,1],负样本越多,则给它的权重越小,这样就可以降低负样本的影响。
CE(p)=-αlog(p) (13)
此外,为解决易分类样本和复杂样本之间的不平衡问题,增加了参数γ使得模型可以更加专注于复杂的、难分类的样本,减少易分类样本的损失,如公式11所示。γ的取值范围为[0,5],当选定某一具体的γ值之后,对于易分类样本,其预测值p>>0.5,因此1-p是一个大于0小于0.5的数,所以1-p的γ次方就会很小,导致损失函数值变得更小,在反向传播优化过程中这类简单易分类样本就会减少对模型训练损失的贡献;相反地,对于分类难度较高的复杂样本,其预测值p<<0.5,因此1-p是一个大于0.5小于1的数,对应1-p的γ次方的值很大,导致损失函数值变得更大,增强对模型训练损失的贡献,使得模型在优化过程中更加专注于复杂样本。
CE(p)=-(1-p)γlog(p) (14)
最终将公式13、14进行合并有:
FL(p)=-α(1-p)γlog(p) (15)
代入p后得到Focal Loss损失函数的最终形式为:
其中,CE表示交叉熵损失函数,FL表示Focal Loss损失函数,p表示样本预测值为正类的概率。
下面对本发明所提方法进行实验与结果分析:
1、实验环境
在环境配置方面,选择使用PyTorch深度学习框架来实现模型的搭建和训练,具体硬件配置和软件版本如表1所示。
表1实验环境配置表
项目 | 参数 |
服务器操作*** | Ubuntu桌面版64bit |
内存 | 16GB 3200MHz DDR4 |
CPU | Intel Corei7-9700K八核3.6GHz |
GPU | NVIDIA Geforce RTX2070 |
PyTorch | 1.9.0 |
Python | 3.8 |
2、评价指标
本实验为二分类任务,而且采用的是正负样本比例不平衡的数据集,因此选取分类任务中常用到的召回率(Recall)、精确率(Precision)、F1值(F1-Score)以及不平衡样本分类问题中常用的PR曲线(Precision-Recall Curve,PRC)与横轴、纵轴所组成的面积作为模型性能的评价指标,具体公式如下所示。
其中,Recall为召回率,Precision为精确率,F1-Score为F1值,TP(TruePositive,TP)为真正例,FP(False Positive,FP)为假正例,FN(False Negative,FN)为假负例,TN(True Negative,TN)为真负例。
3、数据预处理
实验部分所使用的样本分别来自360lab公布的样本数量排名前10的DGA家族域名数据和Alexa网站公布的排名前100万的合法域名数据,其中DGA域名数据为正样本,Alexa合法域名数据为负样本。
去除域名数据中的一级域名和二级域名等,只保留域名字符串用作模型训练,利用域名字符串中的元素构建字典D,选取25为所有域名字符串的统一长度值,在根据字典D进行编码时对于长度超过25的只截取前25个字符,对于长度不足25个字符的用数字0进行填充,最后将所有域名字符串经过编码后表示成一个向量矩阵。
使用预处理完毕的DGA域名字符串和Alexa合法域名字符串构建各自的样本库,然后从DGA域名样本库、Alexa合法域名样本库中分别按照1:50、1:100、1:150、1:200不同的比例随机抽取相应的样本来生成四组数据量均为30万条的实验所需数据集,最后按照8:1:1的比例将每组数据集随机划分为训练集、验证集和测试集。
4、实验设计
数据预处理完毕后需要在不同的数据集上对损失敏感注意力BiLSTM分类模型进行训练优化,具体实验步骤如下所述。
a)训练集中的每个域名字符串经过独热编码后为25x40维的向量,设置词嵌入层的维度为60维,因此每个域名字符串经过词嵌入层处理后输出为25×60维的向量。实现了将低维稀疏向量到高维稠密向量的映射,进一步挖掘出不同字符之间的深层次特征,提高输入数据的质量。
b)模型的初始学习率设置为0.001,并在训练过程中根据模型的表现动态调整学习率,采用自适应矩估计(Adaptive Moment Estimation,Adam)优化算法来更新网络的权重,以得到更好、更稳定的训练效果。
c)模型使用Focal Loss作为损失函数,在训练过程中动态调整Focal Loss损失函数的α和γ值,使模型在不同正负样本比例的数据集上得到最佳的分类表现。
d)采用Dropout层来降低模型训练过程中出现过拟合现象的概率。
f)在训练过程中,尝试使用不同的数据批大小(128、256、512等),最后综合考虑训练效率与模型表现,选择最优数据批大小。
5、结果分析与对比
为了验证模型分类表现,在预处理好的数据集上训练损失敏感注意力BiLSTM分类模型,同时引入ATTBiLSTM模型(在BiLSTM模型的基础上引入自注意力)、BiLSTM模型(损失函数为交叉熵损失)、决策树(Decision Tree,DT)、随机森林(Random Forest,RF)四种模型进行对比实验,实验结果如表2、表3、表4、表5所示。
表2不平衡比例为1:50时模型表现
表3不平衡比例为1:100时模型表现
表4不平衡比例为1:150时模型表现
表5不平衡比例为1:200时模型表现
通过对上述实验结果对比分析可知,由于深度学习模型的自动化样本特征提取方式能够挖掘到样本中不易被手动提取到的潜在特征,相比传统机器模型更加高效准确,因此可以看到三个深度学习模型的整体表现明显优于传统机器学习模型中的决策树和随机森林。
考虑到在日常网络安全事件监测过程中,更加注重的是模型能否可以将所有的DGA域名全部识别出来以及识别的精准度,对应到模型的评价指标就是召回率(Recall)、精确率(Precision)、F1值和PR曲线面积。
如图5、图6所示,分别是以模型类别和数据集的不平衡比例为参照时的实验结果对比。
分析可知,损失敏感注意力BiLSTM分类模型在上述四种不平衡数据上的分类性能均要明显优于其他四种模型,以不平衡比例为1:50时的模型表现为例,损失敏感注意力BiLSTM分类模型相较于损失函数为交叉熵损失的ATTBiLSTM模型在召回率、精确度、F1值、PR曲线面积上分别提升了3.16%、2.16%、2.67%和2.43%。其次,随着数据集中正负样本的比例越小、越不平衡,所有模型的分类性能均有了不同程度的下降,而损失敏感注意力BiLSTM分类模型依旧在所有对比模型中保持着较高的分类性能。说明我们使用的FocalLoss损失函数在训练过程中通过参数α和γ使得模型在反向传播优化时减少易分类负样本对模型训练损失的贡献,转而更加专注于难分类且数量稀少的正样本,有效提升了模型在不平衡数据上的分类表现。
此外,引入自注意力机制的ATTBiLSTM模型在四种评价指标上的表现要普遍优于没有自注意力机制的BiLSTM模型,说明自注意力机制的引入使得模型可以捕获到DGA域名数据不同字符之间的内在关系,通过计算每个字符与其他所有字符之间的内在关联进而得到DGA域名序列内部的句法特征和语义特征,提升模型的分类效果。
对于正常网络流量中DGA域名与合法域名样本数据量分布不平衡而导致现有DGA域名检测模型效果不佳的问题,本文用代价敏感类函数Focal Loss替代交叉熵函数,同时引入自注意力机制,设计出损失敏感注意力BiLSTM分类模型。然后在正负样本比例各不相同的数据集上训练分类模型,同时引入对比模型进行综合评价,最终验证了此方法的有效性。
以上所述实施例仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换,均属于本发明的保护范围。
Claims (6)
1.一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,包括如下步骤:
获取正样本的DGA域名数据与负样本的Alexa合法域名数据;
对所述DGA域名数据与Alexa合法域名数据进行预处理,并将预处理好的域名字符串按不同比例随机划分得到数据集;
对所述DGA域名数据与Alexa合法域名数据进行预处理,包括如下步骤:
去除DGA域名数据与Alexa合法域名数据中的一级域名和二级域名,只保留域名字符串;
利用域名字符串中的元素构建字典D;
选取固定值L作为所有域名字符串的统一长度值,在编码时对于长度大于L的只截取前L个字符,若长度不足L个字符则用数字0进行填充;
利用字典D对所有域名字符串进行编码处理,最终得到一个向量矩阵;
构建损失敏感注意力BiLSTM分类模型;具体包括如下步骤:
在BiLSTM网络中增加注意力机制,在网络每次更新状态时都会重新读取一遍之前所有时刻的状态并记录在上下文向量ci中,降低长距离依赖序列中有效信息被遗忘的概率,提升模型整体表现;
通过将代价敏感类损失函数Focal Loss作为BiLSTM网络的损失函数,解决数据集中正负样本比例不平衡的问题;
将数据集中的数据输入损失敏感注意力BiLSTM分类模型进行训练,包括如下步骤:
将所述数据集中的数据通过输入层的独热编码构建n*y维向量;
将n*y维向量输入x维的词嵌入层,获得n*x维的向量;
设模型初始学习率为0.001,采用自适应矩估计优化算法更新网络的权重;
通过BiLSTM层提取域名序列中的特征,输出n*隐藏神经元个数维的向量;
利用全连接层拉伸BiLSTM层的输出向量,将输出向量转换为低维数据;
采用Sigmoid作为输出层的分类函数,输出(0,1)之间的实数,若输出结果位于(0,0.5)之间则判定为正常域名,输出结果位于[0.5,1)之间则判定为DGA域名;
获取待检测域名,将待检测域名输入训练好的损失敏感注意力BiLSTM分类模型,得到待检测域名属于DGA域名的概率;
所述损失敏感注意力BiLSTM分类模型在BiLSTM网络的基础上使用代价敏感类函数FocalLoss作为损失函数,同时引入自注意力机制设计,模型结构包括输入层、词嵌入层、BiLSTM层、Dropout层、全连接层与输出层。
2.如权利要求1所述的一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,将预处理好的域名字符串按不同比例随机划分得到数据集,包括如下步骤:
使用预处理完毕的DGA域名字符串和Alexa合法域名字符串构建各自的样本库;
从DGA域名样本库、Alexa合法域名样本库中分别按照1:50、1:100、1:150、1:200不同的比例随机抽取相应的样本,来生成四组数据量均为30万条的实验所需数据集;
按照8:1:1的比例将每组数据集划分为训练集、验证集和测试集。
3.如权利要求1所述的一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,所述通过将代价敏感类损失函数FocalLoss作为BiLSTM网络的损失函数,解决数据集中正负样本比例不平衡的问题,具体包括如下步骤:
以标准交叉熵损失函数为基础构建FocalLoss损失函数,构建过程如下:
以二分类为例,交叉熵损失函数表达式为:
其中,表示模型的预测值,样本的真实标签为y∈{0,1},为了便于表示,做如下变换:
因此,交叉熵损失函数可表示为:
在交叉熵损失函数中引入权重因子α来解决正负类样本比例之间不平衡的问题,取值范围为[0,1];
CE(p)=-αlog(p)
增加参数γ解决易分类样本和复杂样本之间的不平衡问题,取值范围为[0,5];
CE(p)=-(1-p)γlog(p)
将上述两式合并后得到Focal Loss损失函数的表达式:
FL(p)=-α(1-p)γlog(p)
带入参数p后得到Focal Loss损失函数的最终形式为:
其中,CE表示交叉熵损失函数,FL表示Focal Loss损失函数,p表示样本预测值为正类的概率,表示样本预测标签值,y表示样本的真实标签值,α、γ均为FocalLoss损失函数的超参数。
4.如权利要求1所述的一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,在所述BiLSTM分类模型训练时对其进行优化,包括如下步骤:
采用FocalLoss函数作为损失函数,计算神经网络训练结果的损失值,利用反向传播机制调整网络参数,对神经网络进行训练优化;
采用Dropout层来降低模型训练过程中出现过拟合现象的概率;
使用不同的数据批大小,考虑训练效率与模型表现,选择最优数据批大小。
5.如权利要求1所述的一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,通过评价指标对训练好的所述损失敏感注意力BiLSTM分类模型进行评价。
6.如权利要求5所述的一种正负样本比例不平衡条件下的DGA域名检测方法,其特征在于,通过评价指标对训练好的所述损失敏感注意力BiLSTM分类模型进行评价,具体包括如下步骤:
选取分类任务中的召回率、精确率、F1值以及不平衡样本分类问题中的PR曲线Precision-Recall Curve,PRC与横轴、纵轴所组成的面积作为模型性能的评价指标,具体公式为:
其中,Recall为召回率,Precision为精确率,F1-Score为F1值,TP为真正例,表示真实类别为正类,预测类别也为正类;FP为假正例,表示真实类别为正类,预测类比为负类;FN为假负例,真实类别为负类,预测类别为正类;TN为真负例,真实类别为负类,预测类别却为负类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310090122.3A CN116318845B (zh) | 2023-02-09 | 2023-02-09 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310090122.3A CN116318845B (zh) | 2023-02-09 | 2023-02-09 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116318845A CN116318845A (zh) | 2023-06-23 |
CN116318845B true CN116318845B (zh) | 2024-06-18 |
Family
ID=86787933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310090122.3A Active CN116318845B (zh) | 2023-02-09 | 2023-02-09 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116318845B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117522177B (zh) * | 2024-01-08 | 2024-03-12 | 国网江苏省电力有限公司信息通信分公司 | 一种智能电网稳定性预测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
CN114844682A (zh) * | 2022-04-11 | 2022-08-02 | 广东工业大学 | 一种dga域名检测方法及*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI677209B (zh) * | 2018-07-26 | 2019-11-11 | 玉山商業銀行股份有限公司 | 網名過濾方法 |
EP3614645B1 (en) * | 2018-08-21 | 2022-11-23 | Deutsche Telekom AG | Embedded dga representations for botnet analysis |
CN110191103B (zh) * | 2019-05-10 | 2022-07-15 | 长安通信科技有限责任公司 | 一种dga域名检测分类方法 |
CN112272147A (zh) * | 2020-10-23 | 2021-01-26 | 中国科学院信息工程研究所 | 一种基于代价敏感和梯度提升算法的不均衡网络流量分类方法和装置 |
CN112953914A (zh) * | 2021-01-29 | 2021-06-11 | 浙江大学 | 一种dga域名检测分类方法及装置 |
CN112948578B (zh) * | 2021-01-29 | 2022-05-17 | 浙江大学 | 一种dga域名开集分类方法、装置、电子设备及介质 |
CN113255078A (zh) * | 2021-05-31 | 2021-08-13 | 南京信息工程大学 | 一种样本不均衡条件下的轴承故障检测方法及装置 |
CN113905016A (zh) * | 2021-09-13 | 2022-01-07 | 西安胡门网络技术有限公司 | 一种dga域名检测方法、检测装置及计算机存储介质 |
CN114095216B (zh) * | 2021-11-03 | 2023-04-07 | 东南大学 | 一种有限训练样本下基于对比学习的恶意域名检测方法 |
CN114826681A (zh) * | 2022-03-30 | 2022-07-29 | 西安电子科技大学 | 一种dga域名检测方法、***、介质、设备及终端 |
CN115409797A (zh) * | 2022-08-29 | 2022-11-29 | 上海大学 | 一种基于改进深度学习算法的pcb缺陷图像检测方法 |
-
2023
- 2023-02-09 CN CN202310090122.3A patent/CN116318845B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
CN114844682A (zh) * | 2022-04-11 | 2022-08-02 | 广东工业大学 | 一种dga域名检测方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN116318845A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Luan et al. | Research on text classification based on CNN and LSTM | |
CN111061843B (zh) | 一种知识图谱引导的假新闻检测方法 | |
CN111552855B (zh) | 一种基于深度学习的网络威胁情报自动抽取方法 | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN111291556B (zh) | 基于实体义项的字和词特征融合的中文实体关系抽取方法 | |
CN107180077A (zh) | 一种基于深度学习的社交网络谣言检测方法 | |
CN112749274B (zh) | 基于注意力机制和干扰词删除的中文文本分类方法 | |
Wang et al. | Evaluating CNN and LSTM for web attack detection | |
CN113742733B (zh) | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 | |
CN112232087A (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
CN113255366B (zh) | 一种基于异构图神经网络的方面级文本情感分析方法 | |
CN115329088B (zh) | 图神经网络事件检测模型的鲁棒性分析方法 | |
CN116318845B (zh) | 一种正负样本比例不平衡条件下的dga域名检测方法 | |
CN111985207A (zh) | 一种访问控制策略的获取方法、装置及电子设备 | |
CN112199503A (zh) | 一种基于特征增强的非平衡Bi-LSTM的中文文本分类方法 | |
CN113179276B (zh) | 基于显式和隐含特征学习的智能入侵检测方法和*** | |
CN111581365B (zh) | 一种谓词抽取方法 | |
CN117113349A (zh) | 一种基于恶意行为增强预训练模型的恶意软件检测方法 | |
CN111859979A (zh) | 讽刺文本协同识别方法、装置、设备及计算机可读介质 | |
Arbaatun et al. | Hate speech detection on Twitter through Natural Language Processing using LSTM model | |
CN112989052B (zh) | 一种基于组合-卷积神经网络的中文新闻长文本分类方法 | |
CN115204140A (zh) | 一种基于注意力机制与知识图谱的法律条文预测方法 | |
CN111767388B (zh) | 一种候选池生成方法 | |
Ding et al. | Detecting Domain Generation Algorithms with Bi-LSTM. |
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 |