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

一种DNS劫持的监测方法、装置及电子设备

文献发布时间:2023-06-19 13:27:45


一种DNS劫持的监测方法、装置及电子设备

技术领域

本申请涉及网络安全技术领域,尤其涉及一种DNS劫持的监测方法、装置及电子设备。

背景技术

在网络安全领域中,有一种网络攻击的方式是DNS劫持,通过攻击DNS服务器,或伪造DNS服务器的方法,把目标网站域名解析到错误的IP地址,从而实现用户无法访问目标网站的目的或者恶意要求用户访问指定IP地址的目的。

目前,为了监测DNS劫持事件,采用的方法是检测引擎向指定单个DNS服务器发送一个DNS请求报文,DNS请求报文中包含了域名解析请求,检测引擎接收DNS服务器回复的一个DNS回复报文,检测引擎根据DNS回复报文获得一个IP地址,判断IP地址是否在预先设置的白名单中,若否,则存在DNS劫持。

由于是向单个DNS服务器发送DNS请求报文,所以进行检测时一个DNS请求报文只有一个IP地址,进行DNS劫持事件判断时,没有其他的IP地址进行参考,只能判断该IP地址是否在白名单中,若白名单中记录的域名的IP地址发生变更时,白名单在人为更新之前无法及时更新,缺少修正机制,从而在检测时无法匹配到IP地址,造成误报,降低了DNS劫持事件的监测准确率。

发明内容

本申请提供了一种DNS劫持的监测方法、装置及电子设备,通过获得一份DNS请求报文对应的多个IP主体信息,增加IP主体信息之间的对比,能够及时发现疑似被劫持的IP主体信息,用不同的规则计算出IP主体信息的疑似等级,量化的表示为DNS劫持事件的疑似程度,提高了DNS劫持事件的监测准确率。

第一方面,本申请提供了一种DNS劫持的监测方法,所述方法包括:

接收N个DNS服务器根据DNS请求报文回复的N个DNS回复报文,确定出DNS回复报文对应的IP主体信息,其中,所述IP主体信息为DNS请求报文中请求访问的域名的特征信息,N为大于等于2的整数;

在M个IP主体信息中确定出第一IP主体信息,将M个IP主体信息中除第一IP主体信息之外的IP主体信息作为第二IP主体信息,其中,所述M为小于等于N的整数;

用第一预设规则计算出第一IP主体信息的疑似等级;

用第二预设规则计算出第二IP主体信息的疑似等级。

在一种可能的设计中,在M个IP主体信息中确定出第一IP主体信息之前,包括:

将N个IP主体信息依次与白名单、黑名单中的IP主体信息进行匹配;

将匹配一致的IP主体信息在N个IP主体信息中删除,得到M个IP主体信息,其中,白名单包含了正常的IP主体信息,黑名单包含了异常的IP主体信息。

在一种可能的设计中,在M个主体信息中确定出第一IP主体信息,包括:

将M个IP主体信息分为J个IP主体信息集合,读取每个集合中IP主体信息的数量值,获得J个数量值,其中,J为小于M且大于等于2的整数,IP主体信息集合中的IP主体信息相同;

选出数量值最大对应的集合,将所述集合中的IP主体信息作为第一IP主体信息。

在一种可能的设计中,在M个主体信息中确定出第一IP主体信息,包括:

将M个IP主体信息与历史记录的IP主体信息进行匹配,将与历史记录的IP主体信息相同的IP主体信息作为第一IP主体信息。

在一种可能的设计中,用第一预设规则计算出第一IP主体信息的疑似等级,包括:

判断第一IP主体信息是否在疑似DNS劫持名单中;

若是,则读取与第一IP主体信息相同的IP主体信息在DNS劫持名单中对应的第一疑似等级,将第一疑似等级带入第一预设规则中的第一算法中,计算出第一IP主体信息的疑似等级;

若否,则用第一预设规则中的第二算法计算出第一IP主体信息的疑似等级。

在一种可能的设计中,用第二预设规则计算出第二IP主体信息的疑似等级,包括:

判断第二IP主体信息是否在疑似DNS劫持名单中;

若是,则读取与第二IP主体信息相同的IP主体信息在DNS劫持名单中对应的第二疑似等级,将第二疑似等级带入第二预设规则中的第三算法中,计算出第二IP主体信息的疑似等级;

若否,则用第二预设规则中的第四算法计算第二IP主体信息的疑似等级。

第二方面,本申请提供了一种DNS劫持的监测装置,所述装置包括:

接收模块,用于接收N个DNS服务器根据DNS请求报文回复的N个DNS回复报文,确定出DNS回复报文对应的IP主体信息;

确定模块,用于在M个IP主体信息中确定出第一IP主体信息,将M个IP主体信息中除第一IP主体信息之外的IP主体信息作为第二IP主体信息;

计算模块,用于用第一预设规则计算出第一IP主体信息的疑似等级;

处理模块,用于用第二预设规则计算出第二IP主体信息的疑似等级。

在一种可能的设计中,所述确定模块,具体用于将N个IP主体信息依次与白名单、黑名单中的IP主体信息进行匹配,将匹配一致的IP主体信息在N个IP主体信息中删除,得到M个IP主体信息,其中,白名单包含了正常的IP主体信息,黑名单包含了异常的IP主体信息。

在一种可能的设计中,所述确定模块,还用于将M个IP主体信息分为J个IP主体信息集合,读取每个集合中IP主体信息的数量值,获得J个数量值,其中,J为小于M且大于等于2的整数,IP主体信息集合中的IP主体信息相同,选出数量值最大对应的集合,将所述集合中的IP主体信息作为第一IP主体信息。

在一种可能的设计中,所述确定模块,还用于将M个IP主体信息与历史记录的IP主体信息进行匹配,将与历史记录的IP主体信息相同的IP主体信息作为第一IP主体信息。

在一种可能的设计中,所述计算模块,具体用于判断第一IP主体信息是否在疑似DNS劫持名单中,若是,则读取与第一IP主体信息相同的IP主体信息在DNS劫持名单中对应的第一疑似等级,将第一疑似等级带入第一预设规则中的第一算法中,计算出第一IP主体信息的疑似等级,若否,则用第一预设规则中的第二算法计算出第一IP主体信息的疑似等级。

在一种可能的设计中,所述处理模块,具体用于判断第二IP主体信息是否在疑似DNS劫持名单中,若是,则读取与第二IP主体信息相同的IP主体信息在DNS劫持名单中对应的第二疑似等级,将第二疑似等级带入第二预设规则中的第三算法中,计算出第二IP主体信息的疑似等级,若否,则用第二预设规则中的第四算法计算第二IP主体信息的疑似等级。

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

存储器,用于存放计算机程序;

处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种DNS劫持的监测方法步骤。

第四方面,一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种DNS劫持的监测方法步骤。

上述第一方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。

附图说明

图1为本申请提供的一种DNS劫持事件的监测方法步骤的流程图;

图2为本申请提供的一种DNS劫持事件的装置的结构示意图;

图3为本申请提供的一种电子设备的结构示意图。

具体实施方式

目前,为了监测DNS劫持事件,采用的方法是检测引擎向指定单个DNS服务器发送一个DNS请求报文,根据DNS服务器回复的DNS回复报文确定出一个IP地址,在进行DNS劫持事件监测时,只能根据IP地址在白名单中确定IP地址为正常IP地址,或者根据IP地址在黑名单中确定IP地址为异常的IP地址,对于白名单以及黑名单,在人为更新之前无法及时更新,当白名单或者黑名单中的IP地址发生变更时,黑名单以及白名单不能做出及时的更新,从而在检测时无法匹配到IP地址,在人员进行更新时,对于IP地址的确定没有修正机制,导致在进行DNS劫持事件的判断时复杂度较高。

为了降低人员判断DNS劫持事件时的复杂度,从而提高监测DNS劫持事件的准确率,本申请实施例提供了一种DNS劫持事件的监测方法,用以减少对白名单以及黑名单的频繁人工维护,将疑似DNS劫持的事件量化为疑似等级,提高DNS劫持事件的检测准确率。其中,本申请实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。

下面结合附图,对本申请实施例进行详细描述。

参照图1,本申请提供了一种DNS劫持的监测方法,该方法可以提升DNS劫持事件的监测准确率以及降低人员判断DNS劫持事件时的复杂度,该方法的实现流程如下:

步骤S1:接收N个DNS服务器根据DNS请求报文回复的N个DNS回复报文,确定出DNS回复报文对应的IP主体信息。

在本步骤S1实施之前,需要配置检测引擎,检测引擎用于监测DNS回复报文是否正常,由于检测引擎在初始状态下为空,为了确保检测引擎能够正常进行检测,需要提前做配置工作。首先,将需要做DNS劫持监测的域名信息配置到受监测域名库中,检测引擎加载受监测域名库,将受监测域名库中的域名向指定DNS服务节点发起DNS解析请求;其次,需要配置DNS服务节点信息,检测引擎加载该DNS服务节点信息,确保能够向指定DNS服务节点发起DNS解析请求;最后,需要配置初始白名单,用于判断DNS解析结果是否正常。

检测引擎配置完成之后,接收客户端发送的一个DNS请求报文,将一个DNS请求报文发送至指定的N个DNS服务器节点,其中,N为大于等于2的整数,DNS请求报文中包含了域名解析请求,DNS服务器节点将DNS请求报文转发至对应的DNS服务器,DNS服务器根据DNS请求报文生成DNS回复报文并将DNS回复报文原路发送至DNS服务器节点,DNS服务器节点将DNS回复报文发送至检测引擎进行检测。

在检测引擎接收到DNS回复报文之后,解析出每个DNS回复报文的IP地址,根据IP地址与IP主体信息的对应关系,找到每个IP地址的IP主体信息,获得N个IP主体信息,其中,IP主体信息为DNS请求报文中请求访问的域名的特征信息,特征信息可以为IP地址位置、运营商、所属单位或者企业中的一个或者多个组合。

通过上述描述的方法,将一个DNS请求报文发送至N个DNS服务器节点,获得N个IP主体信息,增加了IP主体信息的数量,若N个IP主体信息中有被劫持的IP主体信息,则被劫持的IP主体信息的特征信息与其他IP主体信息的特征信息不一致,当N个数量越多,被劫持的IP主体信息的特征信息与其他的IP主体信息的特征信息的差异化就越明显,从而更准确的找出N个IP主体信息中有差异信息的IP主体信息,进一步能够找到高度疑似DNS劫持事件的IP主体信息。

步骤S2:在M个IP主体信息中确定出第一IP主体信息,将M个IP主体信息中除第一IP主体信息之外的IP主体信息作为第二IP主体信息。

在获得N个IP主体信息之后,将N个IP主体信息依次与白名单、黑名单进行匹配,找到确定为正常的IP主体信息以及确定为异常的IP主体信息,将未匹配上白名单以及黑名单的IP主体信息的数量记为M,M为小于等于N的整数,为了在M个IP主体信息中找到高度疑似DNS劫持事件的IP主体信息,可选的方式有方式一、方式二或者方式一与方式二结合的方式。

方式一:将M个IP主体信息分为J个IP主体信息集合,J为小于M且大于等于2的整数,IP主体信息集合中的IP主体信息相同,读取每个IP主体信息集合中IP主体信息的数量,找到IP主体信息集合中IP主体信息数量最多的集合,将该集合中的IP主体信息作为第一IP主体信息,将M个IP主体信息中除第一IP主体信息之外的IP主体信息作为第二IP主体信息,第二IP主体信息就为高度疑似DNS劫持的IP主体信息。

方式二:将M个IP主体信息与历史记录的IP主体信息进行匹配,将匹配一致的IP主体信息作为疑似等级较低的IP主体信息,将该IP主体信息记为第一IP主体信息,与历史记录的IP主体信息未匹配上的IP主体信息作为第二IP主体信息,第二IP主体信息就为高度疑似DNS劫持事件的IP主体信息。

当J个IP主体信息集合中的IP主体信息数量一致时,无法确定出第一IP主体信息以及第二IP主体信息,此时将每个IP主体信息集合中的IP主体信息与历史记录的IP主体信息进行匹配,从而确定出第一IP主体信息以及第二IP主体信息。

通过上述的方法,用不同的方式将M个IP主体信息分为疑似DNS劫持事件较高的IP主体信息以及疑似DNS劫持事件较低的IP主体信息,节省了人员进行DNS劫持事件研判时的工作量,提高DNS劫持事件的检测准确率。

步骤S3:用第一预设规则计算出第一IP主体信息的疑似等级。

在确定出第一IP主体信息之后,将第一IP主体信息与疑似DNS劫持名单进行匹配,判断第一IP主体信息是否在疑似DNS劫持名单中,若是,则读取历史记录中的在历史记录中的第一疑似等级,将历史记录中的IP主体信息对应的疑似等级带入第一算法中计算出IP主体信息的疑似等级,第一算法公式如下:

其中,suggest level为建议疑似等级值,Q

比如:第一IP主体信息在疑似DNS劫持名单中且疑似等级为5,rc为20,scc为50,由于5在(3,7]中,则Q

若否,则用第二算法计算出IP主体信息的疑似等级,第二算法公式如下:

其中,Level为疑似等级值,rc为周期内历史记录中IP主体信息出现的次数,scc是周期内发起监测请求的次数。

比如:第一IP主体信息不在疑似DNS劫持名单中,rc为30,scc为50,将rc值以及scc值带入公式(2)中,计算出第一IP主体信息的疑似等级为2.6。

步骤S4:用第二预设规则计算出第二IP主体信息的疑似等级。

用第二预设规则计算出第二IP主体信息的疑似等级时,首先,判断第二IP主体信息是否在疑似劫持名单中,若是,则读取与第二IP主体信息相同的IP主体信息在DNS劫持名单中对应的第二疑似等级,将第二疑似等级带入第二预设规则中的第三算法中,计算出第二IP主体信息的疑似等级,第三算法公式如下:

其中,suggest level为建议疑似等级,Q

比如:第二IP主体信息在疑似DNS劫持名单中,历史记录中与第二IP主体信息相同的IP主体信息的疑似等级为2,rc为20,scc为50,将rc值以及scc值带入公式(3),由于2在(1,3]范围内,所以Q

若否,则用第四算法计算出第二IP主体信息的疑似等级,第四算法公式如下:

其中,Level为IP主体信息的疑似等级,rc为周期内IP主体信息出现的次数,scc为周期内发起监测请求的次数。

比如:第二IP主体信息不在疑似DNS劫持名单中,rc为20,scc为50,将rc值以及scc值带入公式(4),计算出疑似等级为8.4。

通过上述的方法,用不同的算法计算出IP主体信息的疑似等级,在历史记录中的IP主体信息疑似等级较低,未在历史记录中的IP主体信息疑似等级较高,将疑似DNS劫持事件的IP主体信息量化为具体的疑似等级,降低了人员进行DNS劫持事件研判时的复杂度,减少对白名单以及黑名单的频繁人工维护,提高DNS劫持事件的检测准确率。

基于本申请所提供的方法,接收N个DNS服务器根据DNS请求报文回复的N个DNS回复报文,确定出DNS回复报文对应的IP主体信息,在M个IP主体信息中确定出第一IP主体信息以及第二IP主体信息,用第一预设规则计算出第一IP主体信息的疑似等级,用第二预设规则计算出第二IP主体信息的疑似等级,通过上述方法,将DNS请求报文发送至N个DNS服务器获得N份IP主体信息,增加了可对比的IP主体信息的数量,降低了对于DNS劫持事件的误报,用不同的规则计算出IP主体信息的疑似等级,量化的表示为DNS劫持事件的疑似程度,提高了DNS劫持事件的监测准确率。

基于同一发明构思,本申请实施例中还提供了一种DNS劫持的监测装置,该DNS劫持的监测装置用于实现了一种DNS劫持的监测方法的功能,参照图2,所述装置包括:

接收模块201,用于接收N个DNS服务器根据DNS请求报文回复的N个DNS回复报文,确定出DNS回复报文对应的IP主体信息;

确定模块202,用于在M个IP主体信息中确定出第一IP主体信息,将M个IP主体信息中除第一IP主体信息之外的IP主体信息作为第二IP主体信息;

计算模块203,用于用第一预设规则计算出第一IP主体信息的疑似等级;

处理模块204,用于用第二预设规则计算出第二IP主体信息的疑似等级。

在一种可能的设计中,所述确定模块202,具体用于将N个IP主体信息依次与白名单、黑名单中的IP主体信息进行匹配,将匹配一致的IP主体信息在N个IP主体信息中删除,得到M个IP主体信息,其中,白名单包含了正常的IP主体信息,黑名单包含了异常的IP主体信息。

在一种可能的设计中,所述确定模块202,还用于将M个IP主体信息分为J个IP主体信息集合,读取每个集合中IP主体信息的数量值,获得J个数量值,其中,J为小于M且大于等于2的整数,IP主体信息集合中的IP主体信息相同,选出数量值最大对应的集合,将所述集合中的IP主体信息作为第一IP主体信息。

在一种可能的设计中,所述确定模块202,还用于将M个IP主体信息与历史记录的IP主体信息进行匹配,将与历史记录的IP主体信息相同的IP主体信息作为第一IP主体信息。

在一种可能的设计中,所述计算模块203,具体用于判断第一IP主体信息是否在疑似DNS劫持名单中,若是,则读取与第一IP主体信息相同的IP主体信息在DNS劫持名单中对应的第一疑似等级,将第一疑似等级带入第一预设规则中的第一算法中,计算出第一IP主体信息的疑似等级,若否,则用第一预设规则中的第二算法计算出第一IP主体信息的疑似等级。

在一种可能的设计中,所述处理模块204,具体用于判断第二IP主体信息是否在疑似DNS劫持名单中,若是,则读取与第二IP主体信息相同的IP主体信息在DNS劫持名单中对应的第二疑似等级,将第二疑似等级带入第二预设规则中的第三算法中,计算出第二IP主体信息的疑似等级,若否,则用第二预设规则中的第四算法计算第二IP主体信息的疑似等级。

基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种DNS劫持的监测装置的功能,参考图3,所述电子设备包括:

至少一个处理器301,以及与至少一个处理器301连接的存储器302,本申请实施例中不限定处理器301与存储器302之间的具体连接介质,图3中是以处理器301和存储器302之间通过总线300连接为例。总线300在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线300可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器301也可以称为控制器,对于名称不做限制。

在本申请实施例中,存储器302存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器402存储的指令,可以执行前文论述的一种DNS劫持的监测方法。处理器301可以实现图2所示的装置中各个模块的功能。

其中,处理器301是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器302内的指令以及调用存储在存储器302内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。

在一种可能的设计中,处理器301可包括一个或多个处理单元,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。在一些实施例中,处理器301和存储器302可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器301可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种DNS劫持的监测方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器302可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器302还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

通过对处理器301进行设计编程,可以将前述实施例中介绍的一种DNS劫持的监测方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的一种DNS劫持的监测步骤。如何对处理器301进行设计编程为本领域技术人员所公知的技术,这里不再赘述。

基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种DNS劫持的监测方法。

在一些可能的实施方式中,本申请提供一种DNS劫持的监测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种DNS劫持的监测方法中的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种DNS劫持的监测方法、装置及电子设备
  • DNS劫持的监测方法和装置
技术分类

06120113688854