每个网站都有可能会遭受到攻击,现在的互联网服务器遭受的最多的是DDOS攻击,本文总结了一些DNS服务器会遇到的DDOS攻击类型,以及相应的预防措施。

[1]的作者将DDOS的攻击分为三种类型:

  • 大数据洪水攻击(Volume Based Attacks):这种攻击的目标是通过使网络服务器所在的网路的带宽超负载,使你的服务器对外服务能力下降,甚至无法对外服务。这种攻击常见的有UDP floods, ICMP floods,欺骗性报文攻击等。这种攻击一般用Gbps来衡量。
  • 协议攻击(Protocol Attacks):这种攻击的目标是通过消耗网络服务器、路由器、交换机、防火墙、负载均衡等设备的资源,使你的服务器对外服务能力下降,甚至无法对外服务。这种攻击常见的有SYN floods,IP碎片攻击,Ping of Death,Smurf DDOS攻击等。这种攻击一般用pps(packet per second)来衡量。
  • 应用层攻击(Application Layer Attacks):这种攻击的目标是使服务器的软件产生运行错误而停止对外服务。

下面会扁平地一一介绍各种攻击,不会根据分类来介绍。

- UDP floods

UDP是一种无连接(connectionless)无状态(sessionless)的传输协议,攻击者会向目标服务器的任意端口(port)发送大量的UDP报文,目标服务器收到这些UDP报文后,会查看有没有相应的服务监听这个请求端口,如果没有服务监听这个请求端口,则向请求者发送ICMP Destination Unreachable报文。目标服务器在发送大量的ICMP报文上会消耗过多的服务器资源,从而使得目标服务器对外服务过慢,甚至停止服务。

UDP floods攻击防御的常用办法是过滤与所提供服务的包大小差别太大的请求包,或者限速,某一个请求IP所请求的UDP包的类型每秒不能超过一定的阈值,超过则丢弃。

- DNS 放大DDOS攻击

  这种攻击依然是利用了UDP协议的无连接无状态的特点,用户伪造一个IP地址向DNS服务器发起请求,DNS服务器处理后会将结果返回到伪造的IP所在的网络。如果这个DNS请求请求的是某个zone下面的所有资源记录(dig ANY www.xxx.com ),DNS服务器返回的数据包就可能特别大,大量的大包发向伪造IP所在的网络,就有可能阻塞那边的网络,或者消耗大量的服务器资源。因为DNS服务器返回的是一个合法的DNS消息,所以对于网络人员来说,对这种攻击的防御

目前很多的DNS服务器只负责解析一个domain中的域名,关闭递归查询可以使你的DNS服务器不会成为DNS放大攻击中的傀儡,BIND9中的option{recursion no;};可以关闭递归;如果你的服务器还想提供递归功能的话,可以只对特定IP段的查询提供递归功能,BIND9中可以像下面这样设置:

options {
  allow-query { any; };
  allow-recursion { corpnets; };
};

可喜的是,BIND9.8及以上的版本为用户提供了限速的功能:

rate-limit {
    responses-per-second 5;
    window 5;
};

- DNS Cache 污染

这个可能不属于DDOS攻击,但是也把它放在这里。

Cache污染是指权威域名服务器返回给递归域名服务器的资源记录被黑客劫持,换成了他们的资源记录,这个资源记录会在递归域名服务器中存在TTL时间,在这个时间内,用户的DNS请求得到的就是虚假的合法信息。通过这种方法,黑客可以把一个网站的访问引流到另一个网站。

  这篇文章详细介绍了DNS cache污染是如何工作的。

  上面文章的作者提出的预防的解决办法是亡羊补牢,当发现这种攻击时,用TCP发起DNS请求。。。。汗。还有中方法是发现Cache污染的时候刷新(flush)一遍cahce,  

实际上,DNS整套协议在流转的过程中的每个环节都有可能遭受攻击,DNS协议的几种操作和可能存在的安全威胁见这里(第四节)。

下图是Internet网络上面遭受的攻击种类,这些攻击涉及到了四层到七层的所有常用的协议。

防患未然才是最有效的预防方法,时刻对安全保持一颗敬畏的心才会做好事情。

Enjoy~

DNS服务器能遭受到的DDNS攻击类型的更多相关文章

  1. 域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程

    创建一个web应用,简言之就是访问一个域名,可以到达一个地方,这个地方就是你存放供别人查看的文件的地方 就像一条绳,从这头拉一下,可以拉出来另一头的东西 主要有两个部分: 域名 虚拟主机(空间) 1. ...

  2. 《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击

    在上个系列<你的DNS服务真的安全么?>里我们介绍了DNS服务器常见的攻击场景,看完后,你是否对ddos攻击忧心重重?本节我们来告诉你,怎么破局!! 首先回顾一下DDoS攻击的原理.DDo ...

  3. 配置域从DNS服务器以及缓存DNS服务器

    一.域从DNS服务器的作用 我们在之前上一篇随笔里有提到,DNS服务器一般有三种类型,一个是Primary DNS Server(主DNS服务器),一个是Secondary DNS Server(从D ...

  4. 玩转DNS服务器——Bind服务

    合理的配置DNS的查询方式 实验环境: 虚拟机:VMware® Workstation 15 Pro 均使用NAT连接   网段为192.168.1.0/24 DNS 服务器 ---- Centos ...

  5. 《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?

    DNS服务器,即域名服务器,它作为域名和IP地址之间的桥梁,在互联网访问中,起到至关重要的作用.每一个互联网上的域名,背后都至少有一个对应的DNS.对于一个企业来说,如果你的DNS服务器因为攻击而无法 ...

  6. 【转】《从入门到精通云服务器》第四讲—DDOS攻击

    上周咱们深入分析了云服务器的配置问题,好了,现在手上有了云服务器之后,我们又不得不提它:DDOS攻击.这是所有运维者的心头痛,也是任何公司听闻后都将心惊胆战的强大对手.下面我们将用浅显易懂的方式讲述什 ...

  7. 配置域主DNS服务器

    一.DNS服务器的类型 ①Primary DNS Server(Master) 一个域的主服务器保存着该域的zone配置文件,该域所有的配置.更改都是在该服务器上进行,本篇随笔要讲解的也是如何配置一个 ...

  8. powershell加win的dns服务器,解决网站负载均衡问题

    用我发明的powershell填坑法,加windows的dns服务器.从调整dns服务器解析ip时间段的角度,解决网站负载均衡问题. ------------------------win2012r2 ...

  9. DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置

    DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置 一.DNS简介 1.DNS    DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库 ...

随机推荐

  1. Python Day 3

    阅读目录: 内容回顾: 变量(标识符)的命名规范: 常量: 格式化输入\输出: 注释: 基本数据类型: 运算符: ##内容回顾 1.语言的分类: -- 机器语言:直接编写0,1指令,直接能被硬件执行. ...

  2. C#当中的扩展方法

    先说有用的,c#扩展方法结论: 扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型.扩展方法必须是静态方法,可以像实例方法一样进行调用.且调用同名中实际定义的 ...

  3. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

  4. python中global和nonlocal用法的详细说明

    一.global 1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字.   gcount = 0 def global_test(): ...

  5. golang注意问题

    关于slice 我们都知道slice是在通过参数传递的时候传递的是引用 slice的appen操作是有返回值的,并不改变原值 例如 b := [],,,} c:=append(b, ) // b 不变 ...

  6. Number of subarrays having sum exactly equal to k(explanation for 437. Path Sum III of leetcode)

    https://www.geeksforgeeks.org/number-subarrays-sum-exactly-equal-k/ 讲解的详细 看这道题是为了解决https://leetcode. ...

  7. 六.使用python操作mysql数据库

    数据库的安装和连接 pymysql的安装              pip install PyMySQL python连接数据库 import pymysql db = pymysql.connec ...

  8. js 基本

    JavaScrip组成:1.ECMAScrip --核心2.DOM 文档对象模型3.BOOM 浏览器对象模型 JavaScrip写法分类:1.内联式写在标签内以属性为表现:2.内嵌式以script标签 ...

  9. PMP:1.引论

    全球项目管理业界定义的最重要的价值 观是责任.尊重.公正和诚实(成功准则).   项目是为创造独特的产品.服务或成果而进行的临时性工作:   开展项目是为了通过可交付成果达成目标.目标指的是工作所指向 ...

  10. spring redis @Cacheable注解使用部分错误及无效原因

    spring redis @Cacheable注解使用部分错误及无效原因 说明:     spring项目用到redis注解无效,解决问题中遇到一堆BUG,各种搜索,看了许多错误解决方案一一测试,对于 ...