DNS攻击

DNS request Flood 攻击

DNS Reply Flood 攻击

DNS 查询通常基于 UDP 协议,而 UDP 协议是无连接的,当 DNS 服务器收到 DNS reply报文时,不管自己有没有发出过解析请求,都会对 DNS reply 报文进行处理。DNS Reply Flood 就是黑客发送大量 DNS reply 报文给 DNS 服务器,导致消耗大量缓存服务器资源,无法正常解析 DNS 授权服务器发送的 DNS reply报文。

  • 源认证

    DNS Reply Flood 的源 IP 地址通常是伪造的,所以可以通过判断源 IP 地址的真假来防范攻击。这种方式通过构造一个 DNS request报文进行认证。

    • DNS reply 报文超过阈值,收到 DNS reply 报文后会重新构造一个 DNS request 报文,并记录构造查询报文的Query ID和源端口号。
    • 如果是真实源,则会回应 DNS reply 报文,如果与之前记录的 Query ID 和源端口号匹配成功,则加入白名单,认证成功。之后发送的报文直接通过。
    • 如果是虚假源,则不会回应这个 DNS request 报文,认证不通过。

20180129110247726.png

  • DNS 反射攻击

    一种更高级的 DNS Reply Flood,攻击目标是客户端而不是 DNS 缓存服务器,并且 DNS 请求是真实的

    • 会话检查

      利用防火墙的会话表机制,DNS 交互过程中,DNS request 报文首包建立会话,保存五元组信息。当收到 DNS reply 报文时,匹配会话表,如果命中才允许通过。

利用限速防范 DNS Request Flood 和 DNS reply攻击

  • 域名限速

    如果某个域名的DNS请求或回应报文速率过高,可以针对这个域名进行限速。

  • 源 IP 地址限速

    如果某个源IP地址域名解析的速率过大,就可以有针对性的对这个源IP地址进行限制,这样也不会对其他源有影响。

DNS 缓存投毒攻击