CN110225030B - 基于rcnn-spp网络的恶意域名检测方法及系统 - Google Patents
基于rcnn-spp网络的恶意域名检测方法及系统 Download PDFInfo
- Publication number
- CN110225030B CN110225030B CN201910498923.7A CN201910498923A CN110225030B CN 110225030 B CN110225030 B CN 110225030B CN 201910498923 A CN201910498923 A CN 201910498923A CN 110225030 B CN110225030 B CN 110225030B
- Authority
- CN
- China
- Prior art keywords
- domain name
- character
- vector
- sample
- sequence
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 29
- 239000013598 vector Substances 0.000 claims abstract description 106
- 238000012549 training Methods 0.000 claims abstract description 81
- 238000011176 pooling Methods 0.000 claims abstract description 70
- 238000003062 neural network model Methods 0.000 claims abstract description 23
- 238000012512 characterization method Methods 0.000 claims abstract description 8
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 7
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 16
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 6
- 230000002457 bidirectional effect Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000011478 gradient descent method Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 210000002569 neuron Anatomy 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000000306 recurrent effect Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims 1
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000013136 deep learning model Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种基于SMOTE和RCNN‑SPP网络的恶意域名检测方法,包括以下步骤:对训练集中的域名进行数据预处理,得到域名字符序列训练集D;利用改进的SMOTE算法,对域名字符序列训练集D进行均衡化数据合成,得到增强均衡化的训练集D’;构造并初始化包含基于空间金字塔SPP池化的循环卷积RCNN的神经网络模型;将训练集D’中的域名转换为固定长度的表征向量;将步骤D得到的域名的表征向量输入到RCNN‑SPP神经网络模型,得到域名的特征向量;将域名的上下文向量输入到神经网络模型的全连接层,得到训练好的神经网络模型;将待判定的域名转换为字符序列,输入训练好的神经网络模型,输出判定结果。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种基于RCNN-SPP网络的恶意域名检测方法及系统。
背景技术
DGA(域名生成算法)是一种利用随机字符来生成C&C域名以逃避域名黑名单检测的技术手段。为了阻止产生DGA的C2(Command&Control)流量,安全组织必须首先通过逆向工程来发现DGA算法,然后生成给定种子的域列表,才能对恶意域名进行及时处置。DGA这项技术会大大增加打击和关闭中心结构僵尸网络(如Conficker-A/B/C僵尸、Krabenbotnet等)的难度:僵尸网络为了躲避域名黑名单,通过使用该项技术动态生产域名。面对这种情况,检测人员需要检测识别出僵尸网络的DGA家族并掌握对应的域名生成算法和输入,以便对生成的域名及时进行处置;除此之外,在互联网上潜伏着许多恶意软件,一旦计算机受攻击遭到感染,恶意软件通常与命令和控制中心(Command&Control,C2)之间建立通信连接,从而使控制者通过C2服务器远程控制目标主机;然后,攻击者可以通过C2服务器联系受害者计算机上安装的恶意软件程序,通过DGA算法自动生成海量域名,然后从中选择一个或多个有效域名解析出IP地址,实现与C2服务器的通信,并接收恶意软件要执行的更新、操作和长传收集到的情报,或追踪其他的恶意行为。恶意行为者只需要注册少量的这些域就可以获得成功,防御者需要抢先在攻击者之前对这些域进行消除,注册或者列入黑名单。传统恶意软件分析师必须对用于生成域名的算法进行反向工程,这需要很大的人力和物力,以防止恶意软件与C&C服务器进一步通信。
在恶意域名检测的工作中,为了提升检测效率和检测准确率,已经出现了很多方法。从最初的黑名单过滤、DNS请求分析到传统机器学习以及神经网络构造分类器检测,基本上根据检测过程可以分为回归性检测和实时检测。
在全球网络信息化程度高速发展的大背景下,现有方法在面对数量巨大、来源多样的DGA域名下大多存在效率低下,检测准确率不理想和被动防御等问题。同时面对每天生成和联系的方式,这些域名的检测难度很大。
发明内容
有鉴于此,本发明的目的在于提供一种基于RCNN-SPP网络的恶意域名检测方法,提高恶意域名检测的工作的检测效率和检测准确率。
为实现上述目的,本发明采用如下技术方案:
一种基于RCNN-SPP网络的恶意域名检测方法,包括以下步骤:
步骤A:采集正常域名和恶意域名样本,对域名样本进行预处理,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
步骤B:利用Borderline-SMOTE过采样算法,对带类别标签的域名字符序列训练集D中的少数类样本,通过插值合成新的少数类样本,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE;
步骤C:使用均衡化的带类别标签的域名字符序列训练集DE训练基于RCNN-SPP网络的深度神经网络模型;
步骤D:将待判定的域名转换为字符序列,输入训练好的深度神经网络模型RCNN-SPP,输出判定结果。
进一步的,所述步骤A具体包括以下步骤:
步骤A1:采集正常域名和恶意域名样本,构造初始域名样本集D’;
步骤A2:创建域名字符字典,遍历初始域名样本集D’中的每个域名样本,将每个域名转换为字符向量,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
其中类别标签标注为正常域名或者DGAj,DGAj表示所收集的恶意域名生成算法集DGA中的第j个恶意域名生成算法。
进一步的,所述步骤A2中,具体包括以下步骤:
步骤A21:创建域名字符字典,并初始化为空,字典中每个元素为<c,f>形式,其中c为字符,f为字符的出现频次;
步骤A22:遍历训练集中的所有域名,对域名所包含的每个字符c,若字典中存在字符c,则更新域名字符字典中字符c的频次;若不存在,则添加<c,1>到域名字符字典中;
步骤A23:遍历域名字符字典,首先根据字符出现频次给每个不同的字符一个唯一的编号;若出现频次相同,则根据遍历到的顺序赋予不同的编号;遍历域名字符字典,将字符按照频次进行顺序排序,并根据其顺序分配编号,得到域名字符序列训练集D;其中,字典将位置字符统一映射为0。
进一步的,所述步骤B具体包括以下步骤:
步骤B1:遍历带类别标签的域名字符序列训练集D,统计每个恶意域名生成算法DGAj的训练样本集Pj;
其中M为收集到的恶意域名生成算法集DGA中的恶意域名生成算法个数,DGAj表示恶意域名生成算法集合DGA中的第j个恶意域名生成算法,Pj为带类别标签的域名字符序列训练集D中第j个恶意域名生成算法DGAj所对应的训练样本集,Nj为训练样本集Pj中的样本数;
步骤B2:若恶意域名生成算法DGAj的样本数Nj小于指定阈值,则将DGAj所对应的训练样本视为少数类,利用Borderline-SMOTE过采样算法,对Pj进行样本均衡化处理,通过插值合成新的样本,将合成的样本添加到Pj中;
步骤B3:依次处理所有判定为少数类的域名样本集,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE。
进一步的,所述步骤B2具体包括以下步骤:
步骤B22:若即中的域名样本都属于多数类,则认为pj (i)是噪声并跳过;若则认为pj (i)远离样本分布的边界并跳过该样本;若即pj (i)的多数类邻居的数量大于其少数类邻居的数量,则认为pj (i)容易被错误分类,对pj (i)执行步骤B23;
步骤B23:通过pj (i)和pj (i)的Kj (i)个最近邻域名样本选择Sj (i)个最近的邻居,通过插值合成Sj (i)个新样本,并将新样本的类别标签标记为DGAj;
其中样本合成的公式如下:
进一步的,所述步骤C具体包括以下步骤:
步骤C1:构造并初始化基于RCNN-SPP网络的深度学习网络模型RCNN-SPP;
步骤C2:将训练集DE中的域名转换为固定长度的表征向量;
步骤C3:将域名的表征向量输入到RCNN-SPP网络中,得到域名的类标签向量;
步骤C4:将域名的类标签向量输入到RCNN-SPP网络的全连接层,计算每个域名属于所标注类别的概率,根据目标损失函数loss,利用反向传播方法计算所述深度网络中各参数的梯度,并利用随机梯度下降方法更新参数;
步骤C5:当神经网络模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止神经网络模型的训练。
进一步的,步骤C2中具体方法如下:
对训练集D’中的域名m,使用字符嵌入工具将域名中的字符转化为序列向量形式,计算公式如下:
v=W*v′
其中,域名中每个字符根据步骤B中创建的字符字典初始化为一个d’维的实数,v′是每个域名根据字符字典获得的实数向量;W为随机初始化的字符嵌入矩阵,W∈Rd*d’,用于将d’维实数向量映射为d维序列向量;v∈Rd,表示映射后的序列向量,d为字符序列的固定长度,等于网络中双向循环神经网络层的神经元单元个数。
进一步的,所述步骤C3具体步骤如下:
步骤C31:将域名m看做字符序列,将序列向量按照字符次序作为主体输入到循环卷积神经网络中,依次输入x1,x2...,xL,RCNN先为每个序列向量Vi获取左右上下文;公式如下:
Cl(Vi)=f(W(l)Cl(Vi-1)+W(sl)e(Vi-1))
Cr(Vi)=f(W(r)Cr(Vi+1)+W(sr)e(Vi+1))
其中,Cl(Vi)和Cr(Vi)分别表示字符Vi的左上下文和右上下文,e(Vi-1)和e(Vi+1)分别表示字符Vi的前一个字符及后一个字符的字符向量,从公式中可以看出,每个字符的左上下文由前一个字符及前一个字符的左上下文得到,右上下文则由后一个字符及后一个字符的右上下文得到,依次递归;W(l),W(sl),W(r),W(sr)为权重矩阵,f为长短期记忆网络中对隐层状态的非线性激活函数,通过双向循环神经网络计算得到上下文向量;
步骤C32:得到每个字符的左右上下文向量后,将该字符的字符向量及其左右上下文向量进行向量的级联,共同视为一个整体,作为该字符的新的字符向量,计算公式如下:
Xi=[Cl(Vi);e(Vi);Cr(Vi)]
步骤C33:获得每个字符的整体向量后,将字符对应的整体向量映射到对应的域名矩阵A={X1,X2,...,Xs}。其中,Xs代表组成域名的第s个字符在域名矩阵中对应的向量;将域名矩阵A输入到卷积神经网络,用大小为h*d的卷积核对域名所对应的向量矩阵进行局部卷积计算,计算公式如下:
oi=F(w·A[i:i+h-1])
ci=f(oi+b)
c=[c1,c2,...,cs-h+1]
其中,F代表大小为h*d的滤波器,A是输入的域名矩阵,A∈Rs×d,s为域名中字符的个数,d为字符向量的维数;A[i:i+h-1]表示字符向量矩阵A位于滑动窗口中的部分,即字符向量矩阵的第i行到第i+h-1行;w是卷积核的权重矩阵,w∈Rh×d;oi是卷积操作的输出,b是偏置项,b∈R;f为进行非线性操作的RELU激活函数,ci为卷积核提取的字符向量矩阵的第i行到i+h-1行的局部上下文类别特征,其中,i=1,2,...,s-h+1,ci构成域名的特征映射图c,其中c的尺寸大小是a×d,a=s-h+1。
步骤C34:接入金字塔池化模块,其包括3个池化块,每个池化块由不同大小的平均池化层组成。其中,第1个池化块中的平均池化层的池化尺寸为W1×d,第2个池化块中的平均池化层的池化尺寸为W2×d,第3个池化块中的平均池化层的池化尺寸为W3×d;对于金字塔池化模块,每个池化块的输入端接收步骤C34中的所有特征图c;第1个池化块的输出端输出d维特征,记为A1,A1的宽度为|p1|、高度为1;第2个池化块的输出端输出d维特征,记为A2,A2的宽度为|p2|、高度为1;第3个池化块的输出端输出d维特征,记为A3,A3的宽度为|p3|、高度为1;计算公式如下:
其中,Wi和ti是第i个池化块对应的窗口大小和步长,a是域名的特征映射图c的尺寸大小,|pi|是第i个池化块输出结果的维度,Ai是池化层进行池化后得到的对应输出集合,其中取值为[A1,A2,A3],vm是对步骤C34中的特征图c中的Wi行特征向量求平均的中间特征向量。
最后,将3个池化块获得的向量进行向量的级联,共同视为一个整体,作为域名m的特征向量X,计算公式如下:
X={A1;A2;A3}。
进一步的,所述步骤C4具体包括如下步骤:
步骤C41:将得到的域名的类标签向量输入到DropOut层,并将DropOut层的输出输入到全连接层,使用softmax归一化,计算域名序列所属类别的概率,计算公式如下:
y=fdense(Wdense*p+bdense)
其中,Wdense为全连接层权重矩阵,bdense为偏置项,fdense为激活函数,本专利中使用sigmod函数,y为域名序列向量p经过全连接层非线性转换的特征向量,向量维度为L,yi为y的第i维,p(yi)为预测为类别i的概率,0<p(yi)<1,L为类别的总数;
步骤C42:用交叉熵作为损失函数计算损失值,通过均方根随机梯度下降优化方法RMsprop计算所有的梯度的平方的平均值,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型;
其中最小化损失函数,Loss的计算公式如下:
进一步的,包括以下:
预处理模块,用于对正常域名和恶意域名样本进行预处理,赋予类别标签,得到带类别标签的域名字符训练集;
数据均衡化模块,用于利用Borderline-SMOTE过采样算法,通过插值合成新的少数类样本,得到均衡化的带类别标签的域名字符训练集;
深度网络训练模块,用于使用带类别标签的域名字符训练集训练基于RCNN-SPP的深度网络;
判定模块,用于将域名输入到深度网络进行类别判定。
本发明与现有技术相比具有以下有益效果:
本发明基于RCNN-SPP网络的恶意域名检测方法,提高恶意域名检测的工作的检测效率和检测准确率。
附图说明
图1为本发明实施例的方法流程图。
图2是本发明实施例的步骤B的实现流程图。
图3是本发明实施例的步骤B2的实现流程图。
图4是本发明实施例的步骤C的实现流程图。
图5是本发明实施例的步骤C4的实现流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本发明提供一种基于RCNN-SPP网络的恶意域名检测方法,包括以下步骤:
步骤A:采集正常域名和恶意域名样本,对域名样本进行预处理,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
步骤B:利用Borderline-SMOTE过采样算法,对带类别标签的域名字符序列训练集D中的少数类样本,通过插值合成新的少数类样本,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE;
步骤C:使用均衡化的带类别标签的域名字符序列训练集DE训练基于RCNN-SPP网络的深度神经网络模型;
步骤D:将待判定的域名转换为字符序列,输入训练好的深度神经网络模型RCNN-SPP,输出判定结果。
在本实施例中,所述步骤A具体包括以下步骤:
步骤A1:采集正常域名和恶意域名样本,构造初始域名样本集D’;
步骤A2:创建域名字符字典,遍历初始域名样本集D’中的每个域名样本,将每个域名转换为字符向量,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
其中类别标签标注为正常域名或者DGAj,DGAj表示所收集的恶意域名生成算法集DGA中的第j个恶意域名生成算法。所述步骤A2中,具体包括以下步骤:
步骤A21:创建域名字符字典,并初始化为空,字典中每个元素为<c,f>形式,其中c为字符,f为字符的出现频次;
步骤A22:遍历训练集中的所有域名,对域名所包含的每个字符c,若字典中存在字符c,则更新域名字符字典中字符c的频次;若不存在,则添加<c,1>到域名字符字典中;
步骤A23:遍历域名字符字典,首先根据字符出现频次给每个不同的字符一个唯一的编号;若出现频次相同,则根据遍历到的顺序赋予不同的编号;遍历域名字符字典,将字符按照频次进行顺序排序,并根据其顺序分配编号,得到域名字符序列训练集D;其中,字典将位置字符统一映射为0。
参考图2,在本实施例中,所述步骤B具体包括以下步骤:
步骤B1:遍历带类别标签的域名字符序列训练集D,统计每个恶意域名生成算法DGAj的训练样本集Pj;
其中M为收集到的恶意域名生成算法集DGA中的恶意域名生成算法个数,DGAj表示恶意域名生成算法集合DGA中的第j个恶意域名生成算法,Pj为带类别标签的域名字符序列训练集D中第j个恶意域名生成算法DGAj所对应的训练样本集,Nj为训练样本集Pj中的样本数;
步骤B2:若恶意域名生成算法DGAj的样本数Nj小于指定阈值,则将DGAj所对应的训练样本视为少数类,利用Borderline-SMOTE过采样算法,对Pj进行样本均衡化处理,通过插值合成新的样本,将合成的样本添加到Pj中;
步骤B3:依次处理所有判定为少数类的域名样本集,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE。
参考图3,在本实施例中,所述步骤B2具体包括以下步骤:
步骤B22:若即中的域名样本都属于多数类,则认为pj (i)是噪声并跳过;若则认为pj (i)远离样本分布的边界并跳过该样本;若即pj (i)的多数类邻居的数量大于其少数类邻居的数量,则认为pj (i)容易被错误分类,对pj (i)执行步骤B23;
步骤B23:通过pj (i)和pj (i)的Kj (i)个最近邻域名样本选择Sj (i)个最近的邻居,通过插值合成Sj (i)个新样本,并将新样本的类别标签标记为DGAj;
其中样本合成的公式如下:
参考图4,在本实施例中,所述步骤C具体包括以下步骤:
步骤C1:构造并初始化基于RCNN-SPP网络的深度学习网络模型RCNN-SPP;
步骤C2:将训练集DE中的域名转换为固定长度的表征向量;
步骤C3:将域名的表征向量输入到RCNN-SPP网络中,得到域名的类标签向量;
步骤C4:将域名的类标签向量输入到RCNN-SPP网络的全连接层,计算每个域名属于所标注类别的概率,根据目标损失函数loss,利用反向传播方法计算所述深度网络中各参数的梯度,并利用随机梯度下降方法更新参数;
步骤C5:当神经网络模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止神经网络模型的训练。
在本实施例中,步骤C2中具体方法如下:
对训练集D’中的域名m,使用字符嵌入工具将域名中的字符转化为序列向量形式,计算公式如下:
v=W*v′
其中,域名中每个字符根据步骤B中创建的字符字典初始化为一个d’维的实数,v′是每个域名根据字符字典获得的实数向量;W为随机初始化的字符嵌入矩阵,W∈Rd*d’,用于将d’维实数向量映射为d维序列向量;v∈Rd,表示映射后的序列向量,d为字符序列的固定长度,等于网络中双向循环神经网络层的神经元单元个数。
在本实施例中,所述步骤C3具体步骤如下:
步骤C31:将域名m看做字符序列,将序列向量按照字符次序作为主体输入到循环卷积神经网络中,依次输入x1,x2...,xL,RCNN先为每个序列向量Vi获取左右上下文;公式如下:
Cl(Vi)=f(W(l)Cl(Vi-1)+W(sl)e(Vi-1))
Cr(Vi)=f(W(r)Cr(Vi+1)+W(sr)e(Vi+1))
其中,Cl(Vi)和Cr(Vi)分别表示字符Vi的左上下文和右上下文,e(Vi-1)和e(Vi+1)分别表示字符Vi的前一个字符及后一个字符的字符向量,从公式中可以看出,每个字符的左上下文由前一个字符及前一个字符的左上下文得到,右上下文则由后一个字符及后一个字符的右上下文得到,依次递归;W(l),W(sl),W(r),W(sr)为权重矩阵,f为长短期记忆网络中对隐层状态的非线性激活函数,通过双向循环神经网络计算得到上下文向量;
步骤C32:得到每个字符的左右上下文向量后,将该字符的字符向量及其左右上下文向量进行向量的级联,共同视为一个整体,作为该字符的新的字符向量,计算公式如下:
Xi=[Cl(Vi);e(Vi);Cr(Vi)]
步骤C33:获得每个字符的整体向量后,将字符对应的整体向量映射到对应的域名矩阵A={X1,X2,…,Xs}。其中,Xs代表组成域名的第s个字符在域名矩阵中对应的向量;将域名矩阵A输入到卷积神经网络,用大小为h*d的卷积核对域名所对应的向量矩阵进行局部卷积计算,计算公式如下:
oi=F(w·A[i:i+h-1])
ci=f(oi+b)
c=[c1,c2,...,cs-h+1]
其中,F代表大小为h*d的滤波器,A是输入的域名矩阵,A∈Rs×d,s为域名中字符的个数,d为字符向量的维数;A[i:i+h-1]表示字符向量矩阵A位于滑动窗口中的部分,即字符向量矩阵的第i行到第i+h-1行;w是卷积核的权重矩阵,w∈Rh×d;oi是卷积操作的输出,b是偏置项,b∈R;f为进行非线性操作的RELU激活函数,ci为卷积核提取的字符向量矩阵的第i行到i+h-1行的局部上下文类别特征,其中,i=1,2,...,s-h+1,ci构成域名的特征映射图c,其中c的尺寸大小是a×d,a=s-h+1。
步骤C34:接入金字塔池化模块,其包括3个池化块,每个池化块由不同大小的平均池化层组成。其中,第1个池化块中的平均池化层的池化尺寸为W1×d,第2个池化块中的平均池化层的池化尺寸为W2×d,第3个池化块中的平均池化层的池化尺寸为W3×d;对于金字塔池化模块,每个池化块的输入端接收步骤C34中的所有特征图c;第1个池化块的输出端输出d维特征,记为A1,A1的宽度为|p1|、高度为1;第2个池化块的输出端输出d维特征,记为A2,A2的宽度为|p2|、高度为1;第3个池化块的输出端输出d维特征,记为A3,A3的宽度为|p3|、高度为1;计算公式如下:
其中,Wi和ti是第i个池化块对应的窗口大小和步长,a是域名的特征映射图c的尺寸大小,|pi|是第i个池化块输出结果的维度,Ai是池化层进行池化后得到的对应输出集合,其中取值为[A1,A2,A3],vm是对步骤C34中的特征图c中的Wi行特征向量求平均的中间特征向量。
最后,将3个池化块获得的向量进行向量的级联,共同视为一个整体,作为域名m的特征向量X,计算公式如下:
X={A1;A2;A3}。
参考图5,在本实施例中,,所述步骤C4具体包括如下步骤:
步骤C41:将得到的域名的类标签向量输入到DropOut层,并将DropOut层的输出输入到全连接层,使用softmax归一化,计算域名序列所属类别的概率,计算公式如下:
y=fdense(Wdense*p+bdense)
其中,Wdense为全连接层权重矩阵,bdense为偏置项,fdense为激活函数,本专利中使用sigmod函数,y为域名序列向量p经过全连接层非线性转换的特征向量,向量维度为L,yi为y的第i维,p(yi)为预测为类别i的概率,0<p(yi)<1,L为类别的总数;
步骤C42:用交叉熵作为损失函数计算损失值,通过均方根随机梯度下降优化方法RMsprop计算所有的梯度的平方的平均值,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型;
其中最小化损失函数,Loss的计算公式如下:
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (8)
1.一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于,包括以下步骤:
步骤A:采集正常域名和恶意域名样本,对域名样本进行预处理,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
步骤B:利用Borderline-SMOTE过采样算法,对带类别标签的域名字符序列训练集D中的少数类样本,通过插值合成新的少数类样本,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE;
步骤C:使用均衡化的带类别标签的域名字符序列训练集DE训练基于RCNN-SPP网络的深度神经网络模型;
所述步骤C具体包括以下步骤:
步骤C1:构造并初始化基于RCNN-SPP网络的深度神经网络模型RCNN-SPP;
步骤C2:将训练集DE中的域名转换为固定长度的表征向量;
步骤C3:将域名的表征向量输入到RCNN-SPP网络中,得到域名的类标签向量;
所述步骤C3具体步骤如下:
步骤C31:将域名m看做字符序列,将序列向量按照字符次序作为主体输入到循环卷积神经网络中,依次输入x1,x2…,xL,RCNN先为每个序列向量Vi获取左右上下文;公式如下:
Cl(vi)=f(W(l)Cl(vi-1)+W(sl)e(vi-1))
Cr(vi)=f(W(r)Cr(vi+1)+W(sr)e(vi+1))
其中,Cl(Vi)和Cr(Vi)分别表示字符vi的左上下文和右上下文,e(Vi-1)和e(Vi+1)分别表示字符Vi的前一个字符及后一个字符的字符向量,从公式中可以看出,每个字符的左上下文由前一个字符及前一个字符的左上下文得到,右上下文则由后一个字符及后一个字符的右上下文得到,依次递归;W(l),W(sl),W(r),W(sr)为权重矩阵,f为长短期记忆网络中对隐层状态的非线性激活函数,通过双向循环神经网络计算得到上下文向量;
步骤C32:得到每个字符的左右上下文向量后,将该字符的字符向量及其左右上下文向量进行向量的级联,共同视为一个整体,作为该字符的新的字符向量,计算公式如下:
Xi=[Cl(Vi);e(Vi);Cr(Vi)]
步骤C33:获得每个字符的整体向量后,将字符对应的整体向量映射到对应的域名矩阵A={X1,X2,…,Xs};其中,Xs代表组成域名的第s个字符在域名矩阵中对应的向量;将域名矩阵A输入到卷积神经网络,用大小为h*d的卷积核对域名所对应的向量矩阵进行局部卷积计算,计算公式如下:
oi=F(w·A[i:i+h-1])
ci=f(oi+b)
c=[c1,c2,…,cs-h+1]
其中,F代表大小为h*d的滤波器,A是输入的域名矩阵,A∈Rs×d,s为域名中字符的个数,d为字符向量的维数;A[i:i+h-1]表示字符向量矩阵A位于滑动窗口中的部分,即字符向量矩阵的第i行到第i+h-1行;w是卷积核的权重矩阵,w∈Rh×d;oi是卷积操作的输出,b是偏置项,b∈R;f为进行非线性操作的RELU激活函数,ci为卷积核提取的字符向量矩阵的第i行到i+h-1行的局部上下文类别特征,其中,i=1,2,...,s-h+1,ci构成域名的特征映射图c,其中c的尺寸大小是a×d,a=s-h+1;
步骤C34:接入金字塔池化模块,其包括3个池化块,每个池化块由不同大小的平均池化层组成;其中,第1个池化块中的平均池化层的池化尺寸为W1×d,第2个池化块中的平均池化层的池化尺寸为W2×d,第3个池化块中的平均池化层的池化尺寸为W3×d;对于金字塔池化模块,每个池化块的输入端接收步骤C34中的所有特征图c;第1个池化块的输出端输出d维特征,记为A1,A1的宽度为|p1|、高度为1;第2个池化块的输出端输出d维特征,记为A2,A2的宽度为|p2|、高度为1;第3个池化块的输出端输出d维特征,记为A3,A3的宽度为|p3|、高度为1;计算公式如下:
其中,Wi和ti是第i个池化块对应的窗口大小和步长,a是域名的特征映射图c的尺寸大小,|pi|是第i个池化块输出结果的维度,Ai是池化层进行池化后得到的对应输出集合,其中取值为[A1,A2,A3],vm是对步骤C34中的特征图c中的Wi行特征向量求平均的中间特征向量;
最后,将3个池化块获得的向量进行向量的级联,共同视为一个整体,作为域名m的特征向量X,计算公式如下:
X={A1;A2;A3};
步骤C4:将域名的类标签向量输入到RCNN-SPP网络的全连接层,计算每个域名属于所标注类别的概率,根据目标损失函数loss,利用反向传播方法计算所述深度神经网络模型中各参数的梯度,并利用随机梯度下降方法更新参数;
步骤C5:当深度神经网络模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度神经网络模型的训练;
步骤D:将待判定的域名转换为字符序列,输入训练好的深度神经网络模型RCNN-SPP,输出判定结果。
2.根据权利要求1所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于:所述步骤A具体包括以下步骤:
步骤A1:采集正常域名和恶意域名样本,构造初始域名样本集D′;
步骤A2:创建域名字符字典,遍历初始域名样本集D′中的每个域名样本,将每个域名转换为字符向量,并赋予类别标签,得到带类别标签的域名字符序列训练集D;
其中类别标签标注为正常域名或者DGAj,DGAj表示所收集的恶意域名生成算法集DGA中的第j个恶意域名生成算法。
3.根据权利要求2所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于:所述步骤A2中,具体包括以下步骤:
步骤A21:创建域名字符字典,并初始化为空,字典中每个元素为<c,f>形式,其中c为字符,f为字符的出现频次;
步骤A22:遍历训练集中的所有域名,对域名所包含的每个字符c,若字典中存在字符c,则更新域名字符字典中字符c的频次;若不存在,则添加<c,1>到域名字符字典中;
步骤A23:遍历域名字符字典,首先根据字符出现频次给每个不同的字符一个唯一的编号;若出现频次相同,则根据遍历到的顺序赋予不同的编号;遍历域名字符字典,将字符按照频次进行顺序排序,并根据其顺序分配编号,得到域名字符序列训练集D;其中,字典将域名字符统一映射为0。
4.根据权利要求1所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于:所述步骤B具体包括以下步骤:
步骤B1:遍历带类别标签的域名字符序列训练集D,统计每个恶意域名生成算法DGAj的训练样本集Pj;
其中M为收集到的恶意域名生成算法集DGA中的恶意域名生成算法个数,DGAj表示恶意域名生成算法集合DGA中的第j个恶意域名生成算法,Pj为带类别标签的域名字符序列训练集D中第j个恶意域名生成算法DGAj所对应的训练样本集,Nj为训练样本集Pj中的样本数;pj (i),i=1,2,...,Nj为训练样本集Pj中的第i个域名样本;
步骤B2:若恶意域名生成算法DGAj的样本数Nj小于指定阈值,则将DGAj所对应的训练样本视为少数类,利用Borderline-SMOTE过采样算法,对Pj进行样本均衡化处理,通过插值合成新的样本,将合成的样本添加到Pj中;
步骤B3:依次处理所有判定为少数类的域名样本集,平衡带类别标签的域名字符序列训练集D中的类样本分布,得到均衡化的带类别标签的域名字符序列训练集DE。
5.根据权利要求4所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于:所述步骤B2具体包括以下步骤:
步骤B22:若即中的域名样本都属于多数类,则认为pj (i)是噪声并跳过;若则认为pj (i)远离样本分布的边界并跳过该样本;若即pj (i)的多数类邻居的数量大于其少数类邻居的数量,则认为pj (i)容易被错误分类,对pj (i)执行步骤B23;
步骤B23:通过pj (i)和pj (i)的Kj (i)个最近邻域名样本选择Sj (i)个最近的邻居,通过插值合成Sj (i)个新样本,并将新样本的类别标签标记为DGAj;
其中样本合成的公式如下:
6.根据权利要求1所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于,步骤C2中具体方法如下:
对训练集DE中的域名m,使用字符嵌入工具将域名中的字符转化为序列向量形式,计算公式如下:
v=W*v′
其中,域名中每个字符根据步骤B中创建的字符字典初始化为一个d′维的实数,v′是每个域名根据字符字典获得的实数向量;W为随机初始化的字符嵌入矩阵,W∈Rd*d’,用于将d′维实数向量映射为d维序列向量;v∈Rd,表示映射后的序列向量,d为字符序列的固定长度,等于网络中双向循环神经网络层的神经元单元个数。
7.根据权利要求1所述的一种基于RCNN-SPP网络的恶意域名检测方法,其特征在于:所述步骤C4具体包括如下步骤:
步骤C41:将得到的域名的类标签向量输入到DropOut层,并将DropOut层的输出输入到全连接层,使用softmax归一化,计算域名序列所属类别的概率,计算公式如下:
y=fdense(Wdense*p+bdense)
其中,Wdense为全连接层权重矩阵,bdense为偏置项,fdense为激活函数,本专利中使用sigmod函数,y为域名序列向量p经过全连接层非线性转换的特征向量,向量维度为L,yi为y的第i维,p(yi)为预测为类别i的概率,0<p(yi)<1,L为类别的总数;
步骤C42:用交叉熵作为损失函数计算损失值,通过均方根随机梯度下降优化方法RMsprop计算所有的梯度的平方的平均值,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型;
其中最小化损失函数,Loss的计算公式如下:
8.根据权利要求1所述的 一种基于RCNN-SPP网络的恶意域名检测方法的系统,其特征在于,包括以下:
预处理模块,用于对正常域名和恶意域名样本进行预处理,赋予类别标签,得到带类别标签的域名字符训练集;
数据均衡化模块,用于利用Borderline-SMOTE过采样算法,通过插值合成新的少数类样本,得到均衡化的带类别标签的域名字符训练集;
深度网络训练模块,用于使用带类别标签的域名字符训练集训练基于RCNN-SPP的深度神经网络模型;
判定模块,用于将域名输入到深度神经网络模型进行类别判定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498923.7A CN110225030B (zh) | 2019-06-10 | 2019-06-10 | 基于rcnn-spp网络的恶意域名检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498923.7A CN110225030B (zh) | 2019-06-10 | 2019-06-10 | 基于rcnn-spp网络的恶意域名检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110225030A CN110225030A (zh) | 2019-09-10 |
CN110225030B true CN110225030B (zh) | 2021-09-28 |
Family
ID=67816097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910498923.7A Expired - Fee Related CN110225030B (zh) | 2019-06-10 | 2019-06-10 | 基于rcnn-spp网络的恶意域名检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110225030B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866550B (zh) * | 2019-11-01 | 2022-06-14 | 云南大学 | 卷积神经网络、金字塔条状池化方法及恶意软件分类方法 |
CN110912888B (zh) * | 2019-11-22 | 2021-08-10 | 上海交通大学 | 一种基于深度学习的恶意http流量检测系统和方法 |
CN111371806B (zh) * | 2020-03-18 | 2021-05-25 | 北京邮电大学 | 一种Web攻击检测方法及装置 |
CN111556018B (zh) * | 2020-03-25 | 2021-07-27 | 中国科学院信息工程研究所 | 一种基于cnn的网络入侵检测方法及电子装置 |
CN112019651B (zh) * | 2020-08-26 | 2021-11-23 | 重庆理工大学 | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 |
CN112261169B (zh) * | 2020-10-16 | 2022-02-22 | 重庆理工大学 | 利用胶囊网络和k-means的DGA域名Botnet识别判断方法 |
CN113810372B (zh) * | 2021-08-06 | 2022-10-04 | 杭州电子科技大学 | 一种低吞吐量dns隐蔽信道检测方法及装置 |
CN113794689A (zh) * | 2021-08-20 | 2021-12-14 | 浙江网安信创电子技术有限公司 | 一种基于tcn的恶意域名检测方法 |
CN113709152B (zh) * | 2021-08-26 | 2022-11-25 | 东南大学 | 一种具备高抗检测能力的对抗域名生成模型 |
CN116112225B (zh) * | 2022-12-28 | 2024-08-27 | 中山大学 | 一种基于多通道图卷积的恶意域名检测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108156174A (zh) * | 2018-01-15 | 2018-06-12 | 深圳市联软科技股份有限公司 | 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质 |
CN108600200A (zh) * | 2018-04-08 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 域名检测方法、装置、计算机设备及存储介质 |
CN108650260A (zh) * | 2018-05-09 | 2018-10-12 | 北京邮电大学 | 一种恶意网站的识别方法和装置 |
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10044751B2 (en) * | 2015-12-28 | 2018-08-07 | Arbor Networks, Inc. | Using recurrent neural networks to defeat DNS denial of service attacks |
-
2019
- 2019-06-10 CN CN201910498923.7A patent/CN110225030B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108156174A (zh) * | 2018-01-15 | 2018-06-12 | 深圳市联软科技股份有限公司 | 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质 |
CN108600200A (zh) * | 2018-04-08 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 域名检测方法、装置、计算机设备及存储介质 |
CN108650260A (zh) * | 2018-05-09 | 2018-10-12 | 北京邮电大学 | 一种恶意网站的识别方法和装置 |
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
Non-Patent Citations (2)
Title |
---|
"Recurrent Convolutional Neural Networks for Text Classification";Lai S等;《Proceeding of the Twenty-Ninth AAAI Conference on Artificial Intelligence》;20150131;第2267-2273页 * |
"面向航天情报领域的文本分类算法研究与实现";张亚超;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20190215(第02期);C031-700 * |
Also Published As
Publication number | Publication date |
---|---|
CN110225030A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110225030B (zh) | 基于rcnn-spp网络的恶意域名检测方法及系统 | |
CN109617909B (zh) | 一种基于smote和bi-lstm网络的恶意域名检测方法 | |
CN110730140B (zh) | 基于时空特性相结合的深度学习流量分类方法 | |
Singla et al. | Preparing network intrusion detection deep learning models with minimal data using adversarial domain adaptation | |
CN112165464B (zh) | 一种基于深度学习的工控混合入侵检测方法 | |
CN112104677A (zh) | 一种基于知识图谱的受控主机检测方法和装置 | |
Alabadi et al. | Anomaly detection for cyber-security based on convolution neural network: A survey | |
Peraković et al. | Artificial neuron network implementation in detection and classification of DDoS traffic | |
CN113806746A (zh) | 基于改进cnn网络的恶意代码检测方法 | |
CN113901448A (zh) | 基于卷积神经网络和轻量级梯度提升机的入侵检测方法 | |
Zhao et al. | A few-shot learning based approach to IoT traffic classification | |
CN117892102B (zh) | 基于主动学习的入侵行为检测方法、系统、设备及介质 | |
CN113935398B (zh) | 一种物联网环境下基于小样本学习的网络流量分类方法及系统 | |
CN114826776A (zh) | 一种用于加密恶意流量的弱监督检测方法及系统 | |
Liao et al. | A Survey of Deep Learning Technologies for Intrusion Detection in Internet of Things | |
CN114708479A (zh) | 一种基于图结构和特征的自适应防御方法 | |
CN114021698A (zh) | 基于胶囊生成对抗网络的恶意域名训练样本扩充方法及装置 | |
CN114726800B (zh) | 一种基于模型解释的规则式应用流量分类方法及系统 | |
Campbell et al. | Exploring tunneling behaviours in malicious domains with self-organizing maps | |
CN115996135B (zh) | 一种基于特征组合优化的工业互联网恶意行为实时检测方法 | |
CN115664804A (zh) | 一种基于径向基函数神经网络的LDoS攻击检测方法 | |
CN112261028B (zh) | 基于胶囊网络和k-means的DGA僵尸网络域名检测方法 | |
CN112261169A (zh) | 利用胶囊网络和k-means的DGA域名Botnet识别判断方法 | |
Zhang et al. | Construction of two statistical anomaly features for small-sample apt attack traffic classification | |
CN116170237B (zh) | 一种融合gnn和acgan的入侵检测方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210928 |
|
CF01 | Termination of patent right due to non-payment of annual fee |