网络管理员在网络维护阶段需要处理各种各样的故障,出现最多的就是网络通信故障。除物理原因外,这种现象一般是ARP攻击或ARP欺骗导致的。
无论是ARP攻击还是ARP欺骗,它们都是通过伪造ARP应答来实现的。
1.防御ARP攻击和ARP欺骗并查找攻击主机
下面介绍防御ARP攻击和ARP欺骗并查找攻击主机的方法。
1.防御ARP攻击和ARP欺骗
防御ARP攻击和ARP欺骗最有效的方法是进行ARP绑定,即分别在主机和网关进行ARP绑定,这样ARP表将不会受到虚假的ARP应答信息的影响而出现网络故障。如果网络中的主机较多,
进行ARP绑定的工作量十分大,并且主机ARP绑定后重启系统就需要重新绑定,所以,可以使用
ARP防火墙自动抵御。
如果网关是路由器而不是主机,则需要在网关设备上手动绑定
ARP。这是因为ARP攻击是双向的,只攻击网关就可以导致网络通信
瘫痪。
2.查找进行ARP攻击或ARP欺骗的主机
当网络出现故障时,可通过ARP协议查到有问题主机的MAC地址,但是如果MAC地址没有记
录或攻击者使用的是虚假的MAC地址,那么应该如何找到问题主机呢?
在网络出现ARP病毒时,可以知道中病毒主机的MAC地址(MAC地址可能是虚假的)。经查表
没有发现对应的主机,这说明ARP病毒可能伪造了一个虚假的MAC地址,这时要查找出问题主机
就要查看交换机的MAC地址表。
由干交换机学习数据帧中的源MAC地址,因此使用show mac address-table命令可查看端口学习到的MAC 地址。从MAC 地址表中找到问题的MAC地址,从而判断发出此MAC地址数据帧的主机下挂在此端口;再查看下挂交换机的MAC地址表,最终确定一个端口下所有问题的主机。
例如,出现问题的MAC地址是001fcaff1003,查找此MAC地址对应的端口。
可以找到此MAC地址对应的端口。如果网络结构比较复杂,可能会有多个端口对应此MAC地
址,这时就要对接口下挂设备进行逐个查找。
2 使用Sniffer软件分析ARP协议
上一节中我们对ARP引起的安全性问题进行了详细说明,也通过相关软件验证了结论。本节将通过Sniffer抓包工具软件对其底层原理进行深入剖析。
1.使用SnifferPro捕获数据包
Sniffer Pro是一个能够在网络中捕获数据包的软件,通过它可以学习并理解TCP/IP的各种协议。那么如何使用Sniffer Pro抓包呢?
启动Sniffer Pro后,单击图中的》按钮,出现如图所示的界面。
当图中的曲按钮可用时,表示已捕获到数据。单击编按钮,再选择“解码”选项,出现
如图所示的界面,即可看到捕获到的数据包。
Sniffer Pro抓包界面
2.ARP协议原理分析
ARP分组直接封装在数据链路层的帧中
ARP分组的封装
下面通过抓包来看一下ARP分组和帧的结构。
实验环境如图所示,在PC2上安装SnifferPro软件,以确保两台主机通信正常。
首先在主机PC1上使用arp-d命令清除ARP缓存表,然后向主机PC2发送一个ICMP包。
在 PC2 上用 Sniffer 抓到了两个ARP分组,分别如图
这里重点介绍几个字段。
(1)操作代码(Opcode):1表示ARP请求,2表示ARP应答。
(2)发送端硬件地址(Sender's hardware address):图中表示主机PC1的网卡地址。
(3)发送端协议地址(Sender's protocoladdress):图中表示主机PC1的IP地址,
(4)目标端硬件地址(Target hardware address):图中的000000000000表示主机PC1不
知道PC2的网卡地址,而图中表示主机PC1的网卡地址。
(5)目标端协议地址(Targetprotocoladdress):图中表示主机PC2的IP地址。
可以看到,主机PC2在ARP应答分组中已经包含了自己的物理地址,这样PC1就获得了PC2的
物理地址,下一步PC1就可以向PC2发送IP数据报文。
接下来看一下数据链路层帧头的结构。
查看如图所示的ARP分组的DLC(数据链路层),看一下它的帧头结构,如图所示。
这是PC2回应PC1的帧,其字段说明如下。
目的地址(Destination):这里是指主机PC1的网卡地址。
源地址(Source):这里是指主机PC2的网卡地址。
类型(Ethertype):0806表示此帧所携带的数据是ARP分组。
回顾之前讲的ARP攻击,那么如何通过Sniffer抓包来分析ARP攻击的原理呢?如图所示,攻击方主机(100.0.12)运行长角生网络监控机软件给网络中的主机发送网关的虚假MAC地址。现在其中一台“受害”主机(10.0.0.95)安装 Sniffer Pro,通过Sniffer抓包来分析ARP攻击的原理。
推荐步骤如下。
(1)捕获并查看报文。
单击▶按钮,将开始捕获所有收到和发出的数据报文,等待一段时间之后,单击的按钮,查看分析结果。
(2)分析验证ARP攻击的原理。
如图所示,ARP数据包来自MAC地址为005056C00002的主机。
选中一个报文查看其具体内容,该数据报文属于ARP的回应包(ARPReply),其内容是网关
10.0.0.178的IP 地址对应的 MAC 地址为000C29943155,这个地址显然和真实的网关MAC
(000C29288DE9)不同。因此,如果本机将这个地址存入ARP缓存,就无法和网关通信。
3.ARP协议:
地址解析协议,就是根据ip地址获取局域网中主机的MAC地址