摘   要

DNS即Domain Name System 的缩写,域名系统以分布式数据库的形式将域名和IP地址相互映射。DNS协议即域名解析协议,简单的说:DNS是用来解析域名的。有了DNS我们就不用再记住烦人的IP地址,用相对好记的域名就可以对服务器进行访问,即使服务器更换了IP地址,我们依旧可以通过域名访问该服务器,这样能够使我们更方便的访问互联网。尽管DNS在互联网中扮演着重要的角色,但是在设计DNS协议时,设计者没有考虑到一些安全问题,导致了DNS的安全隐患与缺陷。DNS欺骗就是利用了DNS协议设计时的一个非常严重的安全缺陷。窗体底端

关键字: DNS欺骗;ARP欺骗;ID欺骗; DNS缓存中毒;

Abstract

DNS is the abbreviation of domain name system, which maps domain name and IP address to each other in the form of distributed database. DNS protocol is the domain name resolution protocol, in short: DNS is used to resolve the domain name. With DNS, we no longer need to remember the annoying IP address. We can access the server with a relatively easy to remember domain name. Even if the server changes its IP address, we can still access the server through the domain name, which makes it more convenient for us to access the Internet. Although DNS plays an important role in the Internet, when designing the DNS protocol, the designer does not consider some security problems, which leads to the security risks and defects of DNS. DNS spoofing is a very serious security flaw in the design of DNS protocol.

Keywords:DNS; ARP Spoofing; ID spoofing; DNS cache poisoning;

  1. 前言

域名系统(Domain Name System,DNS)是一个可以将域名和IP地址相互映射的分布式数据库。由于它是互联网的核心服务之一,在其中扮演看极为重要的角色,其安全与否对整个互联网的安全性有看重要的影响。因为在 DNS协议设计之初,设计者并未过多地考虑安全问题,导致DNS本身留有很多安全隐患。特别是在2008年,有关 DNS的严重漏洞又被发现,其安全性又一次引起了人们的重视和忧虑。

目前,针对DNS协议存在的问题,很多专家给出了解决办法。IETF提出的域名系统的安全协议(Domain NameSystem Security, DNSSEC)旨在解决DNS的安全问题,但由于需要占用更多的系统开销和网络资源,还要对相应的数据库和系统管理软件进行升级,并且新的软件尚处于测试阶段,离DNSSEC普及性地应用还有一定的距离。现在,主要的应对办法是升级DNS软件和加强服务器的安全配置,除此之外,尚未发现较有效的防范措施。

1.1DNS服务原理

客户机提出域名解析请求,并将该请求发送给本地的域名服务器。当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。重复这一过程,直到找到正确的纪录。本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

第2章 ARP欺骗攻击与防御

2.1ARP攻击原理

一般情况,ARP攻击得到主要目的是使网络无法正常通信,主要包括一下两种行为。

1.攻击主机制造假的ARP应答,并发送给局域网中除被攻击之外的所有主机。ARP应答中包含被攻击主机的IP地址和虚假的MAC地址。

2.攻击主机制造假的ARP应答,并发送给被攻击的主机, ARP应答中包含除被攻击攻击主机之外的所有主机的IP地址和虚假的MAC地址。

只要执行上诉ARP攻击行为中的一种就可以实现被攻击主机和其他主机无法通信。

例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接受到虚假的ARP应答跟新ARP条目后,如果网关再发送数据给pcl时,就会发送到虚假的MAC地址导致通信故障。

某些ARP病毒会向局域网中的所有主机发送ARP应答,其中包含网关IP地址和虚假的MAC地址。局域网中的主机收到ARP应答跟新ARP表后,就无法和网关正常通信,导致无法访问互联网。

2.2 ARP欺骗的防御

第一种解决方法:

处理ARP欺骗攻击最一般的方法就是IP-MAC绑定,可以在客户端主机和网关路由器上双向绑定IP-MAC来避免ARP欺骗导致无法上网。

  1. 在主机上绑定网关路由器的IP和MAC地址,可以通过“ARP -S”命令实现。
  2. 在网关路由器上绑定主机的IP地址和MAN地址。

这时候网络中如果有ARP病毒发作,或者是用户使用类似网络管理等软件便无法欺骗局域网中的主机了。另外,大部分ARP病毒或类似的欺骗软件都是使用假的IP和MAC发送欺骗报文,所以,可在交换急上配置IP-MAC-Prot的绑定,是交换机丢弃这些欺骗报文,从而防止其全网泛洪,此时,假设主机B继续使用假的IP、MAC发送欺骗报文,交换机将检测到在f0/3收到与之不匹配的数据报文,并将其立刻丢掉。

这种方法的缺点在于:如果网络中的节点数很多,在路由器和交换机上的配置量便会随之增多;而且网络中如果采用DHCP动态分配IP地址,一旦主机(尤其是一些笔记本用户)的IP地址发生变化,将直接导致该主机无法访问网络。

第二种解决方法:

1、使用ARP防火墙,自动抵御ARP欺骗和ARP攻击。

2、在主机上开启ARP防火墙,防火墙的主界面显示统计数据,包括:ARP协议收发数据包的统计、拦截ARP攻击的统计、自动绑定IP/MAC地址,网关等。

第3章 DNS ID欺骗攻击与防御

3.1 DNS ID欺骗攻击原理

DNS ID欺骗以监听ID和端口号为基础,如果是在交换机搭建的网络环境下,欺骗者首先要向攻击目标实施ARP欺骗。以下是一个DNS ID欺骗(DNS ID spoofing)的实例。假设用户、欺骗者和DNS服务器同在一个局域网内。

攻击流程如下:

①欺骗者通过向攻击目标以一定的频率发送伪造ARP应答包改写目标机的ARP cache中的内容,并通过IP续传使数据流过欺骗者的主机再流向目的地;欺骗者配合Sniffer软件监听DNS请求包,取得ID和端口号。

②欺骗者取得ID和端口号后,立即向攻击目标发送相应的伪造DNS应答包,用户收到后确认ID和端口号无误,以为收到正确的DNS应答包;而其实际的地址很可能被导向攻击者想让用户访问的恶意网站,用户的信息安全受到威胁。

③用户再次收到DNS服务器发来的DNS应答包,由于晚于伪造的DNS应答包,因此被用户抛弃;用户的访问被导向攻击者设计的地址,一次完整的DNS ID欺骗完成。

3.2 DNS ID欺骗的防御

(1)对少数信息安全级别要求高的网站避免使用DNS。因为DNS欺骗中相当一部分的目的是窃取用户的私密信息,而对于大部分用户而言,其访问网站中的大多数都不涉及此类信息,所以在访问涉及个人私密信息的网站时(比如通过网上银行进行交易),可以直接通过IP地址访问,这样就可以绕开DNS服务,DNS欺骗自然无从谈起,其危害性就大大降低了。因为涉及敏感信息的网站只占很少的一部分,对于绝大多数用户而言,这种方法几乎不会对其使用产生什么影响;又由于大部分用户受自身条件所限,不足以对所处的网络环境产生什么影响,并且对信息安全要求不是太高,因此该方法不失为一种简单有效的方法,而且对于所有涉及DNS的攻击均有效。

(2)防范ARP攻击。因为此类攻击需要以ARP欺骗为基础,所以较为直接的方法是谨防受到ARP欺骗攻击。避免了ARP攻击的可能,自然就无法进行DNS ID欺骗。

第4章 DNS 缓存中毒与防御

4.1DNS 缓存中毒原理

在不得到ID和端口号的情况下不可能完成DNS欺骗攻击。原理是,如果在已知端口号的前提下,通过发送大量的DNS应答包来猜测攻击目标的DNS请求包的ID号,如果所发送的伪造应答包中存在和请求包的ID一致的情况,也就是产生了所谓的“碰撞”,则欺骗成功。16位的ID号取值范围为O~65535,共有65536种可能性,想要使其攻击的成功率可以达到50%,至少需要发送32768个完全不同ID号的应答包。如果不知道端口号,ID和端口号的组合空间比原来扩大了6万多倍,相应的攻击成功率也就极大地降低了。不幸的是,有很多的DNS服务器的端口都是固定的,只需要一个DNS请求,就可以从反馈当中得知端口号。这样的结果使得DNS缓存中毒攻击成为可能。可是要得到50%的成功率,在短时间内发送32768个包,还要赶在真正的应答包到来之前发生“碰撞”,其操作难度较大。如果很好地利用“生日攻击”就可以只发送较少的数据包,同样能达到欺骗的效果。

如果采用“生日攻击”,只需要发送很少的数据包,就可以达到很好的效果。随着数据包数量的增加,相对于传统DNS欺骗攻击,“生日攻击”的优势明显。当然,这个概率只是理论上的,并不是攻击成功的概率,攻击者要想成功地使目标机的Cache中毒还需要其他一些因素共同决定,比如:这些伪造的应答包要赶在真的应答包到来之前发送至目标主机。有些攻击者会提前向上层DNS服务器发送大量的查询包,以延缓对真正请求的响应,从而为成功地攻击目标赢得足够的时间。还和不同的DNS软件及其设置相关,比如:有些软件会对相同的请求包数量进行限制,这样会增加攻击的难度。即便如此,“生日攻击”的危害仍然不能忽视。可以使DNS服务器Cache中毒的。

4.2 DNS 缓存中毒防御

(1)采用随机端口。如果作为被攻击的服务器在发送DNS请求时使用随机端口,这样可以使ID号和端口号的组合空间扩大6万多倍,大大增加攻击的难度。

(2)为信息安全要求高的网站建立标准IP映射表。作为DNS服务器,有能力为少部分网站(比如涉及私密信息的网站或经常访问的网站)制作静态的标准DNS映射表,这样可以保证这种攻击对这部分网站无从下手。

(3)被动检测法。由于此类攻击往往需要在短时间内发送大量的针对同一个域名的请求包,这显然并不合乎常理,因此可以针对这一特点进行DNS欺骗检测,或者限制发送查询包的数量,其效率较高。

第5章 心得体会

   转眼间,这个学期已经进入到了尾端,这个学期在湛维明老师的带领下,我们学习了信息安全这门课。不得不说这门课对于初学者的我们来说,学起来的确有些吃力,但在老师的耐心的教导下我们慢慢的接受并且步入了正轨,每一次实验课,老师为我们讲完理论之后,都会细心的为我们示范每一次实验,讲述其中的要点,使我们受益匪浅。除此之外,这门课也是考验了同学之间的耐心和配合默契,有些实验需要两名以上的同学来完成,在做试验期间的相互探讨,不知不觉的就拉近的同学之间的关系,加强了同学们的感情。通过这门课,我们不仅学习到了新的知识,还加强了老师与学生、学生与学生之间的感情,更重要的是,让我们明白了团队精神的重要性,只要同心协力,就没有解决不了的事情。

参考文献

[1] US-CERT. Multiple DNS Implementations Vulnerable to Cache

Poisoning[EB/OL]. (2008-07-08). http://www.kb.cert.org/vuls/id/800113.

[2]Eastlake D. Domain Name System Security Extensions[S]. RFC2535,1999.

[3]闫伯信,方淇兴,李斌,等.DNS欺骗攻击的检测和防范[J].计算机程,2006,32(21): 130-135.

[4]Stewart J. DNS Cache Poisoning——The Next Generation[EB/OL].(2003-01-27). http://www.secureworks.com/rescarch/articles/cachcpoisoning.

[5]US-CERT. Various DNS Service Implementations Generate Multiple Simultaneous Queries for the Same Resource Record[EB/OL].(2002-11-19).http://www.kb.cert.org/vuls/id

DNS欺骗的原理与防范方法研究相关推荐

  1. 零日攻击的原理与防范方法

    一.什么是零日攻击 要理解零日攻击,就得先来了解零日漏洞.据权威机构统计,现在我们使用的操作系统和应用程序,每一千行代码中就有可能存在四至五个编码漏洞.由于系统和应用程序的开发商不可能对所有的代码进行 ...

  2. 局域网病毒入侵原理及防范方法

    计算机病毒在网络中泛滥已久,而其在局域网中也能快速繁殖,导致局域网计算机的相互感染,使整个公司网络瘫痪无法正常运做,其损失是无法估计的. 一.局域网病毒入侵原理及现象 一般来说,计算机网络的基本构成包 ...

  3. CC攻击原理及防范方法和如何防范CC攻击

    一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数 ...

  4. CC攻击原理及防范方法

    一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数 ...

  5. DNS欺骗攻击及如何防护

    域名系统(Domain Name System,DNS)是一个将Domain Name和IP Address进行互相映射的Distributed Database.DNS是网络应用的基础设施,它的安全 ...

  6. DNS欺骗攻击和防护

    引言 域名系统(Domain Name System,DNS)是一个将Domain Name和IP Address进行互相映射的Distributed Database.DNS是网络应用的基础设施,它 ...

  7. ***工具CC***的思路及防范方法

    DDOS***中最流行的也是威力最大的就是基于页面的DDOS以及将这个***理论发挥得淋漓尽致的***工具CC,本文特邀CC作者和我们共同了解CC的相关***原理和防范方法,希望能让更多的朋友了解这样 ...

  8. 如何防护DNS欺骗攻击

    除了CC攻击.DDoS攻击,还有一种DNS欺骗攻击也是经常常见的,那什么是DNS欺骗攻击呢?它的原理是什么?该如何防御? DNS欺骗攻击,属于DNS攻击中的一种,DNS欺骗就是攻击者在域名解析请求的过 ...

  9. Ettercap实现DNS欺骗攻击

    Part1:DNS欺骗简介. 定义: DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为. 原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主 ...

最新文章

  1. 使用基本几何图元在道路上实现准确高效的自定位
  2. 【 Vivado 】使用工程模式
  3. GetProcAddress 根据 ordinal 导入函数
  4. HAProxy 的负载均衡服务器,Redis 的缓存服务器
  5. 牛客16494 生活大爆炸版石头剪刀布
  6. 解析poj页面获取题目
  7. stm32编码器正反转计数程序_如何高效的扩展定时/计数器?
  8. 怎么看电脑有没有蓝牙_怎么选购电脑音响?挑选到性价比高的电脑桌面音箱,看完这篇推荐指南就懂了!...
  9. 以组播流方式替换运营商IPTV直播频道
  10. 上传任意文件或者上传漏洞
  11. 计算机word设置渐变填充,word文本效果在哪里?怎么设置填充渐变颜色?
  12. abb机器人伺服电机报闸是什么_ABB机器人伺服电机进油的分析及解决措施
  13. 《ROS理论与实践》学习笔记(七)机器人语音交互
  14. matlab三维图渲染颜色,三维图颜色渐变
  15. 【EM算法】小波域隐马尔科夫树模型参数的EM算法估计MATLAB仿真
  16. 小白python爬虫入门实例2—— 翻页爬取京东商城商品数据
  17. DSP 2812 的经典资料
  18. [kaggle]泰坦尼克预测(代码解析)
  19. win10如何打开摄像头_win10录屏软件哪个好?可录摄像头不限时长的视频录制方法...
  20. 【C】 求3个正整数的最小公倍数

热门文章

  1. adb interface有黄色感叹号,无法识别
  2. ini配置文件解析(C++)
  3. 面向对象编程-面试篇
  4. CorelDRAW 2019新品发布,行业大咖就差你了
  5. 抓包工具 fiddler和charles的安装及使用教程
  6. 退休计划失败,64岁高龄程序员重新开始工作
  7. Panorama 360:全景照片在iPhone上的展示
  8. 苹果照片丢失,别着急!跟我一步步操作,轻松找回!
  9. PCL下使用区域增长算法进行点云平面分割的实现
  10. 深度学习笔记(四十二)不同类型RNN结构以及语言模型和序列生成