局域网ARP分析论文

时间:2022-03-12 08:58:00

局域网ARP分析论文

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

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

Abstract

Inthispaper,afraudulentactionwhichwascalledARPCheatinghappensfrequentlyintheLANofcampus.Thebasisontheelementswillbeintroducedandexplainedthroughtheexampleofgatewayandsoon.Atthesametime,afewfamiliarmannersofARPcheatingwillbeintroduced.Finally,itwillbringforwardsomemethodsindifferentanglebywhichwewillbuiltamoresecureenvironmentoftheLAN.

Keywords:AddressResolutionProtocol,MACAddress,ARPCheating,securityofnetwork

1.引言

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

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

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

2.ARP与MAC

ARP(AddressResolutionProtocol)[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地址是MACB,那么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是MACB,那么就会出现:当PC_AGW_C时没有问题,可是当GW_CPC_A时就回出错,造成网络断线的现象。

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

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

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

假设有同一网段内的三台主机A,B,C。主机A,B为合法主机,C为“中间人”攻击者。

如果主机C分别向主机A和C发送假消息,即:告诉主机A,主机C的MAC地址是MACB,同时告诉主机B,主机C的MAC地址是MACA。这样主机C就成功地成为了A与B的“中间人”。那么A,B间正常的直接通信也会随之中断。取而代之的是A,B间每次进行信息交互时都要经过主机C。这样,主机C就可以有办法监听A与B之间的通信,达到监听的目的了。如果C不转发A与B之间的通信,就会造成主机A,B之间的网络连接中断。3.3MAC洪泛现象

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

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

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

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

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

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

4.ARP欺骗解决方案

4.1DHCP结合静态捆绑法

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

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

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

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

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

4.2几种主要的防御方案

4.2.1使用交换机进行设置

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

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

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

noipdhcpsnoopinginformationoptionipdhcpsnooping

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

iparpinspectionlog-bufferentries1024

iparpinspectionlog-bufferlogs1024interval10

网际操作系统接口命令:

ipdhcpsnoopingtrust

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

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

arpaccess-liststatic-arp/*设置静态ARP访问表

permitiphost192.*.*.*machosta-a-a-a-a-a/*将ip地址192.*.*.*与maca-a-a-a-a-a静态绑定

iparpinspectionfilterstatic-arpvlan201

配置DAI后的效果:

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

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

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

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

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

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

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

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

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

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

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

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

“MAC地址绑定”。打开如图6所示的界面,勾中“启用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缓存表,此外WindowsVista也提供了这样的供能。下面仅针对大多数用户介绍一种在命令提示符下绑定ARP缓存表的方法。

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

图10命令提示符中运行arp-a

这就是主机中的ARP缓存表。其中“dynamic”代表动态缓存,即这项在收到一个ARP

包时会被动态修改。如果更改的ARP缓存表中的“PhysicalAddress”是被欺骗的虚假的信息,当主机通过ARP缓存表按照提供的MAC地址进行通信时却不能找到正确的通信对象,因此就不能和其他主机正常通信了。所以,我们要手动建立起可信任的ARP缓存表。静态表的建立用arp-sIPMAC命令。

执行“arp–s222.26.12.12900-e0-fc-49-a9-fb”再次查看ARP缓存表:(如图11)

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

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

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

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

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

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

参考文献

[1]免费论文网

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

[3]Trunking[EB/OL]./question/37275192.html,2007-10-21.

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

[5]谭敏杨卫平.ARP病毒攻击与防范[J].网络安全技术与应用,2008.4

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