基于ARP协议的网络欺骗与防范

2011-01-23 04:54何显文
通化师范学院学报 2011年6期
关键词:局域网IP地址网关

何显文

(赣南师范学院 数学与计算机科学学院,江西 赣州 341000)

在局域网内经常有人使用ARP欺骗的木马程序盗取网络帐号或用户信息.有时在访问某些网站时会被告知有木马病毒,尽管所访问的是非常正规的门户网站,但由于这个网站所在的服务器受到ARP攻击,就影响到了访问这个网站的用户.

在浏览器地址栏内输入网址后,DNS服务器会自动把它解析为IP地址,浏览器实际上查找和识别的是IP地址而不是网址.IP地址又要转换为第二层物理地址(即MAC地址),在局域网中,这是通过ARP协议来完成的.通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞.因此,ARP协议对网络安全具有重要的意义.

1 ARP协议概述

ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议[1].从IP地址到物理地址的映射有两种方式:表格方式和非表格方式.ARP具体说来就是将OSI参考模型中的网络层地址解析为数据链路层的物理地址.

在局域网中,网络中实际传输的是帧,帧包含目标主机的MAC地址.在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,这个目标MAC地址是通过ARP地址解析协议获得的.所谓地址解析,就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程.ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证网络通信的顺利进行.

2 ARP协议的工作原理

每台安装了TCP/IP协议的主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址的对应关系,如表1所示.

表1 ARP缓存表

当源主机需要将一个数据包发送到目标主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果存在就直接将数据包发送到这个MAC地址;如果没有就向本地网段发出一个ARP请求的广播包,查询此目标主机对应的MAC地址.此ARP请求数据包内包括源主机的IP地址、硬件地址和目标主机的IP地址.网络中所有的主机收到这个ARP请求后,会检查数据包中的目标IP是否与本机的IP地址一致.如果不相同就忽略此数据包,若相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉源主机自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目标主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始传输数据.如果源主机一直没有收到ARP响应数据包,表示ARP查询失败.

例如:

A的地址IP:192.168.10.1MAC:AA-AA-AA-AA-AA-AA

B的地址IP:192.168.10.2MAC:BB-BB-BB-BB-BB-BB

根据ARP原理,主机A要向主机B发送报文,A就必须知道B的以太网地址,于是A发送一个ARP请求广播(询问谁是192.168.10.2,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192.168.10.2在BB-BB-BB-BB-BB-BB),而主机C和主机D则忽略这个ARP请求,该过程如图1所示.

图1 主机A与主机B之间的请求与应答关系

本地高速缓存中的这个ARP表是本地网络流通的基础,这个缓存是动态的.也就是说,ARP缓存表采用老化机制,如果缓存表中的某些地址在一段时间内没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度.

ARP缓存表中的内容不仅可以自动添加和删除,用户还可以通过命令来查看、添加和修改.要查看ARP缓存表中的内容,可以在命令提示符下输入“arp-a”,如下图2所示.

图2 执行“arp-a”命令后显示的内容

用“arp-d”命令可以删除ARP缓存表中某些地址对应关系;用“arp-s”命令则可以在ARP缓存表中手动编辑IP地址与MAC地址的对应关系.

3 ARP欺骗的类型

在上网时经常出现的瞬间掉线或大面积的断网大都因为ARP欺骗的原因,ARP欺骗和攻击已经成为破坏局域网正常通信的罪魁祸首.从影响网络连接通畅的方式来看,ARP欺骗分两种类型,一种是对路由器ARP表的欺骗,另一种是对内网PC的网关欺骗.[2]

(1)截获网关数据.某攻击主机发送给路由器一系列错误的内网MAC地址,并按照一定的频率持续不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成目标主机无法正常收到信息.

(2)伪造网关.它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网.在PC看来,就是“上不了网”或“网络掉线”.

一般来说,ARP欺骗和攻击的后果非常严重,大多数情况下会造成网络大面积掉线.出现故障时,原因并不容易发现,网络管理员检查PC没有问题,交换机一般不可能掉线,ISP提供的网络服务也正常.因此,当第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,很多网络管理员就会认为问题一定是在路由器,事实并非如此,而是ARP欺骗所致.

目前,路由器的生产厂家,为防范ARP欺骗也对路由器不断地进行技术改进.首先,在宽带路由器中把所有主机的IP-MAC输入到一个静态表中,这叫路由器IP-MAC绑定;其次,建议网络管理员在内网所有主机上设置网关的静态ARP信息,这叫PC机IP-MAC绑定.路由器的这两技术工作被称为IP-MAC双向绑定[3].

针对ARP的原理,就可以分析在网络中如何实现ARP欺骗了,下面是一个典型的ARP欺骗实例.

入侵者想非法进入某台主机,如果知道这台主机的防火墙只对192.0.0.3(假设)这个IP开放23端口(Telnet),那么可以采用以下方法,即:先测试192.0.0.3这台主机,将发现对这台主机只要使用一个OOB(带外数据)就可以让其死机;接着,可以送一个洪水包给192.0.0.3的139端口,于是,该机器将应包而死;此时,主机发到192.0.0.3的IP包将无法被正常的目标主机应答,系统开始更新自己的ARP缓存表,将表中192.0.0.3的IP地址擦去;然后,入侵者把自己的IP改成192.0.0.3,同时他发送一个Ping(Icmp 0)给主机,要求主机更新其ARP转换表;主机找到该IP后,在ARP缓存表中加入新的IP-MAC对应关系.至此,防火墙就完全失效了,入侵的IP变成合法的MAC地址,可以使用Telnet正常登录,从而达到入侵的目的.

4 防范ARP欺骗

随着Internet的普及,ARP欺骗无处不在,一旦网络遭到ARP攻击,会对局域网用户造成重大影响,为尽可能减少ARP攻击的干扰的发生,必须采取必要的防范对策.目前,对于ARP攻击的防护,可以采用以下三种措施[4],即静态绑定(绑定IP和MAC)、使用带有ARP防护功能的路由器、安装ARP防护软件.

(1)静态绑定.所谓静态绑定,就是将IP地址和MAC地址静态绑定,把局域网内主机和网关都做IP和MAC绑定[5].

ARP欺骗是通过ARP的动态实时的规则欺骗内网机器,所以把ARP全部设置为静态可以解决对内网PC的欺骗问题,同时在网关也要进行IP和MAC的静态绑定,这种双向绑定策略能很好地保证内网避免遭到欺骗[3].

对每台主机进行IP和MAC地址静态绑定的方法可以通过命令“arp-s”实现,命令格式为“arp-s IP MAC地址”.

例如:“arp-s 192.168.10.1AA-AA-AA-AA-AA-AA”.

如果设置成功可在PC上通过执行“arp-a”看到以下的提示:

Internet Address Physical Address Type

192.168.10.1AA-AA-AA-AA-AA-AA static(静态)

如果不绑定,在动态的情况下则看到以下提示:

Internet Address Physical Address Type

192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(动态)

然而,对于机器数量较多的局域网,如果我们对每台主机都做静态绑定,工作量之大可想而知.此外,这种静态绑定,在机器每次重启后,都必须重新绑定,虽然可以做一个批处理文件,但仍然比较麻烦.

(2)使用具有ARP防护功能的路由器.这类路由器之所以具备ARP防护功能,是由于它可以定期的发送自己正确的ARP信息.但是这类路由器对于真正意义上的ARP攻击是不能解决的.

ARP攻击最常见的现象就是网络掉线.一般情况下,不做任何处理,一段时间后网络也能恢复正常,这是因为ARP欺骗本身具有老化时间,过了老化时间就会自动的恢复正常.现在大多数路由器都会在短时间内不断地广播自己正确的ARP信息,使受骗的主机恢复正常.但是,如果出现攻击性ARP欺骗(即短时间内出现大量的欺骗ARP,1秒有个几百上千个),它将不断地发起ARP欺骗包来阻止内网机器上网,即使路由器不断广播正确的数据包也会被其大量的错误信息所淹没.

遇到这种情况,理论上可以让路由器发送比欺骗者更多更快正确的ARP信息,如果攻击者每秒发送1000个ARP欺骗包,那我们就让路由器每秒发送1500个正确的ARP信息.但是,如果网络拓扑很大,网络中连接了很多网络设备和主机,若大量的设备都去处理这些广播信息,结果可想而知,网络资源将大大被浪费和占用,网络通信效率将大大降低.此外,如果该网络出现故障,还要抓包分析,数据包中将出现大量的ARP广播包,对分析结果也会造成一定的影响.

(3)使用ARP防护软件.ARP类的防护软件较常用的主要有欣向ARP工具,Antiarp等.它们除了本身可以检测出ARP攻击外,防护的工作原理是用一定频率向网络广播正确的ARP信息.防护软件的安装和使用不再赘述.

总之,基于ARP协议的网上攻击和欺骗较多,其本身并不一定能对网络构成重大威胁,而一旦被结合利用,其危险性就不可估量了.由于ARP协议原理的缺陷,使得防范ARP的攻击一直很棘手,经常查看当前的网络状态,监控网络流量对网络管理员来说尤为重要.

参考文献:

[1]马海军.TCP/IP协议原理与应用[M].北京:清华大学出版社,2008.

[2]谢希仁.TCP/IP协议族北京[M].北京:清华大学出版社,2008.

[3]JOHN CHIRILLO.HACK ATTACKS DENIED[M].北京:机械工业出版社,2006.

[4]赵立群,等.计算机网络管理与安全[M].北京:清华大学出版社,2008.

[5]KEVIN BURNS.TCP/IP ANALYSIS AND TROUBLESHOOTING TOOLKIT[M].北京:清华大学出版社,2005.

猜你喜欢
局域网IP地址网关
轨道交通车-地通信无线局域网技术应用
铁路远动系统几种组网方式IP地址的申请和设置
基于VPN的机房局域网远程控制系统
信号系统网关设备的优化
IP地址切换器(IPCFG)
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
LTE Small Cell网关及虚拟网关技术研究