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

文档序号:9399267阅读:来源:国知局
进入步骤S62 ;当所述资源记录中的TTL值过期时,进入步骤S63。所述资源记录中的TTL值也称为生存时间值,与通常意义上的含义相同,为资源记录在DNS服务器上的缓存存放时间。
[0071]步骤S62:针对每个相对应的资源记录存在于本地域名服务器的本地缓存中的域名查询请求生成包含所述域名查询请求相对应的资源记录信息的应答信息。
[0072]步骤S63:针对域名查询请求进行递归查询;之后进入步骤S64。
[0073]步骤S64:针对每个域名查询请求生成包含所述递归查询所查询到的所述域名查询请求相对应的资源记录信息的应答信息,并将所述资源记录信息保存在本地缓存中。
[0074]本领域的技术人员应当理解,正常的域名查询请求的查询步骤不限于上述步骤S61-S64来实现,也可以采用其他的具有域名查询功能的步骤来完成。
[0075]本实施例中当域名查询请求相对应的资源记录存在于本地域名服务器的本地缓存中时,即该域名查询请求为正常的递归查询请求时,通过判断资源记录中的TTL值是否过期的步骤,可以在该资源记录中的TTL值没有过期时,直接获得该域名查询请求相对应的资源记录,提高域名查询的效率。
[0076]通过设置当资源记录中的TTL值过期时,对域名查询请求进行递归查询的步骤,也就是说只有当资源记录中的TTL值已经过期时才发起递归查询,进一步地节约了域名服务器的资源。
[0077]作为一种具体的实现方式,本实施例中的进行正常的随机请求的查询步骤S7,如图4所示,可以包括以下步骤:
[0078]步骤S71:根据所述一并发时刻的每个所述随机请求分别进行递归查询;具体的,所述递归查询的过程通常为如图1中所示的过程,之后进入步骤S72。
[0079]步骤S72:针对所述一并发时刻的每个所述随机请求生成包含所述递归查询所查询到的所述随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。也就是说,当所述递归查询有查询到结果时,针对所述一并发时刻的每个所述随机请求生成包含所述递归查询所查询到的所述随机请求相对应的资源记录信息的应答信息;当所述递归查询没有查询到结果时,针对所述一并发时刻的每个所述随机请求生成包含查询失败信息的应答信息。
[0080]本领域的技术人员应当理解,正常的随机请求的查询步骤不限于上述步骤S71-S72来实现,也可以采用其他的具有域名查询功能的步骤来完成。
[0081]本实施例中通过设置当并发数小于预设阈值时,根据一并发时刻的每个随机请求分别进行递归查询的步骤,最大限度地保证用户所产生的合法递归请求能够正确获得查询。由于存在用户所请求查询的部分域名为新建或访问量较少的域名,此类域名所对应的资源记录不存在于本地缓存中,所以其虽然也会被识别为随机请求,但不应被限制。因此通过该步骤可以在阈值范围内保证该类请求允许触发递归查询并返回用户正确的查询结果。从而在未发生递归攻击时,本发明的用于防御DNS递归攻击的方法及其装置不对用户的正常的递归查询请求产生影响,在发生递归攻击时,在阈值限制范围内最大限度保证用户的正常递归查询请求,即误杀率低。
[0082]下面将具体介绍本发明实施例2的一种用于防御DNS递归攻击的装置,该装置位于DNS系统的本地域名服务器侧,如图5所示,对应于实施例1的一种用于防御DNS递归攻击的方法,包括:
[0083]接收单元1,用于接收一并发时刻的所有域名查询请求;
[0084]第一判断单元2,用于分别判断每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中;
[0085]计算单元3,用于当所述域名查询请求相对应的资源记录不存在于本地域名服务器的本地缓存中时,统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求;
[0086]第二判断单元4,用于判断所述并发数是否大于或等于预设阈值;
[0087]第一应答单元5,用于在所述第二判断单元判断所述并发数大于或等于预设阈值时,针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答;针对所述一并发时刻的未超出所述预设阈值的每个随机请求分别进行递归查询,并生成包含所述递归查询所查询到的随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。
[0088]本实施例中通过分别判断在一并发时刻接收到的所有域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中的步骤,由于当域名服务器受到递归攻击时,其伪造的域名必定不存在于域名服务器的本地缓存中,可以首先自动识别出不存在于本地缓存中的随机请求,也就是说这些被识别出的随机请求中包含了可能的递归攻击请求。通过统计所述一并发时刻的随机请求的并发数并将其与预设阈值进行比较的步骤,当并发数大于或等于预设阈值时,针对所述一并发时刻的超出阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答,即通过阈值限制一并发时刻的随机请求的查询速率,当这些随机请求中存在递归攻击请求时可以在发生递归攻击的第一时间将其进行限制,从而最大限度保证服务器性能不受递归攻击影响,可以及时、快速且有效地防御住递归攻击,不会产生大量的递归查询,使递归攻击失效,保证域名服务器的高可用性。
[0089]作为一种具体的实现方式,本实施例中进一步包括以下单元,对应于本发明实施例I的方法,如图6所示:
[0090]第三判断单元61,用于当所述域名查询请求相对应的资源记录存在于本地域名服务器的本地缓存中时,分别判断每个所述资源记录中的TTL值是否过期;
[0091]第二应答单元62,用于在所述第三判断单元判断所述资源记录中的TTL值没有过期时,针对每个相对应的资源记录存在于本地域名服务器的本地缓存中的域名查询请求生成包含所述域名查询请求相对应的资源记录信息的应答信息。
[0092]第一递归查询单元63,用于在所述第三判断单元判断所述资源记录中的TTL值过期时,针对域名查询请求进行递归查询;
[0093]第三应答单元64,用于在所述第一递归查询单元63根据所述域名查询请求进行递归查询之后,针对域名查询请求生成包含所述递归查询所查询到的所述域名查询请求相对应的资源记录信息的应答信息,并将所述资源记录信息保存在本地缓存中。
[0094]本领域的技术人员应当理解,当所述域名查询请求相对应的资源记录存在于本地域名服务器的本地缓存中时,正常的域名查询请求的查询单元不限于上述单元61-64来实现,也可以采用其他的功能单元来实现域名查询的功能。
[0095]本实施例中当域名查询请求相对应的资源记录存在于本地域名服务器的本地缓存中时,即该域名查询请求为正常的递归查询请求时,通过判断资源记录中的TTL值是否过期的步骤,可以在该资源记录中的TTL值没有过期时,直接获得该域名查询请求相对应的资源记录,提高域名查询的效率。
[0096]通过设置当资源记录中的TTL值过期时,对域名查询请求进行递归查询的步骤,只有当资源记录中的TTL值已经过期时才发起递归查询,进一步地节约了域名服务器的资源。
[0097]作为一种具体的实现方式,本实施例中进一步包括以下单元,对应于本发明实施例I的方法,如图7所示:
[0098]第二递归查询单元71,用于在所述第二判断单元判断所述并发数小于预设阈值时,根据所述一并发时刻的每个所述随机请求分别进行递归查询;
[0099]第四应答单元72,用于在所述第二递归查询单元71根据每个所述随机请求分别进行递归查询之后,针对所述一并发时刻的每个所述随机请求生成包含所述递归查询所查询到的所述随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。
[0100]本领域的技术人员应当理解,当所述并发数小于预设阈值时,正常的随机请求的查询单元不限于上述单元71-72来实现,也可以
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1