** DNS request flood攻击** ** 篇**
** 攻击原理:**
1、DNS request
flood攻击原理其实很简单,就是黑客控制僵尸网络向DNS服务器发送大量的不存在域名的解析请求,最终导致服务器因大量DNS请求而超载,无法继续响应正常用户的DNS请求,从而达到攻击的目的。
2、在DNS request flood攻击过程中,攻击的目标可能是DNS授权服务器,也可能是DNS缓存服务器。
3、黑客伪造的客户端IP地址可能是虚假源IP地址,也可能是现网真实存在的IP地址。
如果攻击的是DNS授权服务器,大量不存在的域名解析请求会导致服务器应接不暇,最终耗尽服务器性能。
4、如果攻击的是缓存服务器,同时会导致缓存服务器不停的向授权服务器发送这些不存在域名的解析请求,一收一发更加重服务器的负担,直到最终导致服务器瘫痪。
** Request防御原理:**
** TC** ** 防护算法**
1、当客户端发送的DNS请求报文超过告警阈值后,启动源认证机制。
A拦截DNS请求,并进行回应,要求客户端以TCP方式重新发起DNS查询。
如果这个源是虚假源,则不会正常响应这个DNS回应报文,更不会重新通过TCP方式重新进行DNS查询。
2、如果是真实客户端,则会重新发送SYN报文,请求建立三次握手。
对客户端源进行TCP层面的认证。源认证通过,客户端源IP加入白名单。
3、客户端重新请求建立三次握手,将客户端第二次发送的三次握手请求直接放行,送给服务器。
4、客户端与服务器之间建立三次握手成功,并通过TCP方式完成本次DNS查询。
注意:
这种方式是防御DNS request flood的一种基本的认证模式,适用于客户端是浏览器的认证。
随着这种防御方式在现网中的应用,其限制也渐渐的显现出来。比如现网中有一些真实客户端,
并不支持通过TCP方式进行DNS查询,这样的话,这种防御方式就不适用了。
所以现在对于缓存服务器的DNS request flood已经逐渐被另一种“被动防御”模式所取代。
需考虑服务器的承受能力。对虚假源有效,对肉鸡无效。反向探测包数量等于攻击包数量,攻击包数量大+反向探测回堵死上行带宽。