DGA域名实时检测方法和装置与流程

文档序号:17727141发布日期:2019-05-22 02:35阅读:626来源:国知局
DGA域名实时检测方法和装置与流程

本发明涉及网络安全技术领域,特别涉及一种dga域名实时检测方法和装置。



背景技术:

僵尸网络(botnet)是指采用一种或多种传播手段,将大量僵尸主机(bot)感染病毒,从而在主控者(botmaster)和被感染主机之间,通过命令与控制服务器(commandandcontrolserver,简称c2服务器)形成的可一对多控制的网络,其目的是尽可能地感染更多的主机。不论是对网络安全运行还是用户数据安全的保护来说,僵尸网络都是极具威胁的隐患。

目前,攻击者操纵僵尸网络通常会使用多个域名的方式来连接至c2服务器,从而达到操控受害者机器的目的。这些域名通常会被编码在恶意程序中,这也使得攻击者具有了很大的灵活性,他们可以轻松地更改这些域名以及ip。该连接方式最大的优势是用极为简单的代码便可实现,劣势是极易被政府检测到。域名生成算法(domaingenerationalgorithms,简称dga)是一种利用随机字符来生成c&c域名(简称dga域名),从而逃避域名黑名单检测的技术手段,通过dga,攻击者可以在短时间内自动产生成千上万的域名,这样就可有效地避开域名黑名单列表以及政府的检测。dga的出现对网络安全带来了极大威胁,例如前段时间席卷全球的勒索病毒cryptolocker就采用了这种域名生成算法,因此如何实现对dga恶意域名进行有效检测一直是网络安全领域的研究目标。

为了实现这一目标,现有的一种检测手段是通过收集dga域名样本以及对dga进行逆向,来预测哪些域名将来可能会被生成和预注册,并将它们列入黑名单中。但是,这种方案存在一个明显的弊端,由于dga可以在短时间内生成成千上万的域名,网络安全人员不可能做到每天都重复收集域名样本和更新黑名单列表。

另一种经典的检测技术是对域名数据进行特征提取和分类来实现,其主要包括两个阶段,即特征工程和分类算法。特征工程是其中最为烦琐的工作,其主要包含两个方面:

1)基于过滤的方法:采用alexa前100万个网站和黑名单对域名进行检测;

2)基于统计特征的方法:典型的域名统计特征例如包括域名长度、二元语法、n元语法、信息熵、生存周期和字符频率分布等。

申请公布号为cn105577660a的中国专利申请提出了一种基于随机森林的dga域名检测方法。申请公布号为cn105897714a的中国专利申请提出了一种基于dns流量特征的僵尸网络检测方法。申请公布号为us2013/0191915a1的美国专利申请也提出了一种dga域名检测方法和系统。这些专利申请均是采用上述经典的基于统计特征的特征工程方法来实现对dga域名的检测。这种检测方式存在一些缺点,例如:过度依赖人工特征工程,实现难度较大;检测率偏低,误报率较高;检测速度慢,不能实现实时检测。

随着机器学习技术尤其是深度学习技术近年来的发展,针对上述经典的dga域名检测技术的缺点,研究人员开始探索利用深度学习技术检测dga域名的解决方案。公开文献(“predictingdomaingenerationalgorithmswithlongshort-termmemorynetworks”,woodbridgejetal.,https://arxiv.org/abs/1611.00791,2016年11月)提提出了一种使用长短期记忆网络(lstm)检测dga域名的方法,该方法基于训练数据集训练lstm模型,将域名字符序列输入该lstm模型进行特征抽取,随后基于逻辑回归分类进行分类和预测。lstm模型是循环神经网络的特殊类型,可以学习长期依赖信息,如文本和语言等,该方法基于lstm模型进行自动特征提取,省去了特征工程这一繁琐步骤,并且不需要依赖上下文信息,一定程度上实现了对dga域名的实时检测。但是,这种方法需要大量的训练数据来训练lstm模型,且训练过程中需要对模型的参数权重进行调整,模型训练的计算强度较大;此外,这种模型对训练集中的类不平衡性较为敏感,对于缺乏足够训练集支持的一些dga域名族的检测能力也存在不足。



技术实现要素:

本发明一方面提供一种dga域名实时检测方法,其特征在于包括以下步骤:

步骤s1,将原始域名转换为多维数值向量;

步骤s2,将所述多维数值向量输入基于imagenet数据集预训练好的深度学习模型,生成域名特征;

步骤s3,基于生成的域名特征训练域名分类器;

步骤s4,基于训练得到的域名分类器对dga域名进行分类和预测。

在一些实施方式中,所述步骤s1将原始域名转换为多维数值向量包括以下步骤:

步骤s11,将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入;

步骤s12,将所述多维图像字节矩阵的尺寸缩小到预定大小。

在一些实施方式中,所述步骤s2之前进一步包括:

步骤s2’,对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

在一些实施方式中,所述步骤s2中生成域名特征进一步包括:

抽取所述预训练好的深度学习模型的倒数第三层来生成域名特征。

在一些实施方式中,所述基于imagenet数据集预训练好的深度学习模型包括:alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型。

在一些实施方式中,所述域名分类器包括决策树模型、支持向量机模型、逻辑回归模型或随机森林模型。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算两个域名之间的相似度距离。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算域名族中域名的特征平均值作为所述域名族的特征。

本发明另一方面提供一种dga域名实时检测装置,其特征在于包括以下模块:

转换模块,用于将原始域名转换为多维数值向量;

深度学习模块,用于将所述多维数值向量输入到基于imagenet数据集预训练好的深度学习模型,生成域名特征;

分类器训练模块,用于基于生成的域名特征训练域名分类器;

预测模块,用于基于训练得到的域名分类器对dga域名进行分类和预测。

在一些实施方式中,所述转换模块包括:

预处理单元,用于将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入;

调整单元,用于将所述多维图像字节矩阵的尺寸缩小到预定大小。

在一些实施方式中,所述检测装置进一步包括:

归一化模块,用于对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

在一些实施方式中,所述深度学习模块抽取所述预训练好的深度学习模型的倒数第三层来生成域名特征。

在一些实施方式中,所述基于imagenet数据集预训练好的深度学习模型包括:alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型。

在一些实施方式中,所述域名分类器包括决策树模型、支持向量机模型、逻辑回归模型或随机森林模型。

在一些实施方式中,所述分类器训练模块包括:

相似度计算单元,用于计算两个域名之间的相似度距离。

在一些实施方式中,所述分类器训练模块包括:

特征计算单元,用于计算域名族中域名的特征平均值作为所述域名族的特征。

本发明另一方面提供一计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令用于在计算机中执行以下步骤:

步骤s1,将原始域名转换为多维数值向量;

步骤s2,将所述多维数值向量输入基于imagenet数据集预训练好的深度学习模型,生成域名特征;

步骤s3,基于生成的域名特征训练域名分类器;

步骤s4,基于训练得到的域名分类器对dga域名进行分类和预测。

在一些实施方式中,所述步骤s1将原始域名转换为多维数值向量包括以下步骤:

步骤s11,将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入;

步骤s12,将所述多维图像字节矩阵的尺寸缩小到预定大小。

在一些实施方式中,所述步骤s2之前进一步包括:

步骤s2’,对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

在一些实施方式中,所述步骤s2中生成域名特征进一步包括:

抽取所述预训练好的深度学习模型的倒数第三层来生成域名特征。

在一些实施方式中,所述基于imagenet数据集预训练好的深度学习模型包括:alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型。

在一些实施方式中,所述域名分类器包括决策树模型、支持向量机模型、逻辑回归模型或随机森林模型。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算两个域名之间的相似度距离。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算域名族中域名的特征平均值作为所述域名族的特征。

本发明另一方面提供一种计算机装置,其包括处理器和存储器,所述存储器存储有计算机程序指令,其特征在于所述计算机程序指令在处理器运行时用于执行以下步骤:

步骤s1,将原始域名转换为多维数值向量;

步骤s2,将所述多维数值向量输入基于imagenet数据集预训练好的深度学习模型,生成域名特征;

步骤s3,基于生成的域名特征训练域名分类器;

步骤s4,基于训练得到的域名分类器对dga域名进行分类和预测。

在一些实施方式中,所述步骤s1将原始域名转换为多维数值向量包括以下步骤:

步骤s11,将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入;

步骤s12,将所述多维图像字节矩阵的尺寸缩小到预定大小。

在一些实施方式中,所述步骤s2之前进一步包括:

步骤s2’,对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

在一些实施方式中,所述步骤s2中生成域名特征进一步包括:

抽取所述预训练好的深度学习模型的倒数第三层来生成域名特征。

在一些实施方式中,所述基于imagenet数据集预训练好的深度学习模型包括:alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型。

在一些实施方式中,所述域名分类器包括决策树模型、支持向量机模型、逻辑回归模型或随机森林模型。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算两个域名之间的相似度距离。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算域名族中域名的特征平均值作为所述域名族的特征。

在本发明的一些实施方式中,利用基于imagenet大规模图像数据集已经预训练好的优秀深度学习模型的知识优势,通过域名数据的词嵌入转换和深度学习模型的迁移学习首次将基于imagenet数据集预训练的深度学习模型从视觉图像分类检测领域用于对dga域名的实时检测,避免了在dga域名检测中对深度学习模型的高强度训练和参数权重调整过程,具有较高检测率和较低的误报率,并且具有更快的检测速度。

附图说明

图1为本发明一个实施方式的dga域名实时检测方法的流程示意图;

图2为本发明另一个实施方式的dga域名实时检测方法的流程示意图;

图3为本发明另一个实施方式的dga域名实时检测方法的流程示意图;

图4为本发明进行域名转换的一个实施方式的应用示例图;

图5为本发明一个实施方式的dga域名实时检测装置的结构示意图;

图6为本发明一个实施方式的转换模块的结构示意图;

图7为本发明另一个实施方式的dga域名实时检测装置的结构示意图;

图8为本发明一个实施方式的分类器训练模块的结构示意图;

图9为本发明实施例的dga域名检测速度性能的比较图。

具体实施方式

下面结合附图对本发明进行清楚、完整地说明。

图1为本发明一个实施方式的dga域名实时检测方法的流程示意图。如图1所示,该方法包括如下步骤:

步骤s1,将原始域名转换为多维数值向量;

步骤s2,将所述多维数值向量输入到基于imagenet数据集预训练好的深度学习模型,生成域名特征;

步骤s3,基于生成的域名特征训练域名分类器;

步骤s4,基于训练得到的域名分类器对dga域名进行分类和预测。

本发明实施例中,imagenet数据集是目前著名的一个计算机视觉系统识别项目的名称,它是目前世界上用于图像识别最大的数据库,其包含1000万以上的具有手工标注的图片以及2万多的对象类别。基于该大规模数据集已经发展和训练出了一些优秀的深度学习模型,例如alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型等。目前,这些优秀的深度学习模型主要应用于计算机视觉识别、语音识别、自然语言处理等技术领域,并在这些领域取得了较大成功,但尚未发现有应用于计算机网络安全领域尤其是dga域名检测的先例。

因此,如何将这些基于imagenet数据集已经预训练好的深度学习模型应用到dga域名检测问题上,存在两个主要的难点:

首先,作为学习和分类对象的dga域名本质上是一种字符类型的数据,它无论是尺寸大小还是内容上均有别于imagenet数据集中的原始图片数据;

其次,对域名进行检测,需要处理的域名数据能达到百万级,基于这些海量的域名数据重新训练深度学习模型将面临巨大的计算强度,耗费大量的时间和资源。

本发明实施例针对上述两个难点,首先,通过词嵌入技术将字符类型的原始域名数据转换成多维数值向量的图像格式,使得域名数据能够像imagenet数据集中图像数据一样能被基于imagenet数据集预训练好的深度学习模型处理。词嵌入是自然语言处理中的名词,从数学上就是定义为一个从文档空间投影到数值向量空间(通常是低维度的)的映射。该映射为一个单射函数,即每个y只有唯一的x对应,反之亦然。通过词嵌入技术,能够将文档类型数据进行数值化处理,从而将文档分析问题转化成相对应的数值向量的问题。

其次,借助迁移学习理论,直接将基于imagenet数据集已经预训练好的深度学习模型的参数权重迁移到针对经过词嵌入转换后的域名数据集的目标学习模型中,从而有效利用了基于imagenet数据集训练演进出的优秀深度学习模型的知识经验,避免了基于大规模域名数据对深度学习模型的高强度训练和参数权重调整过程,同时也使得对dga域名的检测在确保实时性的性能要求时,也具有较高检测率和较低的误报率。

在一些实施方式中,所述基于imagenet数据集预训练的深度学习模型包括:alexnet模型、vgg模型、squeezenet模型、inception模型或resnet模型。

在一些实施方式中,所述步骤s2中生成域名特征进一步包括:抽取所述预训练的深度学习模型的倒数第三层来生成域名特征。这是因为预训练的深度学习模型中,顶层的输出层通常存在过拟合问题,比顶层输出层更低层的特征往往更适用于进行分类。

在一些实施方式中,所述域名分类器包括决策树模型、支持向量机模型、逻辑回归模型或随机森林模型。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器进一步包括:计算两个域名之间的相似度距离。对两个域名之间进行欧式距离的相似度评分有助于提高分类的精确度。

在一些实施方式中,所述步骤s3中基于生成的域名特征训练域名分类器包括:计算域名族中域名的特征平均值作为所述域名族的特征。在现实世界中,dga域名具有多个域名族,对于这些域名族的检测,本发明实施例采用计算域名族中域名的特征平均值作为所述域名族的特征,以此可以实现对dga域名族的分类检测。

图2为本发明另一个实施方式的dga域名实时检测方法的流程示意图。如图2所示,在图1所示实施例的基础上,本发明实施例中所述将原始域名转换为多维数值向量的步骤s1包括:

步骤s11,将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入;

步骤s12,将所述多维图像字节矩阵的尺寸缩小到预定大小。

本发明实施例中,所述步骤s2包括将所述多维图像字节矩阵输入到基于imagenet数据集预训练好的深度学习模型,生成域名特征。

本发明实施例中,将原始域名转换为多维图像字节矩阵,由于域名字符串的长度大小相对于一般图像数据而言尺寸更小,将转换后的图像字节矩阵的大小缩小到预定大小,可以显著降低对内存空间的占用。

图3为本发明另一个实施方式的dga域名实时检测方法的流程示意图。如图3所示,该方法在图2所示实施例的步骤s2之前进一步包括以下步骤:

步骤s2’,对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

本发明实施例中,通过对经过词嵌入转换后的多维图像字节矩阵进行归一化处理,使得域名数据的向量表征更加标准和规范,进一步提高域名的分类准确性。

图4为本发明进行域名转换的一个实施方式的应用示例图。如图4所示,本发明实施例中,以一个dga生成域名zzzzanerraticallyqozaw.com为例,首先将该域名字符串通过词嵌入转换为[224×224×3]的图像字节矩阵,由于域名字符串的最大长度通常不超过25,我们可以将所述[224×224×3]的图像字节矩阵的尺寸进一步缩小到[25×25×3],最后输入基于imagenet数据集预训练好的alexnet深度学习模型生域名特征。由此,将转换后的图像字节矩阵的尺寸缩小到预定大小,可以显著降低内存空间的占用。

图5是本发明一个实施方式的dga域名实时检测装置100的结构示意图。如图5所示,dga域名实时检测装置100包括如下模块:

转换模块10,用于将原始域名转换为多维数值向量;

深度学习模块20,用于将所述多维数值向量输入到基于imagenet数据集预训练好的深度学习模型,生成域名特征;

分类器训练模块30,用于基于生成的域名特征训练域名分类器;

预测模块40,用于基于训练得到的域名分类器对dga域名进行分类和预测。

图6是本发明一个实施方式的转换模块10的结构示意图。如图6所示,转换模块10包括如下单元:

预处理单元11,用于将原始域名的字符串转换为多维图像字节矩阵,以匹配基于imagenet数据集预训练好的深度学习模型的输入。

调整单元12,用于将所述多维图像字节矩阵的尺寸缩小到预定大小。

图7是本发明另一个实施方式的dga域名实时检测装置200的结构示意图。如图7所示,dga域名实时检测装置200在图5所示dga域名实时检测装置100的基础上进一步包括如下模块:

归一化模块50,用于对所述缩小到预定大小的多维图像字节矩阵进行归一化处理。

图8是本发明一个实施方式的分类器训练模块30的结构示意图。如图8所示,分类器训练模块30包括如下单元:

相似度计算单元31,用于计算两个域名之间的相似度距离;

特征计算单元32,用于计算域名族中域名的特征平均值作为所述域名族的特征。

本发明实施例选取了alexa前100万条域名数据作为非dga域名,并选取真实的3300万条dga恶意域名作为测试数据,这些dga恶意域名包含64个域名族。分别采用基于imagenet数据集预训练好的多种深度学习模型对上述数据进行分类检测,实验结果如表1所示。可见,本发明实施例对于dga域名检测的真阳性率可以高达99.863%,准确率达到98.568%。

图9为本发明实施例的dga域名检测速度性能的比较图。如图9所示,利用gpu的图像数据处理能力,当采用一个gpu运行本发明所述检测方法时每天处理的域名数据量是采用一个cpu运行时处理的域名数量的两倍以上,当采用两个gpu运行本发明所述检测方法时,每天能处理的域名数据量最高可以达到500万条以上。

表1.模型检测的实验结果

上述实验结果表明,本发明的一些实施方式首次将基于imagenet数据集预训练好的深度学习模型从视觉图像分类检测领域用于对dga域名的实时检测,避免了在dga域名检测中对深度学习模型的高强度训练和参数权重调整过程,具有较高检测率和较低的误报率,并且具有更快的检测速度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1