下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

如何防止DNS被攻击?

作者:课课家教育     来源: http://www.kokojia.com点击数:1572发布时间: 2019-06-20 08:59:33

标签: DNS攻击互联网服务器

  DNS(Domain Name System,域名系统)是Internet的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,给人们访问互联网提供了更多方便,不用去记住能够被机器直接读取的IP数串。

如何防止DNS被攻击?_DNS攻击_互联网_课课家

  随着网络技术的迅速发展,网络的逐渐普及,网络安全已成为Internet的焦点,它关系着Internet的发展,甚至关系着Internet的生存。而互联网专家们并没有令广大的Internet用户失望,网络安全技术也不断涌现,使广大网民和企业有了更多的放心。本文主要介绍了网络安全中的主要技术,给网民和企业在网络安全方面提供一些网络安全方案的参考。

  一、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攻击

  常见的DNS攻击有:域名劫持、DDOS攻击、缓存投毒和DNS欺骗。

  1.域名劫持

  域名劫持又叫DNS劫持,它是互联网攻击的一种方式,通过攻击域名解析服务器,或伪造域名解析服务器的方法,把目标网站域名解析到错误的地址从而使用户无法访问目标网站。比如,通过采用黑客手段控制域名管理密码和域名管理邮箱,将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。

  2.DDOS攻击

  很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,是借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。这种攻击是针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。

  3.缓存投毒

  利用控制DNS缓存服务器,用户准备访问某网站时,将其带到黑客指向的其他网站。实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或者,黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名记录存入缓存中,从而向所有使用该缓存服务器的用户发送错误的DNS解析结果。

  最近发现的DNS重大缺陷,就是使用了缓存投毒这种方式。之所以说是“重大”缺陷,据报道是因为协议自身的设计实现问题造成的,几乎所有的DNS软件都存在这样的问题。

  4.DNS欺骗

  DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。

  dns欺骗的基本原理:通过冒充域名服务器,把查询的IP地址设为攻击者的IP地址,这样,用户上网只能看到攻击者的主页,而不是用户想要取得的网站主页,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗。

  现在Internet上的DNS服务器大多数都是用bind来架设的,使用的bind版本主要为bind4.9.5+P1以前版本和bind8.2.2-P5以前版本。这些bind有个共同点,就是BIND会缓存(Cache)所有查询过的结果。这样就引起了以下这些DNS欺骗形式:hosts文件篡改;本机DNS劫持等。

  在DNS的缓存还没有过期之前,若在DNS的缓存中已经存在的记录,一旦有客户查询,DNS服务器将会直接返回缓存中的记录。

dns欺骗测试

  三、防止DNS攻击的防范措施

  互联网上的DNS放大攻击(DNS amplification attacks)急剧增长。这种攻击是一种数据包的大量变体能够产生针对一个目标的大量的虚假的通讯。而这种虚假通讯的数量每秒钟达数GB,足以阻止任何人进入互联网。

  DNS放大攻击和老式的“smurf attacks”攻击相似,它使用的是针对无辜的第三方的欺骗性的数据包来放大通讯量,其目的是耗尽受害者的全部带宽。但是,“smurfattacks”攻击是向一个网络广播地址发送数据包,以放大通讯的。DNS放大攻击不包括广播地址,相反,这种攻击向互联网上的一系列无辜的第三方DNS服务器发送小的和欺骗性的询问信息。这些DNS服务器随后向表面上是提出查询的那台服务器发回大量的回复,导致通讯量的放大,并且最终把攻击目标淹没。因为DNS是以无状态的UDP数据包为基础的,采取这种欺骗方式是很常见的。

  DNS放大攻击主要依靠对DNS实施60个字节左右的查询,回复最多可达512个字节,从而使通讯量放大8.5倍。这对于攻击者来说是不错的,但还没达到攻击者希望被淹没的水平。最近,有攻击者采用了一些更新的技术把目前的DNS放大攻击提高了好几倍。

  EDNS是DNS的一套扩大机制,RFC2671对此有介绍。当前许多DNS服务器支持EDNS。一些选择能够让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回复数据包淹没那个受害者。

  那么,如何防御这种大规模的攻击?

  1.保证你拥有足够的带宽承受小规模的洪水般的攻击。对于重要的互联网连接,一个单一的T1线路是不够的,因为任何恶意的脚本都可以消耗掉你的带宽。对于不是执行重要任务的连接,一条T1线路就够了。否则,你要用更多的带宽来承受小规模的洪水般的攻击。不过,几乎没人能承受每秒钟数GB的DNS放大攻击。

  2.保证手边有能够与你的ISP随时取得联系的应急电话号码。当发生这种攻击时,你可以马上与ISP联系,让它们在上游就过滤掉这种攻击。要识别这种攻击,你要查看包含DNS回复的大量通讯(源UDP端口53),尤其是那些拥有大量DNS记录的端口。一些ISP已经在其整个网络上部署了传感器以便检测各种类型的早期大量通讯。这样,你的ISP很可能在你发现这种攻击之前就发现和避免了这种攻击。你要知道你的ISP是否拥有这个能力。

  3.为了阻止恶意使用你的DNS服务器,作为一个实施这种DNS放大攻击的代理,你要保证这个可以从外部访问的DNS服务器仅为你自己的网络执行循环查询,不被任何互联网上的地址进行这种查询。大多数主要DNS服务器拥有限制循环查询的能力,因此,它们仅接受某些网络的查询,比如你自己的网络。通过阻止利用循环查询装载大型有害的DNS记录,你就可以防止你的DNS服务器成为这个问题的一部分。

  四、结语

  随着科技的发展,网络攻击技术也越来越高超,恶意攻击越来越猖獗,对网络安全造成了很大的威胁。但都有办法可以防御任何黑客的恶意攻击的,只要懂得丰富的网络知识,了解了它们的攻击手段,就足以抵御黑客的疯狂攻击。因为目前市场上也推出了许多网络安全方案,以及各式防火墙。在将来,网络安全一定会得到提高。我们随时都应将网络安全放在整个安全体系的首位,努力提高网络用户的安全意识和基本防范能力。这对提高整个网络的安全性有着十分重要的意义。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程