CN114666077A - Dga域名检测方法及系统、电子设备及存储介质 - Google Patents
Dga域名检测方法及系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114666077A CN114666077A CN202011444253.XA CN202011444253A CN114666077A CN 114666077 A CN114666077 A CN 114666077A CN 202011444253 A CN202011444253 A CN 202011444253A CN 114666077 A CN114666077 A CN 114666077A
- Authority
- CN
- China
- Prior art keywords
- sequence
- length
- domain name
- prediction result
- inputting
- 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.)
- Granted
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种DGA域名检测方法及系统、电子设备及存储介质,包括:对输入的全域名字符串序列分别进行变长预处理和定长预处理;将变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值;将定长序列输入第二预设模型,输出第二预测结果,第二预测结果包括N第二数值,其中,N为正整数;分别基于第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从第一预测结果、第二预测结果中选取出DGA域名检测结果。本发明提供的基于深度学习的DGA域名检测方法,输入域名字符串序列,经过深度学习模型,输出DGA域名检测结果,具有实时性、轻量级、多分类检测、高分类精度等优点。
Description
技术领域
本发明涉及信息安全技术领域,特别涉及一种DGA域名检测方法及系统、电子设备及存储介质。
背景技术
恶意软件如今已成为威胁网络安全的头号公敌,为了逃避安全设施的检测,其制作过程越来越复杂,一个典型做法是在软件中集成DGA(Domain Generation Algorithm,域名生成方法)。DGA是域名字符串的自动生成方法,类似于伪随机数生成方法,可连续运行生成不重复的域名字符串序列。该方法以相同的初始状态同时运行于恶意程序终端(受害者个人设备、僵尸网络终端)和恶意程序控制中心,使得两方获得相同的生成域名序列;当恶意程序终端试图与恶意程序控制中心通信时,它将逐一解析DGA生成的域名,若解析成功则尝试连接;恶意程序控制中心只需在DGA生成的域名序列中选择少量域名注册,等待终端连接接入,并适时重新选择域名注册,即可有效规避域名黑名单、IP黑名单等反僵尸网络手段。因此,DGA域名检测是发现恶意软件的重要途径之一,对于提升信息安全防护水平具有重要意义。
实时DGA域名检测是指仅使用域名(无其他上下文信息),将域名划分成正常域名和DGA域名。实时DGA域名检测方法经历了三个阶段:黑名单过滤,基于传统机器学习的DGA域名检测,基于深度学习的DGA域名检测。因黑名单难以适应动态变化的DGA域名,准确性较低,故不做讨论。
(1)基于传统机器学习的DGA域名检测。在海量域名解析请求中自动发现DGA域名,早期使用域名字符串特征的检测方法,主要采用人工特征为基础的传统机器学习技术,这也是2016年之前的主要研究方向。基于传统机器学习的DGA域名检测,通过人工提取域名特征,利用传统机器学习模型区分正常域名和DGA域名。这里,域名特征由经验丰富的安全研究人员精心构造,常用的域名特征有长度、熵信息、元音辅音比、n-gram信息等,这些特征被输入到机器学习模型中,如随机森林(RF)、支持向量机(SVM)等。使用人工特征带来的问题主要有:一、人工设计的特征容易被绕过;二、设计人工特征是一个非常耗时的过程,需要随着域名生成方法的更新而更新。如果黑客通过攻击一组特征来派生出一个新的DGA家族,安全研究人员则需要花费相当多的时间来创建新的特征。基于传统机器学习的DGA域名检测方法存在以下弊端:依赖安全研究人员的专业经验来构造特征,特征选取的好坏将直接影响DGA域名检测的结果;难以应对DGA域名变种问题,需要不断更新或者重新创建特征库;误报率较高,准确性低。
(2)基于深度学习的DGA域名检测。深度学习具有模型容量大、无需特征提取等特点,在自然语言处理、图像识别等多种应用场景取得了显著成绩。基于深度学习的DGA域名检测方法,可以很好地解决基于传统机器学习的检测方法面临的问题,正在成为DGA域名检测的新研究热点。2016年,Woodbridge等人首次将深度学习应用到DGA域名检测中,以域名字符串作为输入,经过词向量层生成字符级词向量,由长短期记忆网络(LSTM)层提取时序特征,送入逻辑回归层完成分类。使用深度学习可以实现单一域名的实时检测。研究表明:这项工作在DGA域名的二分类检测任务(预测输入域名是否为DGA生成)中取得了很好的效果,分类精度优于之前只使用域名字符串数据的、基于人工特征的DGA域名检测方法;在DGA域名家族的多分类检测任务(预测输入域名属于哪种DGA类型)中,也优于之前只使用域名字符串数据的、基于人工特征的DGA域名检测方法。
基于深度学习的DGA域名检测方法,其优点主要有:一、仅使用域名字符串作为系统的输入数据,解决了一些信息安全场景下基于传统机器学习的检测方法需要上下文信息与多种维度数据的问题;二、自动提取域名字符串的有效特征,避免了复杂的人工特征设计,使得系统更加健壮,不易被攻击者针对设计;三、适用于多分类检测任务,监督信息为DGA域名的家族,经过训练具备识别生成该DGA域名的僵尸网络家族的能力;四、具有高实时性,可实时监测真实网络环境中请求的域名,是轻量级的域名检测手段。总之,随着深度学习技术的快速发展和计算机系统性能/算力的不断提升,基于深度学习的DGA域名检测方法必将引领行业发展方向,但当前成果主要限于学术研究领域,满足实时性、轻量级、多分类检测、高分类精度等要求的产品化DGA域名检测还未实现。当前方法仍存在不足:模型的训练数据集都是由网络获取,真实度无法区分,影响测试精度;分类模型较简单,对域名这类短文本的信息利用能力与特征提取能力有限,特别是在DGA域名多分类问题中,分类精度仍有较大的提升空间。
发明内容
本发明提供一种具有实时性、轻量级、多分类检测、高分类精度的DGA域名检测方法及系统、电子设备及存储介质。
本发明提供一种DGA域名检测方法,包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
优选的是,所述的DGA域名检测方法,其中,所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层映射为k维嵌入矢量序列,k为内部维度;
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
优选的是,所述的DGA域名检测方法,其中,所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层和LSTM层处理后,输出内部表达矢量序列;
将所述内部表达矢量序列输入Attention维度变换层,内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维矢量度序列输入到Attention Feature层,h维矢量度序列变换为f维度矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为Attention Feature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
优选的是,所述的DGA域名检测方法,其中,所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
基于对计算策略的逆向分析及计算策略被用于攻击的热门度,选取用于生成数据集的预设计算策略;
将所述预设计算策略生成黑样例数据集,并与收集的白样例数据集及黑样例数据集,按预设比例统一合并为训练数据集。
本发明还提供了一种DGA域名检测系统,包括:
预处理模块,用于对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
第一预测模块,用于将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
第二预测模块,将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
DGA域名检测模块,分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
优选的是,所述的DGA域名检测系统,其中,所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层映射为k维嵌入矢量序列,k为内部维度;
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
优选的是,所述的DGA域名检测系统,其中,所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层和LSTM层处理后,输出内部表达矢量序列;
将所述内部表达矢量序列输入Attention维度变换层,内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维矢量度序列输入到Attention Feature层,h维矢量度序列变换为f维度矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为Attention Feature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
优选的是,所述的DGA域名检测系统,其中,所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
基于对计算策略的逆向分析及计算策略被用于攻击的热门度,选取用于生成数据集的预设计算策略;
将所述预设计算策略生成黑样例数据集,并与收集的白样例数据集及黑样例数据集,按预设比例统一合并为训练数据集。
本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的DGA域名检测方法的步骤。
本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的DGA域名检测方法的步骤。
本发明提供的基于深度学习的DGA域名检测方法,输入域名字符串序列,经过深度学习模型,输出DGA域名检测结果,具有实时性、轻量级、多分类检测、高分类精度等优点。分别通过两个可选的深度学习模型进行建模:基本LSTM模型,解决了RNN不支持长期依赖的问题,可学习长期依赖信息;带Attention权重的LSTM模型,引入了注意力机制,可提高域名的分类精度;本发明具有以下技术效果:
可实现端到端学习,无需人工定制特征规则,无需DGA分析和检测相关的经验知识。
可实现高于传统机器学习模型的分类精度,以及优于时域卷积模型(CNN)的分类精度。
域名字符串为短时序序列(最大长度为256),深度学习基本组件(LSTM)可以高效运行,算力需求更低,较容易实现可变长序列输入。
可实现比二分类更细粒度的多分类检测,直接预测输入域名属于哪种DGA类型。
带Attention权重的LSTM模型,可有效解决分类精度低、稳定性差的问题。
下面对本发明提供的DGA域名检测系统进行描述,下文描述的DGA域名检测系统与上文描述的DGA域名检测方法可相互对应参照。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的DGA域名检测方法的示意图;
图2为本发明提供的DGA域名检测系统的示意图;
图3为本发明提供的电子设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的DGA域名检测方法的示意图,如图1所示,该方法包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
DGA域名检测时的输入为全域名字符串序列。预处理过程不删除输入域名中的顶级域名或二级域名,其原因为:DGA生成域名特征可能与顶级域名关联(DGA可能为小众顶级域名生成更近似于正常域名的字符串,而不引起冲突);将全部域名输入到模型,可以使模型自行学习DGA生成字符串和顶级域名(或二级域名)的关联(若两者有关联)。
对于全域名字符串序列,假设其为不定长字符串,考虑部分内网域名故最大长度定义为256。字符串中每字符(元素)可取任意字节值(覆盖Unicode域名),但预处理过程不对utf-8多字节字符处理(都按单字节拆分)。因此,模型的输入为域名字符串的单字节序列。对于变长输入模型,预处理过程为域名字节序列尾添加单个结束符;对于定长输入模型,预处理过程在域名字节序列头部或尾部做Padding,以Padding值补齐序列长度至标准长度(256)。
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果(Chinad、Conficker、Madmax、Gameover、……以及Legit)的概率;
所述第一预设模型为基本LSTM模型,第二预设模型为带Attention权重的LSTM模型。若用于定长输入模型,两者的输入和输出数据结构完全相同,其可以相互替换。而变长输入则仅可由基本LSTM模型实现。带Attention权重的LSTM模型可以有效解决分类精度低、稳定性差的问题。Attention机制是sequence to sequence自然语言学习的标准组件,其通过计算Attention权重(依赖独立可学习参数或依赖Embedding内部表达矢量)使下游序列模型的每个输出聚焦于输入序列的不同位置,实现语言句法(语法)的学习。对于下游模型为分类器(本文下游模型为全连通层)的情况,Attention同样可以应用于上游序列模型(LSTM),使提取的不同内部feature聚焦于输入序列的不同位置。
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果(Chinad、Conficker、Madmax、Gameover、……以及Legit)的概率,其中,N为正整数;
其中,带attention的LSTM模型没法用变长的模型,需要固定长度,而基本的LSTM模型变长,定长都可以,可以采用变长,虽然是变长但是一开始数据处理的时候也做了补零操作,但是在输入模型的时候会增加一个保存该字符长度的变量。如果输入aaaa,bbbbb,两个字符串,根据业务逻辑,假定输入字符串最大长度为5,那么输入aaaa的时候会加0(一般是0,也可以换)补齐成aaaa0,无论变长还是定长这一步都要做,但是变长还要输入一个长度参数4给模型,因为aaaa的长度为4,这样输入可以让模型后续在计算的时候不考虑那个0,但是因为attention的算法设计需要固定长度,就不用输入这个长度参数。
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层(Embedding)映射为k维嵌入矢量序列,k为内部维度(即Embedding维度和LSTM维度取一致);
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
可选地,对序列在长度维度上做Maxpooling或Avgpooling,结果为内部表达矢量(k维)。如不做Pooling,则直接取LSTM输出序列的最后元素为内部表达矢量(k维)。将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层(Embedding层)和LSTM层处理后,输出内部表达矢量序列(k维);
将所述内部表达矢量序列输入Attention维度变换层(全连通层),内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维(Attention维度)矢量度序列输入到Attention Feature层(全连通层),h维矢量度序列变换为f维度(Attention Feature维度)矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为AttentionFeature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
带Attention权重的LSTM模型相比基本LSTM模型,其优势分析如下。
基本LSTM模型的输出为最后一个时间序的隐藏层输出ht,就本文的域名来说t为256,根据单个LSTM cell的计算公式:
it=σ(Wii·xt+bii+Whi·ht-1+bhi)
ft=σ(Wif·xt+bif+Whf·ht-1+bhf)
gt=tanh(Wig·xt+big+Whg·ht-1+bhg)
ot=σ(Wio·xt+bio+Who·ht-1+bho)
ct=ft*ct-1+it*gt
ht=ot*tanh(ct)
该输出由此时间序的输入门it、遗忘门ft与更新后的整个LSTM cell的状态ct决定。随着序列长度变长,此计算方法会遗漏很多关键信息。为了弥补这一缺陷,引入带Attention权重的LSTM模型,其计算形式如下。
假设单向LSTM的隐藏层h的维度为u,一个域名字符串的关键字数为n(本文为256),那么定义总时间序的隐藏层输出为:
H=(h1,h2,···hn)
大小为u*n矩阵,假设要输出的Attention权重矩阵为A(维度为1*n),那么有:
A=softmax(Ws2(tanh(Ws1HT))
由于H的维度为u*n,故权重矩阵Ws1与Ws2的维度为u*n以及1*n,softmax保证输出的所有权重相加为1,最后的输出矩阵M为AH。
由以上计算原理可知,对比单向LSTM,带有Attention权重的LSTM考虑到了关键字与关键字之间的权重,将每个时间序的隐藏层输出结果都考虑进去,模拟了人类学习一个长短句的注意力不同的行为,利于提取一个句子中比较核心带有规则的特征,从而获得更多有用信息,能够有效提高模型精度。
所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
将所述预设计算策略生成黑样例数据集(也就是通过对DGA的计算策略分类,逆向相应分类的一些计算策略,用于产生部分原始数据集),并与收集的白样例数据集及黑样例数据集(网络上收集的,比如说思科公布的100万条正常域名的数据),其中,白样例是指正常域名的数据,黑样例是指DGA攻击的案例,按预设比例统一合并为训练数据集。
通过人工经验研究各个种类DGA的计算策略,分析其产生的逻辑,找到一些比较特殊的计算策略逆向用于生成原始数据集,例如真随机计算策略Bedep,逆向是个过程,分析其产生逻辑后收集逆向计算出的数据集,保证数据集的完备程度,能有效提高模型准确度。比现有技术中的全部都从网络上收集的数据集更精准,可靠。
所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
基于对计算策略的逆向分析及计算策略被用于攻击的热门度,选取用于生成数据集的预设计算策略;
将所述预设计算策略生成黑样例数据集,并与收集的白样例数据集及黑样例数据集,按预设比例统一合并为训练数据集。
本发明提供的基于深度学习的DGA域名检测方法,输入域名字符串序列,经过深度学习模型,输出DGA域名检测结果,具有实时性、轻量级、多分类检测、高分类精度等优点。分别通过两个可选的深度学习模型进行建模:基本LSTM模型,解决了RNN不支持长期依赖的问题,可学习长期依赖信息;带Attention权重的LSTM模型,引入了注意力机制,可提高域名的分类精度;本发明具有以下技术效果:
可实现端到端学习,无需人工定制特征规则,无需DGA分析和检测相关的经验知识。
可实现高于传统机器学习模型的分类精度,以及优于时域卷积模型(CNN)的分类精度。
域名字符串为短时序序列(最大长度为256),深度学习基本组件(LSTM)可以高效运行,算力需求更低,较容易实现可变长序列输入。
可实现比二分类更细粒度的多分类检测,直接预测输入域名属于哪种DGA类型。
带Attention权重的LSTM模型,可有效解决分类精度低、稳定性差的问题。
下面对本发明提供的DGA域名检测系统进行描述,下文描述的DGA域名检测系统与上文描述的DGA域名检测方法可相互对应参照。
图2为本发明提供的DGA域名检测系统的示意图,如图2所示,该系统包括:
预处理模块10,用于对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
第一预测模块20,用于将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
第二预测模块30,将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
DGA域名检测模块40,分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层映射为k维嵌入矢量序列,k为内部维度;
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层和LSTM层处理后,输出内部表达矢量序列;
将所述内部表达矢量序列输入Attention维度变换层,内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维矢量度序列输入到Attention Feature层,h维矢量度序列变换为f维度矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为Attention Feature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
图3示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)310、通信接口(Communicat ions Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行一种DGA域名检测方法,该方法包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行一种DGA域名检测方法,该方法包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行一种DGA域名检测方法,该方法包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种DGA域名检测方法,其特征在于,包括:
对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
2.根据权利要求1所述的DGA域名检测方法,其特征在于,所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层映射为k维嵌入矢量序列,k为内部维度;
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
3.根据权利要求1所述的DGA域名检测方法,其特征在于,所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层和LSTM层处理后,输出内部表达矢量序列;
将所述内部表达矢量序列输入Attention维度变换层,内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维矢量度序列输入到Attention Feature层,h维矢量度序列变换为f维度矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为Attention Feature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
4.根据权利要求1所述的DGA域名检测方法,其特征在于,所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
基于对计算策略的逆向分析及计算策略被用于攻击的热门度,选取用于生成数据集的预设计算策略;
将所述预设计算策略生成黑样例数据集,并与收集的白样例数据集及黑样例数据集,按预设比例统一合并为训练数据集。
5.一种DGA域名检测系统,其特征在于,包括:
预处理模块,用于对输入的全域名字符串序列分别进行变长预处理和定长预处理,所述变长预处理包括在所述全域名字符串序列的尾部添加单个结束符,得到变长序列;所述定长预处理包括在所述全域名字符串序列的头部或尾部做填充,以填充值补齐全域名字符串序列长度至标准长度,得到定长序列;
第一预测模块,用于将所述变长序列或定长序列输入第一预设模型,输出第一预测结果,所述第一预测结果包括N个第一数值,对应N个第一分类结果的概率;
第二预测模块,将所述定长序列输入第二预设模型,输出第二预测结果,所述第二预测结果包括N第二数值,对应为N个第二分类结果的概率,其中,N为正整数;
DGA域名检测模块,分别基于所述第一预设模型输出的第一预测结果、第二预设模型输出的第二预测结果的评价指标,从所述第一预测结果、第二预测结果中选取出DGA域名检测结果。
6.根据权利要求5所述的DGA域名检测系统,其特征在于,所述将所述变长序列或定长序列输入第一预设模型,输出第一预测结果具体包括:
将所述变长序列或定长序列经嵌入层映射为k维嵌入矢量序列,k为内部维度;
将所述k维嵌入矢量序列输入k维堆叠LSTM,输出同样序列长度的内部表达矢量序列;
将所述内部表达矢量序列输入到单层全连通层,输出第一预测结果。
7.根据权利要求5所述的DGA域名检测系统,其特征在于,所述将所述定长序列输入第二预设模型,输出第二预测结果具体包括:
将所述定长序列经嵌入层和LSTM层处理后,输出内部表达矢量序列;
将所述内部表达矢量序列输入Attention维度变换层,内部表达矢量序列中每个k维度矢量序列变换为h维度矢量序列,之后经tanh函数增加非线性;将所述h维矢量度序列输入到Attention Feature层,h维矢量度序列变换为f维度矢量序列,在f维度矢量序列的长度维度上应用softmax函数,归一化为概率值,得到维度为f*L的Attention矩阵,其中,f为Attention Feature数量,L为矢量序列的长度;
将所述Attention矩阵转置后与LSTM层输出的内部表达矢量以矩阵点乘的方式进行序列相乘,获得维度为k*f的Feature矩阵。
将所述Feature矩阵序列化后输入单层全连通层,输出第二预测结果。
8.根据权利要求5所述的DGA域名检测系统,其特征在于,所述第一预设模型、第二预设模型采用训练数据集进行训练,所述训练数据集的生成方法包括:
基于对计算策略的逆向分析及计算策略被用于攻击的热门度,选取用于生成数据集的预设计算策略;
将所述预设计算策略生成黑样例数据集,并与收集的白样例数据集及黑样例数据集,按预设比例统一合并为训练数据集。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4任一所述的DGA域名检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4任一所述的DGA域名检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011444253.XA CN114666077B (zh) | 2020-12-08 | 2020-12-08 | Dga域名检测方法及系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011444253.XA CN114666077B (zh) | 2020-12-08 | 2020-12-08 | Dga域名检测方法及系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114666077A true CN114666077A (zh) | 2022-06-24 |
CN114666077B CN114666077B (zh) | 2022-11-15 |
Family
ID=82024368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011444253.XA Active CN114666077B (zh) | 2020-12-08 | 2020-12-08 | Dga域名检测方法及系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114666077B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057165A1 (en) * | 2014-08-22 | 2016-02-25 | Mcafee, Inc. | System and method to detect domain generation algorithm malware and systems infected by such malware |
CN107770132A (zh) * | 2016-08-18 | 2018-03-06 | 中兴通讯股份有限公司 | 一种对算法生成域名进行检测的方法及装置 |
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
CN110768929A (zh) * | 2018-07-26 | 2020-02-07 | 中国电信股份有限公司 | 域名检测方法和装置、计算机可读存储介质 |
CN111654504A (zh) * | 2020-06-10 | 2020-09-11 | 北京天融信网络安全技术有限公司 | 一种dga域名检测方法及装置 |
CN112019651A (zh) * | 2020-08-26 | 2020-12-01 | 重庆理工大学 | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 |
-
2020
- 2020-12-08 CN CN202011444253.XA patent/CN114666077B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057165A1 (en) * | 2014-08-22 | 2016-02-25 | Mcafee, Inc. | System and method to detect domain generation algorithm malware and systems infected by such malware |
CN107770132A (zh) * | 2016-08-18 | 2018-03-06 | 中兴通讯股份有限公司 | 一种对算法生成域名进行检测的方法及装置 |
CN110768929A (zh) * | 2018-07-26 | 2020-02-07 | 中国电信股份有限公司 | 域名检测方法和装置、计算机可读存储介质 |
CN109617909A (zh) * | 2019-01-07 | 2019-04-12 | 福州大学 | 一种基于smote和bi-lstm网络的恶意域名检测方法 |
CN111654504A (zh) * | 2020-06-10 | 2020-09-11 | 北京天融信网络安全技术有限公司 | 一种dga域名检测方法及装置 |
CN112019651A (zh) * | 2020-08-26 | 2020-12-01 | 重庆理工大学 | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 |
Non-Patent Citations (2)
Title |
---|
潘司晨: "基于机器学习的恶意URL识别", 《硕士电子期刊》 * |
王媛媛: "基于深度学习的恶意域名检测技术的研究与应用", 《硕士电子期刊》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114666077B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230100376A1 (en) | Text sentence processing method and apparatus, computer device, and storage medium | |
CN108959246B (zh) | 基于改进的注意力机制的答案选择方法、装置和电子设备 | |
CN113901799B (zh) | 模型训练、文本预测方法、装置、电子设备及介质 | |
CN106502985B (zh) | 一种用于生成标题的神经网络建模方法及装置 | |
CN111371806A (zh) | 一种Web攻击检测方法及装置 | |
CN113434858B (zh) | 基于反汇编代码结构和语义特征的恶意软件家族分类方法 | |
WO2023134083A1 (zh) | 基于文本的情感分类方法和装置、计算机设备、存储介质 | |
CN113691542B (zh) | 基于HTTP请求文本的Web攻击检测方法及相关设备 | |
CN112464233B (zh) | 一种云平台上基于rnn的恶意软件检测方法 | |
CN114330966A (zh) | 一种风险预测方法、装置、设备以及可读存储介质 | |
CN116956835B (zh) | 一种基于预训练语言模型的文书生成方法 | |
Aziguli et al. | A robust text classifier based on denoising deep neural network in the analysis of big data | |
CN112580331A (zh) | 政策文本的知识图谱构建方法及系统 | |
Zhu et al. | CCBLA: a lightweight phishing detection model based on CNN, BiLSTM, and attention mechanism | |
CN117272142A (zh) | 一种日志异常检测方法、系统及电子设备 | |
CN114297079A (zh) | 基于时间卷积网络的xss模糊测试用例生成方法 | |
Remmide et al. | Detection of phishing URLs using temporal convolutional network | |
CN110705282A (zh) | 关键词提取方法、装置、存储介质及电子设备 | |
CN114444476A (zh) | 信息处理方法、装置和计算机可读存储介质 | |
Li et al. | Web application attack detection based on attention and gated convolution networks | |
CN117725432A (zh) | 文本语义相似度对比方法、装置、设备及可读存储介质 | |
CN111445545B (zh) | 一种文本转贴图方法、装置、存储介质及电子设备 | |
JP2019082860A (ja) | 生成プログラム、生成方法及び生成装置 | |
CN116720185A (zh) | 一种代码的多维图张量融合表示与嵌入方法 | |
CN114666077B (zh) | Dga域名检测方法及系统、电子设备及存储介质 |
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 |