CN112948578B - 一种dga域名开集分类方法、装置、电子设备及介质 - Google Patents
一种dga域名开集分类方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112948578B CN112948578B CN202110124340.5A CN202110124340A CN112948578B CN 112948578 B CN112948578 B CN 112948578B CN 202110124340 A CN202110124340 A CN 202110124340A CN 112948578 B CN112948578 B CN 112948578B
- Authority
- CN
- China
- Prior art keywords
- domain name
- word
- level
- character
- dga domain
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种DGA域名开集分类方法、装置、电子设备及介质,包括:获取待分类的DGA域名;将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种DGA域名开集分类方法、装置、电子设备及介质。
背景技术
DGA域名,即使用域名生成算法(Domain Generation Algorithm,DGA)产生的恶意域名,主要用于僵尸网络中。
僵尸网络是在传统的网络蠕虫、特洛伊木马、后门工具等恶意代码形态的基础之上发展、融合而产生的一种新型攻击方法,为当今互联网安全带来了极大威胁。具体而言,僵尸网络是攻击者通过入侵网络空间内若干非合作用户终端构建的、可被攻击者远程控制的通用计算平台。被控制的僵尸主机将在自己未察觉的情况下,和命令与控制(Commandand Control,C&C)服务器建立连接,并执行C&C服务器发布的指令。这样一来,攻击者就可以借助僵尸网络,控制大量终端,发起分布式拒绝服务攻击(DDoS)、恶意软件分发、用户身份窃取等各类网络攻击活动。
早期,僵尸网络主要采用静态中心结构,即将C&C服务器对应的固定域名或IP地址硬编码在僵尸程序体内。对于这类僵尸网络,防御人员可以通过反编译等手段找到C&C服务器的IP地址,再使用黑名单等方式阻断连接。后来,攻击者开始尝试动态访问机制,一种常见的改进方式便是使用Domain-Flux协议,即攻击者与僵尸主机共享同一种域名生成算法,通过算法生成大量的伪随机域名,而攻击者仅将其中少数的域名映射到C&C服务器的IP地址。这样一来,防御者很难确定C&C服务器的实际域名,僵尸网络变得更加健壮也更难以防御。在这种情况下,DGA域名自动检测技术能够有效帮助防御者切断僵尸网络中的信道,并帮助其根据识别出的DGA域名的家族对僵尸网络进行定位,因此具有重要的研究意义。
DGA域名检测本质是一个分类问题,并包含域名二分类与域名多分类两个任务:域名二分类即判断给定域名属于DGA域名还是非DGA域名;域名多分类即判断给定域名具体属于哪一个DGA域名家族。
深度学习的出现与发展为端到端的DGA域名实时检测提供了有力的技术支持,合适的深度神经网络能够在训练过程中学习如何自动地从单个域名字符串中提取特征并进行分类。目前,基于深度学习的DGA域名检测已经取得了显著成果。现有检测方法包括:Woodbridge等人利用公开数据集训练了长短期记忆(Long Short-Term Memory,简称LSTM)神经网络,并发现检测精度超过传统机器学习方法;Saxe等人他们设计了一种并行卷积神经网络(P-CNN)来检测恶意域名,其模型特点是使用几种不同大小的卷积核并行地提取特征,再通过串接将这些特征结合起来,作为分类的依据;Yu等人探索了一些字符级别的深度学习模型用于DGA域名检测问题的效果,参与实验的网络包括双向LSTM网络(BiLSTM)、堆叠CNN网络(S-CNN)、CNN-LSTM混合网络等;Berman提出基于一维胶囊网络(CapsNet)的DGA域名检测算法。
需要指出的是,上述方法均基于一个假设,即认为数据可分为N种已知的、具有标签的类别,且输入必定属于这N种类别之一。换句话说,上述方法解决的是DGA域名的闭集分类(closed set classification)问题。然而,在现实的攻防场景中,新的僵尸网络及其对应的新DGA域名家族不断涌现,于是常出现防御方已知N种DGA域名家族,但待检测域名不属于N种已知类而是属于另一未知家族的情况,由此产生DGA域名的开集分类(open setclassification)问题。
发明内容
本申请实施例的目的是提供一种DGA域名开集分类方法、装置、电子设备及介质,以解决相关技术中存在的无法正确识别属于未知DGA域名家族的样本的问题。
根据本申请实施例的第一方面,提供一种DGA域名开集分类方法,包括:
获取待分类的DGA域名;
将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果。
根据本申请实施例的第二方面,提供一种DGA域名开集分类装置,包括:
获取模块,用于获取待分类的DGA域名;
分割模块,用于将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
第一计算模块,用于对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
分类模块,用于将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
第二计算模块,用于采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果。
根据本申请实施例的第三方面,提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如第一方面所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本申请将域名分别分割为字符粒度的元素集合和单词粒度的元素集合,输入双分支结构的DGA域名检测网络,从而挖掘域名在字符组合和单词结构这两种层级上的特征,并将两者结合作为分类依据;所述DGA域名检测网络引入多头自注意力机制,计算域名的全局依赖关系,并为不同价值的信息分配不同的权重,从而抓住具有区分度的关键特征,提高开集分类的准确率;此外,首次实现DGA域名的开集分类,采用深度开集分类方法,确定特征向量空间中各已知DGA域名家族的分类边界,以显式识别出属于未知DGA域名家族的样本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种DGA域名开集分类方法的流程图。
图2是根据一示例性实施例示出的步骤S102的流程图。
图3是根据一示例性实施例示出的步骤S103的流程图。
图4是根据一示例性实施例示出的一种基于自注意力的DGA域名检测网络的结构示意图。
图5是根据一示例性实施例示出的步骤S105的流程图。
图6是根据一示例性实施例示出的一种DGA域名开集分类装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是根据一示例性实施例示出的一种DGA域名开集分类方法的结构示意图。一种DGA域名开集分类方法可以包括以下步骤:
步骤S101,获取待分类的DGA域名;
步骤S102,将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
步骤S103,对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
步骤S104,将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
步骤S105,采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果。
由上述实施例可知,本申请将域名分别分割为字符粒度的元素集合和单词粒度的元素集合,输入双分支结构的DGA域名检测网络,从而挖掘域名在字符组合和单词结构这两种层级上的特征,并将两者结合作为分类依据;所述DGA域名检测网络引入多头自注意力机制,计算域名的全局依赖关系,并为不同价值的信息分配不同的权重,从而抓住具有区分度的关键特征,提高开集分类的准确率;此外,首次实现DGA域名的开集分类,采用深度开集分类方法,确定特征向量空间中各已知DGA域名家族的分类边界,以显式识别出属于未知DGA域名家族的样本。
参考图2,上述步骤S102中,将域名分别分割为字符粒度的元素和单词粒度的元素,具体可以包括以下步骤:
步骤S1021,将所述DGA域名分割为字符粒度的元素;
具体地,将域名中的每一个字符视为一个元素,与其他字符分隔开即可。分割后所有可能出现的字符粒度的元素包括英文字母、数字和“.”、“-”等标点符号。以域名“nwplants.com”为例,它被分割为“n”、“w”、“p”、“1”、“a”、“n”、“t”、“s”、“.”、“c”、“o”、“m”。这一步有利于后续深度神经网络提取域名的字符组合特征。
步骤S1022,从语料库的一元模型数据中选取出现次数高于设定阈值次数的字符串组成单词词频表;
具体地,所述语料库中的一元模型数据统计了各种英文字母组合的出现次数,根据经验可得,出现次数越高的字符串,越可能是常见英文单词。选取出现次数高于设定阈值次数的字符串,可以减少计算量。
所述语料库选自Google Web 1T 5-Grams、British National Corpus、TheCorpus of Contemporary American English的一种。
步骤S1023,采用基于词频统计的单词分割方法,根据所述单词词频表,将所述DGA域名分割为单词粒度的元素。
具体地,采用基于词频统计的单词分割方法,即利用动态规划算法,找到所述DGA域名的所有划分中划分概率最大的一种作为单词分割的结果,分割得到的子字符串就是单词粒度的元素。以域名“nwplants.com”为例,它被分割为单词粒度的元素“nw”、“plants”、“.”、“com”。
其中,划分概率的定义是:设s是一个长度为n的字符串,假设s的一种划分方式c是被分割为m个子字符串w1,w2,...,wm,则这一种划分的概率,即这些子字符串的联合概率,等于所有子字符串出现概率相乘的乘积,如公式(1)所示。
式中,P(c)表示划分c的概率,P(w1:m)表示子串w1,w2,...,wm的联合概率;P(wi)表示子字符串wi出现概率。
字符串出现概率的计算方式为:如果字符串w包含在所述单词词频表中,且该字符串的出现次数为N(w),则该字符串的出现概率可根据公式(2)近似计算,即字符串的出现概率等于它的出现次数除以单词词频表中所有字符串出现次数之和。
P(w)≈N(w)/∑jn(wj) 公式(2)
如果字符串w不包含在所述单词词频表中,则它的出现概率根据公式(3)近似计算。式中,T为所述语料库的一元模型数据中所有字符串的总个数,len(w′)表示字符串w的长度。
P(w)≈10.0/(T×10len(w)) 公式(3)
参考图3,上述步骤S103中,对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码,具体包括:
步骤S1031,为每个所述字符粒度的元素进行哈希计算,得到对应的字符级别整数编码;
具体地,所述字符粒度的元素可能为英文字母、数字、标点,为所有可能出现的元素分别分配一个索引作为编码,并用哈希表来记录各元素与编码的对应关系。遍历所述元素,查哈希表可得每个所述元素对应的整数编码。因为基于自注意力的DGA域名检测网络只能处理数值,这一步可将文本转换为数值化表示,方便后续的DGA域名检测分类网络进行计算。
步骤S1032,在所述字符级别整数编码的末尾填充若干个整数0,使该字符级别整数编码达到某一预定长度;
具体地,DGA域名检测网络只能接受相同长度的数据作为输入,这一步骤可将变长的数据转为定长的数据。
步骤S1033,遍历所述单词粒度的元素,如果该元素包含在所述单词词频表中,为该元素进行哈希计算,得到大于0的单词级别整数编码,否则,为该元素分配整数编码0;
具体地,为所有包含在所述单词词频表中的字符串分别分配一个大于0的索引作为编码,并用哈希表来记录各字符串与编码的对应关系。遍历所述单词粒度的元素,如果该元素包含在所述单词词频表中,查哈希表可得该元素对应的整数编码,否则,为该元素分配整数编码0。因为基于自注意力的DGA域名检测网络只能处理数值,这一步可将文本转换为数值化表示,方便后续的DGA域名检测分类网络进行计算。
步骤S1034,在所述单词级别整数编码的末尾填充若干个整数0,使该单词级别整数编码达到某一预定长度。
具体地,DGA域名检测网络只能接受相同长度的数据作为输入,这一步骤可将变长的数据转为定长的数据。
图4是根据一示例性实施例示出的一种基于自注意力的DGA域名检测网络的结构示意图。参考图4,本实施例中,所述基于自注意力的DGA域名检测网络包括第一分支结构、第二分支结构、串接层、全连接层,所述第一分支结构和第二分支结构均包括嵌入层、卷积层、多头自注意力、残差连接、层归一化,第一分支结构和第二分支结构的输出共同作为串接层的输入,串接层的输入作为全连接层的输出,在第一分支结构和第二分支结构中,嵌入层的输出作为卷积层的输入,卷积层的输出作为多头自注意力的输入,嵌入层的输入与多头自注意力的输出之间形成残差连接,两者经过线性叠加后的输出作为层归一化的输入;其中所述嵌入层用于将所述字符级别整数编码或单词级别整数编码映射为字符级别词向量或单词级别词向量;所述卷积层用于从所述字符级别词向量或单词级别词向量中提取字符级别局部特征或单词级别局部特征;所述多头自注意力用于从所述字符级别局部特征或单词级别局部特征中提取字符级别全局特征或单词级别全局特征;所述残差连接用于将所述字符级别词向量与所述字符级别全局特征进行线性叠加以得到字符级别特征,或将所述单词级别词向量与所述单词级别全局特征进行线性叠加以得到单词级别特征;所述层归一化用于将所述字符级别特征或单词级别特征调整为符合正态分布的字符级别特征或单词级别特征;所述串接层用于将所述符合正态分布的字符级别特征和所述符合正态分布的单词级别特征串接起来,得到整体特征;所述全连接层用于根据所述整体特征计算域名属于各已知DGA域名家族的概率。
具体地,所述嵌入层用于将所述字符级别整数编码或单词级别整数编码映射为字符级别词向量或单词级别词向量。嵌入层包含一个n×d维的嵌入矩阵,其中n表示一共有多少个可能出现的元素,d表示词向量的维数。对于一个编码为整数i的元素,嵌入矩阵的第i行就是它的词嵌入表示。嵌入矩阵与所述DGA域名检测分类网络的其他可训练参数类似,先被初始化为随机权重,然后在网络的训练过程中,根据反向传播算法不断更新。最终,训练好的嵌入层可将一个长度为m维的整数编码映射为m×d维的实数矩阵E。
所述卷积层用于从所述字符级别词向量或单词级别词向量中提取字符级别局部特征或单词级别局部特征。卷积层使用k个大小为2的卷积核,从域名中提取k种局部特征。因此,嵌入层输出的实数矩阵E经过卷积层后得到m×k维的特征矩阵C。
所述多头自注意力用于从所述字符级别局部特征或单词级别局部特征中提取字符级别全局特征或单词级别全局特征。对局部特征计算多头自注意力,即对卷积层输出的特征矩阵C计算n次缩放点乘自注意力,每次计算时需对C分别进行线性变换得K=CWK,V=CWV,Q=CWQ,式中WK、WV、WQ是可在神经网络训练过程中不断更新的权重矩阵,变换后的K、V、Q为m×(k/n)维的矩阵;接着,根据公式(4)计算缩放点乘自注意力。
最后,n次缩放点乘自注意力的结果被串接为m×k维的矩阵A。
通过计算多头自注意力,整个域名序列中的所有元素的信息被融合在了一起,且相关度更高的信息会在结果中占更高的比重。换句话说,自注意力能够捕捉关键信息,并计算全局特征。
所述残差连接用于将所述字符级别词向量与所述字符级别全局特征进行线性叠加以得到字符级别特征,或将所述单词级别词向量与所述单词级别全局特征进行线性叠加以得到单词级别特征。残差连接集成了短路径与长路径,让信息的前后传播更加流畅,一定程度上抑制梯度消失,有效避免了所述DGA域名检测网络在训练过程中损失函数的值摇摆不定、难以收敛等情况的发生。
所述层归一化用于将所述字符级别特征或单词级别特征调整为符合正态分布的字符级别特征或单词级别特征。设层归一化的输入共含H个隐藏神经元,它们的均值μ和标准差σ可分别通过公式(5)和公式(6)计算。式中,hi表示第i个隐藏神经元的输出。
下一步是对hi进行归一化,将数据调整为正态分布。如公式(7)所示。
h′i=(hi-μ)/σ 公式(7)
但正态分布可能无法体现原本的数据分布特征,为了保证原有信息不被破坏,还应对隐藏神经元组成的向量h′进行如公式(8)所示的变换。
h″=g⊙h′+b 公式(8)
式中,g与b都是可训练参数,会在网络训练过程中不断更新与学习。
所述全连接层用于根据所述整体特征计算域名属于各已知DGA域名家族的概率。为了更好地完成开集分类,全连接层不使用Softmax函数,而用Sigmoid函数作为激活函数,并使用如公式(9)所示的损失函数。式中,c表示共有c个已知DGA域名家族;ymi为域名的实际标签,如果域名属于第i类已知DGA域名家族,则ymi的值为1,否则,ymi的值为0;pi为DGA域名检测网络输出的域名属于第i类已知DGA域名家族的概率。
此时,训练该多分类网络,相当于同时训练c个二分类网络,其中第i个网络只用于判断域名是否属于第i类DGA域名家族,并输出0到1的实数pi表示样本属于第i类的概率。
参考图5,上述步骤S105中,采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果,具体包括:
步骤S1051,根据基于自注意力的DGA域名检测网络对一批已知标签的DGA域名的输出,计算开集分类阈值;
具体地,将一批已知标签的DGA域名作为基于自注意力的DGA域名检测网络,并记录网络的输出。取这批已知标签的DGA域名中真实标签是属于第i类已知DGA域名家族的样本,设它们被所述DGA域名检测网络预测为属于第i类的概率分别为Pi={pi1,pi2,…,pin},计算它们相对于坐标系中直线x=1的对称点Pi′={2-pi1,2-pi2,...,2-pin},根据Pi和Pi′的所有数据,拟合出一个均值为1,标准差为σi的高斯分布。根据公式(10)计算第i类已知DGA域名家族的开集分类阈值。
ti=max(0.5,1-σi) 公式(10)
这一步可更好地确定特征向量空间中各已知DGA域名家族的分类边界。
步骤S1052,遍历所述概率,得到其中数值最大的概率值,比较最大概率值与所述开集分类阈值的大小关系,如果最大概率值大于开集分类阈值,则域名属于已知DGA域名家族,否则,属于未知DGA域名家族。
具体地,对于给定域名,所述DGA域名检测网络会输出它属于各已知分类的概率[p1,p2,p3,...,pc],假设其中最大的概率值为pi,且第i类已知DGA域名家族的开集分类阈值为ti,比较pi与ti,如果pi≥ti,则预测给定域名属于第i类已知DGA域名家族;反之,若pi<ti,则预测给定域名属于未知DGA域名家族。这样一来,可以显式识别出属于未知DGA域名家族的域名,并准确分类属于已知DGA域名家族的域名。
从DGArchive获取60种,共7,073,965个DGA域名,构建数据集。60种DGA域名家族被分为50种已知DGA域名家族与10种未知DGA域名家族。从每种已知DGA域名家族选取80%的域名,构成训练集,用于训练DGA域名检测网络;已知DGA域名家族的剩下20%样本和未知DGA域名家族的所有样本构成测试集。
我们采用Mendes Júnior等人提出的开集精确率、召唤率、F1值以及归一化准确率作为评价指标,且对开集精确率、召唤率、F1值分别计算宏平均值与微平均值,此外,还针对未知分类计算精确率、召回率和F1值。开集精确率、召唤率、F1值主要用于评价方法对已知DGA域名家族的检测效果,未知分类计算精确率、召回率和F1值用于评价方法对未知DGA域名家族的检测效果,归一化准确率用于综合衡量方法的开集分类效果。
下表展示了实验结果,表中P表示精确率,R表示召回率,F1表示F1值,NA表示归一化准确率。可以看到,本发明对于已知DGA域名家族的分类F1宏平均值最高,比其他方法中最好的CapsNet方法更高4.0%左右;而F1微平均值也在CapsNet方法的基础上再提高了约2.2%。另一方面,本发明对于属于未知DGA域名家族的样本的分类F1值为0.562,远超现有其他算法,大约是其他方法中最好的CapsNet对应结果的2倍。本发明的归一化准确率为0.700,在递归神经网络BiLSTM的基础上提升约50%,在卷积神经网络P-CNN的基础上提升约55%,在混合网络CNN-LSTM的基础上提升约49%,在胶囊网络CapsNet的基础上提升约38%。总之,本发明能够有效实现DGA域名的开集分类,在对未知DGA域名家族的识别率上显著胜过现有方法。
表1域名开集多分类实验结果
与前述的一种DGA域名开集分类方法的实施例相对应,本申请还提供了一种DGA域名开集分类装置的实施例。
图,6是根据一示例性实施例示出的一种DGA域名开集分类装置框图。参照图6,该装置包括:
获取模块21,用于获取待分类的DGA域名;
分割模块22,用于将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
第一计算模块23,用于对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
分类模块24,用于将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
第二计算模块25,用于采用深度开集分类方法,根据所述概率,计算分类结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种DGA域名开集分类方法。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如上述的一种DGA域名开集分类方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (8)
1.一种DGA域名开集分类方法,其特征在于,包括:
获取待分类的DGA域名;
将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果;
其中对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码,包括:
为每个所述字符粒度的元素进行哈希计算,得到对应的字符级别整数编码;
在所述字符级别整数编码的末尾填充若干个整数0,使该字符级别整数编码达到某一预定长度;
遍历所述单词粒度的元素,如果该元素包含在单词词频表中,为该元素进行哈希计算,得到大于0的单词级别整数编码,否则,为该元素分配整数编码0;
在所述单词级别整数编码的末尾填充若干个整数0,使该单词级别整数编码达到某一预定长度;
所述基于自注意力的DGA域名检测网络包括第一分支结构、第二分支结构、串接层、全连接层,所述第一分支结构和第二分支结构均包括嵌入层、卷积层、多头自注意力、残差连接、层归一化,第一分支结构和第二分支结构的输出共同作为串接层的输入,串接层的输入作为全连接层的输出,在第一分支结构和第二分支结构中,嵌入层的输出作为卷积层的输入,卷积层的输出作为多头自注意力的输入,嵌入层的输入与多头自注意力的输出之间形成残差连接,两者经过线性叠加后的输出作为层归一化的输入。
2.根据权利要求1所述的一种DGA域名开集分类方法,其特征在于,将域名分别分割为字符粒度的元素和单词粒度的元素,具体包括:
将所述DGA域名分割为字符粒度的元素;
从语料库的一元模型数据中选取出现次数高于设定阈值次数的字符串组成单词词频表;
采用基于词频统计的单词分割方法,根据所述单词词频表,将所述DGA域名分割为单词粒度的元素。
3.根据权利要求2所述的一种DGA域名开集分类方法,其特征在于,所述语料库选自Google Web 1T 5-Grams、British National Corpus、The Corpus of ContemporaryAmerican English的一种。
4.根据权利要求1所述的一种DGA域名开集分类方法,其特征在于,所述嵌入层用于将所述字符级别整数编码或单词级别整数编码映射为字符级别词向量或单词级别词向量;
所述卷积层用于从所述字符级别词向量或单词级别词向量中提取字符级别局部特征或单词级别局部特征;
所述多头自注意力用于从所述字符级别局部特征或单词级别局部特征中提取字符级别全局特征或单词级别全局特征;
所述残差连接用于将所述字符级别词向量与所述字符级别全局特征进行线性叠加以得到字符级别特征,或将所述单词级别词向量与所述单词级别全局特征进行线性叠加以得到单词级别特征;
所述层归一化用于将所述字符级别特征或单词级别特征调整为符合正态分布的字符级别特征或单词级别特征;
所述串接层用于将所述符合正态分布的字符级别特征和所述符合正态分布的单词级别特征串接起来,得到整体特征;
所述全连接层用于根据所述整体特征计算域名属于各已知DGA域名家族的概率。
5.根据权利要求1所述的一种DGA域名开集分类方法,其特征在于采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果,具体包括:
根据基于自注意力的DGA域名检测网络对一批已知标签的DGA域名的输出,计算开集分类阈值;
遍历所述概率,得到其中数值最大的概率值,比较最大概率值与所述开集分类阈值的大小关系,如果最大概率值大于开集分类阈值,则域名属于已知DGA域名家族,否则,属于未知DGA域名家族。
6.一种DGA域名开集分类装置,其特征在于,包括:
获取模块,用于获取待分类的DGA域名;
分割模块,用于将所述DGA域名分别分割为字符粒度的元素和单词粒度的元素;
第一计算模块,用于对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码;
分类模块,用于将所述字符级别整数编码和单词级别整数编码输入基于自注意力的DGA域名检测网络中,得到域名属于各已知DGA域名家族的概率;
第二计算模块,用于采用深度开集分类方法,根据所述概率,识别属于未知DGA域名家族的域名,得出分类结果;
其中对所述字符粒度的元素和所述单词粒度的元素分别进行哈希计算,得到字符级别整数编码和单词级别整数编码,包括:
为每个所述字符粒度的元素进行哈希计算,得到对应的字符级别整数编码;
在所述字符级别整数编码的末尾填充若干个整数0,使该字符级别整数编码达到某一预定长度;
遍历所述单词粒度的元素,如果该元素包含在单词词频表中,为该元素进行哈希计算,得到大于0的单词级别整数编码,否则,为该元素分配整数编码0;
在所述单词级别整数编码的末尾填充若干个整数0,使该单词级别整数编码达到某一预定长度;
所述基于自注意力的DGA域名检测网络包括第一分支结构、第二分支结构、串接层、全连接层,所述第一分支结构和第二分支结构均包括嵌入层、卷积层、多头自注意力、残差连接、层归一化,第一分支结构和第二分支结构的输出共同作为串接层的输入,串接层的输入作为全连接层的输出,在第一分支结构和第二分支结构中,嵌入层的输出作为卷积层的输入,卷积层的输出作为多头自注意力的输入,嵌入层的输入与多头自注意力的输出之间形成残差连接,两者经过线性叠加后的输出作为层归一化的输入。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110124340.5A CN112948578B (zh) | 2021-01-29 | 2021-01-29 | 一种dga域名开集分类方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110124340.5A CN112948578B (zh) | 2021-01-29 | 2021-01-29 | 一种dga域名开集分类方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948578A CN112948578A (zh) | 2021-06-11 |
CN112948578B true CN112948578B (zh) | 2022-05-17 |
Family
ID=76239371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110124340.5A Active CN112948578B (zh) | 2021-01-29 | 2021-01-29 | 一种dga域名开集分类方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948578B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726730A (zh) * | 2021-07-14 | 2021-11-30 | 国网山东省电力公司信息通信公司 | 基于深度学习算法的dga域名检测方法及系统 |
CN115099325B (zh) * | 2022-06-20 | 2024-06-14 | 四川大学 | 一种基于域变换与深度学习的dga域名分类方法 |
CN116318845B (zh) * | 2023-02-09 | 2024-06-18 | 国家计算机网络与信息安全管理中心甘肃分中心 | 一种正负样本比例不平衡条件下的dga域名检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3614645A1 (en) * | 2018-08-21 | 2020-02-26 | Deutsche Telekom AG | Embedded dga representations for botnet analysis |
WO2020218512A1 (ja) * | 2019-04-26 | 2020-10-29 | Arithmer株式会社 | 学習モデル生成装置、文字認識装置、学習モデル生成方法、文字認識方法、及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9781139B2 (en) * | 2015-07-22 | 2017-10-03 | Cisco Technology, Inc. | Identifying malware communications with DGA generated domains by discriminative learning |
CN112019651B (zh) * | 2020-08-26 | 2021-11-23 | 重庆理工大学 | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 |
CN112073550B (zh) * | 2020-08-26 | 2021-11-02 | 重庆理工大学 | 融合字符级滑动窗口和深度残差网络的dga域名检测方法 |
-
2021
- 2021-01-29 CN CN202110124340.5A patent/CN112948578B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3614645A1 (en) * | 2018-08-21 | 2020-02-26 | Deutsche Telekom AG | Embedded dga representations for botnet analysis |
WO2020218512A1 (ja) * | 2019-04-26 | 2020-10-29 | Arithmer株式会社 | 学習モデル生成装置、文字認識装置、学習モデル生成方法、文字認識方法、及びプログラム |
Non-Patent Citations (1)
Title |
---|
"基于混合词向量深度学习模型的 DGA域名检测方法";杜鹏等;《计算机研究与发展》;20201231;第433-446页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112948578A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Belinkov et al. | Don't take the premise for granted: Mitigating artifacts in natural language inference | |
CN112948578B (zh) | 一种dga域名开集分类方法、装置、电子设备及介质 | |
US10785241B2 (en) | URL attack detection method and apparatus, and electronic device | |
CN108111489B (zh) | Url攻击检测方法、装置以及电子设备 | |
CN107577945B (zh) | Url攻击检测方法、装置以及电子设备 | |
CN108737406B (zh) | 一种异常流量数据的检测方法及系统 | |
Sommer et al. | Towards probabilistic verification of machine unlearning | |
CN109450845B (zh) | 一种基于深度神经网络的算法生成恶意域名检测方法 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
KR102093275B1 (ko) | 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법 | |
Mohan et al. | Spoof net: syntactic patterns for identification of ominous online factors | |
JP2022141931A (ja) | 生体検出モデルのトレーニング方法及び装置、生体検出の方法及び装置、電子機器、記憶媒体、並びにコンピュータプログラム | |
Yang et al. | Detecting stealthy domain generation algorithms using heterogeneous deep neural network framework | |
CN110263538A (zh) | 一种基于系统行为序列的恶意代码检测方法 | |
Chen et al. | Backdoor attacks and defenses for deep neural networks in outsourced cloud environments | |
CN111538929A (zh) | 网络链接识别方法、装置、存储介质及电子设备 | |
Ra et al. | DeepAnti-PhishNet: Applying deep neural networks for phishing email detection | |
Halim et al. | Recurrent neural network for malware detection | |
CN110674370A (zh) | 域名识别方法及装置、存储介质及电子设备 | |
Wang et al. | [Retracted] Intrusion Detection for Industrial Control Systems Based on Open Set Artificial Neural Network | |
CN114826681A (zh) | 一种dga域名检测方法、系统、介质、设备及终端 | |
CN112887323B (zh) | 一种面向工业互联网边界安全的网络协议关联与识别方法 | |
Chen et al. | Towards a deep learning approach for detecting malicious domains | |
CN112613032A (zh) | 基于系统调用序列的主机入侵检测方法及装置 | |
Sujana et al. | Temporal based network packet anomaly detection using machine 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 |