DNS服务是互联网的一项核心服务。通过应用DNS,人们在访问网站时不需要记忆其IP地址,而只须输入其域名即可。国内高防服务器在IPv6网络环境下,由于IP地址由本来的32位扩大到了128位,变得更加难以记忆DNS服务也就变得更加重要。当DNS服务的可用性受到要挟时,互联网上的大批设备都会受到影响基至无法正常运行。历史上曾有多次针对DNS进行的攻击事件,都造成了较大影响。
针对DNS服务的攻击方法重要有 DNS QUERY洪水攻击和 DNS NXDOMAIN洪水攻击两种。
1. DNS QUERY洪水攻击
DNS QUERY洪水攻击是指向DNS服务器发送大批查询恳求以达到拒绝服务效果的一种攻击方法。
DNS查询和解析过程
当客户端向DNS服务器查询某域名时,DNS服务器会首先检查其本地缓存中是不是有该域名的记载,如果缓存中有该域名的记载(即命中),则直接将缓存中记载的IP地址作为非权成应答返回给客户端。如果在缓存中没有找到该域名的记载,则会进行送代查询,从根域名开端,逐级进行域名解析,直到解析出完整的域名,之后服务器会将域名解析成果作为应答发送给客户端,并生成一条解析记载保存到缓存中。
比如,对 www.guigege.cn这个域名进行解析,如果在缓存中没有查到其记载,DNS服务器会首先向根域名服务器查询com的域名解析服务器,然后向.com域名服务器查询guigege.cn的域名解析服务器,最后向guigege.cn域名解析服务器查询得到www.guigege.cn的域名解析成果,并将成果返回给发起查询的客户端。
DNS查询和解析的过程通常如图1所示
在DNS解析的过程中,客户端发起一次查询恳求,DNS服务器可能需要进行额外的多次查询才干完成解析的过程并给出应答,在这个过程中会耗费必定的盘算和网络资源。如果攻击者利用大批受控主机不断发送不同域名的解析恳求,那么DNS服务器的缓存会被不断刷新,而大批解析恳求不能命中缓存又导致DNS服务器一定要耗费额外的资源进行迭代查询,这会极大地増加DNS服务器的资源消粍,导致DNS响应缓慢甚至完整拒绝服务。
DNS QUERY洪水攻击的原理如图2所示
进行 DNS QUERY洪水攻击的要点在于毎一个DNS解析恳求所查询的域名应是不同的,这样可以比较有效地避开DNS服务器缓存中的解析记载,达到更好的资源耗费效果。
2、DNS NXDOMAIN洪水攻击
DNS NXDOMAIN洪水攻击是 DNS QUERY洪水攻击的一个变种攻击方法,差别在于后者是向DNS服务器查询一个真实存在的域名,而前者是向DNS服务器査询一个不存在的域名( NXDOMAIN即Non- existentDomain)。
在进行DNS NXDOMAIN洪水攻击时,DNS服务器会进行多次域名查询,同时,其缓存会被大批 NXDOMAIN记载所填满,导致响应正常用户的DNS解析恳求的速度变慢。这与 DNS QUERY洪水攻击所达到的效果类似。除此以外,一部分DNS服务器在获取不到域名的解析成果时,还会再次进行递归查询,向其上一级的DNS服务器发送解析恳求并等候应答,这进一步増加了DNS服务器的资源耗费。因此, DNS NXDOMAIN洪水攻击通常比 DNS QUERY洪水攻击的效果更好。
DNS NXDOMAIN洪水攻击的原理如图3所示