源主机在传输数据前,首先要对初始数据进行封装,在该过程中会把目的主机的IP地址和MAC地址封装进去。在通信的最初阶段,我们能够知道目的主机的IP地址,而MAC地址却是未知的。这时如果目的主机和源主机在同一个网段内,源主机会以第二层广播的方式发送ARP请求报文。ARP请求报文中含有源主机的IP地址和MAC地址,以及目的主机的IP地址。当该报文通过广播方式到达目的 主机时,目的主机会响应该请求,并返回ARP响应报文,从而源主机可以获取目的主机的MAC地址,同样目的主机也能够获得源主机的MAC地址。如果目的主机和源主机地址不在同一个网段内,源主机发出的IP数据包会送到交换机的默认网关,而默认网关的MAC地址同样可以通过ARP协议获取。经过ARP协议解析IP地址之后,主机会在缓存中保存IP地址和MAC地址的映射条目,此后再进行数据交换时只要从缓存中读取映射条目即可。ARP协议工作原理详见图1和图2。
3 ARP欺骗攻击的实现过程
3.1 网段内的ARP欺骗攻击
ARP欺骗攻击的核心就是向目标主机发送伪造的ARP应答,并使目标主机接收应答中伪造的IP与MAC间的映射对,并以此更新目标主机缓存。设在同一网段的三台主机分别为A,B,C,详见表1。
表1:同网段主机IP地址和MAC地址对应表
用户主机
|
IP地址
|
MAC地址
|
A
|
10.10.100.1
|
00-E0-4C-11-11-11
|
B
|
10.10.100.2
|
00-E0-4C-22-22-22
|
C
|
10.10.100.3
|
00-E0-4C-33-33-33
|
假设A与B是信任关系,A欲向B发送数据包。攻击方C通过前期准备,可以发现B的漏洞,使B暂时无法工作,然后C发送包含自己MAC地址的ARP应答给A。由于大多数的操作系统在接收到ARP应答后会及时更新ARP缓存,而不考虑是否发出过真实的ARP请求,所以A接收到应答后,就更新它的ARP缓存,建立新的IP和MAC地址映射对,即B的IP地址10.10.100.2对应了C的MAC地址00-E0-4C-33-33-33。这样,导致A就将发往B的数据包发向了C,但A和B却对此全然不知,因此C就实现对A和B的监听。
3.2 跨网段的ARP欺骗攻击
跨网段的ARP欺骗比同一网段的ARP欺骗要复杂得多,它需要把ARP欺骗与ICMP重定向攻击结合在一起。假设A和B在同一网段,C在另一网段,详见表2。
表2:跨网段主机IP地址和MAC地址对应表
用户主机
|
IP地址
|
MAC地址
|
A
|
10.10.100.1
|
00-E0-4C-11-11-11
|
B
|
10.10.100.2
|
00-E0-4C-22-22-22
|
C
|
10.10.200.3
|
00-E0-4C-33-33-33
|
首先攻击方C修改IP包的生存时间,将其延长,以便做充足的广播。然后和上面提到的一样,寻找主机B的漏洞,攻击此漏洞,使主机B暂时无法工作。此后,攻击方C发送IP地址为B的IP地址10.10.100.2,MAC地址为C的MAC地址00-E0-4C-33-33-33的ARP应答给A。A接收到应答后,更新其ARP缓存。这样,在主机A上B的IP地址就对应C的MAC地址。但是,A在发数据包给B时,仍然会在局域网内寻找10.10.100.2的MAC地址,不会把包发给路由器,这时就需要进行ICMP重定向,告诉主机A到10.10.100.2的最短路径不是局域网,而是路由,请主机重定向路由路径,把所有到10.10.100.2的包发给路由器。主机A在接受到这个合理的ICMP重定向后,修改自己的路由路径,把对10.10.100.2的数据包都发给路由器。这样攻击方C就能得到来自内部网段的数据包。
4 ARP欺骗攻击安全防范策略
4.1用户端绑定
在用户端计算机上绑定交换机网关的IP和MAC地址。
1)首先,要求用户获得交换机网关的IP地址和MAC地址,用户在DOS提示符下执行 arp –a命令,具体如下:
C:/Documents and Settings/user>arp -a
Interface: 10.10.100.1 --- 0x2
Internet Address Physical Address Type
10.10.100.254 00-40-66-77-88-d7 dynamic
其中10.10.100.254和00-30-6d-bc-9c-d7分别为网关的IP 地址和MAC地址,因用户所在的区域、楼体和交换机不同,其对应网关的IP地址和MAC地址也不相同。
2)编写一个批处理文件arp.bat,实现将交换机网关的MAC地址和网关的IP地址的绑定,内容如下:
@echo off
arp -d
arp -s 10.10.100.254 00-40-66-77-88-d7
用户应该按照第一步中查找到的交换机网关的IP地址和MAC地址,填入arp –s后面即可,同时需要将这个批处理软件拖到“windows--开始--程序--启动”中,以便用户每次开机后计算机自动加载并执行该批处理文件,对用户起到一个很好的保护作用。
4.2 网管交换机端绑定
在核心交换机上绑定用户主机的IP地址和网卡的MAC地址,同时在边缘交换机上将用户计算机网卡的MAC地址和交换机端口绑定的双重安全绑定方式。
1)IP和MAC地址的绑定。在核心交换机上将所有局域网络用户的IP地址与其网卡MAC地址一一对应进行全部绑定。这样可以极大程度上避免非法用户使用ARP欺骗或盗用合法用户的IP地址进行流量的盗取。具体实现方法如下(以AVAYA三层交换机为例):
P580(Configure)# arp 10.10.100.1 00:E0:4C:11:11:11
P580(Configure)# arp 10.10.100.2 00:E0:4C:22:22:22
P580(Configure)# arp 10.10.200.3 00:E0:4C:33:33:33
2)MAC地址与交换机端口的绑定。根据局域网络用户所在的区域、楼体和用户房间所对应的交换机端口号,将用户计算机网卡的MAC地址和交换机端口绑定。此方案可以防止非法用户随意接入网络端口上网。网络用户如果擅自改动本机网卡的MAC地址,该机器的网络访问将因其MAC地址被交换机认定为非法而无法实现上网,自然也就不会对局域网造成干扰了。具体操作如下(以AVAYA二层边缘交换机为例):
console> (enable) lock port 1/1
console> (enable) add mac 00:E0:4C:11:11:11 1
Address 00:E0:4C:11:11:11 was added to the secure list !
console> (enable) lock port 1/2
console> (enable) add mac 00:E0:4C:22:22:22 2
Address 00:E0:4C:22:22:22 was added to the secure list !
console> (enable) lock port 1/3
console> (enable) add mac 00:E0:4C:33:33:33 3
Address 00:E0:4C:33:33:33 was added to the secure list !
console> (enable) show cam
VLAN DestMAC/Route Des Destination Port
1 00:E0:4C:11:11:11 1/1
1 00:E0:4C:22:22:22 1/2
1 00:E0:4C:33:33:33 1/3
4.3 采用VLAN技术隔离端口
局域网的网络管理员可根据本单位网络的拓卜结构,具体规划出若干个VLAN,当管理员发现有非法用户在恶意利用ARP欺骗攻击网络,或因合法用户受病毒ARP病毒感染而影响网络时,网络管理员可利用技术手段首先查找到该用户所在的交换机端口,然后将该端口划一个单独的VLAN将该用户与其它用户进行物理隔离,以避免对其它用户的影响。当然也可以利用将交换机端口Disable掉来屏蔽该用户对网络造成影响,从而达到安全防范的目的。
5 结束语
网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者带来了严峻的考验。ARP欺骗是一种典型的欺骗攻击类型,它利用了ARP协议存在的安全隐患,并使用一些专门的攻击工具,使得这种攻击变得普及并有较高的成功率。文中通过分析ARP协议的工作原理,探讨了ARP协议从IP地址到MAC地址解析过程中的安全性,给出了网段内和跨网段ARP欺骗的实现过程,提出了几种常规可行的解决方案,如在用户计算机上绑定交换机网关的IP地址和MAC地址、在交换机上绑定用户主机的IP地址和网卡的MAC地址或绑定用户计算机网卡的MAC地址和交换机端口、VLAN隔离等技术。如果多种方案配合使用,就可以最大限度的杜绝ARP欺骗攻击的出现。总之,对于ARP欺骗的网络攻击,不仅需要用户自身做好防范工作之外,更需要网络管理员应该时刻保持高度警惕,并不断跟踪防范欺骗类攻击的最新技术,做到防范于未然。
参考文献
[1] 邓清华,陈松乔.ARP欺骗攻击及其防范[J].微机发展,2004,14(8):126-128.
[2] 孟晓明.基于ARP的网络欺骗的检测与防范[J].信息技术,2005,(5):41-44.
[3] 徐功文,陈曙,时研会.ARP协议攻击原理及其防范措施[J]. 网络与信息安全,2005,(1):4-6.
[4] 张海燕.ARP漏洞及其防范技术[J].网络安全,2005,(4):40-42.
[5] 王佳,李志蜀.基于ARP协议的攻击原理分析[J]. 微电子学与计算机,2004,21(4):10-12.
作者简介:周增国(1973-),男,辽宁大连人,工程师,硕士研究生,主要研究方向:计算机技术、网络安全
本文摘自: http://www.ahcit.com/lanmuyd.asp?id=2078