一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DGA域名检测方法及系统

2022-05-18 00:20:05 来源:中国专利 TAG:

一种dga域名检测方法及系统
技术领域
1.本发明涉及网络安全检测技术领域,尤其涉及一种dga域名检测方法及系统。


背景技术:

2.基于dga的僵尸网络通常使用域名生成算法(domain generation algorithm,dga)来逃避监管,现有技术中对dga域名检测存在很多相关研究,大体可分为两类处理算法:
3.一是基于域名文本分析,其一为基于伪随机字符串生成,其二为基于词典生成。第一种是基于提出的nxdomain分类系统,利用正常nxdomain与dga域名产生的nxdomain在文本特征上的差异,手工提取21个特征,构建svm和随机森林分类器对nxdomain进行分类,从而可以发现dga域名,或者基于机器学习的dga检测器,使用dga域名的词汇特征,提出使用深度学习算法来检测dga域名的方法,例如cnn,lstm和bilstm;第二种是基于词典的域名生成算法通过拼接词典中的单词,生成看起来更像是由正常人所起的域名来逃避检测,传统的dga域名检测方法对此种dga域名的检测效果较差,提出对抗基于字典的dga的方法,基于域名的分段建立了一个名为wordgraph的新结构,然后将其用于进一步发现dga词典,从无关的语料库中提取了深入的语义特征,并使用转移学习理论来学习基于词典的dga家族的语义签名,从而在少量的样本集上达到很好的检测效果。
4.二是基于行为进行分析,将dga域名检测问题转为图的推理问题,使用代理日志构造主机与域名之间的关系图,用一些真实信息作为种子作为图的输入,然后使用信念传播算法估计域名为恶意的边缘概率;同时,从dns数据中抽取三个维度的行为特征,对它们分别建立二分图,以表述域名间的关系,并计算图嵌入向量,从而对不同主机节点的属性进行分类。
5.上述两种算法均存在并且存在流程处理极其复杂、步骤繁多、特征提取繁琐和周期长的问题,这对于算法的快速验证和部署是非常不利的。此外,还普遍具有无法进行增量训练的问题,也就意味着当面对着不断更新换代的攻击手法和dbs域名时,这些检测算法无法快速、有效地更新迭代,以适应大数据环境。
6.因此,需要提出一种新的dga域名检测算法,来克服上述缺陷。


技术实现要素:

7.本发明提供一种dga域名检测方法及系统,用以解决现有技术中无法实现静态词典的更新,以及增量式地迭代检测模型的缺陷。
8.第一方面,本发明提供一种dga域名检测方法,包括:
9.获取源ip地址在预设时间窗口内的域名查询序列;
10.将所述域名查询序列输入至预先训练好的域名检测模型中,得到域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
11.优选地,所述获取源ip地址在预设时间窗口内的域名查询序列,具体包括:
12.按照所述预设时间窗口的长度截取所述源ip地址对应的若干个域名,得到所述域名查询序列。
13.优选地,所述域名检测模型,通过以下步骤获得:
14.获取少量标注域名查询数据以及大量未标注域名查询数据;
15.对所述大量未标注域名查询数据进行无监督的预训练,得到可获取域名动态特征向量的transformer预训练模型;
16.在所述transformer预训练模型的尾部按照序列标注原则构造域名分类器;
17.使用所述少量标注域名查询数据对所述域名分类器进行端到端训练,得到所述域名检测模型。
18.优选地,所述获取少量标注域名查询数据以及大量未标注域名查询数据,具体包括:
19.获取若干域名查询数据,从所述若干域名查询数据中抽取预设数量的具有时间连续性且包含恶意域名的数据进行标注,得到所述少量标注域名查询数据,以及除去所述少量标注域名查询数据之后的所述大量未标注域名查询数据。
20.优选地,所述对所述大量未标注域名查询数据进行无监督的预训练,得到获取域名动态特征向量的transformer预训练模型,具体包括:
21.在所述域名查询序列中将若干域名进行掩盖,通过上下文预测掩盖的若干域名;
22.选取占有预设比例的连续域名序列和占有所述预设比例的不连续域名序列,判断所述连续域名序列和所述不连续域名序列是否构成时间上的上下文关系,得到结合上下文语境后的增强语义向量。
23.优选地,所述在所述transformer预训练模型的尾部按照序列标注原则构造域名分类器,具体包括:
24.获取所述transformer预训练模型经过softmax处理后得到的矩阵,所述矩阵包括序列长度和类别数量;
25.基于所述序列长度和所述类别数量,得到任一待预测域名查询序列中任一个词对应的任一个预测标签;
26.基于所述任一个预测标签,得到若干待预测域名查询序列从起始标签到结束标签之间的所有不同标签之间的若干转移分数;
27.由所述若干转移分数得到的所述若干待预测域名查询序列的若干序列得分进行综合,输入至softmax得到每个序列对应的概率;
28.将所述概率转化为对数概率并进行最大化,得到所述任一待预测域名查询序列对应的预设标签序列;
29.求解所述预设标签序列中分数最高的标签序列,根据所述分数最高的标签序列对所述transformer预训练模型进行标注,得到所述域名分类器。
30.优选地,所述使用所述少量标注域名查询数据对所述域名分类器进行端到端训练,得到所述域名检测模型,具体包括:
31.对所述域名分类器中域名词典的每个域名计算预设衡量参数值,基于所述预设衡量参数值衡量每个域名对应的重要程度;
32.待有预设数量的新域名数据进入所述域名词典时,将所述域名词典中具有最小的所述预设衡量参数值对应的域名替换为所述预设数量的新域名数据,得到所述域名检测模型。
33.第二方面,本发明还提供一种dga域名检测系统,包括:
34.获取模块,用于获取源ip地址在预设时间窗口内的域名查询序列;
35.处理模块,用于将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
36.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述dga域名检测方法的步骤。
37.第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述dga域名检测方法的步骤。
38.本发明提供的dga域名检测方法及系统,基于域名文本分析和基于行为的两类检测方法,以域名序列而不是单个域名作为处理单元,引入自然语言处理领域的特征提取器transformer,并将其改造成适合于dga域名检测的动态的、可增量式训练的、端到端的检测器,实现了增量式的迭代模型,具有流程简单、周期短和易于部署的优点。
附图说明
39.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是本发明提供的一种dga域名检测方法的流程示意图之一;
41.图2是本发明提供的一种dga域名检测方法的流程示意图之二;
42.图3是本发明提供的一种dga域名检测系统的结构示意图;
43.图4是本发明提供的电子设备的结构示意图。
具体实施方式
44.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.针对现有技术存在的种种问题,本发明结合基于域名文本分析和基于行为的两类检测方法,以域名序列而不是单个域名作为处理单元,引入自然语言处理领域效果最好的特征提取器transformer,并将该特征提取器改造成适合于dga域名检测的动态的、可增量式训练的以及端到端的检测器。
46.对于静态词典问题,当数据无限增大的时候,该增量式的word2vec算法无法控制过于庞大的域名词典,使得后期难以对词典、模型进行维护或更新;而若缩小词典的长度,
那么则会出现未登录词(out of vocabulary,oov)的问题,使得若输入某个不在词典中的域名时,难以获取正确的域名嵌入向量,从而无法进行后续的分类、聚类等操作;该问题发生的主要原因在于,word2vec模型本质上是一个静态的模型;所谓静态指的是模型训练好之后每个单词的表达就固定住了,而对输入单词做推理时也只是取出了该词(如果存在于字典中)的固定表示向量;因此存在的另一个缺点则是,一旦模型训练更新好,以后使用的时候,不论新查询序列中上下文域名是什么,这个域名的嵌入向量都不会跟着上下文场景的变化而改变,这样一来,在检测dga域名的时候,就有可能会发生误判。
47.对于两阶段式模型重训练问题,由于模型的训练和部署均为两阶段(word2vec训练得到词向量 分类器判断是否为dga),当第一阶段的域名嵌入向量发生变化时,后接的分类器也需要重新训练。这样一来,即使word2vec模型可以使用增量式算法进行更新,整个流程仍然不是完全的增量式流程。
48.而本发明利用可增量式训练的word2vec算法学习域名查询序列中的隐层语义关联,构建静态的域名嵌入向量模型,并对每个域名的嵌入向量进行分类,以识别dga域名,重点解决了静态词典问题和两阶段式模型重训练的问题。
49.对应地,图1是本发明提供的一种dga域名检测方法的流程示意图之一,如图1所示,包括:
50.s1,获取源ip地址在预设时间窗口内的域名查询序列;
51.s2,将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
52.具体地,为了更精确地对恶意域名进行检测,预先设定一个固定长度的窗口,将在该时间窗口范围内的源ip地址对应的域名进行采集,形成域名查询序列,将该域名查询序列输入至已训练完成的域名检测模型中,获得对该域名查询序列中的域名的分类检测结果,识别其中的恶意域名,此处,本发明实施例采用的域名检测模型是基于自适应增量学习算法,以及端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
53.本发明实施例通过基于改进的transformer架构,采用自适应式的动态增量学习算法和端到端的域名序列标注算法,具有流程简单、周期短和易于部署的优点。
54.基于上述实施例,所述获取源ip地址在预设时间窗口内的域名查询序列,具体包括:
55.按照所述预设时间窗口的长度截取所述源ip地址对应的若干个域名,得到所述域名查询序列。
56.具体地,本发明实施例针对域名数据庞大的特点,设定固定时间窗口长度,对待检测的源ip地址在该时间窗口内的多个域名进行截取,得到域名查询序列。
57.本发明实施例针对域名数据复杂的特点,针对性地进行了域名截取,为后续数据分析和预测提供了有力的数据支持。
58.基于上述任一实施例,所述域名检测模型,通过以下步骤获得:
59.获取少量标注域名查询数据以及大量未标注域名查询数据;
60.对所述大量未标注域名查询数据进行无监督的预训练,得到可获取域名动态特征向量的transformer预训练模型;
61.在所述transformer预训练模型的尾部按照序列标注原则构造域名分类器;
62.使用所述少量标注域名查询数据对所述域名分类器进行端到端训练,得到所述域名检测模型。
63.其中,所述获取少量标注域名查询数据以及大量未标注域名查询数据,具体包括:
64.获取若干域名查询数据,从所述若干域名查询数据中抽取预设数量的具有时间连续性且包含恶意域名的数据进行标注,得到所述少量标注域名查询数据,以及除去所述少量标注域名查询数据之后的所述大量未标注域名查询数据。其中,所述对所述大量未标注域名查询数据进行无监督的预训练,得到获取域名动态特征向量的transformer预训练模型,具体包括:
65.在所述域名查询序列中将若干域名进行掩盖,通过上下文预测掩盖的若干域名;
66.选取占有预设比例的连续域名序列和占有所述预设比例的不连续域名序列,判断所述连续域名序列和所述不连续域名序列是否构成时间上的上下文关系,得到结合上下文语境后的增强语义向量。
67.其中,所述在所述transformer预训练模型的尾部按照序列标注原则构造域名分类器,具体包括:
68.获取所述transformer预训练模型经过softmax处理后得到的矩阵,所述矩阵包括序列长度和类别数量;
69.基于所述序列长度和所述类别数量,得到任一待预测域名查询序列中任一个词对应的任一个预测标签;
70.基于所述任一个预测标签,得到若干待预测域名查询序列从起始标签到结束标签之间的所有不同标签之间的若干转移分数;
71.由所述若干转移分数得到的所述若干待预测域名查询序列的若干序列得分进行综合,输入至softmax得到每个序列对应的概率;
72.将所述概率转化为对数概率并进行最大化,得到所述任一待预测域名查询序列对应的预设标签序列;
73.求解所述预设标签序列中分数最高的标签序列,根据所述分数最高的标签序列对所述transformer预训练模型进行标注,得到所述域名分类器。
74.其中,所述使用所述少量标注域名查询数据对所述域名分类器进行端到端训练,得到所述域名检测模型,具体包括:
75.对所述域名分类器中域名词典的每个域名计算预设衡量参数值,基于所述预设衡量参数值衡量每个域名对应的重要程度;
76.待有预设数量的新域名数据进入所述域名词典时,将所述域名词典中具有最小的所述预设衡量参数值对应的域名替换为所述预设数量的新域名数据,得到所述域名检测模型。
77.具体地,如图2所示,针对域名检测模型的算法训练主要分为两个阶段,一是预训练阶段:为充分利用海量的未标注dns域名查询数据,首先在第一阶段利用未标注数据进行无监督的预训练;二是微调阶段:在transformer特征提取器尾部构造基于序列标注原理的序列域名分类器,使用有标注数据进行端到端训练,而在后续的推理阶段,与微调阶段类似,使用transformer特征提取器加上序列分类器进行端到端的批量预测。
78.此处,整体的训练思路为将同一个ip地址在一段时间内的dns查询序列看作一个“句子”,其中的每个域名则是“句子”中的一个单词,从而可将自然语言处理领域的词嵌入问题转化为dga检测领域的“域名嵌入”问题。
79.首先是将训练数据以源ip地址为主键分为不同组,每个组内以前述设定的预设时间窗口t为间隔划分为多个句子。
80.进入预训练阶段,使用大批量的无监督dns数据进行预训练,此处包括比较老的数据和更新的数据,具体的训练任务为:
81.1)掩模语言模型:即在dns域名查询序列中掩盖住若干域名,要求模型通过上下文预测该域名;
82.2)序列关系预测:选取预设比例,例如50%连续的域名序列和50%不构成连续关系的域名序列,要求模型判断输入的两个域名序列是否构成时间上的上下文关系。
83.可以理解的是,此处输入的为给定时间窗口t内的dns域名查询序列,输出为序列中每个域名结合上下文语境后的增强语义向量。
84.然后是微调阶段,在网络主干尾部按照序列标注(sequence labeling)的思路构造有监督的域名分类器,对输入序列的每个域名进行“词性”的分类,序列标注是自然语言处理中一项重要的任务,简而言之就是对一个一维线性输入序列,给线性序列中的每个元素打上标签集合中的某个标签,其本质上是对线性序列中每个元素根据上下文进行分类的问题,具体步骤为transformer 条件随机场(conditional random fields,crf):
85.transformer的输出经过softmax后得到的是一个n*k的矩阵p,其中n是序列长度,k是类别数量。因此p_{i,j}表示第i个词的第j个预测标签.对于某一预测序列y=(y1,y2,...,yn),可以定义如下分数:
[0086][0087]
其中a是转移分数,其中a_{i,j}表示从标签i转移到标签j的分数,y_0和y_{n 1}表示《start》和《end》标签。
[0088]
因此,转移矩阵a是一个k 2的方阵,将每个可能的序列得分s综合起来输入到softmax中,得到每个序列对应的概率:
[0089][0090]
在训练期间,将会最大化正确标签的对数概率,即:
[0091][0092]
其中,y_x表示输入序列x对应的所有可能的标签序列,通过最大化上式,模型将会学习有效正确的标签顺序。
[0093]
进一步地,在解码时,求解使得分数s最高的标签序列:
[0094][0095]
由于此处的转移矩阵只考虑了bigram的相互作用.所以在优化和解码时可以直接
用动态规划算法计算。
[0096]
可以理解的是,由于输入为一段域名序列,那么一旦发生了oov,就可以用oov的上下文来推导该未登录词的向量表示。本算法采用的方法为,将固定窗口大小的上下文词向量相加来表示该未登录词。
[0097]
对于训练过程中的如何实现增量式的transformer训练,不断使用新数据对模型进行无监督的预训练和有监督的微调,对于时间上较早的数据中,部分恶意域名有一定概率已经失效;而部分正常域名也有一定概率被僵尸服务器再次利用来构建僵尸网络。因而,在微调的过程中,新数据在老数据训练出的参数的基础上不断微调,降低旧数据的重要性,提升新数据的重要性,使得模型可以增量式地扩展。
[0098]
在上述微调的过程中,词典也随之动态变化,首选是词典中的每个域名计算一个time_scale_weight,用来衡量该域名在词典中的重要性,明显地,越新的域名重要性越高;扩充新数据时,根据新增域名的数量k,在原词典中替换掉time_scale_weight最小的k个域名,从而保持词典的更新,由于这k个被替换掉的域名在原模型中的作用很小,基本上无关紧要,因而可以使用新数据进行替换。
[0099]
本发明实施例基于改进的transformer架构,采用自适应式的动态增量学习算法和端到端的域名序列标注算法,不仅能够解决无法增量式迭代模型的问题,更能够解决存在的静态词典和两阶段重训问题,并由于采用了端到端结构,还具备流程简单、周期短和易于部署的优点。
[0100]
下面对本发明提供的dga域名检测系统进行描述,下文描述的dga域名检测系统与上文描述的dga域名检测方法可相互对应参照。
[0101]
图3是本发明提供的一种dga域名检测系统的结构示意图,如图3所示,包括:获取模块31和处理模块32;其中:
[0102]
获取模块31用于获取源ip地址在预设时间窗口内的域名查询序列;处理模块32用于将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
[0103]
本发明实施例通过基于改进的transformer架构,采用自适应式的动态增量学习算法和端到端的域名序列标注算法,具有流程简单、周期短和易于部署的优点。
[0104]
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行dga域名检测方法,该方法包括:获取源ip地址在预设时间窗口内的域名查询序列;将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
[0105]
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0106]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的dga域名检测方法,该方法包括:获取源ip地址在预设时间窗口内的域名查询序列;将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
[0107]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的dga域名检测方法,该方法包括:获取源ip地址在预设时间窗口内的域名查询序列;将所述域名查询序列输入至预先训练好的域名检测模型中,得到所述域名查询序列中每个域名的检测结果;其中,所述域名检测模型是基于自适应增量学习算法和端到端域名序列标注算法,对transformer特征提取器进行训练所得到的。
[0108]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0109]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0110]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献