新闻资讯
看你所看,想你所想

DNS洪水攻击

DNS洪水攻击

DNS 洪水攻击是一种拒绝服务攻击。这是网路资源或机器上的流量停止一段时间的过程。违规者向资源或机器传送大量请求,以使可能无法访问它的人无法访问。在DNS泛洪期间,由于流量过载,连线到Internet的主机会中断。它可以被称为中断,通过不允许流量降落在其上而导致资源或机器的工作停止。

基本介绍

  • 中文名:DNS洪水攻击
  • 本质:拒绝服务攻击

DNS的工作原理

DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP位址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。
DNS伺服器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。
在每一个名称伺服器中都有一个快取快取区(Cache),这个快取快取区的主要目的是将该名称伺服器所查询出来的名称及相对的IP位址记录在快取快取区中,这样当下一次还有另外一个客户端到次伺服器上去查询相同的名称 时,伺服器就不用在到别台主机上去寻找,而直接可以从快取区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。例如:当DNS客户端向指定的DNS伺服器查询网际网路上的某一台主机名称 DNS伺服器会在该资料库中找寻用户所指定的名称 如果没有,该伺服器会先在自己的快取快取区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS伺服器直接将所对应到的IP位址传回给客户端 ,如果名称伺服器在资料记录查不到且快取快取区中也没有时,伺服器首先会才会向别的名称伺服器查询所要的名称。例如:DNS客户端向指定的DNS伺服器查询网际网路上某台主机名称,当DNS伺服器在该资料记录找不到用户所指定的名称时,会转向该伺服器的快取快取区找寻是否有该资料 ,当快取快取区也找不到时,会向最接近的名称伺服器去要求帮忙找寻该名称的IP位址 ,在另一台伺服器上也有相同的动作的查询,当查询到后会回复原本要求查询的伺服器,该DNS伺服器在接收到另一台DNS伺服器查询的结果后,先将所查询到的主机名称及对应IP位址记录到快取快取区中 ,最后在将所查询到的结果回复给客户端。

常见的DNS攻击包括

1) 域名劫持
通过採用黑客手段控制了域名管理密码和域名管理信箱,然后将该域名的NS纪录指向到黑客可以控制的DNS伺服器,然后通过在该DNS伺服器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。这显然是DNS服务提供商的责任,用户束手无策。
2) 快取投毒
利用控制DNS快取伺服器,把原本準备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。其实现方式有多种,比如可以通过利用网民ISP端的DNS快取伺服器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的回响结果;或者,黑客通过利用用户权威域名伺服器上的漏洞,如当用户权威域名伺服器同时可以被当作快取伺服器使用,黑客可以实现快取投毒,将错误的域名纪录存入快取中,从而使所有使用该快取伺服器的用户得到错误的DNS解析结果。
最近发现的DNS重大缺陷,就是这种方式的。只所以说是“重大”缺陷,据报导是因为是协定自身的设计实现问题造成的,几乎所有的DNS软体都存在这样的问题。
3)DDOS攻击
一种攻击针对DNS伺服器软体本身,通常利用BIND软体程式中的漏洞,导致DNS伺服器崩溃或拒绝服务;另一种攻击的目标不是DNS伺服器,而是利用DNS伺服器作为中间的“攻击放大器”,去攻击其它网际网路上的主机,导致被攻击主机拒绝服务。
4) DNS欺骗
DNS欺骗就是攻击者冒充域名伺服器的一种欺骗行为。
原理:如果可以冒充域名伺服器,然后把查询的IP位址设为攻击者的IP位址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
Internet上存在的DNS伺服器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会快取(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在。
DNS欺骗,在DNS的快取还没有过期之前,如果在DNS的快取中已经存在的记录,一旦有客户查询,DNS伺服器将会直接返回快取中的记录

防止DNS被攻击的若干防範性措施

网际网路上的DNS放大攻击(DNS amplification attacks)急剧增长。这种攻击是一种数据包的大量变体能够产生针对一个目标的大量的虚假的通讯。这种虚假通讯的数量有多大?每秒钟达数GB,足以阻止任何人进入网际网路
与老式的“smurf attacks”攻击非常相似,DNS放大攻击使用针对无辜的第三方的欺骗性的数据包来放大通讯量,其目的是耗尽受害者的全部频宽。但是,“smurf attacks”攻击是向一个网路广播地址传送数据包以达到放大通讯的目的。DNS放大攻击不包括广播地址。相反,这种攻击向网际网路上的一系列无辜的第三方DNS伺服器传送小的和欺骗性的询问信息。这些DNS伺服器随后将向表面上是提出查询的那台伺服器发回大量的回覆,导致通讯量的放大并且最终把攻击目标淹没。因为DNS是以无状态的UDP数据包为基础的,採取这种欺骗方式是司空见惯的。
这种攻击主要依靠对DNS实施60个位元组左右的查询,回复最多可达512个位元组,从而使通讯量放大8.5倍。这对于攻击者来说是不错的,但是,仍没有达到攻击者希望得到了淹没的水平。最近,攻击者採用了一些更新的技术把DNS放大攻击提高了好几倍。
当前许多DNS伺服器支持EDNS。EDNS是DNS的一套扩大机制,RFC 2671对次有介绍。一些选择能够让DNS回复超过512位元组并且仍然使用UDP,如果要求者指出它能够处理这样大的DNS查询的话。攻击者已经利用这种方法产生了大量的通讯。通过传送一个60个位元组的查询来获取一个大约4000个位元组的记录,攻击者能够把通讯量放大66倍。一些这种性质的攻击已经产生了每秒钟许多GB的通讯量,对于某些目标的攻击甚至超过了每秒钟10GB的通讯量。
要实现这种攻击,攻击者首先要找到几台代表网际网路上的某个人实施循环查询工作的第三方DNS伺服器(大多数DNS伺服器都有这种设定)。由于支持循环查询,攻击者可以向一台DNS伺服器传送一个查询,这台DNS伺服器随后把这个查询(以循环的方式)传送给攻击者选择的一台DNS伺服器。接下来,攻击者向这些伺服器传送一个DNS记录查询,这个记录是攻击者在自己的DNS伺服器上控制的。由于这些伺服器被设定为循环查询,这些第三方伺服器就向攻击者发回这些请求。攻击者在DNS伺服器上存储了一个4000个位元组的文本用于进行这种DNS放大攻击。
由于攻击者已经向第三方DNS伺服器的快取中加入了大量的记录,攻击者接下来向这些伺服器传送DNS查询信息(带有启用大量回复的EDNS选项),并採取欺骗手段让那些DNS伺服器认为这个查询信息是从攻击者希望攻击的那个IP位址发出来的。这些第三方DNS伺服器于是就用这个4000个位元组的文本记录进行回复,用大量的UDP数据包淹没受害者。攻击者向第三方DNS伺服器发出数百万小的和欺骗性的查询信息,这些DNS伺服器将用大量的DNS回複数据包淹没那个受害者。
如何防御这种大规模攻击呢?首先,保证你拥有足够的频宽承受小规模的洪水般的攻击。一个单一的T1线路对于重要的网际网路连线是不够的,因为任何恶意的脚本少年都可以消耗掉你的频宽。如果你的连线不是执行重要任务的,一条T1线路就够了。否则,你就需要更多的频宽以便承受小规模的洪水般的攻击。不过,几乎任何人都无法承受每秒钟数GB的DNS放大攻击。
因此,你要保证手边有能够与你的ISP随时取得联繫的应急电话号码。这样,一旦发生这种攻击,你可以马上与ISP联繫,让他们在上游过滤掉这种攻击。要识别这种攻击,你要查看包含DNS回复的大量通讯(源UDP连线埠53),特别是要查看那些拥有大量DNS记录的连线埠。一些ISP已经在其整个网路上部署了感测器以便检测各种类型的早期大量通讯。这样,你的ISP很可能在你发现这种攻击之前就发现和避免了这种攻击。你要问一下你的ISP是否拥有这个能力。

转载请注明出处安可林文章网 » DNS洪水攻击

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com