首页 > 理工 > 计算机

ARP 欺骗在局域网中的分析及全面防御

【关键词:计算机网络】 
【摘要】本文将对近期校园局域网种频繁发生的ARP欺骗基本原理进行介绍,并且通过网关 等实际生活中的例子加以解释,同时介绍几种常见的ARP欺骗和攻击方式,并且从客户端、 网关等多个方面提出关于如何防御ARP攻击的多种方法,以达到全面防御维护局域网络安全 的目的。

关键词:地址解析协议,介质访问控制,网络安全

Abstract

In this paper , a fraudulent action which was called ARP Cheating happens frequently in the LAN of campus . The basis on the elements will be introduced and explained through the example of gateway and so on . At the same time, a few familiar manners of ARP cheating will be introduced . Finally , it will bring forward some methods in different angle by which we will built a more secure environment of the LAN.

Keywords:Address Resolution Protocol,MAC Address,ARP Cheating,security of network

1. 引言

ARP欺骗是一种利用计算机病毒是计算机网络无法正常运行的计算机攻击手段。 近期,一种叫“ARP 欺骗”的木马病毒在校园网中扩散,严重影响了校园网的正常运行。

感染此木马的计算机试图通过“ARP 欺骗”手段截获所在网络内其它计算机的通信信息,并 因此造成网内其它计算机的通信故障。ARP欺骗木马的中毒现象表现为:使用校园网时会突 然掉线,过一段时间后又会恢复正常。比如出现用户频繁断网,IE浏览器频繁出错等现象。 如果校园网需要通过身份认证的,会突然出现认证信息(无法ping通网关)。重启机器或在

MS-DOS窗口下运行命令arp -d后,又可恢复上网。这种木马危害也很大。各大学校园网、 公司网和网吧等局域网都出现了不同程度的灾情。ARP欺骗木马只需成功感染一台电脑,就 可能导致整个局域网无法上网,严重的可能带来整个网络的瘫痪。此外,此木马还会窃取用 户密码,如盗取QQ密码、网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法 交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。

2. ARP与MAC

ARP(Address Resolution Protocol)[1]是地址解析协议的简称,是一种将 IP 地址转化为 物理地址的协议。在 OSI 网络参考模型的第二层(数据链路层)中,存在着两个子层:介 质访问控制(MAC)和逻辑链路控制(LLC)。由 MAC 子层提供的最广为认知的服务或许 就是它的地址了,就像以太网的地址一样。在以太网中,数据传输的目的地址和源地址的正 式名称是 MAC 地址。此地址大多数情况下是独一无二的固化到硬件设备上的,而 IP 地址 所要转化的物理地址就是 MAC 地址。[2]

在网络数据传输中实际传输的是“帧”(Frame),它以比特流的方式通过传输介质传输出 去,其中帧里面就包含有所要传送的主机的 MAC 地址。在以太网中一台主机要同另一台主 机进行通信就必须要知道对方的 MAC 地址(就如同我们要给对方邮信一定要知道对方的地 址一样)。但是我们如何知道这个 MAC 地址呢?这时就用到了地址解析协议,所谓“地址 解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。ARP 协议的基本功 能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。

每台安装有 TCP/IP 协议的计算机主机里都有一个 ARP 缓存表,表中的 IP 地址与 MAC

地址是一一对应的,如表 1 所示:

表 1 地址解析协议缓存地址表

值得注意的一点是:ARP 缓存表采用了一种老化机制,在一定的时间内如果某一条记

录没有被使用过就会被删除。这样可以大大减少 ARP 缓存表的长度,加快查询速度。 首先根据上表用两个主机通过一个网关进行通信的例子说明一下:假设当主机 A

(192.168.10.1)向主机 B(192.168.10.2)发送数据时,主机 A 首先会在自己的 ARP 缓存 表中查找是否存在“IP = 192.168.10.2”的记录。若找到就会根据 ARP 缓存表中 IPMAC 的 对应关系找到主机 B 的“MAC 地址 = bb-bb-bb-bb-bb-bb”。但是如果主机 A 没有在表中找到 主机 B 的 IP 地址,那么主机 A 机就会向网络发送一个 ARP 协议广播包,这个广播包里面 就有待查询的主机 B 的 IP 地址,而直接收到这份广播包的所有主机都会查询自己的 IP 地址 是否与之匹配。如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自

己 MAC 地址的 ARP 包传送给发送 ARP 广播的主机。广播主机接收到 ARP 包后会更新自 己的 ARP 缓存表。发送广播的主机就会用新的 ARP 缓存数据准备好数据链路层的数据包发 送工作。这样主机 A 就得到了主机 B 的 MAC 地址,它就可以向主机 B 发送信息了。

3. ARP 欺骗和攻击方式

3.1 简单的欺骗攻击

这种欺骗方式是指:欺骗主机通过发送伪造的 ARP 包来欺骗网关和目标主机,让目标 主机认为这是一个合法的主机。其中包括两种情况:

① 局域网主机冒充网关进行欺骗

欺骗过程如图 1 所示:当 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,那么

就会如同我们邮寄信件时写错了地址,信件或者是发错了地方,或者是根本就发送不出去。

这样一来就会造成断线。

图 1 简单的主机对主机通过网关连接图

网络中通讯有一个前提条件,也就是必须满足通讯双方都能向对方传送数据才会确保正

常通讯,即:确保 PC_A GW_C 和 GW_C PC_A 的通讯都没有问题时,才能确保通讯 正常。假如 PC_B 冒充 PC_A,告诉 GW_C,PC_A 的 MAC 是 MAC B,那么就会出现:当 PC_A GW_C 时没有问题,可是当 GW_C PC_A 时就回出错,造成网络断线的现象。

3.2 基于 ARP 的“中间人攻击”

MITM (Man-In-The-Middle)称为“中间人攻击”,是一种“间接”的入侵攻击方式。这种攻 击是利用一定手段在两台或多台主机之间人为的加入一台透明主机,(这对其他用户是透明 的)这台主机就称为“中间人”。“中间人”能够与原始主机建立连接、截获并篡改它们的通信 数据。由于“中间人”对于原通信双方是透明的,使得“中间人”很难被发现,也就使得这种攻 击更加具有隐蔽性。而其中“中间人”常用的一种手段就是通过 ARP 欺骗的方式来实现的。 基本欺骗过程如图 2 所示:

图 2 MITM“中间人攻击”示意图

假设有同一网段内的三台主机 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 之间的网络连接中断。

3.3 MAC 洪泛现象

MAC Flooding 可以称之为 MAC 洪泛现象。其中 flooding 是一种快速散布网络连接设备

(如交换机)更新信息到整个大型网络打每一个节点的一种方法。交换机中也存放着一个 ARP 缓存表。同主机中的 ARP 缓存表相同,它也起到记录网络设备 MAC 地址与 IP 地址的 对应关系的功能。但是交换机中的 ARP 缓存表的大小是固定的,这就导致了 ARP 欺骗的另 一种隐患:由于交换机可以主动学习客户端的 MAC 地址,并建立和维护这个 ARP 缓存表, 当某人利用欺骗攻击连续大量的制造欺骗 MAC 地址,ARP 缓存表就会被迅速填满,同时更 新信息以洪泛方式发送到所有的接口,也就代表 TRUNKING(所谓 TRUNKING 是用来在 不同的交换机之间进行连接,以保证在跨越多个交换机上建立的同一个 VLAN 的成员能够 相互通讯。[3])的流量也会发给所有的接口和邻近的交换机,会导致其他交换机的 ARP 表 溢出,造成交换机负载过大,网络缓慢和丢包甚至瘫痪。所以说 MAC Flooding 是一种比较

危险的攻击,严重会使整个网络不能正常通信。3.4 基于 ARP 的 DoS 攻击

DoS(Denial of Service)中文为,拒绝服务攻击。DoS 攻击的目的就是让被攻击主机拒绝 用户的服务访问,破环系统的正常运行。最终使用户的部分 Internet 连接和网络系统失效。

[4]基于 ARP 的 DoS 攻击是新出现的一种攻击方式。它的基本原理是:攻击者利用 ARP 欺骗 工具,不断向被攻击主机发送大量的连接请求,由于遭到 ARP 欺骗的主机不能够根据 ARP 缓存表找到对方主机,加之主机的处理能力有限,使得它不能为正常用户提供服务,便出现 拒绝服务。在这个过程中,攻击者可以使用 ARP 欺骗方式来隐藏自己,这样在被攻击主机 的日志上就不会出现攻击者真实的 IP 地址。被攻击主机不能根据日志上提供的 IP 地址找到 正真的攻击者。所以在攻击的同时,不会影响到本机,具有很强的隐密性。

以上几种欺骗方式中,第一种最为常见,攻击者通常利用 ARP 木马病毒进行攻击。但 是从本质上看,所有的欺骗方式都是一样的,都是利用 ARP 缓存表的老化机制使得 ARP 欺 骗有机可乘。

4. ARP 欺骗解决方案

4.1 DHCP 结合静态捆绑法

DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写。要想彻底避

免 ARP 欺骗的发生,我们需要让每台计算机的 MAC 地址与 IP 地址唯一且对应。虽然我们 可以通过为每台计算机设置 IP 地址的方法来管理网络,但是对于那些通过 ARP 欺骗非法攻 击的用户来说,他可以事先自己手动更改 IP 地址,这样检查起来就更加复杂了。

这就需要进行 IP 与 MAC 的双向绑定,也就是说在网关的交换机处静态绑定用户的 MAC

地址和 IP 地址的同时,在客户端静态绑定网关 MAC 地址和 IP 地址以及同一网段的 IP 地址

和 MAC 地址,使之不再动态学习。但这只是一个理想的解决方案,因为这样会大大加重网 络管理的负担。网络管理员要非常熟悉交换机设备,因为管理员要在交换机和客户端加入一 台计算机并且添加一条记录,否则将无法通信。这就需要提出一种更加全面立体的防御对策。

4.2 几种主要的防御方案

4.2.1 使用交换机进行设置

从交换机的角度,以 Cisco 解决方案为例。思科 Dynamic ARP Inspection (DAI)在交换 机上提供 IP 地址和 MAC 地址的绑定,并动态建立绑定关系。DAI 以 DHCP Snooping 绑定 表为基础,对于没有使用 DHCP 的服务器个别机器可以采用静态添加 ARP access-list 实现。 DAI 配置针对 VLAN,对于同一 VLAN 内的接口可以开启 DAI 也可以关闭。通过 DAI 可以 控制某个端口的 ARP 请求报文数量。这样可以有效地提高网络安全性和稳定性。

配置示例: 网际操作系统(IOS)全局命令:

ip dhcp snooping vlan 100,200 /*交换机可以通过 dhcp snooping 功能监听 dhcp 广播报文,记 录用户的 ip 地址信息。

no ip dhcp snooping information option ip dhcp snooping

ip arp inspection vlan 100,200 /* 定义对哪些 VLAN(虚拟局域网)进行 ARP 报文检测。

ip arp inspection log-buffer entries 1024

ip arp inspection log-buffer logs 1024 interval 10

网际操作系统接口命令:

ip dhcp snooping trust

ip arp inspection trust /*定义哪些接口是信任接口,通常是网络设备接口, TRUNK 接口等。

ip arp inspection limit rate 15 (pps) /* 检查限制接口每秒 ARP 报文数量(15 脉冲/秒)。 对于没有使用 DHCP 设备可以采用下面办法:

arp access-list static-arp /*设置静态 ARP 访问表

permit ip host 192.*.*.* mac host a-a-a-a-a-a/*将 ip 地址 192.*.*.*与 mac a-a-a-a-a-a 静态绑定

ip arp inspection filter static-arp vlan 201

配置 DAI 后的效果:

由于 DAI 检查对 DHCP snooping 绑定表中的 IP 和 MAC 对应关系,所以无法实施中间 人攻击,攻击工具失效。图 3 为实施中间人攻击时交换机的警告:

图 3 中间人攻击时交换机的警告

由于对 ARP 请求报文做了速度限制,客户端无法进行认为或者病毒进行的 IP 扫描、探

测等行为,如果发生这些行为,交换机马上报警或直接切断扫描机器。如图 4 所示:

图 4 交换机警报并切断端口过程

用户获取 IP 地址后,不能修改 IP 或 MAC。如果用户同时修改 IP 和 MAC 必须是网络

内部合法的 IP 和 MAC 才可,对于这种修改可以使用 IP Source Guard 技术来防范。图 5 为 手动指定 IP 地址的报警:

图 5 手动指定 IP 地址的报警

为了防止局域网外部对局域网进行 ARP 攻击,下面以阿尔法宽带路由器为例介绍基本

的路由器 ARP 表绑定设置。在进行 ARP 绑定前首先要确定网络是正常运行的,然后再进行

ARP 绑定设置。具体设置如下:

⑴ 启用 ARP 绑定功能。默认下该定功能是关闭的,首先打开路由器的管理界面,选择

“MAC 地址绑定”。打开如图 6 所示的界面,勾中“启用 ARP 绑定”,点击“保存”。

图 6 启用 ARP 绑定设置

⑵ 绑定 ARP 表。选择“ARP 映射表”,会打开如下界面(如图 7):

图 7 ARP 映射表可以看到当前路由器自动获取的局域网内电脑的 IP 地址与 MAC 地址的映射表。如果

确认这个表是正确的(即所有的电脑都可以正常上网、MAC 地址没有重复,这个表一般就 没有错误了。),可以选择某个条目后面的“绑定”操作进行单独的 MAC 地址绑定,也可通 过点击“全部绑定”把 ARP 表中的所有条目绑定。如果绑定成功就会看到“状态”项从“未绑定” 变为“已绑定”。为了在路由器重启后使这些绑定条目仍然有效,可以选择“全部导入”把这些 条目存入静态 ARP 表,打开“ARP 静态绑定设置”(如图 8 所示)可以看到一个静态的 ARP 映射表已经建立。

图 8 对 ARP 映射表绑定

对于这个静态 ARP 映射表,可以进行修改、删除、取消绑定等操作。点击条目右边的“修

改”就可以修改该条目的 IP 地址、MAC 地址和绑定状态。点击“删除”可删掉该条目。可以 点击“取消所有绑定”可把 ARP 表中的所有绑定条目暂时取消,当需要的时候点击“绑定所有 条目”就可以重新绑定这些条目。当不再需要这个静态 ARP 表时,点击“删除所有条目”则可 以删除整个 ARP 表。。如果已经知道局域网内主机的 MAC 地址,也可以在这里手工输入 MAC 地址、IP 地址来添加静态 ARP 映射条目。如图 9 所示:

图 9 手工设置 IP 地址注意事项:

① 进行绑定置前要确认 ARP 缓存表是正确的。

② 尽量手工设置电脑的 IP 地址,(如图 9)如果是采用 DHCP 动态获取 IP 地址,以 后可能会出现获取到的地址与当前绑定的地址不一致而导致某些电脑不能上网。

③ 当更换电脑网卡时要更新静态 ARP 映射表。否则由于更换了网卡的主机的 MAC 地 址于 ARP 表中的不一致,也会导致无法上网。

4.2.3 客户端主机进行 ARP 绑定设置

至于个人电脑的绑定设置,可以通过一些软件如:AntiARP-DNS,或者一些自己编写的 批处理文件使之能够静态绑定 ARP 缓存表,此外 Windows Vista 也提供了这样的供能。下 面仅针对大多数用户介绍一种在命令提示符下绑定 ARP 缓存表的方法。

在本地主机上可以使用 arp –a 命令,显示如图 10:

图 10 命令提示符中运行 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 缓存表:(如图 11)

图 11 命令提示符中静态绑定 arp 缓存表后显示

此时“Type”项变成了“static”静态类型。在这种状态下,在接受到 ARP 包时也不会改变

本地缓存表,从而有效的防止 ARP 攻击。由于静态的 ARP 缓存表在每次重启后都会自动恢 复原来设置,所以每次开机都需要重新设置。

这就为我们提供了一个新的思路:其一,可以将利用 ARP 静态绑定的软件来提前设置 绑定表,并将其加入系统启动项目里。这样,我们每次启动电脑时都会自动运行 ARP 静态 绑定程序,以达到保护客户端的目的。其二,可以编写一个简单实用的 dat 文件,添入启动 项中。这样,运行之后程序会自动结束,不占用内存资源。不失为一种简单实用的方法。 除此之外,会话加密也很重要。[5]我们不应该把网络安全的信任关系完全建立在 IP 地 址或硬件 MAC 地址的基础上,而是应该对所有要传输的重要数据进行加密,然后再进行传

输。这样,即使我们传输的数据被其他主机恶意监听,也无法获得切实有用的信息。

综上所述,ARP协议自身的缺陷虽然给网络安全,尤其是局域网络的安全带来很大的隐

患,所以我们要高度引起重视。但是只要掌握了它的基本原理,就可以从多方面下手,杜绝 隐患。普通的一种方法也许不能够完全杜绝这种网络传输中所带来的隐患,只有在客户端、 各个网关和服务器端同时建立起有效的立体防御机制,才能有保证网络安全。

参考文献

[1]  免费论文网http://www.100paper.com

[2] [美]赖利(Riley,C.)等著.ISCO 网络核心技术解析[M].江魁等译.北京:水利水电出版社,2005.

[3] Trunking[EB/OL].http://zhidao.baidu.com/question/37275192.html,2007-10-21 .

[4] 王群.非常网管.网络安全[M].北京:人民邮电出版社,2007.4.

[5] 谭敏 杨卫平.ARP 病毒攻击与防范[J].网络安全技术与应用,2008.4
更多 >>
热门分类
推荐文章