zoukankan      html  css  js  c++  java
  • DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器

    DNS反射放大攻击分析

    摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E5%8D%95%E5%88%86%E6%9E%90/

    简介

    DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器。

    简单对比下正常的DNS查询和攻击者的攻击方式:

    正常DNS查询:
    源IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 源IP地址

    DNS攻击:
    伪造IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 伪造的IP地址(攻击目标)

    分析

    从服务器上抓了一些攻击包,根据这些数据包可以来看看这种攻击都是什么特点。

    • 全部是大量的DNS响应请求(Response请求)

    147159808627181.jpg

    • 通常里面包含一些不存在或者生僻的域名,经过循环查询从而放大DNS流量

    147159840859200.jpg

    • 会将将 OPT RR 字段中的 UDP 报文大小设置为很大的值(如 4096)

    147159870918672.jpg

    通过这样放大了攻击流量。发送的 DNS 查询请求数据包大小一般为 60 字节左右,而查询返回结果的数据包大小通常为 3000 字节以上,因此,使用该方式进行放大攻击能够达到 50 倍以上的放大效果。

    • 大量的流量都来自正常的DNS服务器

    攻击者通过伪造IP向正常的DNS服务器发送这些恶意的查询请求,将流量引入受害者的服务器,受害者查不到攻击者的真实IP

    解决方案

        1. 如果没有必要可以关闭DNS服务(废话么不是
        2. 如果有DNS服务,做好响应限制,DNS服务不应对互联网上的域名解析服务,而只响公司内部网络DNS解析请求
        3. 限制DNS响应数据包大小的阈值,直接丢弃超大的响应数据包

    DNS反射放大攻击

          DNS反射放大攻击的原理也是类似的。网络上有大量的开放DNS解析服务器,它们会响应来自任何地址的解析请求。我们发出的解析请求长度是很小的,但是收到的结果却是非常大的,尤其是查询某一域名所有类型的DNS记录时,返回的数据量就更大,于是可以利用这些解析服务器来攻击某个目标地址的服务器,而且是利用被控制的机器发起伪造的解析请求,然后解析结果返回给被攻击目标。由于DNS解析一般是UDP请求,不需要握手,源地址属性易于伪造,而且部分“肉鸡”在平时本来就是合法的IP地址,我们很难验证请求的真实性和合法性。DNSSEC是一种可以防止缓存投毒的机制,另外,如果DNS本身抗压能力不行,而且对方请求量过大的话,也会影响到DNS本身的服务。目前此类攻击的规模在数百Gbps级别。
    1. 相关阅读:
      火星A+B
      分西瓜(DFS)
      H.数7(模拟)
      镜像树(dfs)
      锐雯上单不给就送(矩阵快速幂)
      STL容器
      优先队列(和fence repair完全一样)
      x位全排列(next_permutation)
      fence repair(队列水过)
      线段相交
    2. 原文地址:https://www.cnblogs.com/bonelee/p/7271984.html
    Copyright © 2011-2022 走看看