DNS request flood黑客控制僵尸网络向DNS服务器发送大量不存在的域名的解析请求,最终导致服务器因大量DNS请求而超载。1.TC源认证①客户端发送的DNS请求报文长度超过告警阈值,启动源认证机制。②拦截DNS请求,将TC标志位置为1并进行回应,要求客户端以TCP方式重新发起DNS查询。③如果这个源是虚假源,则不会正常响应这个DNS回应报文,更不会重新通过TCP方式重新进行DNS查询。④如果是真实客户端,则会重新发送SYN报文,请求建立三次握手。⑤系统对客户端源进行TCP层面的认证。源认证通过,客户端源IP加入白名单。⑥客户端重新请求建立三次握手,系统将客户端第二次发送的三次握手请求直接放行,送给服务器。⑦客户端与服务器之间建立三次握手成功,并通过TCP方式完成本次DNS查询。适用于客户端是浏览器的认证方式。有些客户端不支持通过TCP方式进行DNS查询。2.被动防御 系统利用DNS协议的重传机制,不对DNS查询报文进行反弹,而是直接不处置,直接丢弃,然后看客户端是否重传。①Anti-ddos系统在第一次收到DNS请求后,就会记录DNS请求的域名、源IP等基本信息,并HASH成一个值,记录到系统一张表里。②后续一定时间戳内,如果再收到这个HASH值相同的DNS请求,就认定为重传包,放行。时间戳会随着收到的每一个相同HASH值的DNS请求包而不断的刷新。 适用于攻击源不断变化的DNS请求攻击 3.CNAME模式 DNS协议中,允许将多个域名映射到同一个IP地址,此时可以将一个域名做A记录指向服务器IP,然后将其他域名作为别名,指向之前做A记录的域名上。这样类型的存在是为了解决IP地址变更时,不必一个一个域名做更改指向。只需要更改A记录的那个域名到新IP上,其他别名将自动更改到新IP地址上。①流量达到阈值,系统启动源认证,对请求报文进行重定向。②如果是真实源,会正常响应源认证报文。③认证通过的源,系统对此源记录进白名单,后续这个源发送的请求将被直接通过。④如果是虚假源,不会正常响应源认证报文,发送的请求也不会到达授权服务器。 DNS Reply Flood DNS查询过程通常都是基于UDP协议的,UDP协议是无连接状态的。所以这一弱点很容易被黑客所利用,DNS服务器收到DNS reply报文时,不管自己有没有发出去过解析请求,都会对这些DNS reply报文进行处理。DNS reply flood就是黑客发送大量的DNS reply报文到DNS缓存服务器,导致缓存服务器因为处理这些DNS reply报文而资源耗尽,影响正常业务。DNS reply flood大多都是虚假源攻击,黑客控制僵尸主机发出的DNS reply报文的源IP地址通常都是伪造的,是不存在的。所以在防御的时候,就可以从回应源IP地址的真假性入手,判定这个源IP是否是真实源。一般可使用源认证方式进行防御。源认证的方法就是构造一个DNS request报文,看客户端是否能正常回应。①Anti-DDoS系统部署在防护目标前,并对到达防护目标的DNS reply报文进行统计。当到达防护目标的DNS reply报文超过告警阈值时,Anti-DDoS系统启动防御。②Anti-DDoS系统收到某个源IP地址发来的DNS reply报文后,会重新构造一个新的DNS request报文,然后记录构造查询报文的Query ID和源端口号。③如果是虚假源,则不会对这个DNS request报文进行回应,认证不通过。④如果是真实DNS授权服务器,则会重新回应DNS reply报文。⑤Anti-DDoS系统收到DNS reply报文后,会与之前记录的Query ID和源端口号进行匹配。如果完全一致,则判定此DNS reply报文就是反弹DNS request报文的回应,源认证成功,加入白名单。⑥后续这个源再发送的DNS reply报文,直接通过,直到白名单老化。
原文链接:https://tieba.baidu.com/p/8154353551
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21294