郭籽蔚
(神东煤炭集团信息中心,陕西 神木 719315)
ARP(Address Resolution Protocol)地址解析协议用于将计算机的网络地址 (IP地址32位)转化为物理地址(MAC地址48位)。
ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要ARP协议的。
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。
假设一个网络环境中,网内有三台主机,分别为主机A、B、C。主机详细信息如下描述:A 的地址为:IP:192.168.100.1 MAC:AAAA-AA-AA-AA-AA
B 的 地 址 为 :IP:192.168.100.2 MAC:BB-BB-BB-BB-BB-BB
C 的 地 址 为 :IP:192.168.100.3 MAC:CC-CC-CC-CC-CC-CC
正常情况下A和C之间进行通讯,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BBBB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BBBB-BB(A的MAC地址本来应该是AA-AAAA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存 (C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么。这就是典型的ARP欺骗过程。
注意:一般情况下,ARP欺骗的某一方应该是网关。
ARP欺骗存在两种情况:第一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;第二种是欺骗者伪装成网关只欺骗了其中一方,导致被欺骗主机直接断网。
笔者所在公司发生的ARP欺骗攻击大多是第二种情况。
被攻击网段内的所有计算机,网络5-10分钟中断1次,然后过段时候又恢复;如果马上改IP地址,则又恢复正常通信。
3.2.1 利用计算机操作系统自带工具:
在“开始”“程序”“附件”菜单下调出“命令提示符”。输入并执行以下命令:
Arp-d (清除本机的arp缓存表)
Arp -s 00-21-5e-c4-4d-5c 192.168.1.254 (绑定网关的IP地址和正确的物理地址)
因为每次重启计算机的时候,ARP缓存信息都会被全部清除。所以将这两条命令做成一个批处理文件,然后将这个文件放到系统的启动项中。当程序随系统的启动而加载的话,就可以免除因为ARP静态映射信息丢失的困扰了。
3.2.2 利用ARP防御软件:
现在市场上的ARP防御软件有很多,笔者使用的是一款名为“arp防火墙”的软件,该软件不仅可以拦截arp攻击,还可以定位arp攻击源。可以用来统一管理单位所有的计算机。
3.3.3 利用交换机绑定IP地址和MAC地址:
现在的交换机都有IP地址和MAC地址的绑定功能。笔者所在公司使用的是思科系列交换机。具体配置命令如下:
Route(config)#arp 192.168.1.111 0024.5b 3d.63ed arpa
此方法还可以防止IP地址的非法使用。
这种方式的缺点是初期数据录入工作量大,如果终端计算机太多或者更换频繁,那么网管员将会不堪重负。所以这种方法一般用来绑定重要的服务器。
以上三种方法,建议普通用户选择使用防御软件,网管可以将防御软件和交换机绑定相结合来管理整个单位的网络。
ARP欺骗攻击利用了ARP协议的漏洞,作为一种底层协议攻击,从根源上无法彻底解决。只能从防御上着手,大力普及计算机知识,提高终端用户的防范意识和计算机使用能力,才能从根本上减少攻击源。
[1]许颖梅.局域网中ARP欺骗及防范[J].科技经济市场,2007-07-15.