查看: 3486|回复: 4

DNS放大攻击研究

[复制链接]
发表于 2013-4-23 10:52:34 | 显示全部楼层 |阅读模式
3-28日左右欧洲发生了据说是互联网史上最大的DDOS攻击。攻击流量一度达到了300Gbps,甚至造成了整个欧洲的网络缓慢和部分的瘫痪。对整个互联网都有很大的影响。


事后多家安全机构对该次攻击做了深入分,认为造成此次大流量DDOS的元凶的DNS 放大攻击(DNSAmplification Attack)。
   DDOS攻击是一个老生常谈的话题,目前对SYN flodd,UDP flood等攻击的研究较多,而DNS放大攻击也不算是新型攻击,只是在DDOS攻击中应用较少,本次的攻击事件使我寻找一些资料,来仔细研究下DNSamplification attack。本文主要是对互联网资料的一些整理和学习,算不上原创。
先来解释下攻击是如何产生的。
在解释攻击如何产生之前,先来看下正常的DNS解析是如何进行的。

Step1:主机向自己的主域名服务器请求 some-webserver.com
Step2:域名服务器收到请求,检索自己的缓存,发现没有这个网站的IP,只能向上级查询(递归查询)
Step3-8:经过递归后,查询到域名的IP地址,回送到主机


DNS放大攻击的攻击原理如下图:
Step1:黑客控制大量的僵尸主机,发送攻击指令
Step2:僵尸主机收到黑客的攻击指令,发送域名请求,源地址为被攻击者IP。
Step3-8:大量僵尸主机向DNS服务器请求,被递归到黑客选择的DNS服务器,获取指定的域名解析结果,而回送结果可以构造为最大4000字节的数据。
Step9:被攻击者收到大量的DNS回应数据,挤占了网络带宽,造成服务中断。
僵尸主机发起的DNS 请求可以为最小的60字节,而攻击者收到的回应数据可以多达4000字节,一次简单的请求被放大了73倍。




造成DNS放大攻击的主要原因有两个:
1.
EDNS的设计。为了适应网络的发展,而指定了EDNS标准。当前许多DNS服务器支持EDNS。EDNS是DNS的一套扩大机制,RFC 2671对次有介绍。一些选择能够让DNS回复超过512字节并且仍然使用UDP,如果要求者指出它能够处理这样大的DNS查询的话。攻击者已经利用这种方法产生了大量的通讯。通过发送一个60个字节的查询来获取一个大约4000个字节的记录,
2.
互联网上大量的DNS服务器支持递归查询。攻击者首先要找到几台代表互联网上的某个人实施递归查询工作的第三方DNS服务器(大多数DNS服务器都有这种设置)。由于支持递归查询,攻击者可以向一台DNS服务器发送一个查询,这台DNS服务器随后把这个查询(以循环的方式)发送给攻击者选择的一台DNS服务器。接下来,攻击者向这些服务器发送一个DNS记录查询,这个记录是攻击者在自己的DNS服务器上控制的。由于这些服务器被设置为循环查询,这些第三方服务器就向攻击者发回这些请求。攻击者在DNS服务器上存储了一个4000个字节的文本用于进行这种DNS放大攻击。
现在,由于攻击者已经向第三方DNS服务器的缓存中加入了大量的记录,攻击者接下来向这些服务器发送DNS查询信息(带有启用大量回复的EDNS选项),并采取欺骗手段让那些DNS服务器认为这个查询信息是从攻击者希望攻击的那个IP地址发出来的。这些第三方DNS服务器于是就用这个4000个字节的文本记录进行回复,用大量的UDP数据包淹没受害者。攻击者向第三方DNS服务器发出数百万小的和欺骗性的查询信息,这些DNS服务器将用大量的DNS回复数据包淹没那个受害者。



防御DNS放大攻击的方法主要是要提高被攻击者的带宽,还要及时的联系ISP将这种4000字节的DNS回应包丢弃。此外网络管理员为本单位搭建的DNS服务器,关闭递归查询,只准许本单位内网进行查询,不接受其他方向的DNS查询。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2013-4-24 22:51:54 | 显示全部楼层
xuexi学习
回复

使用道具 举报

发表于 2013-5-6 19:50:44 | 显示全部楼层

RE: tcp重传中的时间计算

你好,我在百度文库中看到了你的文档,关于《TCP重传中的时间计算》文档,文中提到“
发现客户端在发送 get 后,0.2 秒的时间内无法得到响应,超过了 RTO
的值,所以根据TCP 的重传原则,TCP迚行了重传,并将 RTO扩大了两倍,也
就是0.20899
”。我的问题是,从抓包中可以看到,重传报文属于首次重传,为什么要讲RTO扩大两倍?另外我看了网上另外一篇文档标题是“TCP/IP重传超时--RTO”关于超时重传的介绍。我使用suse10服务器进行测试,发现系统hz=250,按照文中的算法,并结合测试发现,RTO时间确实为50ms。这是否又与你文中写的是否有冲突?
回复

使用道具 举报

发表于 2013-5-7 11:09:01 | 显示全部楼层
欺骗的方法有两种
1.本地主机与DNS服务器,本地主机与客户端主机均不在同一个局域网内,方法有以下
几种:向客户端主机随机发送大量DNS响应数据报,命中率很低;向DNS服务器发起拒绝服务攻击,太粗鲁;BIND漏洞,使用范围比较窄。
2.本地主机至少与DNS服务器或客户端主机中的某一台处在同一个局域网内:我们可以通过ARP欺骗来实现可靠而稳定的DNS ID欺骗。所以内网安全一定要做好啊!!!
回复

使用道具 举报

发表于 2013-5-7 11:24:05 | 显示全部楼层
如何欺骗dns原理附上  祝大家学习进步 升官发财

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表