一种用于防御dns递归攻击的方法、装置及系统的制作方法_2

文档序号:9399267阅读:来源:国知局
断所述并发数是否大于或等于预设阈值;
[0044]第一应答单元,用于在所述第二判断单元判断所述并发数大于或等于预设阈值时,针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答。
[0045]本发明的一种用于防御DNS递归攻击的系统,包括客户端侧和本地域名服务器侧;
[0046]客户端侧,用于向本地域名服务器发送域名查询请求;接收由本地域名服务器为所述域名查询请求生成的应答信息;
[0047]本地域名服务器侧,用于接收客户端侧发送的一并发时刻的所有域名查询请求,分别判断每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中,当不存在时,统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求,并判断所述并发数是否大于或等于预设阈值,当所述并发数大于或等于预设阈值时,针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息或生成包含查询失败信息的应答信息,并向客户端侧发送所述应答信息,或直接丢弃不作应答。
[0048]本发明的上述技术方案相比现有技术具有以下优点:
[0049]本发明的一种用于防御DNS递归攻击的方法、装置及系统通过分别判断在一并发时刻接收到的所有域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中的步骤,由于当域名服务器受到递归攻击时,其伪造的域名必定不存在于域名服务器的本地缓存中,可以首先自动识别出不存在于本地缓存中的随机请求,也就是说这些被识别出的随机请求中包含了可能的递归攻击请求。通过统计所述一并发时刻的随机请求的并发数并将其与预设阈值进行比较的步骤,当并发数大于或等于预设阈值时,针对所述一并发时刻的超出阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答,即通过阈值限制一并发时刻的随机请求的查询速率,当这些随机请求中存在递归攻击请求时可以在发生递归攻击的第一时间将其进行限制,从而最大限度保证服务器性能不受递归攻击影响,可以及时、快速且有效地防御住递归攻击,不会产生大量的递归查询,使递归攻击失效,保证域名服务器的高可用性。
[0050]该方法、装置及系统中当域名查询请求相对应的资源记录存在于本地域名服务器的本地缓存中时,即该域名查询请求为正常的递归查询请求时,通过判断资源记录中的TTL值是否过期的步骤,可以在该资源记录中的TTL值没有过期时,直接获得该域名查询请求相对应的资源记录,提高域名查询的效率。
[0051]该方法、装置及系统中通过设置当资源记录中的TTL值过期时,对域名查询请求进行递归查询的步骤,也就是说只有当资源记录中的TTL值已经过期时才发起递归查询,进一步地节约了域名服务器的资源。
[0052]该方法、装置及系统中还通过设置当并发数小于预设阈值时,根据一并发时刻的每个随机请求分别进行递归查询的步骤,最大限度地保证用户所产生的合法递归请求能够正确获得查询。由于存在用户所请求查询的部分域名为新建或访问量较少的域名,此类域名所对应的资源记录不存在于本地缓存中,所以其虽然也会被识别为随机请求,但不应被限制。因此通过该步骤可以在阈值范围内保证该类请求允许触发递归查询并返回用户正确的查询结果。从而在未发生递归攻击时,本发明的用于防御DNS递归攻击的方法及其装置不对用户的正常的递归查询请求产生影响,在发生递归攻击时,在阈值限制范围内最大限度保证用户的正常递归查询请求,即误杀率低。
【附图说明】
[0053]为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
[0054]图1是现有技术中递归查询过程的示意图;
[0055]图2是本发明实施例1的用于防御DNS递归攻击的方法的流程图;
[0056]图3是本发明实施例1的用于防御DNS递归攻击的方法的一个具体示例的流程图;
[0057]图4是本发明实施例1的用于防御DNS递归攻击的方法的另一个具体示例的流程图;
[0058]图5是本发明实施例2的用于防御DNS递归攻击的装置的结构框图;
[0059]图6是本发明实施例2的用于防御DNS递归攻击的装置的一个具体示例的结构框图;
[0060]图7是本发明实施例2的用于防御DNS递归攻击的装置的另一个具体示例的结构框图;
[0061]图8是本发明实施例3的用于防御DNS递归攻击的系统的结构框图。
【具体实施方式】
[0062]本发明实施例1的一种用于防御DNS递归攻击的方法,如图2所示,包括以下步骤:
[0063]步骤S1:接收一并发时刻的所有域名查询请求;所有域名查询请求是并发发起的,该域名查询请求适合发生在各类域名服务器上,例如缓存、递归和授权服务器,之后进入步骤S2。
[0064]步骤S2:分别判断,每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中;当不存在时,进入步骤S3 ;当存在时,进入进行正常的域名查询请求的查询步骤S6,即在未发生递归攻击的情况下执行的常规域名查询步骤。
[0065]步骤S3:统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求;之后进入步骤S4。该步骤S3既识别出了相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求为随机请求,也统计出了该一并发时刻所并发的所有随机请求的总个数即并发数。
[0066]步骤S4:判断所述并发数是否大于或等于预设阈值;所述预设阈值可以根据不同域名服务器的规格和性能进行设置,优选地,可以将其设置为3000、4000、5000等。当所述并发数大于或等于预设阈值时,进入步骤S5 ;当所述并发数小于预设阈值时,进入进行正常的随机请求的查询步骤S7,即虽然为随机请求,但是属于不应被限制的正常请求的范畴,也就是说,未发生递归攻击,执行递归查询步骤。
[0067]步骤S5:针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答。也就是说,针对每个该随机请求选择以下三种方式中的一种进行处理:1、生成包含错误域名信息的应答信息,2、生成包含查询失败信息的应答信息,3、直接丢弃不作应答。可根据实际需求选择上述三种处理方式中的任意一种进行处理。针对所述一并发时刻的未超出所述预设阈值的每个随机请求分别进行递归查询,并生成包含所述递归查询所查询到的随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。
[0068]本实施例中通过分别判断在一并发时刻接收到的所有域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中的步骤,由于当域名服务器受到递归攻击时,其伪造的域名必定不存在于域名服务器的本地缓存中,可以首先自动识别出不存在于本地缓存中的随机请求,也就是说这些被识别出的随机请求中包含了可能的递归攻击请求。通过统计所述一并发时刻的随机请求的并发数并将其与预设阈值进行比较的步骤,当并发数大于或等于预设阈值时,针对所述一并发时刻的超出阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答,即通过阈值限制一并发时刻的随机请求的查询速率,当这些随机请求中存在递归攻击请求时可以在发生递归攻击的第一时间将其进行限制,从而最大限度保证服务器性能不受递归攻击影响,可以及时、快速且有效地防御住递归攻击,不会产生大量的递归查询,使递归攻击失效,保证域名服务器的高可用性。
[0069]作为一种具体的实现方式,本实施例中的进行正常的域名查询请求的查询步骤S6,如图3所示,可以包括以下步骤:
[0070]步骤S61:分别判断每个所述资源记录中的TTL值是否过期;当所述资源记录中的TTL值没有过期时,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1