实战:ARP攻击的攻、判、防的详细解析(3)

4.如何防范和解决ARP攻击

ARP攻击的解决办法五花八门,但却因为各种的限制,最终可以实施的非常少,甚至连一种可以实施的都找不到。下面的解决办法虽然不能包罗万象,但不管实际的网络硬件配备如何,一定可以从中找到一种最适合的解决办法。

方法1:经过判断已经发现存在ARP攻击,如果攻击持续存在,在受害的计算机上执行"arp -d"后,再执行"arp -a",-a的作用是显示该计算机上的所有ARP缓存。从中我们可能会发现有几条记录,其中一个记录是网关或要访问的目标主机,还有一条其他记录,也可能有几条。多执行几次"arp -d"、"arp -a",总结一下,出现最多的那条记录基本上就是ARP攻击者的真实IP地址。

该方法的优点:是比较简单,几乎适合所有的网络环境,不需要任何辅助软件,也不需要网管有非常专业的知识,即可找出攻击者,然后对攻击者进行网络隔离。缺点如果攻击者仅仅是破坏,而不是出于控制的目的,"arp -a"看到的记录就不可靠了。

方法2:在目标设备和受害计算机上分别进行IP地址和MAC地址的静态绑定。例如,在计算机上执行:

"arp -s 192.168.1.1 00-aa-00-62-c6-09"

在路由或交换设备(这里仅以思科的设备为例)上执行:

"Cisco-6509(config)# arp 192.168.1.2 0009.6be2.3ca3 ARPA"

把要保护的目标设备的IP地址和MAC地址进行绑定,使非法的ARP攻击无孔可入。并不是每一个用户都有权在网关设备上把自己使用的IP地址和MAC地址进行绑定,但用户至少可以做到的是在自己的计算机上把网关的IP地址和MAC地址进行绑定,最好做成一个批处理文件,每次计算机启动时都执行该文件,使用这种方法可以有效的避免上述的第二种泄密攻击。

该方法的优点是小规模网络比较适用。缺点是具体实施的难度比较大,如果上网主机比较多,并且主机经常变化,如高校这一群体,每年都有新报到和毕业的学生,静态绑定工作量巨大,难以实施;太多的绑定条目会影响设备的执行速度,降低效率;即使ARP攻击不会影响上网,但大量的ARP包仍被发送,还是要占用大量的有用带宽;要求设备支持静态绑定功能。

方法3:采用动态ARP检察技术,结合DHCP的功能,实现IP和MAC的自动绑定。该方法和方法2类似,但绑定是自动完成的,可以在接入层交换机上部署,非法的ARP包将被交换机丢弃,感兴趣的朋友,可查找相关设备的技术文档。

该方法的优点是解决ARP攻击最好的方法,不需要管理人员的协助,非法的ARP包也无法进入网络。既不会存在危害,也不会影响网络性能。缺点是要求管理员有较好的技术;要求网络设备的支持,思科公司支持这种功能的设备至少要三层以上(国内很少有企业在接入层使用三层设备),很多厂家的设备目前尚未支持。

方法4:在网管型交换机,用一分钟的时间即可找出攻击者。在前面的解决方法1中,可以发现目标IP的MAC地址并不是真实的MAC,记下这个MAC地址,假使这个MAC是"0050.bae3.2305",在网管型交换机(这里仅以思科设备为例)上执行:

"Cisco-2950#show arp | include 0050.bae3.2305
Internet 10.168.168.9 239 0050.bae3.2305
ARPA FastEthernet1/17"

第一行是执行的命令,单纯的"show arp"会显示出交换机学习到的所有MAC地址,从中找到攻击MAC非常困难," | include 0050.bae3.2305"起到过滤功能,仅显示对应的行。第二行是执行结果,会发现这个MAC地址来自Fa1/17端口。找到该端口对应的主机即找到了攻击源,如果该端口接的不是一台计算机,而是另一台交换机,重复刚才的方法,直到找出最终的计算机。

该方法的优点是最具可操作性,执行比较快捷,所有的网管型交换机均支持该功能,强烈推荐使用。缺点是还有很多单位仍在使用着非网管型交换机或集线器。

方法5:在非网管型交换机或集线器的情况下,用十分钟的时间即可找出攻击者。在被攻击者的计算机(虚拟机1)上打开两个DOS窗口,一个窗口执行"ping 192.168.1.200 -t",另一个DOS窗口中间隔性执行"arp -d",如果有多台非网管型交换机或集线器,依次切断他们的电源,何时发现第二个DOS窗口中出现持续的"Reply from……",则可以断定ARP攻击源来自这台网络设备。接下恢复该设备的电源,把网线一根根的拔下来,何时发现第二个DOS窗口中出现持续的"Reply from……",则可以断定,该网线所接的设备就是ARP攻击源。如果这种查找方法慢,可以使用二分查找法,即一次拔下一半的线,测一下,一般不超过十分钟即可找出攻击源。

该方法的优点是几乎适合任何网络环境。缺点是执行起来有点辛苦,最好还是换成网管型的交换机吧。

方法6:普通用户的自救方法。作为一名普通的网络使用者,向网管报修可能得不到及时解决,编写一个批处理文件,在计算机上执行,即可解决ARP的攻击问题。批处理文件的内容如下:

:a
Arp -d
Ping 1.1.1.1 -n 1 -w 100
Goto a

把该文本文件保存为a.bat,然后在用户的计算机上双击执行,会打开一个DOS窗口,程序会循环执行,不要关闭该窗口即可解决ARP攻击问题。如果ARP清除方法的速度太慢,可以改变上面的100(表示0.1s)为想要的数值。

该方法的优点是普通用户也可以解决ARP攻击问题,几乎适合任何网络环境。缺点是频繁的清除ARP缓存,频繁的发送ARP广播包,会给本她计算机和网络带来额外负担。