Dns是一个十分重要的网络协议,具有非常高的可用性。为了打破该协议的可用性,攻击者可以向DNS解析器发送大量的伪造的查询请求。对于dns的攻击一般是对服务器发送大量的查询请求,还有就是攻击者也有可能发送一些不符合查询请求来进行攻击。那么怎样可以避免这种攻击呢,其实很简单,本文中为大家提供5种缓解攻击的方法。

一、屏蔽主动发送的DNS响应信息

一个典型的DNS交换信息是由请求信息组成的。DNS解析器会将用户的请求信息发送至DNS服务器中,在DNS服务器对查询请求进行处理之后,服务器会将响应信息返回给DNS解析器。但值得注意的是,响应信息是不会主动发送的。

攻击者需要在请求信息抵达DNS解析器之前部署FortiDDoS,它可以作为一个开放的DNS解析器,或者作为DNS查询请求的查询服务器。这是一种内嵌于网络中的设备,它每秒可以处理数百万次查询请求,而且还可以将查询信息和相对应的响应信息记录在内存表之中。

如果服务器在没有接收到查询请求之前,就已经生成了对应的响应信息,那么服务器就应该直接丢弃这一响应信息。这种机制能够有效地缓解反射攻击所带来的影响。

缓解基于DNS的DDoS攻击其实很简单

二、丢弃快速重传数据包

即便是在数据包丢失的情况下,任何合法的DNS客户端都不会在较短的时间间隔内向同一DNS服务器发送相同的DNS查询请求。因此,如果从相同源地址发送至同一目标地址的相同查询请求发送频率过高,那么服务器必须将这些请求数据包丢弃。

缓解基于DNS的DDoS攻击其实很简单

三、如果DNS服务器已经将响应信息成功发送了,那么就应该禁止服务器在较短的时间间隔内对相同的查询请求信息进行响应-启用TTL

对于一个合法的DNS客户端而言,如果它接收到了响应信息,那么它就不会再次发送相同的查询请求。如果数据包的TTL生存时间到了,那么系统应该对每一个响应信息进行缓存处理。当攻击者通过大量查询请求来对DNS服务器进行攻击时,我们就可以屏蔽掉不需要的数据包了。

缓解基于DNS的DDoS攻击其实很简单

四、丢弃未知来源的DNS查询请求和响应数据

通常情况下,攻击者会利用脚本来对目标进行分布式拒绝服务攻击(DDoS攻击),而且这些脚本通常针对的都是软件中的漏洞。因此,如果我们能够在服务器中部署简单的匿名检测机制,我们就可以限制传入服务器的数据包数量了。

缓解基于DNS的DDoS攻击其实很简单

五、如果你此前从未见过这类DNS请求,请立刻丢弃这一数据包

这类请求信息很可能是由伪造的代理服务器所发送的,或者是由于客户端配置错误,也有可能是开发人员用于调试的请求信息。但是我们应该知道,这也有可能是攻击者发送的。所以无论是哪一种情况,都应该直接丢弃这类数据包。

创建一个白名单,在其中添加允许服务器处理的合法请求信息。

白名单可以屏蔽掉非法的查询请求信息以及此前从未见过的数据包。

这种方法能够有效地保护你的服务器不受泛洪攻击的威胁。

除此之外,这种方法也可以保证合法的域名服务器只对合法的DNS查询请求进行处理和响应。

为了更好的保护我们这些基础设置,我们可以用上面的这几种方法缓解攻击,防患于未然,对自己所提供的服务尽量满足客户的需求。