摘要:对校园局域网频繁发生的ARP欺骗的问题进行论证,通过网管等实际生活中的例子加以解释,介绍几种常见的ARP欺骗和攻击方式以及与MAC地址绑定的种种结合方式,并且从客户端、 网关等多个方面提出关于如何防御ARP攻击的多种方法,以达到全面防御、维护局域网络安全的目的。
关键词:地址解析协议;ARP欺骗;MAC地址绑定;网络安全
中***分类号:TP39 文献标志码:A文章编号:1673-291X(2010)08-0254-02
一、ARP与MAC
ARP(Address Resolution Protocol)是地址解析协议的简称,是一种将IP地址转化为物理地址的协议。在OSI网络参考模型的第二层(数据链路层)中,存在着两个子层:介质访问控制(MAC)和逻辑链路控制(LLC)。由 MAC子层提供的最广为认知的服务或许就是它的地址了,就像以太网的地址一样。在以太网中,数据传输的目的地址和源地址的正式名称是MAC地址。此地址大多数情况下是独一无二的固化到硬件设备上的,而IP地址所要转化的物理地址就是MAC地址。
在网络数据传输中实际传输的是“帧”(Frame),它以比特流的方式通过传输介质传输出去,其中,帧里面就包含有所要传送的主机的MAC地址。在以太网中,一台主机要同另一台主机进行通信,就必须要知道对方的MAC地址。但是,我们如何知道这个MAC地址呢?这时就用到了地址解析协议。所谓“地址解析”,就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。每台安装有TCP/IP协议的计算机主机里都有一个ARP缓存表,表中的IP地址与MAC地址是一一对应的,如下表 所示:
二、ARP 欺骗和攻击方式
1.简单的欺骗攻击
这种欺骗方式是指:欺骗主机通过发送伪造的 ARP 包来欺骗网关和目标主机,让目标主机认为这是一个合法的主机。包括以下情况:局域网主机冒充网关进行欺骗。假设有主机PC_A:当 PC_A 要与网关 GW_C 通讯时,首先要知道 GW_C 的 MAC 地址,如果局域网中另有一台主机 PC_B 冒充 GW_C 告诉 PC_A:GW_C 的 MAC 地址是 MAC B,那么 PC_A 就受骗了;或者直接告诉 PC_A:GW_C 的 MAC 地址是 PC_X,那么,就会如同我们邮寄信件时写错了地址,信件或者是发错了地方,或者是根本就发送不出去。这样一来就会造成断线。
网络中通讯有一个前提条件,也就是必须满足通讯双方都能向对方传送数据才会确保正常通讯,即确保 PC_A GW_C 和 GW_CPC_A 的通讯都没有问题时,才能确保通讯正常。假如有主机PC_B 冒充 PC_A,告诉 GW_C,PC_A 的 MAC 是 MAC B,那么就会出现:当 PC_AGW_C 时没有问题,可是当 GW_CPC_A 时就会出错,造成网络断线的现象。
2.基于 ARP 的“中间人攻击”
MITM (Man-In-The-Middle)称为“中间人攻击”,是一种“间接”的入侵攻击方式。这种攻 击是利用一定手段在两台或多台主机之间人为地加入一台透明主机,这台主机就称为“中间人”。“中间人”能够与原始主机建立连接、截获并篡改它们的通信数据。由于“中间人”对于原通信双方是透明的,使得“中间人”很难被发现,也就使得这种攻 击更加具有隐蔽性。而其中“中间人”常用的一种手段就是通过 ARP 欺骗的方式来实现的。
假设有同一网段内的三台主机 A,B,C。主机 A,B 为合法主机,C 为“中间人”攻击者。如果主机 C 分别向主机 A 和 C 发送假消息,即:告诉主机 A,主机 C 的 MAC 地址是 MAC B,同时告诉主机 B,主机 C 的 MAC 地址是 MAC A。这样主机 C 就成功地成为了 A 与 B 的“中间人”。那么,A,B 间正常的直接通信也会随之中断。取而代之的是 A,B 间每次进行 信息交互时都要经过主机 C。这样,主机 C 就可以有办法监听 A 与 B 之间的通信,达到监听的目的了。如果 C 不转发 A 与 B 之间的通信,就会造成主机 A,B 之间的网络连接中断。
三、ARP 欺骗解决方案
1.DHCP 结合静态捆绑法
DHCP是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写。要想彻底避免ARP欺骗的发生,我们需要让每台计算机的 MAC 地址与 IP 地址唯一且对应。虽然我们 可以通过为每台计算机设置 IP 地址的方法来管理网络,但是,对于那些通过 ARP 欺骗非法攻击的用户来说,他可以事先自己手动更改 IP 地址,这样检查起来就更加复杂了。这就需要进行 IP 与 MAC 的双向绑定,也就是说,在网关的交换机处静态绑定用户的 MAC地址和 IP 地址的同时,在客户端静态绑定网关 MAC 地址和 IP 地址以及同一网段的 IP 地址和MAC地址,使之不再动态学习。但这只是一个理想的解决方案,因为这样会大大加重网络管理的负担。网络管理员要非常熟悉交换机设备,因为管理员要在交换机和客户端加入一 台计算机并且添加一条记录,否则将无法通信。这就需要提出一种更加全面立体的防御对策。
2.两种主要的防御方案
(1) 使用路由器进行设置
为了防止局域网外部对局域网进行ARP攻击,下面以阿尔法宽带路由器为例介绍基本的路由器ARP表绑定设置。在进行ARP绑定前首先要确定网络是正常运行的,然后再进ARP绑定设置。具体设置如下:首先要启用ARP绑定功能,其次要绑定ARP表。选择“ARP 映射表”。
当确认这个表是正确的,随后进行绑定操作,为了在路由器重启后使这些绑定条目仍然有效,可以选择“全部导入”把这些条目存入静态ARP表,对于这个静态 ARP 映射表,可以进行修改、删除、取消绑定等操作。如果已经知道局域网内主机的MAC 地址,也可以在这里手工输入MAC 地址、IP 地址来添加静态ARP 映射条目。进行绑定置前要确认ARP 缓存表是正确的。尽量手工设置电脑的IP地址,如果是采用DHCP动态获取 IP 地址,以后可能会出现获取到的地址与当前绑定的地址不一致而导致某些电脑不能上网。当更换电脑网卡时要更新静态ARP映射表。否则由于更换了网卡的主机的MAC地址与ARP表中的不一致,也会导致无法上网。
(2)客户端主机进行 ARP 绑定设置
至于个人电脑的绑定设置,可以通过一些软件如AntiARP-DNS,或者一些自己编写的批处理文件使之能够静态绑定ARP缓存表,此外,Windows Vista也提供了这样的功能。下面仅针对大多数用户介绍一种在命令提示符下绑定ARP缓存表的方法。
在本地主机上可以使用 arp a 命令(显示如下***):
这就是主机中的ARP缓存表。其中,“dynamic”代表动态缓存,即这项在收到一个ARP包时会被动态修改。如果更改的ARP缓存表中的“Physical Address”是被欺骗的虚假的信息, 当主机通过ARP缓存表按照提供的MAC地址进行通信时却不能找到正确的通信对象,因此就不能和其他主机正常通信了。所以,我们要手动建立起可信任的ARP缓存表。静态表的建立用arp -s IP MAC命令。
执行“arp s 222.26.12.129 00-e0-fc-49-a9-fb”再次查看 ARP 缓存表(显示如下***):
此时“Type”项变成了“static”静态类型。在这种状态下,在接收到ARP包时也不会改变本地缓存表,从而有效地防止ARP攻击。由于静态的ARP缓存表在每次重启后都会自动恢复原来设置,所以每次开机都需要重新设置。
综上所述,ARP协议自身的缺陷给网络尤其是局域网络的安全带来很大的隐患,我们要高度重视。但是,只要掌握了它的基本原理,就可以从多方面下手,杜绝隐患。
参考文献:
[1] 赖利(Riley,C.),等.ISCO 网络核心技术解析[M].江魁,等,译.北京:水利水电出版社,2005.
[3] 王群.网络安全[M].北京:人民邮电出版社,2007.
[3] 谭敏,杨卫平.ARP 病毒攻击与防范[J].网络安全技术与应用,2008,(4).
转载请注明出处学文网 » 局域网内ARP欺骗的防御与MAC地址绑定的分析