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

文档序号:9399267阅读:464来源:国知局
一种用于防御dns递归攻击的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及网络安全领域,具体地说涉及一种用于防御DNS递归攻击的方法、装置及系统。
【背景技术】
[0002]DNS(Domain Name System)即域名系统,是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通常DNS的查询过程为:以客户端查询WWW.sina.com.cn的域名为例,客户端先将域名查询请求发送至本地域名服务器,若本地域名服务器的本地缓存中存在针对WWW.sina.com.cn的域名查询请求相对应的资源记录,则将该资源记录直接返回给客户端;若本地域名服务器的本地缓存中没有针对www.sina.com.cn的域名查询请求相对应的资源记录,则本地域名服务器需要从根服务器开始向各级授权服务器发起递归查询。该递归查询的过程如图1所示,首先需要访问根服务器,根服务器告知本地域名服务器它授权出去的管理cn区的授权服务器的地址,本地域名服务器继续向cn区查询,以此类推,直至找到sina.com.cn的授权服务器,得到www.sina.com.cn的地址,并返回给客户端,这样就完成了一个完整的递归查询过程。
[0003]现如今DNS的重要性使其自然地成为黑客攻击的重要目标之一。例如UDP Flood攻击是最容易发起海量流量的攻击手段,通过伪造随机源IP使得攻击者难以被追查,但对这种攻击方式的过滤比较容易,因为大多数IP并不提供UDP服务,直接丢弃UDP流量即可。所以现在纯粹的UDP流量攻击比较少见,取而代之的是以UDP协议承载的DNS递归攻击。
[0004]所谓DNS递归攻击,有时也被称为NXDomain攻击或随机请求攻击,操纵大量傀儡机器向被攻击的域名服务器发起大量随机的域名查询请求进行递归查询,这些域名查询请求的域名通常是随机生成或者是网络上根本不存在的域名(NXDomain),被攻击的域名服务器在接收到这种域名查询请求后首先会查询是否在本地缓存中存有相对应的资源记录,如果查找不到,该域名服务器会向上层域名服务器逐级进行查询,从而迅速地耗尽域名服务器的递归资源。这种DNS递归攻击较传统的流量型DNS DDoS攻击而言,操作成本较低,攻击效果好,不一定占用较多的带宽就可以使得DNS服务器的可用性降低或完全丧失。
[0005]目前,有一些防止递归攻击的方法是通过找到分析出导致大量递归查询请求的具有共同2级域名的数据包特征,并将这些数据包阻止。该方法是无效的,因为递归攻击使用的域名是随机的,未必一定具备共同的后缀特征,在不具备该特征的情况下则无法阻止这些递归攻击。
[0006]另一些防止递归攻击的方法是统计某IP段正常情况下的域名查询请求的流量,如发现当前的流量过大则进行过滤,但是该方法所描述的过滤是随机的,在过滤掉攻击的流量的同时也会过滤掉用户的正常域名查询请求的流量,并且递归攻击也未必需要特别大的流量,所以该方法也无法阻止递归攻击。
[0007]还有一些防止递归攻击的方法是通过设置缓存白名单判断资源记录是否有同域名查询请求相对应的资源记录,若不存在则发起递归查询,并判断递归查询是否成功,若不成功则启动抵御攻击模式。显而易见该方法在递归查询后才开启防御,存在严重滞后性,对递归攻击的防御也是无效的。

【发明内容】

[0008]为此,本发明所要解决的技术问题在于为克服现有技术中无法有效的防御DNS递归攻击的缺陷,从而提出一种能够有效地用于防御DNS递归攻击的方法、装置及系统。
[0009]本发明的一种用于防御DNS递归攻击的方法,包括以下步骤:
[0010]接收一并发时刻的所有域名查询请求;
[0011]分别判断每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中;
[0012]当不存在时,统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求;
[0013]判断所述并发数是否大于或等于预设阈值;
[0014]当所述并发数大于或等于预设阈值时,针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答。
[0015]优选地,还包括以下步骤:
[0016]当存在时,分别判断每个所述资源记录中的TTL值是否过期;
[0017]当所述资源记录中的TTL值没有过期时,针对域名查询请求生成包含所述域名查询请求相对应的资源记录信息的应答信息。
[0018]优选地,还包括以下步骤:
[0019]当所述资源记录中的TTL值过期时,针对域名查询请求进行递归查询;
[0020]生成包含所述递归查询所查询到的域名查询请求相对应的资源记录信息的应答信息,并将所述资源记录信息保存在本地缓存中。
[0021]优选地,还包括以下步骤:
[0022]当所述并发数小于预设阈值时,根据所述一并发时刻的每个所述随机请求分别进行递归查询;
[0023]针对所述一并发时刻的每个所述随机请求生成包含所述递归查询所查询到的所述随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。
[0024]本发明的一种用于防御DNS递归攻击的装置,包括:
[0025]接收单元,用于接收一并发时刻的所有域名查询请求;
[0026]第一判断单元,用于分别判断每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中;
[0027]计算单元,用于当不存在时,统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求;
[0028]第二判断单元,用于判断所述并发数是否大于或等于预设阈值;
[0029]第一应答单元,用于在所述第二判断单元判断所述并发数大于或等于预设阈值时,针对所述一并发时刻的超出所述预设阈值的每个随机请求分别生成包含错误域名信息的应答信息、生成包含查询失败信息的应答信息或直接丢弃不作应答。
[0030]优选地,还包括:
[0031]第三判断单元,用于当存在时,分别判断每个所述资源记录中的TTL值是否过期;
[0032]第二应答单元,用于在所述第三判断单元判断所述资源记录中的TTL值没有过期时,针对域名查询请求生成包含所述域名查询请求相对应的资源记录信息的应答信息。
[0033]优选地,还包括:
[0034]第一递归查询单元,用于在所述第三判断单元判断所述资源记录中的TTL值过期时,针对域名查询请求进行递归查询;
[0035]第三应答单元,用于生成包含所述递归查询所查询到的域名查询请求相对应的资源记录信息的应答信息,并将所述资源记录信息保存在本地缓存中。
[0036]优选地,还包括:
[0037]第二递归查询单元,用于在所述第二判断单元判断所述并发数小于预设阈值时,根据所述一并发时刻的每个所述随机请求分别进行递归查询;
[0038]第四应答单元,用于针对所述一并发时刻的每个所述随机请求生成包含所述递归查询所查询到的所述随机请求相对应的资源记录信息的应答信息或者包含查询失败信息的应答信息。
[0039]本发明的一种用于防御DNS递归攻击的装置,该装置位于DNS系统的本地域名服务器侧,包括:
[0040]接收单元,用于接收一并发时刻的所有域名查询请求;
[0041]第一判断单元,用于分别判断每个域名查询请求相对应的资源记录是否存在于本地域名服务器的本地缓存中;
[0042]计算单元,用于当不存在时,统计所述一并发时刻的随机请求的并发数,所述随机请求为相对应的资源记录不存在于本地域名服务器的本地缓存中的域名查询请求;
[0043]第二判断单元,用于判
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1