秦文义
(齐鲁工业大学金融学院,山东 济南 250100)
发生ARP攻击时可能出现的现象有:
1.1 网速时快时慢,极其不稳定,计算机和交换机重启后网速能恢复正常
1.2 局域网内频繁性区域或整体掉线,web服务器不能正常访问
1.3 网上银行、游戏及QQ账号的频繁丢失
1.4 ping外网出现长时间延迟,甚至大量丢包,而ping内网其它ip地址则比较畅通
1.5 单机通过光纤外ping畅通
ARP(Address Resolution Protocol)即地址解析协议,是根据 IP地址获取物理地址的一个TCP/IP协议。其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存,当查询不到目标计算机mac地址的时候才发广播查询。在局域网所有的计算机都是可信的情况下,它是十分高效的,大大的减少了网内目标地址的查询,从而减少了网络流量,提高了效率。同时Arp协议也是一种无状态的协议,存在严重的漏洞。因为它从不检查收到数据包是不是自己请求过的应答包,也不管应答包是不是合法的,只要目标地址和自己的mac相同便接收,并对请求作出回答。
计算机会不断刷新ARP表以确保ARP表的有效性,所以当网络中存在欺骗包时,会被轻而易举的接收,并将欺骗包的ip、mac地址刷新到ARP表中。
Arp攻击主要分为以下几类:
3.1 网关仿冒
攻击者或病毒发送伪造的网关arp报文,把同网段内其他终端的网关mac重定向到错误的mac地址,导致其它用户不能正常上网。
3.2 欺骗网关
攻击者发送mac和ip地址对应关系给网关,导致网关和终端用户无法通讯。
3.3 攻击者发送错误的终端用户/服务器的IP+MAC的对应关系给受害的终端用户,导致同网段内两个终端用户之间无法正常通信。
3.4 ARP 泛洪攻击
攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网。
3.5 其他高级ARP攻击,如网络终结者攻击等。
防止ARP攻击是一向比较繁琐的工作,通常的做法有以下几种:
4.1 ARP防火墙
现在几乎所有的计算机防火墙软件都有类似的功能,例如360安全卫士,金山卫士,瑞星等,只要开启相应功能即可。终端安装arp防火墙是现在比较通俗的办法。
4.2 修改系统拒收ICMP重定向报文关闭icmp协议
为了应对不同网段的攻击,我们可以关闭icmp路由重定向协议,可以将以下文本复制到文本文件,并将该文本重命名为”.reg”,双击该文件,将该文件导入注册表即可。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer-
vicesTCPIPParamtersInterfaces]
"PerformRouterDiscovery"=dword:00000000
4.3 网内ip、mac地址双向绑定
由于内网可能涉及到的计算机数量会比较大,双向绑定ip、mac工作量介乎无法完成,同时由于计算机重启后,arp路由表会被清除,需要重新建立,所以可以考虑使用批处理来解决,并且把运行的文件加入到开机运行中,便能够很好地解决这个问题。以下代码可供参考(假设已知内网网关ip、mac地址):
@echo off
if"%1"=="h"goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0""h",0)
(window.close)&&exit
:begin
if not exist%0"%USERPROFILE%「开始」菜单 程序 启动 "copy
%0"%USERPROFILE%「开始」菜单程序启动 "
arp-d
ipconfig/all>ipconfig.txt
arp-s网关ip网关mac
for/f"tokens=15"%%i in('find"IP Address"ipconfig.txt')do set ip=%
%i
for/f"tokens=12"%%i in ('find"Physical Address"ipconfig.txt')do set
mac=%%i
arp-s%ip%%mac%
del ipconfig.txt
del arp.txt
exit
只要将以上代码以文本文件保存,并将文本扩展名重命名为“.bat”,放到C盘根目录运行一次即可。
4.4 删除ARP攻击需要的文件npptools.Dll
4.5 网络入口做安全设定
在接入internet网的防火墙或三层交换机做好网内静态mac地址ip地址绑定等安全策略。
找到并消除内网ARP攻击源头是网管最紧迫的工作,以下为攻击源查找的几种方法。
5.1 利用命令查找
可以利用ARP命令查看本地ARP缓存,看一下网关mac和ip对应关系,找到网关的ip、mac对应项,检查网关mac地址,如网关被篡改,利用“nbtscan-r 192.168.1.0/24”(假设网段为 192.168.1.*)扫描网段,找出假冒网关的真实ip地址;如果攻击之前保存有ip、mac地址对应表,可以通过mac地址直接查找相应的ip。
也可以利用tracert命令,跟踪一个外网地址,网关是192.168.1.1,如果命令第一跳为192.168.1.89,则第一跳ip即攻击源(假定内网无二次路由)。
5.2 网卡模式检测
Arp攻击源的网卡状态会处于混杂模式,在这种模式下,他能够接收任何经过它的数据包,通过扫描网卡状态可以查找网内多个攻击源、定向攻击源等。相应的软件有:聚生网管等
5.3 利用流量检测软件进行数据包流量分析
对于网内的ARP泛洪攻击等也可以进行抓包及流量分析确定攻击源,当某个ip频繁向外发送大量广播包,流量是其他ip流量的一倍以上,可以确定为疑似攻击源,相应软件如sniffer等。
了解ARP攻击原理并利用各种手段消除攻击源是网管员面临的难题,所以我们要时刻研究关注和交流相关技术发展及防御技术的手段,以免更高级的攻击给我们造成不必要的损失。
[1]张金荣,刘晓辉.网管天下:网络管理工具实用详解[M].3 版.ISBN:9787121148057,电子工业出版社.
[2]张媛媛,侯建涛.ARP攻击和ARP欺骗的原理及其解决方案[M].煤炭技术出版社,2010,29(11).