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

一种域名检测方法、装置、DGA服务设备及存储介质

文献发布时间:2023-06-19 11:27:38


一种域名检测方法、装置、DGA服务设备及存储介质

技术领域

本申请涉及通信技术领域,特别是涉及一种域名检测方法、装置、DGA服务设备及存储介质。

背景技术

僵尸网络是一种新型的网络攻击方式。在僵尸网络中,僵尸控制者通过命令和控制(Command and Control Server,C&C)服务器控制受到恶意软件感染后的僵尸主机。僵尸主机利用域名系统(Domain Name System,DNS)授权服务器来解析域名,从而与C&C服务器创建通信通道,获取控制命令,进行网络恶意活动。

为解决上述问题,目前提出多种异常域名的检测模型,将待检测的域名数据输入检测模型,得到待检测的域名数据的检测结果。

然而,在企业内网等应用场景中,存在大量不同互联网协议(Internet Protocol,IP)地址同时请求访问相同的域名的情况。这就意味着,存在着大量的域名数据需要检测。这对检测模型的处理带来了巨大的压力,甚至会导致域名检测过程被强制终止。进而导致异常的域名数据无法及时上报,给网络带来了一定的安全隐患。

发明内容

本申请实施例的目的在于提供一种域名检测方法、装置、DGA服务设备及存储介质,以提高域名检测的及时性,降低安全隐患。具体技术方案如下:

本申请实施例提供了一种域名检测方法,应用于域名生成算法(DomainGeneration Algorithm,DGA)服务设备,所述方法包括:

获取多个待检测域名数据;

从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果;

将查找到每个检测结果确定为对应的待检测域名数据的检测结果;

将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

可选的,所述域名数据包括域名;所述方法还包括:

从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名;

确定查找到包括的域名的每个待检测域名数据为正常域名数据;

基于未查找到包括的域名的每个待检测域名数据,执行所述从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果的步骤。

可选的,所述检测模型为多个;

所述将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果的步骤,包括:

将未查找到对应检测结果的多个待检测域名数据划分为多个批次,每个批次包括的待检测域名数据的总数据量小于等于预设门限值,每个批次分别对应一个检测模型;

并行将每一批次包括的待检测域名数据输入对应的检测模型,得到每个待检测域名数据的检测结果。

可选的,所述获取多个待检测域名数据的步骤,包括:

接收大数据端设备发送的域名检测任务,所述域名检测任务包括索引信息,所述索引信息包括模型标识和时间段;从预设数据库中读取所述时间段内存储的域名数据,作为所述模型标识对应的待检测域名数据,其中,所述预设数据库存储有域名数据与索引信息的对应关系;

所述将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型的步骤,包括:

将所述模型标识对应的待检测域名数据中未查找到对应的检测结果的每个待检测域名数据,分别输入所述模型标识对应的检测模型;

所述方法还包括:

在得到每个待检测域名数据的检测结果之后,将每个待检测域名数据的检测结果写入所述预设数据库。

可选的,所述预设数据库中存储的域名数据为:所述大数据端设备根据所述预设缓存区中存储的对应关系,从获取的多个域名数据中,确定的除第一检测结果对应的域名数据外的域名数据,所述第一检测结果指示域名数据为正常域名数据。

本申请实施例还提供了一种域名检测装置,应用于DGA服务设备,所述装置包括:

第一获取模块,用于获取多个待检测域名数据;

第一查找模块,用于从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果;

第一确定模块,用于将查找到每个检测结果确定为对应的待检测域名数据的检测结果;

检测模块,用于将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

可选的,所述域名数据包括域名;所述装置还包括:

第二查找模块,用于从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名;

第二确定模块,用于确定查找到包括的域名的每个待检测域名数据为正常域名数据;

调用模块,用于基于未查找到包括的域名的每个待检测域名数据,调用所述第一查找模块执行所述从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果的步骤。

可选的,所述检测模型为多个;

所述检测模块,具体用于将未查找到对应检测结果的多个待检测域名数据划分为多个批次,每个批次包括的待检测域名数据的总数据量小于等于预设门限值,每个批次分别对应一个检测模型;并行将每一批次包括的待检测域名数据输入对应的检测模型,得到每个待检测域名数据的检测结果。

可选的,所述第一获取模块,具体用于接收大数据端设备发送的域名检测任务,所述域名检测任务包括索引信息,所述索引信息包括模型标识和时间段;从预设数据库中读取所述时间段内存储的域名数据,作为所述模型标识对应的待检测域名数据,其中,所述预设数据库存储有域名数据与索引信息的对应关系;

所述检测模块,具体用于将所述模型标识对应的待检测域名数据中未查找到对应的检测结果的每个待检测域名数据,分别输入所述模型标识对应的检测模型;

所述装置还包括:

存储模块,用于在得到每个待检测域名数据的检测结果之后,将每个待检测域名数据的检测结果写入所述预设数据库。

可选的,所述预设数据库中存储的域名数据为:所述大数据端设备根据所述预设缓存区中存储的对应关系,从获取的多个域名数据中,确定的除第一检测结果对应的域名数据外的域名数据,所述第一检测结果指示域名数据为正常域名数据。

本申请实施例还提供了一种DGA服务设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的计算机程序,所述处理器被所述计算机程序促使:实现上述任一所述的域名检测方法步骤。

本申请实施例还提供了一种机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的计算机程序,所述处理器被所述计算机程序促使:实现上述任一所述的域名检测方法步骤。

本申请实施例提供的技术方案中,DGA服务设备从预设缓存区存储的域名数据与检测结果的对应关系,查找获取到的每一待检测域名数据所对应的检测结果时,从而对未查找到对应的检测结果的待检测域名数据进行域名检测,也就是将该域名数据输入检测模型,得到对应的检测结果,而查找到对应的检测结果的待检测域名数据则不需要进行域名检测,也就是不需要执行将待检测域名数据输入检测模型,得到该待检测域名数据的检测结果的步骤。

每天、每小时需要检测的域名数据的数据量非常大,甚至达到千万级别。应用本申请实施例提供的技术方案,可以排除已知检测结果的待检测域名数据,大大地减少了输入检测模型的域名数据,缩短了域名检测过程的耗时,提高了域名检测的及时性,降低了域名检测过程被强制终止的可能性,从而保证了异常的域名数据上报的及时性,降低了安全隐患。

当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的网络架构的一种示意图;

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

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

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

图5为本申请实施例提供的域名检测方法的第四种流程示意图;

图6为本申请实施例提供的域名检测方法的第五种流程示意图;

图7为本申请实施例提供的网络架构的另一种示意图;

图8为本申请实施例提供的域名检测过程的一种信令图;

图9为应用本申请实施例提供技术方案的域名检测耗时的一种示意图;

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

图11为本申请实施例提供的DGA服务设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在僵尸网络中,黑客攻击者为了防止恶意域名被发现,会使用Domain Flux(域名流动)技术或者IP Flux(网络协议地址流动)技术来快速生成大量的恶意域名。DomainFlux技术是通过不断变换域名,指向同一个IP。IP Flux技术是只有一个域名,但不断变换IP,即一个域名可以使用多个IP。

在相关技术中,可以通过DGA域名检测技术,对待检测的域名数据进行域名检测来发现异常域名数据,也就是包括上述恶意域名的域名数据。从而对异常域名数据进行上报,提高网络安全。

但是,在域名检测过程中,由于集成有DGA服务的DGA服务设备中各功能的使用需要均摊资源,这使得每个检测模型进行域名检测的资源是有限的。每一时间点网络中存在大量访问域名所对应网络的请求,以及大量同时访问同一域名所对应网络的请求等现象的存在,这给检测模型的处理带来较大的压力。一旦检测模型无法及时完成对待检测的域名数据的域名检测,甚至会导致域名检测过程被强制终止,这将导致异常域名数据无法及时上报,给网络带来一定的安全隐患。

为了解决上述问题,本申请实施例提供了一种域名检测方法。该方法应用于如图1所示的网络架构中的DGA服务设备。图1所示的网络架构中,中间设备位于DGA服务设备和大数据端设备之间。中间设备可以集成在大数据端设备中,也可以集成在DGA服务设备中,还可以独立的位于一个物理机上。大数据端设备又可以称为用户设备或前端设备。

如图2所示,图2为本申请实施例提供的域名检测方法的第一种流程示意图。该方法包括以下步骤。

步骤S201,获取多个待检测域名数据。

步骤S202,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

步骤S203,将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

步骤S204,将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

通过图2所示的方法,DGA服务设备从预设缓存区存储的域名数据与检测结果的对应关系,查找获取到的每一待检测域名数据所对应的检测结果时,从而对未查找到对应的检测结果的待检测域名数据进行域名检测,也就是将该域名数据输入检测模型,得到对应的检测结果,而查找到对应的检测结果的待检测域名数据则不需要进行域名检测,也就是不需要执行将待检测域名数据输入检测模型,得到该待检测域名数据的检测结果的步骤。

每天、每小时需要检测的域名数据的数据量非常大,甚至达到千万级别。应用本申请实施例提供的技术方案,可以排除已知检测结果的待检测域名数据,大大地减少了输入检测模型的域名数据,缩短了域名检测过程的耗时,提高了域名检测的及时性,降低了域名检测过程被强制终止的可能性,从而保证了异常的域名数据上报的及时性,降低了安全隐患。

下面通过具体的实施例,对本申请实施例进行说明。

针对上述步骤S201,即获取多个待检测域名数据。

在本步骤中,用户通过用户设备请求访问某一网络时,DGA服务设备可以获取该用户设备发送的访问请求所对应的域名数据,即待检测域名数据。在此,对DGA服务设备获取到的待检测域名数据的数量不作具体限定。

一个可选的实施例中,上述待检测域名数据可以通过投递(POST)传输的方式传输,即将待检测域名数据放在超文本传输协议(Hypertext Transfer Protocol,HTTP)包里进行传输,DGA服务设备可以从HTTP包中获取得到待检测域名数据。

另一个可选的实施例中,在企业等应用场景中,不同IP地址可能同时对某一域名所对应的网络进行访问,或者同一IP地址在不同的时间点对某一域名所对应的网络进行多次访问。因此,为了便于对用户设备所请求网络所对应的域名数据的管理,当用户设备在请求访问某一域名所对应的网络时,可以由大数据端设备中的大数据端获取访问请求所对应的域名数据,并将获取到的域名数据存储到预设数据库中。DGA服务设备可以根据用户在大数据端设备的前端页面触发的域名检测任务,从该预设数据库中获取待检测域名数据。具体过程可参见下文描述,在此不作具体说明。

由于网络中每时每刻存在着大量的网络访问请求,因此,大数据端设备每时每刻将会获取到大量的待检测域名数据,待检测域名数据的数据量可以达到千万级别。

在本申请实施例中,上述待检测域名数据中至少包括域名。除此以外,该待检测域名数据中还可以包括主机名、主机类型、请求时间等信息。在此,对上述域名数据中包括的信息不作具体限定。

针对上述步骤S202,即从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

在本步骤中,中间设备的预设缓存区中存储有域名数据与检测结果的对应关系。针对获取到的每一待检测域名数据,DGA服务设备可以将该待检测域名数据与预设缓存区所存储的对应关系中的域名数据进行匹配;当预设缓存区所存储的对应关系中存在与该待检测域名数据匹配的域名数据时,DGA服务设备可以确定在预设缓存区所存储的对应关系中查找到该待检测域名数据对应的检测结果;当预设缓存区存储的对应关系中不存在与该待检测域名数据匹配的域名数据时,DGA服务设备可以确定在预设缓存区所存储的对应关系中未查找到该待检测域名数据对应的检测结果。

上述中间设备可以包括上述预设数据库和上述预设缓存区。

在本申请实施例中,上述每一待检测域名数据与预设缓存区所存储的对应关系中域名数据的匹配情况,具体可以包括以下情况。为便于描述,仅以一个待检测域名数据为例进行说明。

情况一,若待检测域名数据中的域名与预设缓存区所存储的对应关系中域名数据中的域名相同,则确定预设缓存区所存储的对应关系中存在与待检测域名数据匹配的域名数据。

情况二,若待检测域名数据中的部分信息与预设缓存区所存储的对应关系中域名数据中对应的信息相同,则确定预设缓存区所存储的对应关系中存在与待检测域名数据匹配的域名数据。例如,待检测域名数据中的域名、主机名和主机类型与预设缓存区所存储的对应关系中域名数据A中的域名、主机名和主机类型均相同,DGA服务设备可以确定待检测域名数据与域名数据A匹配。

情况三,若待检测域名数据中包括的所有数据与预设缓存区所存储的对应关系中域名数据中包括的所有部分数据均相同,则确定预设缓存区所存储的对应关系中存在与待检测域名数据匹配的域名数据。

在本申请实施例中,对上述待检测域名数据与预设缓存区所存储的对应关系中域名数据的匹配的情况不作具体限定。另外,关于预设缓存区所存储的对应关系中的域名数据与待检测域名数据不匹配的情况为上述匹配情况所对应的反例,在此不作具体说明。

在本申请实施例中,由于上述预设缓存区设置在中间设备中,即没有设置在DGA服务设备中,因此,DGA服务设备在查找每个待检测域名数据对应的检测结果时,可以采用多种方式进行查找。

例如,DGA服务设备可以从预设缓存区中获取存储的对应关系,并将获取到的对应关系中的域名数据与每一待检测域名数据进行匹配,确定是否查找到每一待检测域名数据的检测结果。

再例如,DGA服务设备可以遍历预设缓存区所存储的对应关系中的每一域名数据,确定是否存在获取到的每一待检测域名数据,从而确定是否查找到每一待检测域名数据的检测结果。

在本申请实施例中,对上述查找待检测域名数据对应的检测结果的方式不作具体限定。

一个可选的实施例中,上述预设缓存区中存储的域名数据与检测结果的对应关系,可以是根据预设时间段内进行域名检测的域名数据,和该域名数据所对应的检测结果生成的。其中,预设时间段在当前时间点之前。

为便于理解,以当前时间点为12:00为例进行说明。上述预设缓存区可以存储12:00前预设时间段内,如两个小时内,即10:00-12:00期间,完成域名检测的域名数据和该域名数据所对应的检测结果。在此,对上述预设时间段不作具体限定。

一个可选的实施例中,为了提高上述预设缓存区中缓存的域名数据和检测结果的时效性,DGA服务设备可以对预设缓存区中存储的对应关系进行更新。

例如,DGA服务设备可以按照预设时间间隔,如每隔一天,根据域名数据中包括的结束时间,丢弃预设缓存区中超过生存周期的域名数据和该域名数据所对应的检测结果。

再例如,针对预设缓存区中未查找到检测结果的待检测域名数据,DGA服务设备在确定该待检测域名数据的检测结果后,可以将该待域名检测数据和该待域名检测数据的检测结果更新至上述预设缓存区。

在此,对上述预设缓存区中域名数据和检测结果间对应关系的更新方式不作具体限定。

针对上述步骤S203,即将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

在本步骤中,针对获取到的每一待检测域名数据,若在上述预设缓存区所存储的域名数据和检测结果的对应关系中,查找到该待检测域名数据所对应的检测结果,则DGA服务设备可以直接将该检测结果确定为该待检测域名数据的检测结果。也就是DGA服务设备不需要对查找到对应检测结果的待检测域名数据进行域名检测,而是直接查找到的检测结果确定为该待检测域名数据的检测结果。

针对上述步骤S204,即将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

在本步骤中,针对获取到的每一待检测域名数据,若在上述预设缓存区存储的域名数据和检测结果的对应关系中,未查找到待检测域名数据所对应的检测结果,则DGA服务设备可以对该待检测域名数据进行域名检测。也就是,将未查找到对应检测结果的每一待检测域名数据输入检测模型,得到每一待检测域名数据的检测结果。

上述检测模型为人工智能(Artificial Intelligence,AI)模型,具体可以根据DGA域名检测技术构建得到的模型。该检测模型包括但不限于基于特征工程构建的模型,和基于深度学习技术构建的模型。以检测模型为基于深度学习技术构建的模型,该检测模型可以为卷积神经网络(CNN)模型、也可以为循环神经网络(RNN)模型。在此,对上述检测模型不作具体限定。

在本申请实施例中,上述待检测域名数据的检测结果可以指示待检测域名数据为正常域名数据,也可以指示待检测域名数据为异常域名数据。

例如,上述待检测域名数据的检测结果可以为0或1。其中,检测结果为0时,指示待检测域名数据为正常域名数据;检测结果为1时,指示待检测域名数据为异常域名数据。

上述检测结果除了包括指示上述待检测域名数据是正常域名数据的0,或指示待检测域名数据为异常域名数据1以外,还可以包括上述待检测域名数据的异常评分等。在此,对上述检测结果中包括的数据不作具体限定。

在本申请实施例中,由于DGA服务设备获取到的待检测域名数据的数量为多个,因此,从上述预设缓存区存储的对应关系中,查找每一待检测域名数据所对应的检测结果时,既可能出现查找到检测结果的待检测域名数据,又可能出现未查找到检测结果的待检测域名数据。因此,上述步骤S203和步骤S204均可能被执行,在此,对上述步骤S203和上述步骤S204的执行顺序不作具体限定。

一个可选的实施例中,为了保证网络的安全性,在确定上述待检测域名数据的检测结果后,若该检测结果指示待检测域名数据为异常域名数据,则DGA服务设备可以对该待检测域名数据进行异常上报。例如,某一待检测域名数据的检测结果指示该待检测域名数据为异常域名数据,此时,DGA服务设备可以向上述大数据端设备发送针对该异常域名数据的卡夫卡(kafka)消息,大数据端设备将接收到的kafka消息显示在上述前端页面中,从而提示用户存在异常域名数据。

上述kafka消息中可以包括待检测域名数据、异常主机数、异常主机名、检测时间点等信息。在此,对上述kafka消息中包括的信息不作具体限定。

一个可选的实施例中,根据图2所示的方法,本申请实施例还提供了一种域名检测方法。如图3所示,图3为本申请实施例提供的域名检测方法的第二种流程示意图。该方法包括以下步骤。

步骤S301,获取多个待检测域名数据。

上述步骤S301与上述步骤S201相同。

步骤S302,从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名。

在本步骤中,用户可以设置一预设白名单,该预设白名单中包括多个预设域名。DGA服务设备可以实时调用预设配置文件获取该预设白名单,并将每一待检测域名数据中包括的域名与预设白名单中的多个预设域名进行匹配。当待检测域名数据中包括的域名与预设白名单中的某一预设域名相同时,DGA服务设备可以确定在预设白名单中查找到待检测域名数据所包括的域名。也就是多个预设域名中查找到每一待检测域名数据所包括的域名。当某一待检测域名数据中包括的域名与预设白名单中的所有预设域名均不相同时,DGA服务设备可以确定在预设白名单中未查找到该待检测域名数据所包括的域名。也就是多个预设域名中未查找到该待检测域名数据所包括的域名。当某一待检测域名数据中包括的域名与预设白名单中的某一预设域名相同时,DGA服务设备可以确定在预设白名单中查找到该待检测域名数据所包括的域名。

在本申请实施例中,上述多个预设域名是根据知名域名设置的。并且,为了保证上述多个预设域名的时效性,用户可以定期对预设白名单进行更新,即定期对多个预设域名进行更新。

步骤S303,确定查找到包括的域名的每个待检测域名数据为正常域名数据。

在本步骤中,针对获取到的每一待检测域名数据,当在上述预设白名单中查找到该待检测域名数据包括的域名时,DGA服务设备可以确定该待检测域名数据为知名域名。此时,DGA服务设备可以确定该待检测域名数据为正常域名数据。也就是DGA服务设备不需要利用检测模型,对预设域名的待检测域名数据进行域名检测。

步骤S304,基于未查找到包括的域名的每个待检测域名数据,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

在本步骤中,针对获取到的每一待检测域名数据,当在上述预设白名单中未查找到该待检测域名数据包括的域名时,DGA服务设备可以确定该待检测域名数据为未知域名数据,如Nxdomain域名数据。对于未知的待检测域名数据,DGA服务设备可以从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果,具体查找方式参见上述步骤S202,在此不作赘述。

在本申请实施例中,由于上述预设白名单中的每一预设域名均为知名域名,因此,预设白名单中的预设域名出现异常的概率较低,并且,知名域名被多次访问的概率相对较高,为避免对包括预设域名的待检测域名数据的重复检测,直接确定包括预设域名的待检测域名数据为正常域名数据,这在保证了对待检测域名数据的检测结果的准确性的前提下,节约了对包括预设域名的待检测域名数据的域名检测时间,使得域名检测可以集中在未知域名数据的检测上,提高了域名检测的效率。

步骤S305,将所查找到检测结果作为待检测域名数据的检测结果。

步骤S306,将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

上述步骤S305-步骤S306与上述步骤S203-步骤S204相同。

在图3所示的实施例中,上述步骤S302是在步骤S304之前执行的。除此以外,DGA服务设备还可以在步骤S304之后执行上述步骤S302。也就是针对在预设缓存区所存储的域名数据与检测结果的对应关系中,未查找到对应的检测结果的待检测域名数据,DGA服务设备可以执行上述步骤S302,即从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名,从而针对域名是预设域名的待检测域名数据,执行上述步骤S303,针对域名不是预设域名的待检测域名数据,执行上述步骤S306。在此,对上述步骤S302与步骤S304的执行顺序不作具体限定。

一个可选的实施例中,根据上述图2所示的方法,本申请实施例还提供了一种域名检测方法。如图4所示,图4为本申请实施例提供的域名检测方法的第三种流程示意图。该方法包括以下步骤。

步骤S401,获取多个待检测域名数据。

步骤S402,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

步骤S403,将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

上述步骤S401-步骤S403与上述步骤S201-步骤S203相同。

步骤S404,将未查找到对应检测结果的多个待检测域名数据划分为多个批次,每个批次包括的待检测域名数据的总数据量小于等于预设门限值。

在本步骤中,当从上述预设缓存区所存储的域名数据和检测结果的对应关系中,未查找到多个待检测域名数据的检测结果时,DGA服务设备可以根据预设门限值以及每一待检测域名数据的数据量,对待检测域名数据进行分批处理。也就是DGA服务设备可以在保证每个批次中包括的待检测域名数据的总数据量小于等于预设门限值的前提下,将未查找到对应检测结果的多个待检测域名数据划分为多个批次。在此,对未查找到对应检测结果的多个待检测域名数据的批次划分方式不作具体限定。

在本申请实施例中,上述预设门限值是根据上述检测模型最优的最大检测数据量进行设置。在此,对上述预设门限值不作具体限定。

步骤S405,按批次,将多个待检测域名数据输入检测模型,得到每个待检测域名数据的检测结果。

在本步骤中,在确定每一待检测域名数据所在的批次后,DGA服务设备可以按照划分得到的批次,依次将每一批次中的待检测域名数据输入至对应的检测模型,得到每一待检测域名数据的检测结果。

例如,多个待检测域名数据划分为2个批次,分别为批次1和批次2。电子设备将批次1的待检测域名数据输入检测模型,得到批次1中的每个待检测域名数据的检测结果;之后,再将批次2的待检测域名数据输入检测模型,得到批次2中的每个待检测域名数据的检测结果。

一个可选的实施例中,上述每一批次中至少包括一个待检测域名数据。当某一批次中包括多个待检测域名数据时,为了保证该批次中多个待检测域名数据进行域名检测时的有序性,DGA服务设备在进行上述批次划分时,还可以确定每一批次进行域名检测的顺序,以及包括多个待检测域名数据的批次中每一待检测域名数据进行域名检测的顺序。

通过上述步骤S404和步骤S405,在利用检测模型对未查找到对应检测结果的多个待检测域名数据进行域名检测时,通过分批次的域名检测,可以保证每一批次进行域名检测的待检测域名数据的数据量不会超出该检测模型的预设门限值,从而保证检测模型不会被强制终止,进而保证了异常域名数据的上报,降低了安全隐患。

一个可选的实施例中,上述检测模型的数量可以为多个。根据图4所示的方法,本申请实施例还提供了一种域名检测方法。如图5所示,图5为本申请实施例提供的域名检测方法的第四种流程示意图。该方法包括以下步骤。

步骤S501,获取多个待检测域名数据。

步骤S502,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

步骤S503,将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

上述步骤S501-步骤S503与上述步骤S401-步骤S403相同。

步骤S504,将未查找到对应检测结果的多个待检测域名数据划分为多个批次,每个批次包括的待检测域名数据的总数据量小于等于预设门限值,每个批次分别对应一个检测模型。

在图5所示的实施例中,DGA服务设备中包括多个检测模型。由于DGA服务设备中包括多个检测模型,因此,在将未查找到对应检测结果的多个待检测域名数据划分为多个批次时,每一批次分别对应一个检测模型。也就是一个检测模型可以对应一个或多个批次。每一批次中包括的待检测域名数据的总数据量小于等于该批次所对应的检测模型的预设门限值。

步骤S505,并行将每一批次包括的待检测域名数据输入对应的检测模型,得到每个待检测域名数据的检测结果。

在本步骤中,当检测模型的数量为多个时,在对每一批次中未查找到对应检测结果的多个待检测域名数据进行域名检测时,DGA服务设备可以按照划分得到的批次,并行地将多个待检测域名数据输入多个检测模型,得到每个待检测域名数据的检测结果。

为便于理解,以检测模型的数量为3,即模型1-模型3为例进行说明。DGA服务设备分别根据模型1、模型2和模型3所对应的预设门限值,划分得到3个批次,即批次1-批次3。在进行域名检测时,DGA服务设备将批次1中的待检测域名数据输入模型1,批次2中的待检测域名数据输入模型2,批次3中的待检测域名数据输入模型3,模型1、输入模型2和输入模型3并行进行域名检测,得到每一待检测域名数据的检测结果。

在本申请实施例中,通过部署多个检测模型,可以并行地对多个待检测域名数据进行域名检测,从而缩短了多个待检测域名数据进行域名检测所需的时间,提高了域名检测的效率。

一个可选的实施例中,根据图2所示的方法,本申请实施例还提供了一种域名检测方法。如图6所示,图6为本申请实施例提供的域名检测方法的第五种流程示意图。该方法包括以下步骤。

步骤S601,接收大数据端设备发送的域名检测任务,域名检测任务包括索引信息,索引信息包括模型标识和时间段。

在本步骤中,用户可以在上述大数据端设备的前端页面中,触发对某一时间段内多个待检测域名数据的域名检测任务,该域名检测任务中包括待检测域名数据的索引信息。此时,DGA服务设备将接收到的该域名检测任务。

在本申请实施例中,上述索引信息中包括的时间段可以表示为:开始时间(start_time)和结束时间(end_time)。另外,上述域名检测任务中除了包括上述索引信息以外,还可以包括其他信息,如读索引类型(read_index_type)、存索引类型(save_index_type)等。在此,对上述域名检测任务和索引信息中包括的信息不作具体限定。

步骤S602,从预设数据库中读取时间段内存储的域名数据,作为模型标识对应的待检测域名数据,其中,预设数据库存储有域名数据与索引信息的对应关系。

在本步骤中,DGA服务设备通过解析接收到的域名检测任务得到索引信息,并根据该索引信息,从预设数据库中获取时间段在域名检测任务所携带的时间段内对应的多个域名数据,作为域名检测任务所携带的模型标识所对应的待检测域名数据。

在本申请实施例中,上述预设数据库中存储有域名数据、域名数据的索引信息以及域名数据的检测结果。

一个可选的实施例中,上述域名数据、域名数据的索引信息以及域名数据的检测结果可以以对应关系的形式进行存储。为便于理解,以索引信息为时间为例,预设数据库中存储的数据可以如表1所示。

表1

在表1中,数据1、数据2和数据3所对应的索引信息分别为时间1、时间2和时间3。其中,-表示无检测结果,1指示异常域名数据。也就是数据1和数据2不确定是正常域名数据,还是异常域名数据,即未知域名数据,数据3为异常域名数据。

某一时刻,若接收到的域名检测任务所携带的索引信息中的时间段为时间段A,则DGA服务设备遍历表1中的索引信息确定时间1和时间2在时间段A内,此时,DGA服务设备可以从预设数据库中读取数据1和数据2作为待检测域名数据。

在本申请实施例中,对上述预设数据库中存储有域名数据、域名数据的索引信息以及域名数据的检测结果的存储方式不作具体限定。

上述DGA服务设备在从预设数据库中获取待检测域名数据时,直接根据域名检测任务中携带的索引信息,从预设数据库中读取待检测域名数据,相比于相关技术中通过POST传输的方式,直接读取的方式可以明显缩短了待检测域名数据的获取时间,从而缩短了整个域名检测过程所需的时间,提高了域名检测的效率。

在本申请实施例中,电子在对上述域名检测任务进行解析时,除了获得上述索引信息以外,还可以获取其他信息,如上述读索引类型、存索引类型等。在此,对域名检测任务解析得到的信息不作具体限定。

步骤S603,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果。

步骤S604,将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

上述步骤S603-步骤S604与上述步骤S202-步骤S203相同。

步骤S605,将模型标识对应的待检测域名数据中未查找到对应的检测结果的每个待检测域名数据,分别输入模型标识对应的检测模型,得到每个待检测域名数据的检测结果。

在本步骤中,每一检测模型存在对应的模型标识。针对未查找到对应检测结果的每一待检测域名数据,DGA服务设备根据该待检测域名数据对应的模型标识,将该检测域名数据输入到对应的检测模型中,得到该待检测域名数据的检测结果。

步骤S606,在得到每个待检测域名数据的检测结果之后,将每个待检测域名数据的检测结果写入预设数据库。

在本步骤中,在得到每个待检测域名数据的检测结果后,DGA服务设备可以将每一待检测域名数据的检测结果写入上述预设数据库。也就是根据待检测域名数据与检测结果间的对应关系,将确定出的检测结果对应存储到预设数据库中。如上述表1所示,数据3所对应的检测结果即为DGA服务设备在确定数据3的检测结果后存储至预设数据库的。

一个可选的实施例中,上述在将待检测域名数据的检测结果写入预设数据库时,还可以写入其他数据,例如,待检测域名数据进行域名检测的时间戳,待检测域名数据的异常原因等。

一个可选的实施例中,上述预设数据库中存储的域名数据可以为:上述大数据端设备根据预设缓存区中存储的对应关系,从获取的多个域名数据中,确定的除第一检测结果对应的域名数据外的域名数据,第一检测结果指示域名数据为正常域名数据。也就是上述预设数据库中存储的域名数据为:大数据端设备所获取到的多个域名数据中检测结果指示域名数据为异常域名数据的域名数据,或者上述未知域名数据。

在本申请实施例中,大数据端设备拒绝将正常域名数据存储到预设数据库中,使得预设数据库中存储的域名数据为未知域名数据或异常域名数据,从而提高了域名数据存储的效率。例如,在存储相同数据量的一段域名数据时,未采用本申请实施例提供的技术方案时存储耗时为129秒,而采用本申请实施例提供的技术方案时存储耗时为25秒,明显缩短了域名数据存储过程的耗时。

另外,由于减少了预设数据库中存储的域名数据的数据量,便于后期从预设数据库中获取未知域名数据或异常域名数据进行域名检测,在减少预设数据库中存储的域名数据的数据量的同时,保证了预设数据库中存储的域名数据的有效性。

上述DGA服务设备可以根据预设缓冲区中存储的对应关系、预设白名单、以及预设数据库中存储的检测结果,确定待存储域名数据是否为正常域名数据,也可以采用其他方式确定待存储域名数据是否为正常域名数据,对此不进行限定。

为便于理解,下面结合图7所示的网络架构,以及图8所示的图7中设备间的交互信令图,对本申请实施例提供的域名检测方法进行说明。

步骤S801,大数据端设备获取多个域名检测数据。

步骤S802,大数据端设备根据预设缓存区所存储的域名数据和检测结果的对应关系,将除第一检测结果对应的域名数据外的域名数据存储至预设数据库中。

上述预设缓存区和预设数据库设置在中间设备中。

步骤S803,大数据端设备向DGA服务设备发送域名检测任务,域名检测任务包括索引信息,索引信息包括模型标识和时间段。

步骤S804,DGA服务设备接收域名检测任务。

步骤S805,DGA服务设备从预设数据库中读取索引信息所指示的时间段内的域名数据,作为索引信息所指示的模型标识对应的待检测域名数据。

由于网络中每时每刻存在大量的网络访问请求,因此,上述预设数据库中每一时间段对应存在大量的域名数据。也就是,上述模型标识对应的待检测域名数据的数量为多个。

步骤S806,DGA服务设备从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名。

步骤S807,DGA服务设备确定查找到包括的域名的每个待检测域名数据为正常域名数据。

步骤S808,DGA服务设备针对未查找到包括的域名的每个待检测域名数据,从预设缓存区中存储的域名数据与检测结果的对应关系中,查找该待检测域名数据对应的检测结果。

步骤S809,DGA服务设备将查找到每个检测结果确定为对应的待检测域名数据的检测结果。

步骤S810,DGA服务设备将模型标识对应的待检测域名数据中未查找到对应的检测结果的每个待检测域名数据,分别输入模型标识对应的检测模型,得到每个待检测域名数据的检测结果。

步骤S811,DGA服务设备在得到每个待检测域名数据的检测结果之后,将每个待检测域名数据的检测结果写入预设数据库。

步骤S812,DGA服务设备针对检测结果指示异常域名数据的待检测域名数据,向大数据端设备发送卡夫卡消息。

在本申请实施例中,对上述步骤S811和步骤S812的执行顺序不作具体限定。

通过上述大数据端设备、中间设备以及DGA服务设备之间的交互可以缩短对多个待检测域名数据进行域名检测所需的时间,提高了域名检测效率。如图9所示,图9为应用本申请实施例提供技术方案的域名检测耗时的一种示意图。

在图9中,曲线1为2020年7月2日00:11:15至03:10:00期间,采用本申请实施例提供的域名检测方法进行域名检测时,需要检测模块进行域名检测的域名数据的数据量变化情况。根据曲线1,在00:11:15至00:20:00期间进行域名检测的数据量发生了明显减低,之后,数据量稳定在30000-40000之间波动。曲线2为2020年7月2日00:11:15至04:50:00期间,采用本申请实施例提供的域名检测方法进行域名检测的耗时变换情况。

根据曲线2,在00:11:15至00:20:00期间进行域名检测的耗时明显得到缩短,之后,耗时基本稳定在6-11秒之间。因此,相比于00:11:15时进行域名检测的数据量以及耗时,00:11:15之后进行域名检测的数据量以及耗时得到明显的降低。考虑到短时间内,如00:11:15至00:20:00期间,网络访问请求的数量并不会发生巨大的变化,以及本申请实施例对重复域名不进行域名检测的特征,采用本申请实施例提供的域名检测方法,明显减少了进行域名检测的域名数据的数量,缩短了域名检测过程的耗时,提高了域名检测的效果。

基于同一种发明构思,根据上述本申请实施例提供的域名检测方法,本申请实施例还提供了一种域名检测装置,如图10所示,图10为本申请实施例提供的域名检测装置的一种结构示意图。该装置包括以下模块。

第一获取模块1001,用于获取多个待检测域名数据;

第一查找模块1002,用于从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果;

第一确定模块1003,用于将查找到每个检测结果确定为对应的待检测域名数据的检测结果;

检测模块1004,用于将未查找到对应的检测结果的每个待检测域名数据分别输入检测模型,得到每个待检测域名数据的检测结果。

可选的,上述域名数据包括域名;上述域名检测装置还可以包括:

第二查找模块,用于从预设白名单包括的多个预设域名中,查找每个待检测域名数据包括的域名;

第二确定模块,用于确定查找到包括的域名的每个待检测域名数据为正常域名数据;

调用模块,用于基于未查找到包括的域名的每个待检测域名数据,调用第一查找模块1002执行从预设缓存区中存储的域名数据与检测结果的对应关系中,查找每个待检测域名数据对应的检测结果的步骤。

可选的,上述检测模型为多个;

上述检测模块1004,具体可以用于将未查找到对应检测结果的多个待检测域名数据划分为多个批次,每个批次包括的待检测域名数据的总数据量小于等于预设门限值,每个批次分别对应一个检测模型;并行将每一批次包括的待检测域名数据输入对应的检测模型,得到每个待检测域名数据的检测结果。

可选的,上述第一获取模块1001,具体可以用于接收大数据端设备发送的域名检测任务,域名检测任务包括索引信息,索引信息包括模型标识和时间段;从预设数据库中读取时间段内存储的域名数据,作为模型标识对应的待检测域名数据,其中,预设数据库存储有域名数据与索引信息的对应关系;

上述检测模块1004,具体可以用于将模型标识对应的待检测域名数据中未查找到对应的检测结果的每个待检测域名数据,分别输入模型标识对应的检测模型;

上述域名检测装置还可以包括:

存储模块,用于在得到每个待检测域名数据的检测结果之后,将每个待检测域名数据的检测结果写入预设数据库。

可选的,上述预设数据库中存储的域名数据为:大数据端设备根据预设缓存区中存储的对应关系,从获取的多个域名数据中,确定的除第一检测结果对应的域名数据外的域名数据,所述第一检测结果指示域名数据为正常域名数据。

通过本申请实施例提供的装置,DGA服务设备从预设缓存区存储的域名数据与检测结果的对应关系,查找获取到的每一待检测域名数据所对应的检测结果时,从而对未查找到对应的检测结果的待检测域名数据进行域名检测,也就是将该域名数据输入检测模型,得到对应的检测结果,而查找到对应的检测结果的待检测域名数据则不需要进行域名检测,也就是不需要执行将待检测域名数据输入检测模型,得到该待检测域名数据的检测结果的步骤。

每天、每小时需要检测的域名数据的数据量非常大,甚至达到千万级别。应用本申请实施例提供的技术方案,可以排除已知检测结果的待检测域名数据,大大地减少了输入检测模型的域名数据,缩短了域名检测过程的耗时,提高了域名检测的及时性,降低了域名检测过程被强制终止的可能性,从而保证了异常的域名数据上报的及时性,降低了安全隐患。

基于同一种发明构思,根据上述本申请实施例提供的域名检测方法,本申请实施例还提供了一种DGA服务设备,如图11所示,包括处理器1101和机器可读存储介质1102,机器可读存储介质1102存储有能够被处理器1101执行的计算机程序。处理器1101被计算机程序促使实现上述图1-图9所示的任一步骤。

一个可选的实施例中,如图11所示,DGA服务设备还可以包括:通信接口1103和通信总线1104;其中,处理器1101、机器可读存储介质1102、通信接口1103通过通信总线1104完成相互间的通信,通信接口1103用于上述DGA服务设备与其他设备之间的通信。

基于同一种发明构思,根据上述本申请实施例提供的域名检测方法,本申请实施例还提供了一种机器可读存储介质,机器可读存储介质存储有能够被处理器执行的计算机程序。处理器被计算机程序促使实现上述图1-图9所示的任一步骤。

基于同一种发明构思,根据上述本申请实施例提供的域名检测方法,本申请实施例还提供了一种计算机程序,处理器被计算机程序促使实现上述图1-图9所示的任一步骤。

上述通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。

上述机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、DGA服务设备、机器可读存储介质、计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

相关技术
  • 一种域名检测方法、装置、DGA服务设备及存储介质
  • 一种DGA域名检测方法、检测装置及计算机存储介质
技术分类

06120112935189