一种域名解析的防护方法和装置与流程

文档序号:12182841阅读:449来源:国知局
一种域名解析的防护方法和装置与流程

本发明实施例涉及互联网技术领域,特别涉及一种域名解析的防护方法和装置。



背景技术:

域名解析系统,简称DNS,能够帮助用户更加方便的访问互联网。由于DNS的存在,互联网用户在访问网站的时候可以直接使用域名来实现,而不用记住网站所使用的IP地址。通过域名最终找到对应的IP地址的行为叫做域名解析。

DNS查询通常都是基于UDP协议的,因此在DNS查询过程中缺少验证机制,这一点很容易被黑客利用。其中域名解析请求洪水就是一种业界比较常见的一种DNS攻击行为。其原理主要是黑客控制僵尸网络向DNS服务器发送大量的不存在的域名解析请求,导致域名服务器性能耗尽,无法响应正常用户的域名解析请求,甚至发生服务器瘫痪宕机。当前业界对域名解析请求洪水攻击的防御大多采用对DNS报文限速的方法来实现。

在实现本发明的过程中,发明人发现至少存在如下问题:

上述方法虽然能够有效的避免域名解析请求洪水攻击行为带来的域名服务器瘫痪宕机等危害,但是在此攻击行为发生时,一些正常用户的域名解析请求报文可能也会被拦截。并且这种防御方法存在成本高、效率低、耗时长等缺陷。



技术实现要素:

本发明的目的是提供一种能够有效拦截恶意攻击行为,保证正常查询用户的域名解析使用需求的防护方法和装置。

根据本发明实施例的一个方面,提供一种域名解析的防护方法,统计接收到的第一域名解析请求的次数;判断第一域名解析请求的次数是否超过阈值;当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息;当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求转发。

进一步,防护方法还包括:当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求对应的源IP地址存储至白名单。

进一步,防护方法还包括:当接收到其他第一域名解析请求时,查询白名单中是否存在与其他第一域名解析请求对应的源IP地址;若存在,则将其他第一域名解析请求转发;若不存在,则继续判断其他第一域名解析请求的次数是否超过阈值,并在判断到接收到的其他第一域名解析请求的次数超过阈值时,返回响应消息。

进一步,判断白名单中源IP地址的存储时间是否超过时间阈值;若该源IP地址的存储时间超过时间阈值,则将源IP地址删除。

进一步,防护方法还包括:当未接收到基于TCP连接发送的第二域名解析请求时,则不将第一域名解析请求转发。

根据本发明实施例的另一个方面,还提供一种域名解析的防护装置,包括:域名统计模块,用于统计接收到的第一域名解析请求的次数;判断模块,用于判断第一域名解析请求的次数是否超过阈值;响应消息返回模块,用于当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息;转发模块,用于当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求转发。

进一步,防护装置还包括:源IP地址存储模块,用于当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求对应的源IP地址存储至白名单。

进一步,防护装置还包括:白名单查询模块,用于当接收到其他第一域名解析请求时,查询白名单中是否存在与其他第一域名解析请求对应的源IP地址;若白名单中存在与其他第一域名解析请求对应的源IP地址,则由转发模块将其他第一域名解析请求转发;若白名单中存在与其他第一域名解析请求对应的源IP地址,则由判断模块继续判断其他第一域名解析请求的次数是否超过阈值,并在判断到接收到的其他第一域名解析请求的次数超过阈值时,由响应消息返回模块返回响应消息。

进一步,防护装置还包括:时间判断模块,用于判断白名单中的源IP地址是否超过时间阈值;删除模块,用于在该源IP地址超过时间阈值的情况下,将源IP地址删除。

进一步,转发模块还用于:当未接收到基于TCP连接发送的第二域名解析请求时,则不将第一域名解析请求转发。

本发明实施例提供的域名解析的防护方法和装置,利用防火墙设备统计接收到的域名解析请求的次数并判断域名解析请求的次数是否超过阈值;当域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息,当接收到基于响应消息发送的TCP连接建立请求时,将域名解析请求转发至域名服务器。从而能够将现有的利用UDP查询域名的方式切换到利用安全可靠的TCP查询域名的方式,利用防火墙设备对DNS域名解析请求源进行认证,有效地避免域名解析请求洪水攻击行为对域名服务器的严重威胁,不会对正常用户的域名解析请求造成影响,保证了正常查询用户的使用需求,在域名解析请求频繁发起的情况下能够减弱服务器压力,不会造成服务器瘫痪跌宕。

附图说明

图1是本发明实施例基于的网络架构结构示意图;

图2是本发明实施例一的一种域名解析的防护方法的流程示意图;

图3是本发明实施例二的一种域名解析的防护方法的流程示意图;

图4是本发明实施例三的一种域名解析的防护方法的流程示意图;

图5是本发明实施例四的一种域名解析的防护方法的流程示意图;

图6是本发明实施例五的一种域名解析的防护方法的流程示意图;

图7是本发明实施例六的一种域名解析的防护装置的结构示意图;

图8是本发明实施例七的一种域名解析的防护装置的结构示意图;

图9是本发明实施例八的一种域名解析的防护装置的结构示意图;

图10是本发明实施例九的一种域名解析的防护装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在本发明实施例中,防护方法的执行主体是具有域名解析请求洪水防御功能的防火墙设备,在网络架构中是设置在客户端和域名服务器之间,用来拦截客户端发送至域名服务器的域名解析请求报文。如图1所示,本发明实施例的网络架构为包括客户端、防火墙设备和域名服务器,其中,客户端与防火墙设备连接,防火墙设备与域名服务器连接。

图2显示了本发明实施例一的一种域名解析的防护方法的流程示意图。

如图2所示,该防护方法包括:

S1,统计接收到的第一域名解析请求的次数;

本发明实施例中,当客户端发送第一域名解析请求至域名服务器时,会首先发送至防火墙设备,防火墙设备对发送至域名服务器的第一域名解析请求进行统计。现有技术中,第一域名解析请求都是以UDP方式发起的,通过发送UDP报文进行域名解析,此时,UDP报文中TC字段为0。

S2,判断第一域名解析请求的次数是否超过阈值;

防火墙设备对统计的第一域名解析请求的次数进行判断,判断其是否超过阈值,在本发明实施例中,这里的阈值可以是用户手动进行设置。

S3,当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息;

当防火墙设备判断到第一域名解析请求的次数超过阈值时,则返回一个响应消息至客户端,该响应消息中携带有TCP连接的标识信息,例如:在响应消息中将TC字段由0置为1。响应消息中TC字段置为1意味着请求客户端改变之前的连接方式重新采用TCP的连接方式建立连接。

S4,当接收到基于TCP连接发送的第二域名解析请求时,将所述第二域名解析请求转发。

当防火墙设备将响应消息返回给客户端时,客户端有两种选择,一种是通过TCP连接方式重新发送域名解析请求,另一种是不做任何处理。此时,可以通过这种方式对客户端进行认证,若客户端为虚假源,由于虚假源基本都是利用发包工具等机械式的不断发起攻击报文,只是在不停的发送攻击者预设的攻击包,因此在接收到防火墙设备发回来的响应消息后,并不能与之完成交互,即不会重新通过TCP方式发送域名解析请求。若客户端为真实源,其会通过TCP方式重新发送域名解析请求,即发送syn报文至防火墙设备,防火墙设备接收到syn报文后,则认为该客户端为真实源,并将该syn报文转发给域名服务器,此时,该客户端就可以与域名服务器进行TCP三次握手建立TCP连接进而接收域名服务器返回的域名解析结果。其中,域名解析技术为现有技术,在此,不再赘述。

在本发明实施例一中,当第一域名解析请求的次数未超过阈值时,则进行正常的域名解析操作,即防火墙设备将第一域名解析请求正常转发至域名服务器,由域名服务器进行域名解析,并将域名解析结果返回客户端,此过程与现有的通过UDP方式进行域名解析的过程相同,在此不再赘述。

本发明实施例通过统计接收到的第一域名解析请求的次数并判断第一域名解析请求的次数是否超过阈值;当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息,当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求转发至域名服务器。从而能够将现有的利用UDP查询域名的方式切换到利用安全可靠的TCP查询域名的方式,对DNS域名解析请求源进行认证,若认证通过为真实源,则将该域名解析请求转发进行正常的域名解析,有效地避免域名解析请求洪水攻击行为对域名服务器的严重威胁,不会对正常用户的域名解析请求造成影响,保证了正常查询用户的使用需求。

图3显示了本发明实施例二的一种域名解析的防护方法的流程示意图。

作为一种可选的实施例,如图3所示,本发明实施例二除了包括本发明实施例一的S1至S4的步骤之外,还包括步骤S5:

S5,当未接收到基于TCP连接发送的第二域名解析请求时,则不将第一域名解析请求转发。

当防火墙设备未接收到基于TCP连接发送的第二域名解析请求时,则对该客户端之前发送的第一域名解析请求不作处理,即不转发至域名服务器。

本发明实施例二中通过没有接收到基于TCP连接发送的第二域名解析请求,来判定该请求的客户端为虚假源,并不转发该虚假源的第一域名解析请求。从而杜绝恶意攻击行为。

图4显示了本发明实施例三的一种域名解析的防护方法的流程示意图。

作为一种可选的实施例,如图4所示,本发明实施例三除了包括本发明实施例一的S1至S4的步骤之外,还包括步骤S6和步骤S7:

S6,当接收到基于TCP连接发送的第二域名解析请求时,将所述第二域名解析请求对应的源IP地址存储至白名单。

其中,源IP地址是指发送域名解析请求的客户端的IP地址。当防火墙设备接收到客户端基于TCP连接发送的第二域名解析请求,则将客户端的IP地址存储至白名单。

图5显示了本发明实施例四的一种域名解析的防护方法的流程示意图。

作为一种可选的实施例,如图5所示,本发明实施例四除了包括本发明实施例三的S1至S4以及S6至S7的步骤之外,还包括步骤S8至步骤S10:

S8,当接收到其他第一域名解析请求时,查询白名单中是否存在与其他第一域名解析请求对应的源IP地址;

在本发明实施例中,防火墙设备后续再接收到客户端发送的其他第一域名解析请求或其他客户端发送的域名解析请求时,首先将该客户端的IP地址解析出来,并在白名单中查询是否存在与该第一域名解析请求或域名解析请求对应的源IP地址。

S9,若存在,则将其他第一域名解析请求转发;

若白名单中存在与该第一域名解析请求对应的源IP地址,则将该第一域名解析请求转发至域名服务器,由域名服务器进行域名解析,并将域名解析结果返回客户端。

S10,若不存在,则继续判断其他第一域名解析请求的次数是否超过阈值,并在判断到接收到的其他第一域名解析请求的次数超过阈值时,返回响应消息。

本发明实施例能够减少统计以及判断接收到域名解析请求的步骤,仅通过白名单来对域名解析请求的发起者进行认证,能够简化认证步骤,快速对域名解析请求的发起者进行辨识,在域名解析请求频繁发起的情况下能够减弱服务器压力,不会造成服务器瘫痪跌宕,另外,在认证通过后,客户端依然能够进行正常的以UDP方式进行域名解析的过程,不必再需要返回响应消息,让客户端重新按照TCP方式进行域名解析,提高了域名解析的效率。

图6显示了本发明实施例五的一种域名解析的防护方法的流程示意图。

作为一种可选的实施例,如图6所示,本发明实施例五除了包括本发明实施例三的S1至S4以及S6至S7的步骤之外,还包括步骤S11:

S11,判断白名单中源IP地址的存储时间是否超过时间阈值;

S12,若源IP地址的存储时间超过时间阈值,则将源IP地址删除。

可选的,白名单中源IP地址在存储至白名单中时,则开始计时,若源IP地址在白名单中的存储时间超过时间阈值,则将源IP地址删除,即意味着该源IP地址自动失效。可选的,时间阈值可以是用户手动进行设置。

本发明实施例通过定时对白名单中的源IP地址信息进行删除,能够避免白名单中信息过多而造成源IP地址查询缓慢的问题。

图7显示了本发明实施例六的一种域名解析的防护装置的结构示意图。

如图7所示,该防护装置包括:

域名统计模块100,用于统计接收到的第一域名解析请求的次数;

本发明实施例中,当客户端发送第一域名解析请求至域名服务器时,会首先发送至防火墙设备,防火墙设备对发送至域名服务器的第一域名解析请求进行统计。现有技术中,第一域名解析请求都是以UDP方式发起的,通过发送UDP报文进行域名解析,此时,UDP报文中TC字段为0。

判断模块101,用于判断第一域名解析请求的次数是否超过阈值;

防火墙设备对统计的第一域名解析请求的次数进行判断,判断其是否超过阈值,在本发明实施例中,这里的阈值可以是用户手动进行设置。

响应消息返回模块102,用于当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息;

当防火墙设备判断到第一域名解析请求的次数超过阈值时,则返回一个响应消息至客户端,该响应消息中携带有TCP连接的标识信息,例如:在响应消息中将TC字段由0置为1。响应消息中TC字段置为1意味着请求客户端改变之前的连接方式重新采用TCP的连接方式建立连接。

转发模块103,用于当接收到基于TCP连接发送的第二域名解析请求时,将所述第二域名解析请求转发,以及当未接收到基于TCP连接发送的第二域名解析请求时,则不将第一域名解析请求转发。

当防火墙设备将响应消息返回给客户端时,客户端有两种选择,一种是通过TCP连接方式重新发送域名解析请求,另一种是不做任何处理。此时,可以通过这种方式对客户端进行认证,若客户端为虚假源,由于虚假源基本都是利用发包工具等机械式的不断发起攻击报文,只是在不停的发送攻击者预设的攻击包,因此在接收到防火墙设备发回来的响应消息后,并不能与之完成交互,即不会重新通过TCP方式发送域名解析请求。若客户端为真实源,其会通过TCP方式重新发送域名解析请求,即发送syn报文至防火墙设备,防火墙设备接收到syn报文后,则认为该客户端为真实源,并将该syn报文转发给域名服务器,此时,该客户端就可以与域名服务器进行TCP三次握手建立TCP连接进而接收域名服务器返回的域名解析结果。

其中,域名解析技术为现有技术,在此,不再赘述。

当防火墙设备未接收到基于响应消息发送的TCP连接建立请求时,则对该客户端之前发送的域名解析请求不作处理,即不转发至域名服务器。通过根据没有接收到基于TCP连接发送的域名解析请求,来判定该请求的客户端为虚假源,并不转发该虚假源的域名解析请求。从而杜绝恶意攻击行为。

在本发明实施例一中,当第一域名解析请求的次数未超过阈值时,则进行正常的域名解析操作,即防火墙设备将第一域名解析请求正常转发至域名服务器,由域名服务器进行域名解析,并将域名解析结果返回客户端,此过程与现有的通过UDP方式进行域名解析的过程相同,在此不再赘述。

本发明实施例通过统计接收到的第一域名解析请求的次数并判断第一域名解析请求的次数是否超过阈值;当第一域名解析请求的次数超过阈值时,返回响应消息,响应消息中携带TCP连接标识信息,当接收到基于TCP连接发送的第二域名解析请求时,将第二域名解析请求转发至域名服务器。从而能够将现有的利用UDP查询域名的方式切换到利用安全可靠的TCP查询域名的方式,对DNS域名解析请求源进行认证,若认证通过为真实源,则将该域名解析请求转发进行正常的域名解析,有效地避免域名解析请求洪水攻击行为对域名服务器的严重威胁,不会对正常用户的域名解析请求造成影响,保证了正常查询用户的使用需求。

图8显示了本发明实施例七的一种域名解析的防护装置的结构示意图。

如图8所示,该防护装置还包括:

源IP地址存储模块104,用于当接收到基于TCP连接发送的第二域名解析请求时,将所述第二域名解析请求对应的源IP地址存储至白名单。

其中,源IP地址是指发送域名解析请求的客户端的IP地址。当防火墙设备接收到客户端基于TCP连接发送的第二域名解析请求,则将客户端的IP地址存储至白名单。

图9显示了本发明实施例八的一种域名解析的防护装置的结构示意图。

如图9所示,该防护装置还包括:

白名单查询模块105,用于当接收到其他第一域名解析请求时,查询白名单中是否存在与其他第一域名解析请求对应的源IP地址;若白名单中存在与其他第一域名解析请求对应的源IP地址,则由转发模块103将其他第一域名解析请求转发;

在本发明实施例中,防火墙设备后续再接收到客户端发送的其他第一域名解析请求或其他客户端发送的域名解析请求时,首先将该客户端的IP地址解析出来,并在白名单中查询是否存在与该第一域名解析请求或域名解析请求对应的源IP地址。

若白名单中不存在与其他第一域名解析请求对应的源IP地址,则由判断模块101继续判断其他第一域名解析请求的次数是否超过阈值,并在判断到接收到的其他第一域名解析请求的次数超过阈值时,由响应消息返回模块102返回响应消息。

若白名单中存在与该第一域名解析请求对应的源IP地址,则将该第一域名解析请求转发至域名服务器,由域名服务器进行域名解析,并将域名解析结果返回客户端。

本发明实施例能够减少统计以及判断接收到域名解析请求的步骤,仅通过白名单来对域名解析请求的发起者进行认证,能够简化认证步骤,快速对域名解析请求的发起者进行辨识,在域名解析请求频繁发起的情况下能够减弱服务器压力,不会造成服务器瘫痪跌宕,另外,在认证通过后,客户端依然能够进行正常的以UDP方式进行域名解析的过程,不必再需要返回响应消息,让客户端重新按照TCP方式进行域名解析,提高了域名解析的效率。

图10显示了本发明实施例九的一种域名解析的防护装置的结构示意图。

如图10所示,该防护装置还包括:

时间判断模块106,用于判断白名单中的源IP地址是否超过时间阈值;

删除模块107,用于在该源IP地址超过时间阈值的情况下,将源IP地址删除。

可选的,白名单中源IP地址在存储至白名单中时,则开始计时,若源IP地址在白名单中的存储时间超过时间阈值,则将源IP地址删除,即意味着该源IP地址自动失效。可选的,时间阈值可以是用户手动进行设置。本发明实施例通过定时对白名单中的源IP地址信息进行删除,能够避免白名单中信息过多而造成源IP地址查询缓慢的问题。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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