当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > 什么是ARP?如何防范ARP欺骗?

安全防护
2003服务器防止海洋木马的安全设置(1)
2003服务器防止海洋木马的安全设置(2)
2003服务器防止海洋木马的安全设置(3)
加固脆弱的IIS服务
linux操作系统的优化及安全配置(1)
linux操作系统的优化及安全配置(2)
linux操作系统的优化及安全配置(3)
Server2003 DNS服务安装篇(2)
Server2003 DNS服务安装篇(3)
Server2003 DNS服务安装篇(4)
WindowsServer2003安全事件ID分析(1)
WindowsServer2003安全事件ID分析(2)
打造安全的Windows 2003系统(5)
Win2003 Server手动设置全攻略(1)
Win2003 Server手动设置全攻略(2)
Win2003 Server手动设置全攻略(3)
Win2003 Server手动设置全攻略(4)
搜索型注入之我看
为Windows 2003安全—层层设防(1)
为Windows 2003安全—层层设防(2)

安全防护 中的 什么是ARP?如何防范ARP欺骗?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 49 ::
收藏到网摘: n/a

什么是ARP?如何防范ARP欺骗技术? 

  什么是ARP?如何防范ARP欺骗技术? 

  首先说一下什么是ARP。如果你在UNIX Shell下输入 arp -a (9x下也是),你的输出看起来应该是这样的:

  Interface: xxx.xxx.xxx.xxx

  Internet Address Physical Address Type

xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic

  xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic

  ...... ......... ....

    这里第一列显示的是ip地址,第二列显示的是和ip地址对应的网络接口卡的硬件地址(MAC),第三列是该ip和mac的对应关系类型。

    可见,arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。

    为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp--> mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。

    通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的mac地址。如果没有找到,该主机就发送一个ARP广播包,看起来象这样子:

  "我是主机xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip为xxx.xxx.xxx.xx1的主机请告之你的mac来"

  ip为xxx.xxx.xxx.xx1的主机响应这个广播,应答ARP广播为:

  "我是xxx.xxx.xxx.xx1,我的mac为xxxxxxxxxx2"

    于是,主机刷新自己的ARP缓存,然后发出该ip包。

    了解这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样一个例子:

    一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:

    1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。

    2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。

    3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。

    4、这段时间里,入侵者把自己的ip改成192.0.0.3

    5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。

    6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。

    7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。 

    现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。

    有人也许会说,这其实就是冒用ip嘛。是冒用了ip,但决不是ip欺骗,ip欺骗的原理比这要复杂的多,实现的机理也完全不一样。

    上面就是一个ARP的欺骗过程,这是在同网段发生的情况。但是,提醒注意的是,利用交换集线器或网桥是无法阻止ARP欺骗的,只有路由分段是有效的阻止手段。(也就是ip包必须经过路由转发。在有路由转发的情况下,ARP欺骗如配合ICMP欺骗将对网络造成极大的危害。从某种角度讲,入侵者可以跨过路由监听网络中任何两点的通讯,如果设置防火墙,请注意防火墙有没有提示过类似“某某IP是局域IP但从某某路由来”等这样的信息。

    在有路由转发的情况下,发送到达路由的ip的主机其arp对应表中,ip的对应值是路由的mac。

  比如: 我ping www.xxxx.com后,那么在我主机中,www. xxxx.com的IP对应项不是xxxx的mac,而是我路由的mac,其ip也是我路由的IP。(有些网络软件通过交换路由ARP可以得到远程IP的MAC)。
 
有兴趣做深入一步的朋友可以考虑这样一种情况:

    假设这个入侵者突然想到:我要经过一个路由才可以走到那台有防火墙的主机!!!

    于是这个入侵者开始思考:

    1、我的机器可以进入那个网段,但是,不是用192.0.0.3的IP。

    2、如果我用那