1、引言
互联网几乎时时刻刻都遭受到各种各样的攻击 ,不时有网络服务器被击破的报告,这使网络安全受到了严重威胁,干扰了互联网的正常发展。因此,如何有效地防范各种攻击,增强网络安全性,是一项长期而又艰巨的任务。
近期,我校校园网多个网段多次受到ARP病毒的攻击,造成网络运行不稳定,利用ARP协议欺骗攻击网络的病毒在校园网中大肆传播,用户计算机出现频繁断网、IE浏览器频繁出错等故障,极大地影响了校园网用户的正常使用,甚至造成校园网瘫痪。为此,本文在介绍ARP协议工作原理的基础上,对ARP病毒攻击进行了详细分析,并提出了切实可行的病毒诊断和防范措施。
2、ARP协议
欺骗类攻击是网络中常见的攻击类型,对网络服务器的危害很大,由于它属于一种非常专业化的攻击手段,一般人员对其攻击机制不甚了解,因此造成了防范此类攻击的困难。
ARP欺骗作为一种典型的欺骗类攻击,包括构造伪造的ARP请求和ARP应答包[1]。攻击主机通过发送伪造的ARP应答来更新目标主机的ARP缓存,从而使自身赢得目标主机的信任。然后再实施有效攻击或非法监听网络数据包,造成目标主机被攻破或机密信息泄漏等一系列灾难性后果。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
2.1、什么是ARP协议
ARP协议(Address Resolution Protocol,地址解析协议)是TCP/IP协议族中的一个重要协议,实现将网络层(Network Layer,OSI的第三层)地址解析为数据链路层(Data Link Layer,OSI的第二层)地址。
在局域网中,网络中实际传输的是“帧”,当一台主机把以太网数据帧发送到另一台主机时,以太网设备并不识别32位IP地址,它们是根据48位以太网地址来确定目的接口的,网络中实际传输的每一帧里包含有目标主机的介质访问控制子层MAC(Media Ac2cess Control )地址[2]。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,但这个目标MAC地址是如何获得的呢?它就是通过地“地址解析”协议获得的。所谓“地址解析”就是在IP地址和硬件地址MAC之间提供的动态映射。将MAC地址转换为网络IP地址是通过反向地址解析协议RARP(Reverse AddressResolution Protocol)来实现的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。所以说从某种意义上讲ARP协议是工作在更低于IP协议的协议层。这也是为什么ARP欺骗更能够让人在神不知鬼不觉的情况下出现网络故障的原因,他的危害更加隐蔽。
2.2、ARP协议工作原理
ARP解析地址的过程就是[3]主机在发送数据帧之前将目标主机的IP地址转换成目标主机的MAC地址的过程,ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
当主机A欲向本网络的主机B发送IP数据报时[4],就先在其ARP高速缓存中查看有无主机B的IP地址,如果存在,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址对应的主机;如果不存在,主机A就要在网络上用广播方式发送ARP请求分组,在此网络上的所有主机上运行的 ARP进程都收到此ARP请求分组,主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址,其它的所有主机都不响应这个ARP请求分组。
为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到主机A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中,这样,主机B以后向主机A发送数据报时就可以直接发送了。
如果目标主机和源主机不在同一个局域网上,那么就要通过ARP表找到一个和本网络相连的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,直到找到目标主机。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或
路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。
ARP的基本功能就是通过目标主机的IP地址,查询其物理MAC地址,以保证通信的顺利进行。然而一个局域网中的电脑少则几台,多则上百台,这么多的电脑之间,如何能准确的记住对方电脑网卡的MAC地址,以便数据的发送呢?这就涉及到了ARP缓存表[5]。如表1所示,这是一个同一网络的ARP缓存表的一部分,其中Internet Address是主机的IP地址,Physical Address是主机网卡的物理地址,Type为地址映射项目的类型(分为动态型、静态型)。在局域网的任何一台主机中,都有一个ARP缓存表,该表中保存此网络中各个电脑的IP地址和MAC地址的对照关系,当这台主机向同局域网中另外的主机发送数据时,会根据ARP缓存表里的对应关系进行发送。
以计算机A(192.168.0.3)向计算机B(192.168.0.1)发送请求为例,当A向路由器发出请求时,会在自己的ARP缓存表中寻找是否有路由器的IP地址。如果找到了,也就知道了路由器的MAC地址,直接把路由器的MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:192.168.0.1的“MAC地址是什么?”网络上其他主机并不响应ARP询问,只有路由器接收到这个帧时,才向主机A做出这样的回应“192. 168.0.1的MAC地址是00-00。这样,主机A就知道了路由器-cd-1c-3d-e9”的MAC地址,它就可以向路由器发送请求了。同时它还更新了自己的ARP缓存表,下次再向路由器发送信息时,直接从ARP缓存表里查找就可以了。3、ARP欺骗的实现
ARP协议存在着两个缺陷[6]:(1)ARP协议未提供检验ARP缓存表中IP地址与MAC地址对应关系真实性的机制,所有的IP地址映射信息都被当作是可信任的,并且把几个IP地址映射到同一MAC地址上;(2)ARP协议是无状态的,ARP应答无需认证,任何主机即使没 有收到ARP请求也可以发出ARP应答报文,并且该报文能够被目标主机所接受并刷新其ARP缓存表。(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)