关于ARP协议的一点心得以及ARP欺骗分析与防御
通讯的实质不是IP地址之间的通讯,而是MAC地址之间的通讯arp协议是一个全网广播协议,它存在于基于802.3的局域网的网络模式下.arp协议的存在使机器只需要知道一个网络主机的IP地址就可以与此通讯,不在需要记忆长长的MAC地址,arp协议能根据IP地址转化为MAC地址.
现在来看一下ARP包
0001 0800 0604 0002 0016 3636 8822 0a0a
11a0 00e0 4cdf e0d0 0a0a 1101 0000 0000
0000 0000 0000 0000 0000 0000 0000
0001 是硬件类型字段,在arp包里面为1
0800 是IP协议类型
0604 发送方的硬件地址长度为6, ip地址长度为4
0002 arp响应
0016 3636 8822 发送方的MAC地址 0016-3636-8822
0a0a 11a0 发送方的IP地址10.10.17.160
00e0 4cdf e0d0 接受方的MAC地址 00e0-4cdf-e0d0
0a0a 1101 接受方的IP地址10.10.17.1
0000 0000
0000 0000 0000 0000 0000 0000 0000填充字段
arp有什么缺陷特点:
一:RFC规定,在局域网内任何一台网络上的机器都可以在不与其他机器通讯的情况在全网响应自己的IP与MAC.
二:arp没有验证机制.
三:设备的arp表学习机制
这两个方面使ARP存在欺骗的可能性.
ARP协议存在欺骗,欺骗是对三层设备的欺骗,比如PC,三层交换机,路由器.ARP欺骗发生在同网段内,不会产生跨网段或者跨VLAN的欺骗.
先看一个网络模型,本文章的ARP欺骗方式基于此网络拓扑结构进行举例说明
A B C是基于802.3的局域网, 其中B与C属于同等网络,B与C通过A访问外部网络
A00e0-4cdf-e0d0 是网关MAC,10.10.17.1是网关IP
B0016-3636-8822 是ARP欺骗者,10.10.17.5是他使用的IP地址
C0016-3636-2222 是受害者,10.10.17.160 是他使用的IP地址
举例说明ARP的欺骗方式:
一是用户对用户的欺骗,也就是我们常说的冒充网关
例子说明
在上述模型中,B对C进行欺骗,使C误认为网关是B,从而不能与A进行通讯,使C不能访问外部网络.
如果B对C发送ARP包
0001 0800 0604 0002 0016 3636 8822 0a0a
1101 0016 3636 2222 0a0a 11a0 0000 0000
0000 0000 0000 0000 0000 0000 0000
这个样子B告诉C 我的IP地址10.10.17.1 我是网关,
然后C就学习到这个ARP表0016-3636-8822 10.10.17.1,C就认为0016-3636-8822是网关的MAC地址,在刷新ARP表后,就会与B进行通讯,而不与A进行通讯.整个过程B就完成了对C的欺骗.
二是对网关的欺骗,即对上层设备的欺骗
在上述模型上就是B欺骗A,使A与C不能通讯,从而使C不能访问外部网络
如果B对A发送下面的ARP包
0001 0800 0604 0002 0016 3636 8822 0a0a
11a0 00e0 4cdf e0d0 0a0a 1101 0000 0000
0000 0000 0000 0000 0000 0000 0000
A就会认为IP地址为10.10.17.160的机器的MAC地址是0016-3636-8822,在刷新ARP表后,A对10.10.17.160发送的数据包会发送到MAC地址为0016-3636-8822的机器上,而不是MAC地址为0016-3636-2222的C的机器上,从而C就不能得到从A回发过来的数据包,不能与外部网络通讯.
ARP欺骗的防御措施
一就是不使用ARP协议,没有ARP协议也就没有ARP欺骗
1)在局域网内可以采用PPPOE的方式上网,PPPOE不使用ARP协议,也就不会产生ARP,而且PPPOE不会改变原来的局域网拓扑结构,它是在802.3的基础上的二次封装数据包.
2)使用PPP方式上网,ADSL就是这个方式,这个有点片面,需要改变原本的拓扑结构.
3)使用IPX协议,难于实施
4)使用其他的模式上网,不再讨论,不是很现实
二继续使用ARP协议,从其他的方面防止ARP病毒
1)下层设备和上层设备的双向绑定,双先绑定能解决ARP欺骗所造成的断网现象,但是此方式内的缺陷是在网络内ARP数据包乱飞(影响网络质量,在用户多的情况下,用户端绑定不利于实施,适用于小型网络).
2)用户端处上接可网管交换机,用交换机进行端口和MAC地址以及IP地址的绑定,很好的防止ARP欺骗,但是这个也有一定的缺陷(投资大,需要可网管交换机,适用于小型网络)
3)用户端使用ARP防御工具,比如彩影的ARP防御工具,或者包过滤防火墙,很好的防止ARP欺骗(在用户端比较多的情况下不利于实施,用于小型网络)
4)使用路由器广播网关的MAC地址的ARP包,ARP病毒在发包比较厉害的情况下用处不大(没有根本阻止ARP影响,不怎么地)
希望大家能找到更多的防御ARP的办法...................其实还有点,但是不是很现实,有的可能没有想到,没有写
[ 本帖最后由 xqs428 于 2006-11-29 16:45 编辑 ] 高手经典,我也没想到别的方法。
也可以在两端完全禁止ARP协议,这样即使感染病毒也发不出来ARP包。然后两端全部静态绑定,这样没有ARP包乱飞的现象。其余的方法楼主都提到了。 顶 从新学了一下 桢的结构 ding !!!!!!!!!!!! 单纯的ARP是不能跨网,但ARP类复合攻击也是可以跨网或穿越三层设备的
我就碰到过lan内的机器中毒后欺骗wan网关的,当时急着解决问题,也没注意具体方法,但的确是存在的,我要求ISP进行MAC绑定后就正常了 icmp的重定向可以跨网关欺骗 原帖由 xqs428 于 2007-3-7 08:55 发表
icmp的重定向可以跨网关欺骗
那在本地ROS上需要做什么策略来禁止这种重定向? 比较经典的说。。:D
页:
[1]