基于ARP协议的欺骗攻击及其防范技术

2010-06-12 08:55崔红霞山东外国语职业学院山东276826
网络安全技术与应用 2010年11期
关键词:局域网IP地址网关

崔红霞山东外国语职业学院 山东 276826

0 前言

近期,ARP欺骗攻击反复袭击,致使因特网用户网络经常断线,上网时出现网络时断时续的现象,甚至长时间无法上网,严重影响了正常网络用户的学习、工作和生活,也给网络管理带来了极大的压力和困扰。而且随着ARP攻击的不断升级,目前一些局域网内发现的“ARP欺骗攻击”系列病毒已经有了几十个变种,因此有效地防范ARP欺骗攻击已成为了保证网络畅通的必要条件。

1 ARP协议概述

1.1 什么是ARP协议

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

1.2 ARP协议的工作原理

在每台安装有TCP/IP协议的电脑里都有一个ARP高速缓存(ARP Cache),里面存放本机目前知道的IP地址到MA地址的映射表。在Windows操作系统的命令行窗口输入"arp-a"命令可查看本机当前的ARP缓存表,ARP缓存表保存的就是IP地址与MAC地址的对应关系,如图1所示。

图1 查看机器的ARP缓存表

下面我们以主机 A(192.168.1.1)向本局域网内的主机B(192.168.1.2)发送数据为例来说明ARP协议的工作原理(如图2)。

当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.2的 MAC 地址是“bb-bb-bb-bb-bb-bb”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己的IP和 MAC地址一起告诉了 B),下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

图2 ARP协议工作原理

2 ARP欺骗攻击的实现过程

2.1 ARP协议的缺陷

ARP协议是建立在信任局域网内所有节点基础上的,它高效,但却存在着不可忽视的安全漏洞。在基于原始的TCP/IP实现中,并不存在对报文信息的真实性校验,ARP报文也不例外,所以无法识别出伪造的ARP报文;它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是不是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文,从而影响网内节点的通信,甚至可以做“中间人”,实施信息的窃取。

2.2 ARP欺骗攻击

ARP欺骗就是指通过伪造假的ARP应答报文,以一个比ARP缓存失效短的时间间隔不停地发送,从而修改目标的ARP缓存表,使得目标在进行IP与MAC的转换时由于先查缓存表而得到一个被欺骗的MAC地址,从而影响报文投向正确的目标物理地址,同时也影响了报文在网络中的传输和被接收情况。

ARP欺骗攻击最早用于盗取密码之用,网内中毒电脑可以伪装成路由器,盗取用户的密码,后来发展成内藏于软件,扰乱其他局域网用户正常的网络通信。

下面我们简要阐述ARP欺骗的原理:

第一步:假设这样一个网络,一个交换机连接了3台机器,依次是计算机A,B,C

A的地址为:IP:192.168.1.1 MAC:AA-AA-AA-AAAA-AA

B的地址为:IP:192.168.1.2 MAC:BB-BB-BB-BBBB-BB

C的地址为:IP:192.168.1.3 MAC:CC-CC-CC-CCCC-CC

第二步:正常情况下,A和C进行通信,在A计算机上运行ARP -A查询ARP缓存表应该出现如下信息:

Interface:192.168.1.1 on Interface 0x1000003

Internet Address Physical Address Type

192.168.1.3 CC-CC-CC-CC-CC-CC dynamic

第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。

B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且 A不知道其实是从 B发送过来的,A这里只有192.168.1.3(C的 IP地址)和无效的 DD-DD-DD-DD-DD-DD MAC地址。

第四步:欺骗完毕我们在A计算机上运行ARP-A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。

Interface:192.168.1.1 on Interface 0x1000003

Internet Address Physical Address Type

192.168.1.3 DD-DD-DD-DD-DD-DD dynamic

此时在主机A上Ping 192.168.1.3,结果当然不能Ping通C,那么A和C也就表现为不能通信了。如果在第三步中B向A发送的伪造ARP应答,MAC地址是BB-BB-BB-BB-BB-BB,那么A发往C的数据就会错误地发送到B,此时,B就可以窃取C的数据。这样就可以实现在一台普通计算机上通过发送 ARP数据包的方法来控制网络中任何一台计算机的上网与否,甚至还可以直接对网关进行攻击,让网络上的计算机发来的数据无法发送到正常网关,无法正常上网,造成这些计算机无法访问外网。而且局域网中所有机器的数据,却都可能流经它,被它窃取。

3 ARP欺骗攻击的判定

ARP欺骗攻击存在时,会出现的现象:网络掉线,但网络连接正常,内网的部分PC机不能上网,或者所有电脑不能上网,无法打开网页或打开网页慢,局域网时断时续并且网速较慢等。如果用户发现网络有这样的一些状况,可以通过以下步骤进行ARP欺骗行为的判定。

(1)检查本地计算机上的ARP缓存列表

点击“开始”菜单,选择“运行”,然后输入“CMD”,点击“确定”按钮,在命令提示符窗口中输入“arp -a”。ARP缓存列表中网关 IP地址所对应的 MAC地址与真正的网关MAC地址不符,一般显示为攻击者本身的MAC地址。

(2)监听数据报

当有ARP攻击的时候,攻击源一般会向本网段内的所有主机发送ARP广播报文。因此可以利用一些网络协议分析工具,如Sniffer、Ethereal、OmniPeek等进行抓包,如果发现有大量的ARP请求报文从某一台机器发出,那么这台机器极有可能就是攻击源。

(3)查看网关ARP缓存

ARP攻击时最主要的攻击对象就是网关。因此可以查看作为网络中网关的路由器或者三层交换机上的 ARP缓存列表,如果有很多个IP地址都指向同一个MAC地址,那么就说明存在 ARP欺骗攻击,这个 MAC地址对应的主机就是ARP攻击源。

(4)检查计算机是否有“ARP欺骗攻击”木马进程

同时按住键盘上的“Ctrl+Shift+Delete”键,选择“任务管理器”,点选“进程”标签,察看其中是否有一个名为“MIR0.dat”的进程。如果有则说明已经中毒(多数ARP欺骗木马的名称都是这个,但也有一些其他的,请仔细辨别),如图3。

图3 MIR0.dat进程

(5)运行 tracert–d命令。如果第一跳显示的不是网关而是其他的IP地址,那么第一跳中显示的IP即为中了ARP病毒计算机的IP地址。

4 ARP欺骗攻击的防范策略

由于ARP欺骗攻击主要利用的是ARP协议自身的安全漏洞,因此没有彻底的方法来防御ARP欺骗攻击。但ARP欺骗攻击也存在一些局限性,如:计算机arp表中的记录一段时间后就会自动刷新,当时间一到或者正确的网关发出正确的信息之时,受欺骗的计算机就能得到正确的信息,待到ARP病毒再次攻击。所以,我们可以通过一些安全策略来提高网络的安全性,使欺骗攻击对网络正常运行的影响最小化。通常我们可以使用下面的一些方法来积极防范和解决ARP欺骗攻击。

4.1 已经受到 ARP欺骗攻击的计算机临时上网解决方法

第一步,首先进入命令行模式。然后运行arp –a命令,该命令是查看当前 arp表,可以确认网关 IP地址和对应的MAC地址是否与已知的网关的IP地址和MAC地址一致。如果不一至就说明该主机已被欺骗,会造成用户无法上网。而被欺骗的电脑可能会出现多个IP对应同样的MAC,如图4所示,可以看出192.168.1.1地址和192.168.1.252地址对应的 MAC地址都是 00-0f-3d-83-74-28,很显然,这就是 arp欺骗造成的。这个时候记住要记下那个IP对应的错误MAC地址,这个地址很可能就是中了木马的电脑,以方便接下来的查杀。

第二步,确认之后,可以输入arp -d命令,以删除当前计算机的arp表,方便重新建立arp表。

第三步,接下来可以绑定正确的 arp网关。输入 arp-s***.***.***.***(网关 IP) **-**-**-**-**-**(网关 MAC)。

第四步,再用arp -a查看,这时,类型变为静态(static),就不会再受攻击影响了。

4.2 预防ARP欺骗攻击

预防ARP欺骗攻击,减小ARP病毒对网络造成的影响,应注意以下几个方面:

(1)安全上网意识。用户要增强网络安全意识,不要轻易下载、使用盗版和存在安全隐患的软件;或浏览一些缺乏可信度的网站;不要随便打开不明来历的电子邮件,尤其是邮件附件;不要随便共享文件和文件夹,即使要共享,也得设置好权限,一般指定特定账号或特定机器才能访问,另外不建议设置可写或可控制,以免个人计算机受到木马病毒的侵入给网络的安全带来隐患。

(2)软件防护。及时下载和更新系统补丁程序,安装使用防病毒软件(如金山毒霸、瑞星等)和网络防火墙,并及时更新病毒库。网络防火墙在防病毒过程中也可以起到至关重要的作用,能有效地阻挡来自网络的攻击和病毒的入侵,防范ARP协议欺骗。安装常见的防范ARP欺骗攻击的工具软件。针对 ARP欺骗攻击出现了一些可以保护客户端的网关MAC地址不被修改的工具软件,并且报警当前是哪个MAC地址在攻击网络。如 Antiarp,WinArpAttacker,OmniPeek等网络协议分析软件。

(3)采用静态绑定方法。即用 arp-s命令在各主机上绑定网关的 IP和 MAC地址,同时在网关上绑定各主机的IP和 MAC地址。如果是 Windows系统主机可编写一个名为rarp。Bat的批处理文件,内容如下:

@echo off

arp-d

arp-s ***.***.***.***(网关 IP)**-**-**-**-**-**(网关MAC)

实际操作时,文件中的将网关IP地址和MAC地址应改为用户所在的网关IP地址和MAC地址。

若想让系统每次启动时都能自动的加载静态ARP,则可将这个批处理软件拖到“windows--开始--程序--启动”中。采用这样双向绑定的方式是比较保险的,但使用静态 ARP缓存增大了网络维护量,在较大或经常移动主机的网络中这样做工作量大,不易维护。而且,使用静态ARP缓存只能防止ARP欺骗,对IP地址冲突、Flood攻击仍然没有办法阻止。

(4)使用具有ARP防护功能的网络设备。近年来,基于病毒的ARP攻击愈演愈烈,各网络设备厂家也积极应对ARP欺骗攻击的特点提供了相应的解决策略。如在锐捷S21系列二层交换机上可以通过开启 Anti-ARP-Spoofing功能,防止同一网段内针对用户的ARP欺骗攻击;神州数码网络公司从客户端程序、接入交换机、汇聚交换机,一直到网关设备,都研发了ARP攻击防护功能,客户可根据自己网络的特点,灵活选取相关网络设备和方案。其他厂家的设备也有类似功能。

(5)可采用Super VLAN或PVLAN技术,所谓Super VLAN,也叫VLAN聚合,这种技术在同一个子网中化出多个 Sub VLAN,而将整个 IP子网指定为一个 VLAN聚合(Super VLAN),所有的Sub VLAN都使用Super VLAN的默认网关IP地址,不同的Sub VLAN仍保留各自独立的广播域。子网中的所有主机只能与自己的默认网关通信。如果将交换机或IP DSLAM设备的每个端口化为一个Sub VLAN,则实现了所有端口的隔离,也就避免了ARP欺骗。

PVLAN即私有VLAN(Private VLAN),PVLAN采用两层VLAN隔离技术,只有上层VLAN全局可见,下层VLAN相互隔离。如果将交换机或IP DSLAM设备的每个端口化为一个(下层)VLAN,则实现了所有端口的隔离。

5 结束语

由于ARP协议存在安全方面的固有缺陷,所以我们只有清楚地了解该协议的工作原理和其漏洞之后,我们才能够有效地检测和防御相应的欺骗攻击。本文通过分析ARP协议的工作原理,探讨了基于 ARP协议漏洞的欺骗攻击的实现过程,提出了多种可行的安全防御策略。要全面而有效地防范ARP欺骗攻击,一般需要多种方案配合使用。如果要从根本上解决这一问题,最好的方法将是重新设计一种安全的地址解析协议。IPV6中就采用了更加安全的方式(通过 ND(Neighbor Discovery邻居发现)协议取代了ARP协议)来解决这一问题。

[1]Angus Mackinnon,Tony MoGregor,and James Breen. Overview of Internet Protocol Security.Technical Report 94-10. Monash University.Australia.October 27.1994.

[2]谢希仁.计算机网络[M].电子工业出版社.2008.

[3]杨玮莹,局域网中的ARP欺骗[J].黑龙江科技信息.2008.

[4]田维珍,窦为伟,庞雄昌.ARP欺骗攻击防控方法研究[J].计算机与信息技术.2010.

[5]http://publish.it168.com/2004/0316/200403160005101.shtml.

[6]http://network.51cto.com/art/200509/3644.htm.

[7]李成友,韩昧华.因特网协议中地址解析的欺骗问题研究[J].网络安全技术与应用.2010.

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