掌桥专利:专业的专利平台
掌桥专利
首页

域名检测方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:58:26


域名检测方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种域名检测方法、装置、设备及存储介质。

背景技术

随着互联网技术的发展,僵尸网络(botnet)已成为互联网上大多数计算机面临的主要威胁。

一种复杂的僵尸网络,使用域名生成算法(Domain Generation Algorithm,DGA)在域名服务的域名流动中自动生成大量伪随机域名,从而使恶意软件能够与命令和控制服务器通信。DGA通过使用随机种子生成大量的域名,该种子可以是日期、数字或任意随机字符。DGA生成器经常使用不同的种子,由此不断创建不同的域名,因此使用黑名单策略在检测伪随机域名时效率较低。若使用传统机器学习方法检测伪随机域名,其提取特征因为算法公开,存在着容易被攻击者绕过的问题。

如何提高检测伪随机域名的效率,是一个亟待解决的问题。

发明内容

本申请提供一种域名检测方法、装置、设备及存储介质,用以解决如何提高检测伪随机域名的效率的技术问题。

第一方面,本申请提供一种域名检测方法,包括:

获取待检测域名,所述待检测域名包括至少一个字符;

对所述待检测域名进行预处理,得到待处理特征,所述待处理特征包括所述待检测域名的词嵌入特征;

通过域名检测模型对所述待处理特征进行处理,得到所述待检测域名的初级检测结果,所述域名检测模型为预先训练好的模型,所述域名检测模型用于检测待检测域名为正常域名或伪随机域名;

通过过滤规则算法对所述初级检测结果进行核验,得到目标检测结果,所述过滤规则算法是基于对所述待检测域名的长度处理的算法。

可选地,所述域名检测模型包括卷积神经网络模型和长短期记忆网络模型;通过域名检测模型对所述待处理特征进行处理,得到所述待检测域名的初级检测结果,包括:

通过所述卷积神经网络模型对所述待处理特征进行处理,得到空间特征,所述空间特征包括待检测域名的空间特征,所述空间特征指示所述待处理特征中与字符的位置和顺序无关的局部特征;

通过所述长短期记忆网络模型对所述待处理特征进行处理,得到目标序列特征,所述序列特征包括待检测域名的序列特征,所述序列特征指示所述待处理特征中字符按照一定的顺序排列而形成的特征;

根据所述空间特征和所述序列特征,确定所述待检测域名的初级检测结果。

可选地,通过所述长短期记忆网络模型对所述待处理特征进行处理,得到目标序列特征,包括:

通过第一子长短期记忆网络模型对所述待处理特征进行处理,得到子序列特征;

通过自注意力模型对子目标序列特征进行处理,得到权重序列特征;

通过第二子长短期记忆网络模型对所述权重序列特征进行处理,得到所述目标序列特征。

可选地,根据所述空间特征和所述序列特征,确定所述待检测域名的初级检测结果,包括:

通过第一全连接层对所述空间特征和所述序列特征进行处理,得到非线性特征;

通过随机失活层和第二全连接层对所述非线性特征进行处理,得到所述待检测域名的初级检测结果。

可选地,所述目标检测结果包括正常域名和伪随机域名;通过过滤规则算法对所述初级检测结果进行核验,得到目标检测结果,包括;

判断所述初级检测结果是否为伪随机域名;

若否,则确定所述目标检测结果为正常域名;

若是,则获取所述待检测域名的第一长度、第二长度、第三长度和全长度,其中,所述第一长度为所述待检测域名的字符串去除所有数字后的长度,所述第二长度为所述待检测域名中的英语词根长度,所述第三长度为所述待检测域名中的拼音长度,所述全长度为所述待检测域名的全部字符长度;

根据所述第一长度、所述第二长度、所述第三长度和所述全长度,确定所述目标检测结果。

可选地,根据所述第一长度、所述第二长度、所述第三长度和所述全长度,确定所述目标检测结果,包括:

判断是否同时满足所述第一长度大于所述全长度与第一预设系数的乘积,且所述第二长度与所述第三长度的和小于所述全长度与第二预设系数的乘积两个条件;

若是,则确定所述目标检测结果为伪随机域名;

若否,则确定所述目标检测结果为正常域名。

可选地,对所述待检测域名进行预处理,得到待处理特征,包括:

对所述待检测域名进行数字标记化处理,得到数字化域名;

通过嵌入层对所述数字化域名进行映射处理,得到所述待处理特征。

第二方面,本申请提供一种域名检测装置,包括:

获取模块,用于获取待检测域名,所述待检测域名包括至少一个字符;

处理模块,用于对所述待检测域名进行预处理,得到待处理特征,所述待处理特征包括所述待检测域名的词嵌入特征;

处理模块,还用于通过域名检测模型对所述待处理特征进行处理,得到所述待检测域名的初级检测结果,所述域名检测模型为预先训练好的模型,所述域名检测模型用于检测待检测域名为正常域名或伪随机域名;

核验模块,用于通过过滤规则算法对所述初级检测结果进行核验,得到目标检测结果,所述过滤规则算法是基于对所述待检测域名的长度处理的算法。

一种可能的实现方式中,处理模块具体用于:

通过所述卷积神经网络模型对所述待处理特征进行处理,得到空间特征,所述空间特征包括待检测域名的空间特征,所述空间特征指示所述待处理特征中与字符的位置和顺序无关的局部特征;

通过所述长短期记忆网络模型对所述待处理特征进行处理,得到目标序列特征,所述序列特征包括待检测域名的序列特征,所述序列特征指示所述待处理特征中字符按照一定的顺序排列而形成的特征;

根据所述空间特征和所述序列特征,确定所述待检测域名的初级检测结果。

一种可能的实现方式中,处理模块具体用于:

通过第一子长短期记忆网络模型对所述待处理特征进行处理,得到子序列特征;

通过自注意力模型对子目标序列特征进行处理,得到权重序列特征;

通过第二子长短期记忆网络模型对所述权重序列特征进行处理,得到所述目标序列特征。

一种可能的实现方式中,处理模块具体用于:

通过第一全连接层对所述空间特征和所述序列特征进行处理,得到非线性特征;

通过随机失活层和第二全连接层对所述非线性特征进行处理,得到所述待检测域名的初级检测结果。

一种可能的实现方式中,核验模块具体用于:

判断所述初级检测结果是否为伪随机域名;

若否,则确定所述目标检测结果为正常域名;

若是,则获取所述待检测域名的第一长度、第二长度、第三长度和全长度,其中,所述第一长度为所述待检测域名的字符串去除所有数字后的长度,所述第二长度为所述待检测域名中的英语词根长度,所述第三长度为所述待检测域名中的拼音长度,所述全长度为所述待检测域名的全部字符长度;

根据所述第一长度、所述第二长度、所述第三长度和所述全长度,确定所述目标检测结果。

一种可能的实现方式中,核验模块具体用于:

判断是否同时满足所述第一长度大于所述全长度与第一预设系数的乘积,且所述第二长度与所述第三长度的和小于所述全长度与第二预设系数的乘积两个条件;

若是,则确定所述目标检测结果为伪随机域名;

若否,则确定所述目标检测结果为正常域名。

一种可能的实现方式中,处理模块具体用于:

对所述待检测域名进行数字标记化处理,得到数字化域名;

通过嵌入层对所述数字化域名进行映射处理,得到所述待处理特征。

第三方面,本申请提供了一种电子设备,包括:

处理器和存储器;

存储器存储计算机执行指令;

处理器执行存储器存储的计算机执行指令,使得电子设备执行第一方面中任一项的方法。

第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项的方法。

本实施例提供了一种域名检测方法、装置、设备及存储介质,该方法首先获取待检测域名;接着,对所述待检测域名进行预处理,得到待处理特征;随后,通过域名检测模型对所述待处理特征进行处理,得到所述待检测域名的初级检测结果;最后,通过过滤规则算法对所述初级检测结果进行核验,得到目标检测结果。该方法通过域名检测模型对待检测域名进行检测,得到初级检测结果,并通过过滤规则算法对所述初级检测结果进行核验,提升了伪随机域名的检测效率,同时保证了目标检测结果的准确率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请提供的域名检测方法的具体的应用场景图;

图2a为本申请实施例提供的域名检测方法流程图一;

图2b为本申请实施例提供的域名检测模型训练示意图;

图3a为本申请实施例提供的域名检测方法流程图二;

图3b为本申请实施例提供的域名检测模型检测架构;

图4为本申请实施例提供的域名检测方法流程图三;

图5为本申请实施例提供的一种域名检测装置的结构示意图;

图6为本申请实施例提供一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

图1为本申请提供的域名检测方法的具体的应用场景图。如图1所示,为了追踪和封锁C&C服务器,需要将对域名服务的域名流动中的大量域名进行检测,确定伪随机域和正常域名。

其中,域名服务(Domain Name System,DNS)是互联网中的一种分布式命名系统,它用于将易于记忆的域名(例如www.example.com)映射为IP地址(例如192.0.2.1)。而域名流动中的大量伪随机域名是僵尸网络利用DGA生成大量虚假域名来隐藏其真正的命令与控制(Command and Control,C&C)服务器的域名。这是一种常见的避免被检测和封锁的策略。恶意软件感染了大量计算机后,这些计算机会成为僵尸,并连接到C&C服务器来接收命令和指令。为了避免被网络安全系统检测到,一般会使用DGA生成大量虚假域名,这些域名实际上并不对应真正的C&C服务器。

僵尸网络是一种网络安全威胁,它是由大量被恶意软件感染的计算机(称为僵尸计算机)组成的网络。这些被感染的计算机可能是个人用户的电脑、服务器、物联网设备或其他任何联网设备。僵尸网络是当前最常用的网络攻击机制,例如分布式拒绝服务攻击(DDoS)、垃圾邮件、钓鱼数据等。

在现有技术中,可以从DNS过滤和DNS日志分析等多种途径,进行伪随机域名检测。但上述方法存在高噪音率,并且需要大量的计算资源,复杂的DGA也能够规避传统的检测方法,并成功与C&C进行通信。目前现有的机器学习和深度学习僵尸DGA域名检测技术,大部分聚焦于用更加复杂的算法模型或优化算法来加强检测的精度。然而,在实际应用场景中,单纯使用AI模型仍无法避免白样本数据量远与黑样本数据量比例不均衡造成的模型不准确以及误报数量非常多的问题。

本申请提供的域名检测方法,旨在解决现有技术的如上技术问题。

本申请提供了一种域名检测方法,该方法通过域名检测模型对待检测域名进行检测,得到初级检测结果,并通过过滤规则算法对初级检测结果进行核验,提升了伪随机域名的检测效率,同时保证了目标检测结果的准确率。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2a为本申请实施例提供的域名检测方法流程图一。如图2a所示,本实施例的方法,包括:

S201、获取待检测域名,待检测域名包括至少一个字符;

本申请实施例的执行主体可以为电子设备,也可以为设置在电子设备中的域名检测装置。可选地,域名检测装置可以通过软件实现,也可以通过软件和硬件的结合实现。电子设备可以为移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

本实施例中,待检测域名是需要确认是否是正常域名还是伪随机域名的域名。其中,域名是用于标识互联网上特定网络资源的易于记忆的字符串。它是用来代替复杂的IP地址(例如:192.0.2.1)来访问网站、服务器、邮件服务器等网络资源。域名由多个部分组成,按照从右向左的顺序依次分隔,每个部分用点号"."隔开。最右边的部分是顶级域(Top-Level Domain,TLD),例如".com"、".org"、".net"等。接下来是二级域(Second-LevelDomain,SLD),例如"example"、"google"、"amazon"等。再接下来是三级域(Third-LevelDomain,TLB)或子域名(Subdomain),例如"www"、"mail"、"blog"等。

具体的,可以采取多种方式获取待检测域名,例如,由执行主体向存储有多个待检测域名的数据库发送获取待检测域名的请求,由该数据库接收该请求后,发送包括待检测域名的响应至执行主体。本申请并不限制获取待检测域名的方法和形式。

S202、对待检测域名进行预处理,得到待处理特征,待处理特征包括待检测域名的词嵌入特征;

本实施例中,预处理是将待处理域名进行包括提取、数字化、填充和映射等操作。其中,提取待检测域名是指提取整个域名中的二级域名或者三级域名。二级域名的作用是帮助网站或组织更好地组织和管理其网站结构。三级域名通常用于将网站或特定的网络资源划分为更细粒度的子域。

在实际应用中,为了提高可控性并避免被迅速封锁,大多数僵尸网络会注册二级域名,但注册二级域名是有一定成本的,一些僵尸网络会使用动态域名服务生成三级域名以节省攻击成本,同一组织可能在一个攻击中或不同的攻击中同时使用这两种类型的域名。因此,二级域名和三级域名是被重点关注的,需要提取出来。

具体的,可以采取多种方式提取待检测域名,例如,如果全部域名中,只包括二级域名,提取二级域名部分;如果全部域名中,还包括三级域名,则首先判断二级域名是否属于动态域名服务提供商,若是,则提取三级域名部分,若不是,则提取最长的字符串。因为若二级域名属于动态域名服务提供商,则认为其为正常域名。

可选地,对待检测域名进行预处理,得到待处理特征,可以采用以下方法:

对待检测域名进行数字标记化处理,得到数字化域名;

通过嵌入层对数字化域名进行映射处理,得到待处理特征。

本实施例中,数字标记化是将待检测域名的每个字符替换为数字,以便域名检测模型处理。具体的,可以采用多种方式将待检测域名数字标记化,例如将待检测域名的不分大小写的字母字符(a-z)、数字(0-9)和特殊字符(-和_)映射为数字0到38。

在实际应用中,因为域名检测模型需要输入固定的数据维度的数据,因此将分类和数字标记化的待检测域名进行填充。具体的,可以首先确定待检测域名的最长的域名长度作为固定长度,随后对较短的待检测域名进行填充。也可以设置一个较大的固定长度,对所有的待检测域名进行填充。完成上述操作后,得到一个固定维度的向量。

本实施例中,映射是由嵌入层,将上述得到的固定维度的向量映射到一个固定维度的稠密向量,其中每个维度代表一个语义特征。实际上,若将字符作为单词,每个域名可以看作由字符组成的句子。该稠密向量即为词嵌入特征。

S203、通过域名检测模型对待处理特征进行处理,得到待检测域名的初级检测结果,域名检测模型为预先训练好的模型,域名检测模型用于检测待检测域名为正常域名或伪随机域名;

本实施例中,域名检测模型是用于检测待检测域名为正常域名或伪随机域名的模型,且该模型是预先训练好的模型。

本实施例中,域名检测模型是基于深度学习算法的网络模型,在深度学习算法中,首先使用字符级词嵌入作为模型的第一层,将待检测域名转换为数值的词嵌入特征,输入进神经网络模型框架中进行优化特征提取和分类。深度学习算法可以采用包括卷积神经网络和长短期记忆网络等。本申请中,采用卷积神经网络、长短期记忆网络以及自注意力机制相结合的方式构建域名检测模型,在域名检测模型中对待检测域名的不同部分给予不同的关注,有效提高了伪随机域名的检测效率。

图2b为本申请实施例提供的域名检测模型训练示意图。如图2b所示,在训练模型的过程中,同样需要对输入的待检测域名进行提取,数字标记化,填充以及映射等处理,随后输入域名检测模型中,完成模型的训练。在使用过程中,域名检测模型输出的初级检测结果还会再进行一次过滤,才能得到目标检测结果。

本实施例中,在域名检测模型的训练过程中,首先设置一个损失函数,用于衡量模型预测输出与真实标签之间的差异。目标是通过调整模型的参数,使损失函数的值最小化,从而使得模型的预测结果更加准确。训练过程中,模型接收输入数据,经过前向传播,将输入数据通过网络进行计算,最终得到输出结果。随后,将输出结果与真实标签进行比较,计算损失函数的值。

具体的,本申请可以采用二元交叉熵损失函数作为模型的损失函数,随后使用反向传播算法(Back Propagation,BP算法)来计算损失函数相对于模型参数的梯度。根据得到的梯度,使用自适应矩估计(Adaptive Moment Estimation,Adam)优化算法来更新模型的参数,以使损失函数逐渐减小。

其中,二元交叉熵损失函数是用于二分类问题的一种常用损失函数。该损失函数可以解释为:如果真实标签为1,则希望模型的输出概率越接近1,损失函数值越小;如果真实标签为0,则希望模型的输出概率越接近0,损失函数值越小。

BP算法是一种用于训练神经网络的优化算法。它是一种基于梯度下降的方法,用于调整神经网络中各层的权重和偏置,使得网络可以更好地拟合训练数据,从而实现预测或分类任务。

Adam优化算法是一种自适应优化算法,用于训练神经网络和其他机器学习模型。Adam算法的主要特点是在每个参数的更新中,考虑了历史梯度的一阶矩估计(Mean)和二阶矩估计(Variance)。这样可以实现自适应地调整学习率,使得不同参数在不同时间点上可以使用不同的学习率,从而加速收敛并减少训练过程中的震荡。

值得注意的是,在训练域名检测模型之前,需要构建训练数据集,即选取一定数量的DGA的数据源和实际生产生活中采集的大量域名,从而,生成了一个包括正常域名和DGA域名的数据集。这样可以尽量减少训练数据集中,正常域名和伪随机域名的比例失调造成的模型训练后的性能较差或者误报率较高的问题出现。

在完成域名检测模型的训练之后,通过训练好的域名检测模型对待处理特征进行处理,得到待检测域名的初级检测结果,即待检测域名为正常域名或伪随机域名。

S204、通过过滤规则算法对初级检测结果进行核验,得到目标检测结果,过滤规则算法是基于对待检测域名的长度处理的算法。

本实施例中,考虑到初级检测结果存在误报,即将正常域名识别为伪随机域名,需要根据过滤规则算法对初级检测结果进行核验。该算法是基于对待检测域名的长度处理的算法。即考虑待检测域名中的英语词根长度、拼音长度以及全部长度等因素来对初级检测结果进行过滤。此后,得到的即为目标检测结果,即待检测域名为正常域名或伪随机域名。

采取该方案的好处是,考虑到因为训练数据集中正常域名和伪随机域名的比例失调造成的误报率较高的情况,对初级检测结果进行进一步的核验,使得目标检测结果的准确率得以提升。

本实施例提供了一种域名检测方法,该方法首先获取待检测域名;接着,对待检测域名进行预处理,得到待处理特征;随后,通过域名检测模型对待处理特征进行处理,得到待检测域名的初级检测结果;最后,通过过滤规则算法对初级检测结果进行核验,得到目标检测结果。该方法通过域名检测模型对待检测域名进行检测,得到初级检测结果,并通过过滤规则算法对初级检测结果进行核验,提升了伪随机域名的检测效率,同时保证了目标检测结果的准确率。

图3a为本申请实施例提供的域名检测方法流程图二。如图3a所示,本实施例的方法,在图2a所示的实施例的基础上,对通过域名检测模型对待处理特征进行处理,得到待检测域名的初级检测结果的过程进行详细的表述。

S301、通过卷积神经网络模型对待处理特征进行处理,得到空间特征,空间特征包括待检测域名的空间特征,空间特征指示待处理特征中与字符的位置和顺序无关的局部特征;

本实施例中,图3b为本申请实施例提供的域名检测模型检测架构。如图3b所示,设定待处理特征为65×128的矩阵,采用域名检测模型中设置两种模型同时对待处理特征分别进行处理,得到两种特征,随后在根据两种特征,确定初级检测结果,括号中的数字为该层的输出维度。其中一个模型即为卷积神经网络模型(Convolutional Neural Network,CNN)。

其中,卷积神经网络模型是一种深度学习模型,非常适用于对局部区域特征进行处理。卷积神经网络模型在特征提取过程中重复进行卷积和池化,自动提取数据的局部特征。作为卷积神经网络模型的核心部分,卷积层将多个滤波器映射到输入数据,以找到合适的滤波器(即找到良好的特征)。它通过将滤波器在输入数据上以一定的窗口大小移动,并在它们与整个输入数据之间进行卷积操作,创建特征图。池化层减小特征图的大小或从特征图中获取代表值。本申请中的池化层使用最大池化方法。

本实施例中,如图3b所示,将待处理特征输入分别输入到三组Conv1d+ReLU+MaxPooling的卷积层,其中,一维卷积神经网络(Conv1d)的卷积核大小分别为2、4、6,卷积核数量为15,使用最大池化(Max pooling)防止过拟合,学习和描述域名字符序列中的局部特征,之后,使用将三组卷积层的输出拼接起来,得到CNN的输出向量,维度为45。使用卷积神经网络模型的目的是提取待处理特征中的空间特征,空间特征指示待处理特征中与字符的位置和顺序无关的局部特征。

S302、通过第一子长短期记忆网络模型对待处理特征进行处理,得到子序列特征;

本实施例中,另一方面,两种模型中的另一模型是长短期记忆网络模型。通过长短期记忆网络模型对待处理特征进行处理,得到目标序列特征。序列特征指示待处理特征中字符按照一定的顺序排列而形成的特征。

其中,长短期记忆网络模型(Long Short-Term Memory,LSTM)是一种用于处理序列数据的人工神经网络模型。它是循环神经网络(Recurrent Neural Network,RNN)的一种特殊形式,旨在解决传统RNN中的梯度消失和梯度爆炸问题。相对于传统的循环神经网络模型,LSTM在处理字符间长距离依赖关系问题上更加有效,其区别在于计算隐藏层神经元状态的方式不同。LSTM的每个记忆单元都包含遗忘门、输入门、输出门和自连接单元,负责描述传递多少信息。门的结构即为一个sigmoid层点乘一个单元状态,sigmoid层的输出为门的激活值矩阵,与点乘单元状态矩阵维度相同,激活值被控制在0和1之间,表示对点乘对应信息的遗忘或保留。因此,输出值被控制在0和1之间,负责描述传递多少信息。一个LSTM记忆单元在t时的状态可表示为:

C

记忆单元在t时的输出为:

h

其中,x

本实施例中,如图3b所示,长短期记忆网络模型由三部分构成:第一子长短期记忆网络模型(LSTM)、自注意力模型(self-Attention)和第二子长短期记忆网络模型(LSTM)。通过第一子长短期记忆网络模型对待处理特征进行处理,即得到子序列特征。

S303、通过自注意力模型对子目标序列特征进行处理,得到权重序列特征;

本实施例中,在第一子长短期记忆网络模型和第二子长短期记忆网络模型中,引入自注意力模型。其中,自注意力模型是一种用于建立序列中元素之间关系的机制。在传统的RNN和LSTM中,信息是通过时间步的循环传递的,而自注意力机制允许网络在一个序列中的所有元素之间进行直接的交互,从而能够更好地捕捉长距离的依赖关系。

在自注意力模型中,通过对序列中每个元素计算注意力分数,随后将这些注意力分数作为权重来对序列中的元素进行加权求和,从而得到表示。每个元素都可以与序列中的所有其他元素进行交互,而不受序列长度的限制。

具体的,将输入数据以键值对的形式表示,根据给定的查询向量Query计算Query和各个Key之间的相似性或相关性,得到与Value对应的权重系数,再与Value值做加权求和操作,即可得到输出。在本申请中,子目标序列特征中包括C

在时间步t时,K

a

其中,w

采用此方案的好处是,通过自注意力模型挖掘子序列特征的相对重要性,赋予子序列特征权重,使得模型关注到更重要的字符信息。

S304、通过第二子长短期记忆网络模型对权重序列特征进行处理,得到目标序列特征;

本实施例中,在得到权重序列特征的基础上,结合注意力权重,将权重序列特征输入到下一层第二子长短期记忆网络模型中,即可得到目标序列特征。

具体的,如图3b所示,在长短期记忆网络模型中,首先通过第一子长短期记忆网络模型抽取待处理特征中字符之间的序列信息,设定参数return_sequences为True,表示返回全部时间序列,输出子序列特征权重维度不变,仍为65×128。再将子序列特征输入自注意力模块,挖掘字符特征的相对重要性,赋予字符特征权重,使得域名检测模型关注到更重要的字符信息,输出维度为65×128的权重序列特征。随后,结合注意力权重,将权重序列特征输入到最后一层第二子长短期记忆网络模型中,返回时间序列的目标序列特征,维度为128。

S305、通过第一全连接层对空间特征和序列特征进行处理,得到非线性特征;

本实施例中,如图3b所示,在得到目标序列特征和空间特征的基础上,首先需要通过concat将两个特征结合起来,随后使用第一全连接层改变其维度。具体来说,若目标序列特征和空间特征的维度分别为128和45,则两个特征结合后的输出特征维度为173,第一全连接层输出的特征维度为256。同时,可以引入使用激活函数ReLU以缓解梯度消失问题,此后即可得到非线性特征。其中,在图3b中,FC和dense都是全连接层。

采取此方案的好处是,通过第一全连接层和激活函数ReLU引入非线性变换,可以让域名检测模型学习更加复杂的非线性关系。

S306、通过随机失活层和第二全连接层对非线性特征进行处理,得到待检测域名的初级检测结果。

本实施例中,在得到非线性特征和空间特征的基础上,通过随机失活层和第二全连接层对非线性特征进行处理,得到待检测域名的初级检测结果。具体的,可以采用数字来为待检测域名添加标签的形式表示初级检测结果,例如,待检测域名+1,则表示待检测域名为伪随机域名,待检测域名+0,表示待检测域名为正常域名。

其中,如图3b所示,随机失活层又称Dropout层,是一种用于正则化神经网络的特殊层类型。在训练深度神经网络时,容易发生过拟合的现象。过拟合是指模型在训练集上表现良好,但在未见过的新数据上表现较差。Dropout层的作用是在训练过程中随机地将一些神经元的输出置为零,从而减少神经元之间的共适应性,增加网络的泛化能力。在训练阶段,对于每个神经元,以概率(通常设置为0.5)将其输出置为零,即临时将其失活。这意味着每个训练样本都会看到一个不同的神经网络结构,强制网络去学习更加鲁棒的特征表示。如图3b所示,此时的输出矩阵维度不改变,依然为256。

随后,采用第二全连接层对非线性特征进行处理,确定待检测域名的初级检测结果是正常域名或伪随机域名。这是一个二分类任务。可以通过第二全连接层结合一个适当的激活函数来完成。具体的,分类函数可以采用sigmoid激活函数。sigmoid激活函数是一种常用的非线性激活函数,它将输入值映射到0到1之间的范围。如图3b所示,此时的输出为2个概率,即待检测域名是正常域名或伪随机域名的两个概率。

采取此方案的好处是,通过使用随机失活层对非线性特征进行处理,避免了非线性特征的过拟合现象出现。

本实施例提供了一种域名检测方法,该方法首先通过卷积神经网络模型对待处理特征进行处理,得到空间特征;接着,通过第一子长短期记忆网络模型对待处理特征进行处理,得到子序列特征;随后,通过自注意力模型对子目标序列特征进行处理,得到权重序列特征;接着,通过第二子长短期记忆网络模型对权重序列特征进行处理,得到目标序列特征;随后,通过第一全连接层对空间特征和序列特征进行处理,得到非线性特征;最后,通过随机失活层和第二全连接层对非线性特征进行处理,得到待检测域名的初级检测结果。该方法通过在名检测模型中设置两种模型同时对待处理特征分别进行处理,对待检测域名的不同部分给予不同的关注,同时引入自注意力模型,使得域名检测模型关注到更重要的字符信息,提升了伪随机域名的检测效率。

图4为本申请实施例提供的域名检测方法流程图三。如图4所示,本实施例的方法,在图2a所示的实施例的基础上,对通过过滤规则算法对初级检测结果进行核验,得到目标检测结果的过程进行详细的表述。

S401、判断初级检测结果是否为伪随机域名;

本实施例中,考虑到初级检测结果存在误报的情况,即将正常域名识别为伪随机域名的情况出现,在得到初级检测结果之后,采用过滤规则算法对初级检测结果进行核验。其中,过滤规则算法是根据待检测域名的长度处理的算法。判断初级检测结果是否为伪随机域名的目的是为了排除当确定初级检测结果为正常域名的情况。

具体的,当采用为待检测域名添加数字标签的形式来表示初级检测结果时,可以采用读取待检测域名的数字标签的方式,来判断初级检测结果是否为伪随机域名。

S402、若否,则确定目标检测结果为正常域名;

因为误报情况多为正常域名识别为伪随机域名,因此,当确定初级检测结果为正常域名时,就不需要进行进一步的校核,直接确定目标检测结果为正常域名。

S403、若是,则获取待检测域名的第一长度、第二长度、第三长度和全长度,其中,第一长度为待检测域名的字符串去除所有数字后的长度,第二长度为待检测域名中的英语词根长度,第三长度为待检测域名中的拼音长度,全长度为待检测域名的全部字符长度;

本实施例中,通过待检测域名的中各种不同字符的长度来对初级检测结果进行核验。其中,考虑到以下因素:待检测域名的字符串去除所有数字后的长度即第一长度,待检测域名中的英语词根长度即第二长度,待检测域名中的拼音长度即第三长度和待检测域名的全部字符长度即全长度。

在获取到待检测域名的第一长度、第二长度、第三长度和全长度之后,即可以进行进一步的核验操作。

S403、判断是否同时满足第一长度大于全长度与第一预设系数的乘积,且第二长度与第三长度的和小于全长度与第二预设系数的乘积两个条件;

本实施例中,第一预设系数和第二预设系数可以自行设置。若第一长度大于全长度与第一预设系数的乘积,说明待检测域名的字符串去除所有数字后的长度大于全长度与一个系数的乘积。

实际上,由于在注册正常域名时,若发现所注册的域名已经存在,则通常采用在域名前后加入数字来生成新的域名,此举会使得字符串前后数字的长度在整个域名长度中占比较高。因此,在待检测域名中,若去除所有数字后的长度小于全长度与一个系数的乘积,说明该待检测域名为正常域名,反之则为伪随机域名。

在实际应用场景中,由于正常域名中经常包括英语词根和拼音,其中拼音可能是每个音节的首字母的形式,因此,正常域名中,英语词根和拼音所占比例应该较高。若第二长度与第三长度的和大于全长度与第二预设系数,即说明待检测域名中的英语词根数量和待检测域名的字符的拼音数量之和在全部待检测域名长度中占比较高,即该待检测域名应为正常域名,反之则为伪随机域名。

S404、若是,则确定目标检测结果为伪随机域名;

本实施例中,将上述两个条件综合考虑,若同时满足,则说明该待检测域名的字符串前后数字后的数量占比较低,且英语词根数量和拼音数量之和占比较低,应为伪随机域名。

S405、若否,则确定目标检测结果为正常域名。

本实施例中,将上述两个条件综合考虑,若有一个条件不满足,则认为该待检测域名应为正常域名。

采取此方案的好处是,通过较为简单的过滤规则算法,高效的完成了初级检测结果进行核验。

本实施例提供了一种域名检测方法,该方法首先判断初级检测结果是否为伪随机域名;若否,则确定目标检测结果为正常域名;若是,则获取待检测域名的第一长度、第二长度、第三长度和全长度;最后,判断是否同时满足第一长度大于全长度与第一预设系数的乘积,且第二长度与第三长度的和小于全长度与第二预设系数的乘积两个条件;若是,则确定目标检测结果为伪随机域名;若否,则确定目标检测结果为正常域名。该方法考虑到初级检测结果存在误报的情况,采用过滤规则算法对初级检测结果进行核验,使得目标检测结果更为准确。

图5为本申请实施例提供的一种域名检测装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式。如图5所示,本申请实施例提供的一种域名检测装置500,包括获取模块501、处理模块502和核验模块503,

获取模块501,用于获取待检测域名,待检测域名包括至少一个字符;

处理模块502,用于对待检测域名进行预处理,得到待处理特征,待处理特征包括待检测域名的词嵌入特征;

处理模块502,还用于通过域名检测模型对待处理特征进行处理,得到待检测域名的初级检测结果,域名检测模型为预先训练好的模型,域名检测模型用于检测待检测域名为正常域名或伪随机域名;

核验模块503,用于通过过滤规则算法对初级检测结果进行核验,得到目标检测结果,过滤规则算法是基于对待检测域名的长度处理的算法。

一种可能的实现方式中,处理模块502具体用于:

通过卷积神经网络模型对待处理特征进行处理,得到空间特征,空间特征包括待检测域名的空间特征,空间特征指示待处理特征中与字符的位置和顺序无关的局部特征;

通过长短期记忆网络模型对待处理特征进行处理,得到目标序列特征,序列特征包括待检测域名的序列特征,序列特征指示待处理特征中字符按照一定的顺序排列而形成的特征;

根据空间特征和序列特征,确定待检测域名的初级检测结果。

一种可能的实现方式中,处理模块502具体用于:

通过第一子长短期记忆网络模型对待处理特征进行处理,得到子序列特征;

通过自注意力模型对子目标序列特征进行处理,得到权重序列特征;

通过第二子长短期记忆网络模型对权重序列特征进行处理,得到目标序列特征。

一种可能的实现方式中,处理模块502具体用于:

通过第一全连接层对空间特征和序列特征进行处理,得到非线性特征;

通过随机失活层和第二全连接层对非线性特征进行处理,得到待检测域名的初级检测结果。

一种可能的实现方式中,核验模块503具体用于:

判断初级检测结果是否为伪随机域名;

若否,则确定目标检测结果为正常域名;

若是,则获取待检测域名的第一长度、第二长度、第三长度和全长度,其中,第一长度为待检测域名的字符串去除所有数字后的长度,第二长度为待检测域名中的英语词根长度,第三长度为待检测域名中的拼音长度,全长度为待检测域名的全部字符长度;

根据第一长度、第二长度、第三长度和全长度,确定目标检测结果。

一种可能的实现方式中,核验模块503具体用于:

判断是否同时满足第一长度大于全长度与第一预设系数的乘积,且第二长度与第三长度的和小于全长度与第二预设系数的乘积两个条件;

若是,则确定目标检测结果为伪随机域名;

若否,则确定目标检测结果为正常域名。

一种可能的实现方式中,处理模块502具体用于:

对待检测域名进行数字标记化处理,得到数字化域名;

通过嵌入层对数字化域名进行映射处理,得到待处理特征。

本实施例提供的域名检测装置,可用于执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

图6为本申请实施例提供一种电子设备的结构示意图。本申请实施例提供一种电子设备的结构示意图,请参见图6,该电子设备20可以包括处理器21和存储器22。示例性地,处理器21、存储器22,各部分之间通过总线23相互连接。

存储器22存储计算机执行指令;

处理器21执行存储器22存储的计算机执行指令,使得电子设备执行如上述的域名检测方法。

应理解,上述处理器21可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器22可能包含高速随机存取存储器(英文:Random AccessMemory,简称:RAM),也可能还包括非易失性存储器(英文:Non-volatile memory,简称:NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

本申请实施例相应还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现的域名检测方法。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(ResistiveRandom Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。

集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品出售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 基于深度学习的域名检测方法、装置、设备和存储介质
  • 域名解析的方法、装置、设备及存储介质
  • 域名解析方法、装置、设备和计算机存储介质
  • 恶意域名的检测方法、装置及计算机可读存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • DGA域名检测模型训练方法、DGA域名检测方法、装置及存储介质
  • 域名检测方法、域名检测装置、介质以及电子设备
技术分类

06120116495796