缓存中毒的防护方法和防护设备及防护系统的制作方法

文档序号:7714382阅读:235来源:国知局
专利名称:缓存中毒的防护方法和防护设备及防护系统的制作方法
技术领域
本发明涉及网络安全技术领域,具体涉及缓存中毒的防护方法和防护设备及防护 系统。
背景技术
随着互联网技术的深入发展,网络安全变得非常的重要。网络中的域名系统(DNS, Domain Name System)服务器主要用于进行域名解析。DNS服务器可以将用户请求解析的 域名转换为对应的IP地址,也可以将用户请求解析的IP地址转换为对应的域名。
DNS服务器感染缓存中毒(cache poison)将影响整个网络的安全,所谓DNS服务 器缓存中毒,主要是指该DNS服务器缓存了虚假的IP地址和域名的映射关系。
例如客户机向缓存中毒的DNS服务器发起对应网站A的域名查询,缓存中毒的DNS 服务器可能返回一个虚假的IP地址,客户机若根据该虚假的IP地址进行网站A访问,可能 获得一个酷似网站A界面的假界面,若用户在该假界面上进行相关操作,将泄露自己的安 全信息,甚至蒙受经济损失。
若其它的DNS服务器向缓存中毒的DNS服务器请求域名查询,也可能从缓存中毒 的DNS服务器获得一个虚假的IP地址,导致该DNS服务器也会感染缓存中毒。可以理解, 若网络中有一个DNS服务器感染缓存中毒,网络中的其它DNS服务器可能因交叉感染而全 部缓存中毒。
基于网络安全的考虑,有必要对DNS服务器进行缓存中毒防护,在现有技术中,通 常是通过层三防护技术对DNS服务器进行缓存中毒防护的,但层三防护的可靠性通常比较 低。发明内容
本发明实施例提供缓存中毒的防护方法和防护设备及防护系统,能够有效可靠的 防护DNS服务器缓存中毒。
为解决上述技术问题,本发明实施例提供以下技术方案
一种缓存中毒的防护方法,包括
接收第一域名服务器发送的第一域名查询请求消息,所述第一域名查询请求消息 携带有第一域名信息;向第二域名服务器发送携带有第一域名的域名查询请求消息;接收 第二域名服务器发送的域名查询应答消息,所述域名查询应答消息携带有根据第一域名解 析出的网际协议IP地址;利用至少一个第三域名服务器验证所述IP地址的可靠性;在所 述可靠性验证通过后,向第一域名服务器发送携带有所述IP地址的第一域名查询应答消息。
一种缓存中毒的防护方法,包括
接收第一域名服务器发送的第一域名查询请求消息,所述第一域名查询请求消息 携带有第一域名信息;向至少两个第二域名服务器发送携带有第一域名的域名查询请求消息;接收至少两个第二域名服务器发送的域名查询应答消息,所述域名查询应答消息中携 带有根据第一域名解析出的IP地址;将所述至少两个第二域名服务器发送的域名查询应 答消息中携带的根据第一域名解析出的IP地址进行比较;若超过设定比例的第二域名服 务器发送的域名查询应答消息中携带的根据第一域名解析出的IP地址相同,向第一域名 服务器发送携带有所述相同的IP地址的第一域名查询应答消息。
一种防护设备,包括
第一接收模块,用于接收第一域名服务器发送的第一域名查询请求消息,所述第 一域名查询请求消息携带有第一域名信息;第一发送模块,用于向第二域名服务器发送携 带有第一域名的域名查询请求消息;第二接收模块,用于接收第二域名服务器发送的域名 查询应答消息,所述域名查询应答消息携带有根据第一域名解析出的IP地址;可靠性验证 模块,用于利用至少一个第三域名服务器验证所述IP地址的可靠性;第二发送模块,用于 在所述可靠性验证模块的可靠性验证通过后,向第一域名服务器发送携带有所述IP地址 的第一域名查询应答消息。
一种防护系统,包括如上述实施例中的防护设备。
一种防护设备,包括
第一接收模块,用于接收第一域名服务器发送的第一域名查询请求消息,所述第 一域名查询请求消息携带有第一域名信息;第一发送模块,用于向至少两个第二域名服务 器发送携带有第一域名的域名查询请求消息;第二接收模块,用于接收至少两个第二域名 服务器发送的域名查询应答消息,所述域名查询应答消息携带根据第一域名解析出的IP 地址;比较模块,用于将第二接收模块接收的至少两个第二域名服务器发送的域名查询应 答消息中携带的根据第一域名解析出的IP地址进行比较;第二发送模块,用于在超过设定 比例的第二域名服务器发送的域名查询应答消息携带的根据第一域名解析出的IP地址相 同时,向第一域名服务器发送携带有所述相同的IP地址的第一域名查询应答消息。
一种防护系统,包括如上述实施例中的防护设备。
由上可见,本发明实施例采用的技术方案具有如下有益效果
本发明实施例利用至少两个DNS服务器协助解析第一域名服务器请求解析的域 名,并利用至少两个DNS服务器反馈的域名解析结果,相互验证域名解析结果的可靠性,在 可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使得第一域名服务器能够获 得真实的域名和IP地址的映射关系,进而实现有效的防护第一域名服务器感染缓存中毒; 由于是在应用层进行第一域名服务器的缓存中毒保护,实现方式十分的可靠。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
图1是本发明实施例一提供的一种缓存中毒的防护方法流程图2是本发明实施例二提供的一种缓存中毒的防护方法流程图3是本发明实施例三提供的一种缓存中毒的防护方法流程图4是本发明实施例四提供的一种缓存中毒的防护方法流程图5_a是本发明实施例五提供的一种防护设备示意图5_b是本发明实施例五提供的一种可靠性验证模块示意图5-c是本发明实施例五提供的另一种可靠性验证模块示意图6是本发明实施例六提供的一种防护设备示意图7是本发明实施例七提供的一种防护系统示意图8是本发明实施例八提供的一种防护系统示意图。
具体实施方式
本发明实施例提供一种缓存中毒的防护方法和防护设备及防护系统,能够有效可 靠的防护DNS服务器缓存中毒。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实 施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通 技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其中,为描述方便,本发明实施例中域名系统服务器(DNS服务器)可简称为域名 服务器。
实施例一、
参见图1、本发明实施例一的一种缓存中毒的防护方法,可以包括
110、接收第一域名服务器发送的第一域名查询请求消息,该第一域名查询请求消 息携带有第一域名信息。
其中,例如若第一域名服务器当前没有缓存第一域名和对应IP地址的映射关系, 第一域名服务器就无法直接解析出第一域名的IP地址,此时第一域名服务器可以发送携 带有请求解析的第一域名的域名查询请求消息,以请求其它DNS服务器协助解析第一域名 的IP地址。
120、向第二域名服务器发送携带有第一域名的域名查询请求消息。
在实际应用中,例如可以直接向第二域名服务器发送第一域名查询请求消息;也 可以先对第一域名查询请求消息携带的部分参数进行修改,然后再向第二域名服务器发送 修改了参数的携带有第一域名的第一域名查询请求消息;当然也可以选择重新生成一个携 带第一域名的域名查询请求消息,然后向第二域名服务器发送重新生成的携带有第一域名 的域名查询请求消息。并且,上述的第二域名服务器可以是一个DNS服务器,也可以是多个 DNS服务器。
130、接收第二域名服务器发送的域名查询应答消息,该域名查询应答消息携带有 根据第一域名解析出的IP地址。
其中,第二域名服务器在接收到携带第一域名的域名查询请求消息后,可以解析 第一域名的IP地址,并回复携带有其根据第一域名解析出的IP地址的域名查询应答消息。
140、利用至少一个第三域名服务器验证上述IP地址的可靠性,若可靠性验证通 过,执行步骤150,若可靠性验证未通过,执行步骤160。
在一种应用场景下,例如可以向至少一个第三域名服务器发送携带上述IP地址 的域名反查请求消息,根据至少一个第三域名服务器反馈的根据上述IP地址解析出的域 名,验证第二域名服务器反馈的上述IP地址的可靠性;其中,验证方式具体可以是,将第三 域名服务器反馈的根据上述IP地址解析出的域名和第一域名进行比较,若超过设定比例 (设定比例例如可以是90%、100%或根据需要设定的其它值,当然可以理解的是,设定的 比例越高,可靠性验证结果的准确度也就越高。)的第三域名服务器反馈的根据上述IP地 址解析出的域名和第一域名相同,可以确定上述IP地址的可靠性验证通过,若超过设定比 例的第三域名服务器反馈的根据上述IP地址解析出的域名和第一域名不相同,可以确定 上述IP地址的可靠性验证未通过。
在另一种应用场景下,也可以选择向至少一个第三域名服务器发送携带第一域名 的域名查询请求消息,根据至少一个第三域名服务器反馈的根据第一域名解析出的IP地 址,验证第二域名服务器反馈的IP地址的可靠性,其中,验证方式具体可以是,将上述至少 一个第三域名服务器反馈的根据第一域名解析出的IP地址和第二域名服务器反馈的根据 第一域名解析出的IP地址进行比较,若超过设定比例的第三域名服务器反馈的根据第一 域名解析出的IP地址和第二域名服务器反馈的根据第一域名解析出的IP地址相同,确定 上述可靠性验证通过,若超过设定比例的第三域名服务器反馈的根据第一域名解析出的IP 地址和第二域名服务器反馈的根据第一域名解析出的IP地址不相同,确定上述可靠性验 证未通过。其中,可以选择在向第二域名服务器发送携带第一域名的域名查询请求消息的 同时,向第三域名服务器发送携带第一域名的域名查询请求消息,当然也可以选择先向第 二域名服务器发送或先向第三域名服务器发送。
当然也可以通过其它方式,利用至少一个第三域名服务器验证上述IP地址的可 靠性,此处不做限定。
150、在上述可靠性验证通过后,向第一域名服务器发送携带有上述IP地址的第 一域名查询应答消息。
其中,第一域名服务器在接收到第一域名查询应答消息后,例如可以刷新其缓存, 记录第一域名和IP地址的映射关系。
160、若上述可靠性验证未通过,进行告警处理。
在实际应用中,若上述可靠性验证未通过,说明请求协助解析第一域名的其它服 务器中的部分或全部可能已经缓存中毒,此时可以进行告警处理,例如可以发出告警日志、 向网管中心通报情况等等。
需要说明的是,上述技术方案可以在防护设备上具体实施,该防护设备可以直接 位于第一域名服务器上,也可以是与第一域名服务器连接的防火墙设备、网关或其它设备, 本发明不做限定。
由上述技术方案可以看出,本发明实施例利用至少两个DNS服务器协助解析第一 域名服务器请求解析的域名,并利用至少两个DNS服务器反馈的域名解析结果,相互验证 域名解析结果的可靠性,在可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使 得第一域名服务器能够获得真实的域名和IP地址的映射关系,进而实现有效的防护第一 域名服务器感染缓存中毒;由于是在应用层进行第一域名服务器的缓存中毒保护,实现方 式十分的可靠。
实施例二、
为更好的理解本发明的技术方案,下面通过更为具体的实施例对本发明实施例的 上述技术方案做进一步详细的描述。
其中,本实施例以DNS服务器(DNSl)向其它DNS服务器请求协助解析域名,DNSl 的防护设备SDl利用其它至少两个DNS服务器反馈的IP地址,对解析结果的可靠性进行验 证为例,进行举例说明。
参见图2、本发明实施例二的一种缓存中毒的防护方法,可以包括
201、客户机Al向DNSl发送域名查询请求消息,该域名查询请求消息携带请求解 析的域名dal。
在实际应用中,客户机Al在需要获得例如域名dal对应的IP地址时,客户机Al 例如可以向DNSl发送携带域名dal的域名查询请求消息,请求DNSl解析域名dal对应的 IP地址。
其中,客户机Al例如可以是计算机、便携机、手机、智能终端、车载设备、电话等, 或其它的终端设备。
202、DNSl发送域名查询请求消息,其中,该域名查询请求消息携带请求解析的域 名 dal。
在一种应用场景下,DNSl可以接收上述客户机Al发送的域名查询请求消息,并在 自身缓存中进行查找,以求解析域名dal对应的IP地址。
本实施例以DNSl自身没有缓存域名dal和IP地址的映射关系为例,此时DNSl可 以进一步向其它DNS服务器发送携带域名dal的域名查询请求消息,请求其它域名服务器 协助解析出域名dal对应的IP地址。
203、防护设备SDl接收DNSl发送的上述域名查询请求消息,向其它至少两个域名 服务器发送域名查询请求消息,该域名查询请求消息携带请求解析的域名dal信息。
在实际应用中,防护设备SDl可以是DNSl中的一个功能模块,也可以是与DNSl连 接的防火墙设备、网关或其它设备,本发明不做限定。
在一种应用场景下,防护设备SDl可以接收DNSl发送的上述域名查询请求消息, 并可以向其它至少两个域名服务器发送携带有请求解析的域名dal的域名查询请求消息。
其中,防护设备SDl可以选择同时向其它至少两个域名服务器发送携带有请求解 析的域名dal的域名查询请求消息,也可以选择分时向其它至少两个域名服务器发送携带 有请求解析的域名dal的域名查询请求消息。
本实施例以防护设备SDl向DNS2和DNS3发送携带域名dal的域名查询请求消息, 请求DNS2和DNS3协助解析出域名dal对应的IP地址为例,进行进一步的说明。
具体的,DNS2例如可以是主用DNS服务器(或权威DNS服务器)、DNS3例如可以 是备用DNS服务器。
在实际应用中,域名查询请求消息和域名查询响应消息中还可以携带有端口号 (或其它端口标识)、以及与该域名查询请求对应的应用层ID,其中,应用层ID主要用于标 识域名查询请求和应答。
进一步的,为防止被攻击者恶意猜测,防护设备SDl可以先按照预置的某种策略, 修改来自DNSl的域名查询请求消息的应用层ID和/或端口号;向DNS2和DNS3发送上述修改了应用层ID和/或端口号的域名查询请求消息。
其中,防护设备SDl当然也可以向DNS2发送上述修改了应用层ID和/或端口号 的域名查询请求消息;而向DNS3转发来自DNSl的域名查询请求消息(即没有修改应用层 ID和/或端口号),或者也可以重新生成携带域名dal的域名查询请求消息,并向DNS3发送。
防护设备SDl例如可以采用预置的多种随机数生成算法,生成随机的应用层ID和 /或端口号,以尽可能避免被攻击者暴力猜测到。
在实际应用中,防护设备SDl可以建立会话表,并可以在会话表中记录上述域名 查询请求消息携带的初始的应用层ID和修改后的应用层ID,以及初始的端口号和修改后 的端口号。后续向DNSl回复域名查询应答消息时,需要在该域名查询应答消息中携带上述 初始的应用层ID和初始的端口号。
为便于描述,下面以来自DNSl的域名查询请求消息携带的初始的应用层ID为 ID1、初始的端口号为Portl ;防护设备SDl修改后的应用层ID为ID2,修改后的端口号为 Port2为例。防护设备SDl在会话表中关联记录IDl和ID2,Portl和Port2。
204、防护设备SDl分别接收DNS2和DNS3发送的域名查询应答消息,该域名查询 应答消息携带根据域名dal解析出的IP地址。
在一种应用场景下,DNS2和DNS3在接收到防护设备SDl发送的携带域名dal的 域名查询请求消息后,可以根据域名dal在其自身的缓存中(或向其它DNS服务器)查询, 以解析出域名dal的IP地址;DNS2和DNS3在解析出域名dal的IP地址后,可以分别向防 护设备SDl发送携带根据域名dal解析出的IP地址的域名查询应答消息。
根据协议规定,DNS2和DNS3回复的域名查询应答消息携带的应用层ID和端口号, 需要与之前对应接收到的防护设备SDl发送的域名查询请求消息携带的应用层ID和端口 号相同。
205、防护设备SDl确认接收到的域名查询应答消息携带的应用层ID和端口号是 否真实,若真实,则执行步骤206 ;若不真实;则执行步骤209。
在一种应用场景下,若防护设备SDl没有修改来自DNSl的域名查询请求消息携带 的初始的应用层ID和端口号(即防护设备SDl向DNS2和DNS3发送的域名查询请求消息 携带的应用层ID为ID1、端口号为Portl),防护设备SDl可以检测对应接收到的域名查询 应答消息携带的应用层ID是否为ID1、端口号是否为Portl,若检测出对应接收到的域名查 询应答消息携带的应用层ID不为ID1,和/或端口号不为Portl,则表明该域名查询应答消 息携带的应用层ID和/或端口号不真实(此时可以认为,该域名查询应答消息可能来自被 感染病毒的DNS2和/或DNS3,也可能是攻击者仿冒发送的),可以执行步骤209 ;若检测出 对应接收到的域名查询应答消息携带的应用层ID为ID1、端口号为Portl,则表明该域名查 询应答消息携带的应用层ID和端口号真实,防护设备SDl可以执行步骤206。
类似的,若防护设备SDl修改了来自DNSl的域名查询请求消息携带的初始的应用 层ID和端口号(即防护设备SDl向DNS2和DNS3发送的域名查询请求消息携带的应用层 ID为ID2、端口号为Port2),防护设备SDl可以检测对应接收到的域名查询应答消息携带的 应用层ID是否为ID2、端口号是否为Port2,若检测出对应接收到的域名查询应答消息携带 的应用层ID不为ID2、和/或端口号不为Port2,则表明该域名查询应答消息携带的应用层ID和/或端口号不真实(此时可以认为,该域名查询应答消息可能来自感染病毒的DNS2和 /或DNS3,也可能是攻击者仿冒发送的),可以执行步骤209;若检测出对应接收到的域名查 询应答消息携带的应用层ID为ID2、端口号为Port2,则表明该域名查询应答消息携带的应 用层ID和端口号真实,防护设备SDl可以执行步骤206。
可以看出,防护设备SDl通过对域名查询应答消息携带的应用层ID和端口号的真 实性进行检测确认,可以比较有效的过滤攻击者仿冒的域名查询应答消息,有利于提高安 全性。
206、防护设备SDl比较DNS2和DNS3发送的域名查询应答消息携带的根据域名 dal解析出的IP地址是否相同,若相同,则执行步骤207、若不同,则执行步骤209。
可以理解,若比较出分别来自DNS2和DNS3的域名查询应答消息携带的根据域名 dal解析出的IP地址相同,表明该IP地址是比较可靠的,该IP地址的可靠性验证通过;若 比较出分别来自DNS2和DNS3的域名查询应答消息携带的根据域名dal解析出的IP地址 不同,表明DNS2和/或DNS3很可能已经缓存中毒,其已经缓存了虚假的域名dal和IP地 址的映射关系,该IP地址是不可靠的,该IP地址的可靠性验证未通过。
可以理解,若防护设备SDl向多个DNS服务器发送携带请求解析的域名dal的域 名查询请求消息,则可以接收来自多个DNS服务器的携带有根据域名dal解析出的IP地址 的域名查询应答消息,此时防护设备SDl可以将多个DNS服务器反馈的根据域名dal解析 出的IP地址一起进行比较,若超过设定比例的DNS服务器反馈的根据域名dal解析出的IP 地址相同,此时可以认为,该相同的IP地址比较可靠,该IP地址的可靠性验证通过,执行步 骤207 ;若超过设定比例的DNS服务器反馈的根据域名dal解析出的IP地址不全相同,此 时可以认为,DNS服务器反馈根据域名dal解析出的IP地址的可靠性验证未通过,执行步 骤 209。
举例来说,例如防护设备SDl向其它10个DNS服务器发送携带请求解析的域名 dal的域名查询请求消息,并接收到来自上述10个DNS服务器发送的携带有根据域名dal 解析出的IP地址的域名查询应答消息,例如设定相同比例为80%,此时若超过80%的DNS 服务器(即8个)反馈的根据域名dal解析出的IP地址相同,此时可以认为,该相同的IP 地址比较可靠,该IP地址的可靠性验证通过,可以执行步骤207 ;反之,若超过80%的DNS 服务器反馈的根据域名dal解析出的IP地址不全相同,此时可以认为,各个DNS服务器反 馈的根据域名dal解析出的IP地址的可靠性验证未通过,执行步骤209。
207、防护设备SDl向DNSl发送的域名查询应答消息,该域名查询应答消息携带上 述根据域名dal解析出的IP地址。
在实际应用中,若DNS2和DNS3回复的域名查询应答消息携带的应用层ID为ID2, 且端口号为Port2,防护设备SDl可以先根据会话表中的相应记录,修改DNS2或DNS3回复 的域名查询应答消息携带的应用层ID和端口号,即将DNS2或DNS3回复的域名查询应答消 息携带的应用层ID修改为ID1,端口号修改为Portl ;然后向DNSl发送上述修改了应用层 ID和端口号的域名查询应答消息。
208、DNSl向客户机Al发送域名查询应答消息,该域名查询应答消息携带上述根 据域名dal解析出的IP地址。
其中,DNSl可以根据反馈的域名查询应答消息携带上述根据域名dal解析出的IP地址,刷新缓存,即在缓存中记录域名dal和IP地址的映射关系。
DNSl可以向客户机Al对应的发送携带根据域名dal解析出的IP地址的域名查询 应答消息。客户机Al则可以根据DNSl反馈的根据域名dal解析出的IP地址,进行相应的 访问ο
由上可以看出,防护设备SDl利用至少两个DNS服务器反馈的域名解析结果,相互 验证域名解析结果的可靠性,DNSl能够通过防护设备SDl获得真实的域名和IP地址的映 射关系,进而实现有效的防护DNSl感染缓存中毒。
209、防护设备SDl通知DNSl域名查询失败,并进行告警处理。
在实际应用中,防护设备SDl若发现DNS2和/或DNS3可能缓存中毒,防护设备 SDl可以通知DNSl域名查询失败,并可以发出告警日志、向网管中心通报情况、丢弃DNS2和 DNS3发送的域名查询应答消息等。
DNSl可以进一步通知客户机Al域名查询失败,客户机Al可以重新向其它的DNS 服务器请求解析域名dal。
由上可见,本实施例中,防护设备利用至少两个DNS服务器协助解析DNSl请求解 析的域名,并利用至少两个DNS服务器反馈的域名解析结果,相互验证域名解析结果的可 靠性;在可靠性验证通过后,防护设备再向DNSl反馈域名解析结果,使得DNSl能够获得真 实的域名和IP地址的映射关系,进而实现有效的防护DNSl感染缓存中毒。
进一步的,防护设备修改来自DNSl的域名查询请求消息携带的应用层ID和端口 号,并对接收到的域名查询应答消息携带的应用层ID和端口号进行真实性确认,能够有效 的过滤掉攻击者仿冒的域名查询应答消息,有利于进一步提高网络的安全性;防护设备在 应用层进行DNSl缓存中毒保护,实现方式十分的可靠。
实施例三、
参见图3,本发明实施例三的一种缓存中毒的防护方法,可以包括
310、接收第一域名服务器发送的第一域名查询请求消息,该第一域名查询请求消 息携带有第一域名信息。
其中,例如若第一域名服务器当前没有缓存第一域名和对应IP地址的映射关系, 第一域名服务器就无法直接解析出第一域名的IP地址,此时第一域名服务器可以发送携 带请求解析的第一域名的域名查询请求消息,以请求其它DNS服务器协助解析第一域名的 IP地址。
320、向至少两个第二域名服务器发送携带有第一域名的域名查询请求消息。
在实际应用中,例如可以直接向第二域名服务器发送第一域名查询请求消息;也 可以先对第一域名查询请求消息携带的部分参数进行修改,然后再向至少两个第二域名服 务器发送修改了参数的携带第一域名的第一域名查询请求消息;当然也可以选择重新生成 一个携带第一域名的域名查询请求消息,然后向至少两个第二域名服务器发送重新生成的 携带第一域名的域名查询请求消息。
其中,可以选择同时向各个第二域名服务器发送携带第一域名的域名查询请求消 息,也可以选择分时向各个第二域名服务器发送携带第一域名的域名查询请求消息。
330、接收至少两个第二域名服务器发送的域名查询应答消息,该域名查询应答消 息携带根据第一域名解析出的IP地址。
340、将上述至少两个第二域名服务器发送的域名查询应答消息中携带的根据第 一域名解析出的IP地址进行比较。
350、若超过设定比例的第二域名服务器发送的域名查询应答消息携带的根据第 一域名解析出的IP地址相同,向第一域名服务器发送携带有上述相同的IP地址的第一域 名查询应答消息。
进一步的,若超过设定比例的第二域名服务器发送的域名查询应答消息携带的根 据第一域名解析出的IP地址不全相同,进行告警处理。
由上述技术方案可以看出,本发明实施例利用至少两个DNS服务器协助解析第一 域名服务器请求解析的域名,并利用至少两个DNS服务器反馈的域名解析结果,相互验证 域名解析结果的可靠性,在可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使 得第一域名服务器能够获得真实的域名和IP地址的映射关系,进而实现有效的防护第一 域名服务器感染缓存中毒;由于是在应用层进行第一域名服务器的缓存中毒保护,实现方 式十分的可靠。
实施例四、
为更好的理解本发明的技术方案,下面通过更为具体的实施例对本发明实施例的 上述技术方案做进一步详细的描述。
其中,本实施例以DNS服务器(DNSl)向其它DNS服务器请求协助解析域名,DNSl 的防护设备SDl利用其它至少两个DNS服务器反馈的IP地址和域名,对解析结果的可靠性 进行验证为例,进行举例说明。
参见图4、本发明实施例四的一种缓存中毒的防护方法,可以包括
401、客户机Al向DNSl发送域名查询请求消息,该域名查询请求消息携带请求解 析的域名dal。
在实际应用中,客户机Al在需要获得例如域名dal对应的IP地址时,客户机Al 例如可以向DNSl发送携带域名dal的域名查询请求消息,请求DNSl解析域名dal对应的 IP地址。
402、DNSl发送域名查询请求消息,其中,该域名查询请求消息携带请求解析的域 名 dal。
在一种应用场景下,DNSl可以接收上述客户机Al发送的域名查询请求消息,并在 自身缓存中进行查找,以求解析域名dal对应的IP地址。
本实施例以DNSl自身没有缓存域名dal和IP地址的映射关系为例,此时DNSl可 以进一步向其它DNS服务器发送携带域名dal的域名查询请求消息,请求其它域名服务器 协助解析出域名dal对应的IP地址。
403、防护设备SDl接收DNSl发送的域名查询请求消息,向域名服务器DNS2发送 域名查询请求消息,其中携带请求解析的域名dal。
在实际应用中,防护设备SDl可以是DNSl中的一个功能模块,也可以是与DNSl连 接的防火墙设备、网关或其它设备,本发明不做限定。
在一种应用场景下,防护设备SDl可以接收DNSl发送的上述域名查询请求消息, 并可以先向其它至少一个域名服务器发送携带请求解析的域名dal的域名查询请求消息。
本实施例以防护设备SDl先向DNS2发送携带域名dal的域名查询请求消息,请求DNS2协助解析域名dal的IP地址为例,进一步的说明。
具体的,DNS2例如可以是主用DNS服务器(或权威DNS服务器)。
进一步的,为防止被攻击者恶意猜测,防护设备SDl可以先按照预置的某种策略, 修改来自DNSl的域名查询请求消息的应用层ID和/或端口号;然后向DNS2发送修改了应 用层ID和/或端口号的域名查询请求消息。
防护设备SDl例如可以采用预置的多种随机数生成算法,生成随机的应用层ID和 /或端口号,以尽可能避免被攻击者暴力猜测到。
在实际应用中,防护设备SDl可以建立会话表,并可以在会话表中记录上述域名 查询请求消息携带的初始的应用层ID和修改后的应用层ID,以及初始的端口号和修改后 的端口号。
为便于描述,下面以来自DNSl的域名查询请求消息携带的初始的应用层ID为 ID1、初始的端口号为Portl ;防护设备SDl修改后的应用层ID为ID2,修改后的端口号为 Port2为例。防护设备SDl在会话表中关联记录IDl和ID2,Portl和Port2。
404、防护设备SDl接收DNS2发送的域名查询应答消息,该域名查询应答消息携带 根据域名dal解析出的IP地址。
在一种应用场景下,DNS2在接收到防护设备SDl发送的上述携带域名dal的域名 查询请求消息后,可以根据域名dal在其自身的缓存中(或向其它DNS服务器)查询,以解 析出域名dal的IP地址;在解析出域名dal的IP地址(为便于描述,下面将DNS2解析的 域名dal的IP地址表示为11^2)后,DNS2可以向防护设备SDl发送域名查询应答消息,该 域名查询应答消息携带根据域名dal解析出的IP地址IPa2。
在一种应用场景下,防护设备SDl接收并解析DNS2发送的域名查询应答消息,获 得其携带的根据域名dal解析出的IP地址IPa2。
405、防护设备SDl确认接收的域名查询应答消息携带的应用层ID和端口号是否 真实,若真实,则执行步骤406 ;若不真实;则执行步骤412。
其中,防护设备SDl确认域名查询应答消息携带的应用层ID和端口号是否真实的 方式,可以和实施例二步骤205中的方式相同或相似,此处不再赘述。
406、防护设备SDl向域名服务器DNS3发送域名反查请求消息,该域名反查请求消 息携带请求解析的DNS2反馈的IP地址IPa2。
在一种应用场景下,防护设备SDl可以进一步利用其它至少一个DNS服务器验证 DNS2反馈的IPa2的可靠性。
在实际应用中,DNS3在接收到防护设备SDl发送的携带请求解析的IP地址IPa2 的域名反查请求消息后,可以根据IP地址IPa2,在其自身缓存中(或向其它DNS服务器) 查询,以解析出IP地址IPa2的域名;在解析出IP地址IPa2的域名后,DNS3可以向防护设 备SDl发送携带有根据的IP地址IPa2解析出的域名的域名反查应答消息。
407、防护设备SDl接收DNS3发送的域名反查应答消息,该域名反查应答消息携带 根据IP地址IPa2解析出的域名。
408、防护设备SDl确认DNS3发送的域名反查应答消息携带的应用层ID和端口号 是否真实,若真实,则执行步骤409 ;若不真实;则执行步骤412。
其中,防护设备SDl确认域名反查应答消息携带的应用层ID和端口号是否真实的方式,可以和实施例二步骤205中的方式相同或相似,此处不再赘述。
409、防护设备SDl比较DNS3发送的域名反查应答消息携带的根据IP地址IPa2 解析出的域名和DNSl请求解析的域名dal是否相同,若相同,则执行步骤410、若不同,则执 行步骤412。
可以理解,若比较出DNS3反馈的根据IP地址IPa2解析出的域名和DNSl请求解 析的域名dal相同,表明DNS2反馈的根据域名dal解析出的IP地址是比较可靠的,该IP 地址的可靠性验证通过;若比较出DNS3和DNS3反馈的根据IP地址IPa2解析出的域名和 DNSl请求解析的域名dal不同,表明DNS2和/或DNS3很可能已经缓存中毒,其可能已经缓 存了虚假的域名dal和IP地址的映射关系,DNS2反馈的根据域名dal解析出的IP地址是 不可靠的,该IP地址的可靠性验证通过。
可以理解,若防护设备SDl向多个DNS服务器发送携带请求解析的IP地址IPa2 的域名反查应答消息,则可以接收来自多个DNS服务器的携带根据IP地址IPa2解析出的 域名的域名反查应答消息,此时防护设备SDl可以将多个DNS服务器反馈的携带根据IP地 址IPa2解析出的域名和DNSl请求解析的域名dal —起进行比较,若超过设定比例的DNS 服务器反馈的根据IP地址IPa2解析出的域名和DNSl请求解析的域名dal相同,此时可以 认为,该IP地址的可靠性验证通过,执行步骤410、若超过设定比例的DNS服务器反馈的根 据IP地址IPa2解析出的域名和DNSl请求解析的域名dal不同,此时可以认为,该IP地址 的可靠性验证未通过,执行步骤412。
410、防护设备SDl向DNSl发送的域名查询应答消息,该域名查询应答消息携带上 述根据域名dal解析出的IP地址IPa2。
411、DNSl向客户机Al发送域名查询应答消息,该域名查询应答消息携带上述根 据域名dal解析出的IP地址IPa2。
其中,DNSl可以根据反馈的域名查询应答消息携带上述根据域名dal解析出的IP 地址IPa2,刷新缓存,在缓存中记录域名dal和IP地址IPa2的映射关系。
DNSl可以向客户机Al对应的发送携带根据域名dal解析出的IP地址的域名查询 应答消息。客户机Al则可以根据DNSl反馈的根据域名dal解析出的IP地址,进行相应的 访问ο
可以看出,防护设备SDl在获得至少一个DNS服务器的域名解析结果,利用其它至 少一个DNS服务器验证获得的域名解析结果的可靠性,DNSl能够通过防护设备SDl获得真 实的域名和IP地址的映射关系,进而实现有效的防护DNSl感染缓存中毒。
412、防护设备SDl通知DNSl域名查询应失败,并进行告警处理。
在实际应用中,防护设备SDl若发现DNS2和/或DNS3可能缓存中毒,防护设备 SDl可以通知DNSl域名查询失败,并可以发出告警日志、向网管中心通报情况、丢弃DNS2和 DNS3发送的消息等。
DNSl可以进一步通知客户机Al域名查询失败,客户机Al可以重新向其它的DNS 服务器请求解析域名dal。
由上可见,本实施例中,防护设备利用至少一个DNS服务器协助解析第一域名服 务器请求解析的域名,在获得域名解析结果后,再利用其它至少一个DNS服务器验证获得 的域名解析结果的可靠性,在可靠性验证通过后,防护设备再向DNSl反馈域名解析结果,使得DNSl能够获得真实的域名和IP地址的映射关系,进而实现有效的防护DNSl感染缓存中毒。
进一步的,防护设备修改来自DNSl的域名查询请求消息携带的应用层ID和端口 号,并对接收到的域名查询应答消息携带的应用层ID和端口号进行真实性确认,能够有效 的过滤掉攻击者仿冒的域名查询应答消息,有利于进一步提高网络的安全性;防护设备在 应用层对DNSl进行缓存中毒保护,实现方式十分的可靠。
为便于更好的实施本发明实施例的上述技术方案,本发明实施例中还提供一种防 护设备。
实施例五、
参见图5-a、本发明实施例五的一种防护设备500,可以包括第一接收模块510、 第一发送模块520、第二接收模块530、可靠性验证模块540和第二发送模块550。
其中,第一接收模块510,用于接收第一域名服务器发送的第一域名查询请求消 息,该第一域名查询请求消息携带有第一域名信息。
第一发送模块520,用于向第二域名服务器发送携带有第一域名的域名查询请求 消息。
第二接收模块530,用于接收第二域名服务器发送的域名查询应答消息,该域名查 询应答消息携带有根据第一域名解析出的IP地址。
可靠性验证模块M0,用于利用至少一个第三域名服务器验证上述IP地址的可靠 性。
在一种应用场景下,可靠性验证模块540可以向至少一个第三域名服务器发送携 带上述IP地址的域名反查请求消息,根据至少一个第三域名服务器反馈的根据上述IP地 址解析出的域名,验证第二域名服务器反馈的上述IP地址的可靠性;其中,验证方式具体 可以是,将第三域名服务器反馈的根据上述IP地址解析出的域名和第一域名进行比较,若 超过设定比例的第三域名服务器反馈的根据上述IP地址解析出的域名和第一域名相同, 可以确定上述IP地址的可靠性验证通过,若超过设定比例的第三域名服务器反馈的根据 上述IP地址解析出的域名和第一域名不相同,可以确定上述IP地址的可靠性验证未通过。
在另一种应用场景下,可靠性验证模块540可以选择向至少一个第三域名服务器 发送携带第一域名的域名查询请求消息,根据至少一个第三域名服务器反馈的根据第一域 名解析出的IP地址,验证第二域名服务器反馈的IP地址的可靠性,其中,验证方式具体可 以是,将上述至少一个第三域名服务器反馈的根据第一域名解析出的IP地址和第二域名 服务器反馈的根据第一域名解析出的IP地址进行比较,若超过设定比例的第三域名服务 器反馈的根据第一域名解析出的IP地址和第二域名服务器反馈的根据第一域名解析出的 IP地址相同,确定上述可靠性验证通过,若超过设定比例的第三域名服务器反馈的根据第 一域名解析出的IP地址和第二域名服务器反馈的根据第一域名解析出的IP地址不相同, 确定上述可靠性验证未通过。其中,可以选择在向第二域名服务器发送携带第一域名的域 名查询请求消息的同时,向第三域名服务器发送携带第一域名的域名查询请求消息,当然 也可以选择先向第二域名服务器发送或先向第三域名服务器发送。
当然可靠性验证模块540也可以通过其它方式,利用至少一个第三域名服务器验 证上述IP地址的可靠性,此处不做限定。
第二发送模块550,用于在可靠性验证模块550的可靠性验证通过后,向第一域名 服务器发送携带上述IP地址的第一域名查询应答消息。
参见图5-b,在一种应用场景下,可靠性验证模块540可以包括
第一发送子模块M1,用于向至少一个第三域名服务器发送携带有第一域名的域 名查询请求消息。
第一接收子模块M2,用于接收至少一个第三域名服务器发送的域名查询应答消 息,该域名查询应答消息携带有根据第一域名解析出的IP地址。
第一验证子模块M3,用于当超过设定比例的第三域名服务器发送的域名查询应 答消息携带的根据第一域名解析出的IP地址与第二域名服务器发送的域名查询应答消息 携带的根据第一域名解析出的IP地址相同时,确定该IP地址的可靠性验证通过。
第一验证子模块543还可以用于,当超过设定比例的第三域名服务器发送的域名 查询应答消息携带的根据第一域名解析出的IP地址与第二域名服务器发送的域名查询应 答消息携带的根据第一域名解析出的IP地址不相同时,确定该IP地址的可靠性验证未通 过。
参见图5-c,在一种应用场景下,可靠性验证模块540可以包括
第二发送子模块M4,用于向至少一个第三域名服务器发送携带有上述IP地址的 域名反查请求消息。
第二接收子模块M5,用于接收至少一个第三域名服务器发送的域名反查应答消 息,该域名反查应答消息携带有根据上述IP地址解析出的域名;
第二验证子模块M6,用于当超过设定比例的第三域名服务器发送的域名反查应 答消息中携带的根据上述IP地址解析出的域名与第一域名相同时,确定上述IP地址的可 靠性验证通过。
第二验证子模块546还可以用于当超过设定比例的第三域名服务器发送的域名 反查应答消息中携带的根据上述IP地址解析出的域名与第一域名不全相同时,确定上述 IP地址的可靠性验证未通过。
在一种应用场景下,防护设备500还可以包括
告警模块560,用于在可靠性验证模块550进行的可靠性验证未通过时,进行告警处理。
举例来说,告警模块560可以通知第一域名服务器本次域名查询失败,并可以发出告警日志。
在一种应用场景下,防护设备500还可以包括
修改模块,用于按照预置策略,修改第一域名查询请求消息携带的应用层标识和/ 或端口号。
第一发送模块520具体可以用于,向至少向第二域名服务器发送修改了应用层标 识和/或端口号的第一域名查询请求消息。
第一发送子模块541具体可以用于,向至少一个第三域名服务器发送携带有修改 了应用层标识和/或端口号的第一域名查询请求消息。
在一种应用场景下,修改模块还可以用于,按照预置策略,修改域名反查请求消息 携带的应用层标识和/或端口号。
第二发送子模块545具体可以用于,向至少一个第三域名服务器发送修改了应用 层标识和/或端口号的携带有上述IP地址的域名反查请求消息。
在一种应用场景下,防护设备500还可以包括
确定模块,用于确认第二接收模块530接收到的域名查询应答消息携带的应用层 标识和/或端口号是否真实。
告警模块560,可以在确定模块确定出应用层标识和/或端口号不真实时,进行告 警处理,例如可以直接丢弃该域名查询应答消息。
可以理解是的,本实施例的防护设备500可以如上述方法实施例中的防护设备 SD1,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程 可参照上述实施例中的相关描述,此处不再赘述。
由上可见,本实施例防护设备500利用至少1个DNS服务器协助解析第一域名服 务器请求解析的域名,在获得域名解析结果后,再利用其它至少1个DNS服务器验证获得的 域名解析结果的可靠性,在可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使 得第一域名服务器能够获得真实的域名和IP地址的映射关系,进而实现有效的防护第一 域名服务器感染缓存中毒;在应用层进行第一域名服务器缓存中毒保护,实现方式十分的 可靠。
为便于更好的实施本发明实施例的技术方案,本发明实施例中还提供一种防护设备。
实施例六、
参见图六、本发明实施例六的一种防护设备600,可以包括第一接收模块610、第 一发送模块620、第二接收模块630和第二发送模块640。
其中,第一接收模块610,用于接收第一域名服务器发送的第一域名查询请求消 息,该第一域名查询请求消息携带有第一域名信息。
第一发送模块620,用于向至少两个第二域名服务器发送携带有第一域名的域名 查询请求消息。
第二接收模块630,用于接收至少两个第二域名服务器发送的域名查询应答消息, 该域名查询应答消息携带根据第一域名解析出的IP地址。
比较模块640,用于将第二接收模块630接收的至少两个第二域名服务器发送的 域名查询应答消息中携带的根据第一域名解析出的IP地址进行比较;
第二发送模块650,用于在比较模块640比较出超过设定比例的第二域名服务器 发送的域名查询应答消息携带的根据第一域名解析出的IP地址相同时,向第一域名服务 器发送携带有该相同的IP地址的第一域名查询应答消息。
在一种应用场景下,防护设备600还可以包括
告警模块660,用于在超过设定比例的第二域名服务器发送的域名查询应答消息 携带的根据第一域名解析出的IP地址不全相同时,进行告警处理。
举例来说,告警模块660例如可以通知第一域名服务器本次域名查询应失败,并可以发出告警日志。
在一种应用场景下,防护设备600还可以包括
修改模块,用于按照预置策略,修改第一域名查询请求消息携带的应用层标识和/或端P号;
第一发送模块620具体可以用于,向至少两个第二域名服务器发送修改模块修改 了应用层标识和/或端口号的第一域名查询请求。
在一种应用场景下,防护设备600还可以包括
确定模块,用于确认第二接收模块630接收到的域名查询应答消息携带的应用层 标识和/或端口号是否真实。
告警模块660,可以在确定模块确定出应用层标识和/或端口号不真实时,进行告 警处理,例如可以直接丢弃该域名查询应答消息。
可以理解是的,本实施例的防护设备600可以如上述方法实施例中的防护设备 SD1,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程 可参照上述实施例中的相关描述,此处不再赘述。
由上可见,本实施例防护设备600利用至少1个DNS服务器协助解析第一域名服 务器请求解析的域名,在获得域名解析结果后,再利用其它至少1个DNS服务器验证获得的 域名解析结果的可靠性,在可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使 得第一域名服务器能够获得真实的域名和IP地址的映射关系,进而实现有效的防护第一 域名服务器感染缓存中毒;在应用层进行第一域名服务器缓存中毒保护,实现方式十分的 可靠。
为便于更好的实施本发明实施例的技术方案,本发明实施例中还提供一种防护系 统。
实施例七、
参见图7、本发明实施例七的一种防护系统,可以包括第一域名服务器710和防 护设备720。
第一域名服务器710,用于发送第一域名查询请求消息,该第一域名查询请求消息 中携带有第一域名信息;
防护设备720,用于接收第一域名服务器发送的第一域名查询请求消息;向第二 域名服务器发送携带有第一域名的域名查询请求消息;接收第二域名服务器发送的域名查 询应答消息,该域名查询应答消息携带有根据第一域名解析出的IP地址;利用至少一个第 三域名服务器验证上述IP地址的可靠性;在上述IP地址的可靠性验证通过后,向第一域名 服务器发送携带有所述IP地址的第一域名查询应答消息。
在一种应用场景下,防护设备720还可以用于,在上述IP地址的可靠性验证未通 过时,进行告警处理。
在一种应用场景下,防护设备720例如可以向至少一个第三域名服务器发送携带 上述IP地址的域名反查请求消息,根据至少一个第三域名服务器反馈的根据上述IP地址 解析出的域名,验证第二域名服务器反馈的上述IP地址的可靠性;其中,验证方式具体可 以是,将第三域名服务器反馈的根据上述IP地址解析出的域名和第一域名进行比较,若超 过设定比例(设定比例例如可以是90%、100%或根据需要设定的其它值)的第三域名服务 器反馈的根据上述IP地址解析出的域名和第一域名相同,可以确定上述IP地址的可靠性 验证通过,若超过设定比例的第三域名服务器反馈的根据上述IP地址解析出的域名和第 一域名不相同,可以确定上述IP地址的可靠性验证未通过。
在另一种应用场景下,防护设备720也可以选择向至少一个第三域名服务器发送 携带第一域名的域名查询请求消息,根据至少一个第三域名服务器反馈的根据第一域名解 析出的IP地址,验证第二域名服务器反馈的IP地址的可靠性,其中,验证方式具体可以是, 将上述至少一个第三域名服务器反馈的根据第一域名解析出的IP地址和第二域名服务器 反馈的根据第一域名解析出的IP地址进行比较,若超过设定比例的第三域名服务器反馈 的根据第一域名解析出的IP地址和第二域名服务器反馈的根据第一域名解析出的IP地址 相同,确定上述可靠性验证通过,若超过设定比例的第三域名服务器反馈的根据第一域名 解析出的IP地址和第二域名服务器反馈的根据第一域名解析出的IP地址不相同,确定上 述可靠性验证未通过。其中,可以选择在向第二域名服务器发送携带第一域名的域名查询 请求消息的同时,向第三域名服务器发送携带第一域名的域名查询请求消息,当然也可以 选择先向第二域名服务器发送或先向第三域名服务器发送。
当然防护设备720也可以通过其它方式,利用至少一个第三域名服务器验证上述 IP地址的可靠性,此处不做限定。
第一域名服务器710可以进一步接收携带上述IP地址的第一域名查询应答消息, 并刷新缓存,记录上述IP地址和第一域名的映射关系。
可以理解是的,本实施例的防护设备720可以如上述方法实施例中的防护设备 SD1,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程 可参照上述实施例中的相关描述,此处不再赘述。
为便于更好的实施本发明实施例的技术方案,本发明实施例中还提供一种防护系 统。
实施例八、
参见图8、本发明实施例八的一种防护系统,可以包括第一域名服务器810和防 护设备820。
其中,第一域名服务器810,用于发送第一域名查询请求消息,该第一域名查询请 求消息中携带有第一域名信息
防护设备820,用于接收第一域名服务器发送的第一域名查询请求消息;向至少 两个第二域名服务器发送携带有第一域名的域名查询请求消息;接收至少两个第二域名服 务器发送的域名查询应答消息,该域名查询应答消息携带根据第一域名解析出的IP地址; 若超过设定比例的第二域名服务器发送的域名查询应答消息携带的根据第一域名解析出 的IP地址相同,向第一域名服务器发送携带有所述相同的IP地址的第一域名查询应答消 肩、O
在一种应用场景下,防护设备720还可以用于,若超过设定比例的第二域名服务 器发送的域名查询应答消息携带的根据第一域名解析出的IP地址不全相同,执行告警处理。
第一域名服务器810可以进一步接收携带上述IP地址的第一域名查询应答消息, 并刷新缓存,记录上述IP地址和第一域名的映射关系。
可以理解是的,本实施例的防护设备820可以如上述方法实施例中的防护设备 SD1,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程 可参照上述实施例中的相关描述,此处不再赘述。
本发明还提供一种防护系统,包括如实施例七中的防护设备720。
本发明还提供一种防护系统,包括如实施例八中的防护设备820。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明 所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见其他实施例的相关描述。
综上所述,本发明实施例中,防护设备利用至少两个DNS服务器协助解析第一域 名服务器请求解析的域名,并利用至少两个DNS服务器反馈的域名解析结果,相互验证域 名解析结果的可靠性,在可靠性验证通过后,再向第一域名服务器反馈域名解析结果,使得 第一域名服务器能够获得真实的域名和IP地址的映射关系,进而实现有效的防护第一域 名服务器感染缓存中毒;在应用层进行第一域名服务器缓存中毒保护,实现方式十分的可罪。
进一步的,防护设备修改来自DNSl的域名查询请求消息携带的应用层ID和端口 号,并对接收到的域名查询应答消息携带的应用层ID和端口号进行真实性确认,能够有效 的过滤掉攻击者仿冒的域名查询应答消息,有利于进一步提高网络的安全性;防护设备在 应用层对DNSl进行缓存中毒保护,实现方式十分的可靠。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储 介质可以包括只读存储器(ROM,Read-Only Memory)、随机存储器(RAM,Random Access Memory)、磁盘或光盘等。。
以上对本发明实施例所提供的一种缓存中毒的防护方法和防护设备及防护系统 进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实 施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术 人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说 明书内容不应理解为对本发明的限制。
权利要求
1.一种缓存中毒的防护方法,其特征在于,包括接收第一域名服务器发送的第一域名查询请求消息,所述第一域名查询请求消息携带 有第一域名信息;向第二域名服务器发送携带有第一域名的域名查询请求消息; 接收第二域名服务器发送的域名查询应答消息,所述域名查询应答消息携带有根据第 一域名解析出的网际协议IP地址;利用至少一个第三域名服务器验证所述IP地址的可靠性;在所述可靠性验证通过后,向第一域名服务器发送携带有所述IP地址的第一域名查 询应答消息。
2.根据权利要求1所述的方法,其特征在于,所述利用至少一个第三域名服务器验证 所述IP地址的可靠性,包括向至少一个第三域名服务器发送携带有第一域名的域名查询请求消息; 接收至少一个第三域名服务器发送的域名查询应答消息,该域名查询应答消息中携带 有根据第一域名解析出的IP地址;当超过设定比例的第三域名服务器发送的域名查询应答消息携带的根据第一域名解 析出的IP地址,与第二域名服务器发送的域名查询应答消息携带的根据第一域名解析出 的IP地址相同时,确定所述IP地址的可靠性验证通过。
3.根据权利要求1所述的方法,其特征在于,所述利用至少一个第三域名服务器验证 所述IP地址的可靠性,包括向至少一个第三域名服务器发送携带有所述IP地址的域名反查请求消息; 接收至少一个第三域名服务器发送的域名反查应答消息,所述域名反查应答消息中携 带有根据所述IP地址解析出的域名;当超过设定比例的第三域名服务器发送的域名反查应答消息中携带的根据所述IP地 址解析出的域名与第一域名相同时,确定所述IP地址的可靠性验证通过。
4.根据权利要求1至3任一项所述方法,其特征在于,所述方法还包括按照预置策略修改所述第一域名查询请求消息携带的应用层标识和/或端口号; 所述向第二域名服务器发送携带有第一域名的域名查询请求消息,包括 向第二域名服务器发送修改了应用层标识和/或端口号的第一域名查询请求消息。
5.根据权利要求4所述方法,其特征在于,所述向至少一个第三域名服务器发送携带 有第一域名的域名查询请求消息,包括向至少一个第三域名服务器发送修改了应用层标识和/或端口号的第一域名查询请 求消息。
6.一种缓存中毒的防护方法,其特征在于,包括接收第一域名服务器发送的第一域名查询请求消息,所述第一域名查询请求消息携带 有第一域名信息;向至少两个第二域名服务器发送携带有第一域名的域名查询请求消息; 接收至少两个第二域名服务器发送的域名查询应答消息,所述域名查询应答消息中携 带有根据第一域名解析出的IP地址;将所述至少两个第二域名服务器发送的域名查询应答消息中携带的根据第一域名解析出的IP地址进行比较;若超过设定比例的第二域名服务器发送的域名查询应答消息中携带的根据第一域名 解析出的IP地址相同,向第一域名服务器发送携带有所述相同的IP地址的第一域名查询 应答消息。
7.一种防护设备,其特征在于,包括第一接收模块,用于接收第一域名服务器发送的第一域名查询请求消息,所述第一域 名查询请求消息携带有第一域名信息;第一发送模块,用于向第二域名服务器发送携带有第一域名的域名查询请求消息; 第二接收模块,用于接收第二域名服务器发送的域名查询应答消息,所述域名查询应 答消息携带有根据第一域名解析出的IP地址;可靠性验证模块,用于利用至少一个第三域名服务器验证所述IP地址的可靠性; 第二发送模块,用于在所述可靠性验证模块的可靠性验证通过后,向第一域名服务器 发送携带有所述IP地址的第一域名查询应答消息。
8.根据权利要求7所述的防护设备,其特征在于,所述可靠性验证模块包括第一发送子模块,用于向至少一个第三域名服务器发送携带有第一域名的域名查询请 求消息;第一接收子模块,用于接收至少一个第三域名服务器发送的域名查询应答消息,该域 名查询应答消息携带有根据第一域名解析出的IP地址;第一验证子模块,用于当超过设定比例的第三域名服务器发送的域名查询应答消息携 带的根据第一域名解析出的IP地址与第二域名服务器发送的域名查询应答消息携带的根 据第一域名解析出的IP地址相同时,确定所述IP地址的可靠性验证通过。
9.根据权利要求7所述的防护设备,其特征在于, 所述可靠性验证模块包括第二发送子模块,用于向至少一个第三域名服务器发送携带有所述IP地址的域名反 查请求消息;第二接收子模块,用于接收至少一个第三域名服务器发送的域名反查应答消息,所述 域名反查应答消息携带有根据所述IP地址解析出的域名;第二验证子模块,用于当超过设定比例的第三域名服务器发送的域名反查应答消息中 携带的根据所述IP地址解析出的域名与第一域名相同时,确定所述IP地址的可靠性验证 通过。
10.根据权利要求7至9任一项所述的防护设备,其特征在于,所述防护设备还包括 修改模块,用于按照预置策略修改所述第一域名查询请求消息携带的应用层标识和/或端P号;所述第一发送模块,用于向第二域名服务器发送修改了应用层标识和/或端口号的第 一域名查询请求消息。
11.一种防护设备,其特征在于,包括第一接收模块,用于接收第一域名服务器发送的第一域名查询请求消息,所述第一域 名查询请求消息携带有第一域名信息;第一发送模块,用于向至少两个第二域名服务器发送携带有第一域名的域名查询请求消息;第二接收模块,用于接收至少两个第二域名服务器发送的域名查询应答消息,所述域 名查询应答消息携带根据第一域名解析出的IP地址;比较模块,用于将第二接收模块接收的至少两个第二域名服务器发送的域名查询应答 消息中携带的根据第一域名解析出的IP地址进行比较;第二发送模块,用于在超过设定比例的第二域名服务器发送的域名查询应答消息携带 的根据第一域名解析出的IP地址相同时,向第一域名服务器发送携带有所述相同的IP地 址的第一域名查询应答消息。
12.—种防护系统,其特征在于,包括如权利要求7至10任一项所述的防护设备。
13.一种防护系统,其特征在于,包括如权利要求11所述的防护设备。
全文摘要
本发明实施例公开了缓存中毒的防护方法和防护设备及防护系统。其中的一种缓存中毒的防护方法,包括接收第一域名服务器发送的第一域名查询请求消息,该第一域名查询请求消息携带有第一域名信息;向第二域名服务器发送携带有第一域名的域名查询请求消息;接收第二域名服务器发送的域名查询应答消息,该域名查询应答消息携带有根据第一域名解析出的网际协议IP地址;利用至少一个第三域名服务器验证上述IP地址的可靠性;在上述可靠性验证通过后,向第一域名服务器发送携带有上述IP地址的第一域名查询应答消息。本发明实施例的技术方案能够有效可靠的防护DNS服务器缓存中毒。
文档编号H04L12/56GK102035809SQ20091017991
公开日2011年4月27日 申请日期2009年9月29日 优先权日2009年9月29日
发明者蒋武 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1