一种基于防火墙系统的DNS劫持防御方法、装置及系统与流程

文档序号:16900269发布日期:2019-02-19 17:54阅读:298来源:国知局
一种基于防火墙系统的DNS劫持防御方法、装置及系统与流程

本申请涉及dns劫持防御技术领域,尤其涉及一种基于防火墙系统的dns劫持防御方法、装置及系统。



背景技术:

dns劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,返回假的ip地址,其效果就是对特定的网络访问的是假网址,比如钓鱼网站。dns劫持主要是通过伪造dns服务器作为一个主要攻击手段,攻击者劫持用户发往授权域名服务器的dns请求报文,然后通过伪造dns服务器把钓鱼网站的ip返回给用户进行欺骗。

对于上述的dns劫持,现有技术主要是采用一种被动的方案进行防御,具体为网站服务商可以提供两个域名,当其中一个域名发现被劫持行为后,可以使用另一个域名进行访问。

但是,现有技术防御方案过于被动,当dns劫持攻击出现后依然可能引起危害。因为现有技术中发现一个域名被劫持后使用另一个域名进行访问,也就是说防御是在发现域名劫持行为后,所以可能在这个时候域名劫持行为已经对用户产生了危害,用户已经通过域名劫持行为返回的钓鱼网站ip地址访问了第三方虚假的网站,因此仍可能会造成诈骗等危害。



技术实现要素:

本申请提供一种基于防火墙系统的dns劫持防御方法、装置及系统,以解决现有技术中dns劫持防御方法过于被动,防御能力过低,仍然可能引起危害的技术问题。

第一方面,本申请提供一种基于防火墙系统的dns劫持防御方法,所述方法包括:

s100、配置第一可信域名服务器地址和第二可信域名服务器至防火墙系统中;

s200、确定域名信息;

s300、发送所述域名信息至所述第一可信域名服务器、第二可信域名服务器和本地授权域名服务器;

s400、接收第一可信域名服务器发送的第一域名解析结果,以及,第二可信域名服务器发送的第二域名解析结果;

s500、判断所述第一域名解析结果与所述第二域名解析结果是否相同;

s600、如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;

s700、接收本地授权域名服务器返回的第三解析结果;

s800、遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;

s900、如果不存在与第三解析结果相同的综合解析结果,所述防火墙系统拦截所述第三解析结果。

结合第一方面,在第一方面的第一种可能的实现方式中,所述确定域名信息的步骤包括:

s201、防火墙系统监测dns请求,并提取dns请求中的域名;

s202、统计每个所述域名的请求次数;

s203、判断每个所述域名的请求次数是否达到请求次数阈值;

s204、如果达到所述请求次数阈值,确定所述域名为学习域名,添加所述学习域名至域名缓存列表。

结合第一方面的第一种可能的实现方式中,在第一方面的第二种可能的实现方式中,所述确定域名信息的步骤还包括:

配置自定义域名至所述域名缓存列表。

结合第一方面的第一种可能的实现方式中,在第一方面的第三种可能的实现方式中,所述方法还包括:

统计所述学习域名在域名缓存列表中的存在时间;

判断所述存在时间是否达到预设老化时间;

如果所述存在时间达到预设老化时间,删除域名缓存列表中的所述学习域名,以及,所述学习域名对应的综合解析结果。

第二方面,本申请提供一种基于防火墙系统的dns劫持防御装置,所述装置包括:

配置单元100,用于配置第一可信域名服务器地址和第二可信域名服务器至防火墙系统中;

确定单元200,用于确定域名信息;

发送单元300,用于发送所述域名信息至所述第一可信域名服务器、第二可信域名服务器和本地授权域名服务器;

第一接收单元400,用于接收第一可信域名服务器发送的第一域名解析结果,以及,第二可信域名服务器发送的第二域名结果;

第一判断单元500,用于判断所述第一域名解析结果与所述第二域名解析结果是否相同;

第一添加单元600,用于如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;

第二接收单元700,用于接收本地授权域名服务器返回的第三解析结果;

第二判断单元800,用于遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;

拦截单元900、用于如果不存在与第三解析结果相同的综合解析结果,所述防火墙系统拦截所述第三解析结果。

结合第二方面,在第二方面的第一种可能的实现方式中,所述确定单元包括:

提取单元201,用于防火墙系统监测dns请求,并提取dns请求中的域名;

第一统计单元202,用于统计每个所述域名的请求次数;

第三判断单元203,用于判断每个所述域名的请求次数是否达到请求次数阈值;

第二添加单元204,用于如果达到所述请求次数阈值,确定所述域名为学习域名,添加所述学习域名至域名缓存列表。

结合第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,所述确定单元还包括:

配置单元,用于配置自定义域名至所述域名缓存列表。

结合第二方面的第一种可能的实现方式中,在第二方面的第三种可能的实现方式中,所述装置还包括:

第二统计单元,用于统计所述学习域名在域名缓存列表中的存在时间;

第四判断单元,用于判断所述存在时间是否达到预设老化时间;

删除单元,用于如果所述存在时间达到预设老化时间,删除域名缓存列表中的所述学习域名,以及,所述学习域名对应的综合解析结果。

第三方面,本申请提供一种基于防火墙系统的dns劫持防御系统,所述系统包括:

本地授权域名服务器、第一可信域名服务器、第二可信域名服务器,以及,防火墙系统;

所述本地授权域名服务器、第一可信域名服务器、第二可信域名服务器分别与防火墙系统连接;

所述本地授权域名服务器,用于根据域名信息,确定第三域名解析结果,并发送所述第三域名解析结果至防火墙系统;

所述第一可信域名服务器,用于根据域名信息,确定第一域名解析结果,并发送所述第一域名解析结果至防火墙系统;

所述第二可信域名服务器,用于根据域名信息,确定第二域名解析结果,并发送所述第二域名解析结果至防火墙系统;

所述防火墙系统,用于存储所述域名缓存列表;

还用于确定域名信息;发送所述域名信息至所述第一可信域名服务器、第二可信域名服务器和本地授权域名服务器;接收第一可信域名服务器发送的第一域名解析结果,以及,第二可信域名服务器发送的第二域名解析结果;判断所述第一域名解析结果与所述第二域名解析结果是否相同;如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;接收本地授权域名服务器返回的第三解析结果;遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;如果不存在与第三解析结果相同的综合解析结果,拦截所述第三解析结果。

由以上技术可知,本申请提供了一种基于防火墙系统的dns劫持防御方法、装置及系统,所述方法包括配置第一可信域名服务器和第二可信域名服务器,判断第一可信域名服务器和第二可信域名服务器返回的关于域名信息的解析结果是否相同,如果相同,存储在所述域名缓存列表中,再次比较本地授权域名服务器返回的第三解析结果是否与域名缓存列表中的解析结果相同,如果相同,才能说明第三解析结果是可信赖的,如果不同,说明第三解析结果被劫持,所述防火墙系统将其拦截。本申请是利用三方,即第一可信域名服务器,第二可信域名服务器以及本地授权域名服务器,确认的方法来实现防火墙系统对dns劫持的防御功能,能够更加合理有效的对dns劫持攻击行为进行检测拦截,避免钓鱼网站对用户造成危害。

附图说明

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

图1为本申请实施例提供的一种基于防火墙系统的dns劫持防御方法的流程图;

图2为本申请实施例提供的另一种基于防火墙系统的dns劫持防御方法的流程图;

图3为本申请实施例提供的一种基于防火墙系统的dns劫持防御装置的结构示意图;

图4为本申请实施例提供的另一种基于防火墙系统的dns劫持防御装置的结构示意图;

图5为本申请实施例提供的一种基于防火墙系统的dns劫持防御系统的结构示意图。

具体实施方式

现有技术主要是采用一种被动的方案进行防御,具体为网站服务商可以提供两个域名,当其中一个域名发现被劫持行为后,可以使用另一个域名进行访问。但是,现有技术防御方案过于被动,当dns劫持攻击出现后依然可能引起危害。因为现有技术中发现一个域名被劫持后使用另一个域名进行访问,也就是说防御是在发现域名劫持行为后,所以可能在这个时候域名劫持行为已经对用户产生了危害,用户已经通过域名劫持行为返回的钓鱼网站ip地址访问了第三方虚假的网站,因此仍可能会造成诈骗等危害。

为了解决上述问题,本申请提供一种基于防火墙系统的dns劫持防御方法。

实施例一

参阅图1,本申请实施例提供的一种基于防火墙系统的dns劫持防御方法的流程图,所述方法包括:

s100、配置第一可信域名服务器地址和第二可信域名服务器至防火墙系统中。

具体的,在防火墙系统的配置中能够添加两个可信域名服务器(第一可信域名服务器和第二可信域名服务器)的地址,这两个可信域名服务器可以是其他任意两个授权域名服务器或者其他任意两个具有一定可信度的dns域名服务器,比如8.8.8.8和114.114.114.114。

s200、确定域名信息;

需要解释的是,所述防火墙系统在本申请实施例中起到防劫持的作用。所以,首先需要确定开启防劫持功能的域名信息的具体内容,并存储在域名缓存列表中。

s300、发送所述域名信息至所述第一可信域名服务器、第二可信域名服务器和本地授权域名服务器;

具体的,在步骤s200中,确定需要开启防劫持功能的域名信息之后,将域名信息定期分别发送至第一可信域名服务器、第二可信域名服务器和本地授权域名服务器。

s400、接收第一可信域名服务器发送的第一域名解析结果,以及,第二可信域名服务器发送的第二域名解析结果;

在本申请实施例中,发送域名信息至所述第一可信域名服务器和第二可信域名服务器后,所述第一可信域名服务器和第二可信域名服务器对域名信息进行解析,例如,域名信息为www.abc.com,所述第一可信域名服务器解析后返回的第一域名解析结果为111.111.111.111,所述第二可信域名服务器解析后返回的第二域名解析结果为222.222.222.222。

本申请实施例中的第一域名解析结果和第二域名解析结果均为ip地址。

s500、判断所述第一域名解析结果与所述第二域名解析结果是否相同;

s600、如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;

例如,域名信息为www.xyz.com,所述第一可信域名服务器解析后返回的第一域名解析结果为777.777.777.777,所述第二可信域名服务器解析后返回的第二域名解析结果为777.777.777.777。此时,第一域名解析结果与所述第二域名解析结果相同,确定777.777.777.777为综合解析结果,并将其添加至域名缓存列表中。

如果所述第一可信域名服务器解析后返回的第一域名解析结果为777.777.777.777,所述第二可信域名服务器解析后返回的第二域名解析结果为888.888.888.888,此时第一域名解析结果与所述第二域名解析结果不同,说明域名信息可能被劫持,具有一定的危险性。

s700、接收本地授权域名服务器返回的第三解析结果;

本申请实施例中的第三解析结果为ip地址。

s800、遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;

具体的,所述域名缓存列表中存储有所述综合解析结果和对应的域名信息,遍历所述域名缓存列表,判断是否存在与本地授权域名服务器返回的第三解析结果相同的综合解析结果。

s900、如果不存在与第三解析结果相同的综合解析结果,所述防火墙系统拦截所述第三解析结果。

如果不存在与所述第三解析结果相同的综合解析结果,判定第三解析结果存在被劫持的风险,防火墙系统将拦截该第三解析结果不进行转发。

如果存在与第三解析结果相同的综合解析结果,所述防火墙系统放行所述第三解析结果。

本申请实施例,配置第一可信域名服务器和第二可信域名服务器,判断第一可信域名服务器和第二可信域名服务器返回的关于域名信息的解析结果是否相同,如果相同,存储在所述域名缓存列表中,再次比较本地授权域名服务器返回的第三解析结果是否与域名缓存列表中的解析结果相同,如果相同,才能说明第三解析结果是可信赖的,如果不同,说明第三解析结果被劫持,所述防火墙系统将其拦截。本申请是利用三方,即第一可信域名服务器,第二可信域名服务器以及本地授权域名服务器,确认的方法来实现防火墙系统对dns劫持的防御功能,能够更加合理有效的对dns劫持攻击行为进行检测拦截,避免钓鱼网站对用户造成危害。

实施例二

参阅图2,本申请实施例提供的另一种基于防火墙系统的dns劫持防御方法的流程图,所述确定域名信息的步骤包括:

s201、防火墙系统监测dns请求,并提取dns请求中的域名;

需要说明的是,防火墙系统实时监测、提取dns请求报文中的域名。本申请实施例中防火墙系统实时监控每一个dns请求报文。

s202、统计每个所述域名的请求次数;

s203、判断每个所述域名的请求次数是否达到请求次数阈值;

s204、如果达到所述请求次数阈值,确定所述域名为学习域名,添加所述学习域名至域名缓存列表。

具体的,当穿过防火墙系统的所述域名的请求次数达到一定的请求次数阈值,确定所述域名为学习域名,将所述学习域名作为域名信息添加至所述域名缓存列表中。如果域名的请求次数大于请求次数阈值,说明查询频率和使用率较高,都是一些重点的站点域名,因此发生域名劫持行为的概率会增大,并且如果发生域名劫持行为的话,危害性也会更大,所以这里只针对域名查询频率比较高的域名进行学习。如果不设置请求次数阈值的限制,这样域名的数量巨大,对设备负荷较大,影响设备的性能。

本申请实施例中的请求次数阈值为50。

实施例三

所述确定域名信息的步骤还包括:

配置自定义域名至所述域名缓存列表。

本申请实施例中,如果针对某一个域名有特殊防护需求的话可以进行手动配置。例如,将www.dfg.com直接加入到所述域名缓存列表中。

实施例四

本申请实施例的一种基于防火墙系统的dns劫持防御方法,所述方法还包括:

统计所述学习域名在域名缓存列表中的存在时间;

判断所述存在时间是否达到预设老化时间;

具体的,设置预设老化时间,一方面可以保持当前的域名缓存列表与当前的实际网络环境相吻合,因为不同时间段当前网络环境中域名查询频率较高的部分可能会有变化,所以本申请实施例可以对学习域名老化,再更新能够符合当前的网络状态的域名。另一方面能够降低非必要的设备性能损耗。

本申请实施例中的预设老化时间为1天,但是也可以根据实际情况修改老化时间。

如果所述存在时间达到预设老化时间,删除域名缓存列表中的所述学习域名,以及,所述学习域名对应的综合解析结果。

另外,需要说明的是,对于域名缓存列表中手动添加的自定义域名不具有老化时间,只有手动删除自定义域名才能将该自定义域名及其对应的解析结果从域名缓存列表中清除。手动添加的域名一般都是有针对性的防护行为,手动添加的行为本身就是一种用户自定义的行为,因此删掉手动添加的域名也要根据意愿手动删除。

根据上述实施例提供的一种基于防火墙系统的dns劫持防御方法,本申请还提供一种基于防火墙系统的dns劫持防御装置。参阅图3,本申请实施例提供的一种基于防火墙系统的dns劫持防御装置的结构示意图,所述装置包括:

配置单元100,用于配置第一可信域名服务器地址和第二可信域名服务器至防火墙系统中;

确定单元200,用于确定域名信息;

发送单元300,用于发送所述域名信息至所述第一可信域名服务器、第二可信域名服务器和本地授权域名服务器;

第一接收单元400,用于接收第一可信域名服务器发送的第一域名解析结果,以及,第二可信域名服务器发送的第二域名结果;

第一判断单元500,用于判断所述第一域名解析结果与所述第二域名解析结果是否相同;

第一添加单元600,用于如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;

第二接收单元700,用于接收本地授权域名服务器返回的第三解析结果;

第二判断单元800,用于遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;

拦截单元900、用于如果不存在与第三解析结果相同的综合解析结果,所述防火墙系统拦截所述第三解析结果。

在一些实施例中,参阅图4,本申请实施例提供的另一种基于防火墙系统的dns劫持防御装置的结构示意图,所述确定单元包括:

提取单元201,用于防火墙系统监测dns请求,并提取dns请求中的域名;

第一统计单元202,用于统计每个所述域名的请求次数;

第三判断单元203,用于判断每个所述域名的请求次数是否达到请求次数阈值;

第二添加单元204,用于如果达到所述请求次数阈值,确定所述域名为学习域名,添加所述学习域名至域名缓存列表。

在一些实施例中,所述确定单元还包括:

配置单元,用于配置自定义域名至所述域名缓存列表。

在一些实施例中,所述装置还包括:

第二统计单元,用于统计所述学习域名在域名缓存列表中的存在时间;

第四判断单元,用于判断所述存在时间是否达到预设老化时间;

删除单元,用于如果所述存在时间达到预设老化时间,删除域名缓存列表中的所述学习域名,以及,所述学习域名对应的综合解析结果。

本申请提供了一种基于防火墙系统的dns劫持防御系统,参阅图5,图5为一种基于防火墙系统的dns劫持防御系统的结构示意图,所述系统包括:

本地授权域名服务器1、第一可信域名服务器2、第二可信域名服务器3,以及,防火墙系统4;

所述本地授权域名服务器1、第一可信域名服务器2、第二可信域名服务器3分别与防火墙系统4连接;

所述本地授权域名服务器1,用于根据域名信息,确定第三域名解析结果,并发送所述第三域名解析结果至防火墙系统4;

所述第一可信域名服务器2,用于根据域名信息,确定第一域名解析结果,并发送所述第一域名解析结果至防火墙系统4;

所述第二可信域名服务器3,用于根据域名信息,确定第二域名解析结果,并发送所述第二域名解析结果至防火墙系统4;

所述防火墙系统4,用于存储所述域名缓存列表;

还用于确定域名信息;发送所述域名信息至所述第一可信域名服务器1、第二可信域名服务器2和本地授权域名服务器3;接收第一可信域名服务器1发送的第一域名解析结果,以及,第二可信域名服务器2发送的第二域名解析结果;判断所述第一域名解析结果与所述第二域名解析结果是否相同;如果相同,确定第一域名解析结果和第二域名解析结果中的任一解析结果为综合解析结果,将所述综合解析结果添加至域名缓存列表;接收本地授权域名服务器3返回的第三解析结果;遍历所述域名缓存列表,判断是否存在与第三解析结果相同的综合解析结果;如果不存在与第三解析结果相同的综合解析结果,拦截所述第三解析结果。

由以上技术可知,本申请提供了一种基于防火墙系统的dns劫持防御方法、装置及系统,所述方法包括配置第一可信域名服务器和第二可信域名服务器,判断第一可信域名服务器和第二可信域名服务器返回的关于域名信息的解析结果是否相同,如果相同,存储在所述域名缓存列表中,再次比较本地授权域名服务器返回的第三解析结果是否与域名缓存列表中的解析结果相同,如果相同,才能说明第三解析结果是可信赖的,如果不同,说明第三解析结果被劫持,所述防火墙系统将其拦截。本申请是利用三方,即第一可信域名服务器,第二可信域名服务器以及本地授权域名服务器,确认的方法来实现防火墙系统对dns劫持的防御功能,能够更加合理有效的对dns劫持攻击行为进行检测拦截,避免钓鱼网站对用户造成危害。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的用于基于防火墙系统的dns劫持防御的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

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