
李淑君1 许爽2 白亮3
(1郑州轻工业学院,河南 郑州,450002
2中州大学,河南 郑州,450044
3电子科技集团公司第二十七研究所,河南 郑州,450015)
摘要 ARP协议欺骗作为一种交换式局域网中获取数据信息的方法,当用作攻击手段时,给网络安全带来了严重威胁。本文通过分析ARP协议的原理及ARP欺骗的原理,设计了防御ARP病毒的方法。
关键词: 地址解析协议;ARP欺骗;MAC地址;
The Spoofing Principle And Defense Technology of ARP
Li Shu Jun1 ,Xu Shuang2 Bai Liang3
(1 Zhengzhou Univercity of Light Industry, Zhengzhou Henan 450002,China
2 Zhongzhou Univercity ,Zhengzhou Henan 450044,China
3 The 27th Research Institute of Electronics Technology Corp ,Zhengzhou Henan 450015,China)
Abstract : When ARP spoofing is used as an attack mean, it brings serious threats to the security of LAN. This paper analyzes the principle of ARP protocol and ARP spoofing . A method is designed to defense ARP spoofing packets.
Key words: ARP; ARP spoofing;MAC address;
1. ARP协议简介
ARP,在数据链路层,在本层和硬件接口联系,同时对上层提供服务。IP数据包常通过以太网发送。以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必全称Address Resolution Protocol,中文名为地址解析协议,它工作须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。
2. ARP协议的工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表[1],表里的IP地址与MAC地址是一一对应的,如附表所示。
| 主机 | IP地址 | MAC地址 |
| A | 192.168.1.1 | 00-aa-00-62-c6-09 |
| B | 192.168.1.2 | 00-aa-00-62-c5-03 |
| C | 192.168.1.3 | 00-aa-01-62-c3-06 |
以主机H(192.168.1.5)向主机A(192.168.1.1)发送数据为例。当发送数据时,主机H会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机H就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机A接收到这个帧时,才向主机H做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机H就知道了主机A的MAC地址,它就可以向主机A发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机A发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
3. ARP欺骗的原理及防范措施
3.1 ARP欺骗的原理
ARP欺骗的原理如下: 假设这样一个网络,一个Hub接了3台机器 HostA HostB HostC 其中A、B、C的IP地址和MAC地址分别为表1所示。
正常情况下 C:arp -a
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 00-aa-01-62-c3-06 dynamic
现在假设HostB开始了ARP欺骗: B 向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.3(C的IP地址),MAC地址是DD-DD-DD- DD-DD-DD(C的MAC地址本来应该是00-aa-01-62-c3-06,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP 缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.1.3(C的IP地址)和无效的DD-DD-DD-DD- DD-DD mac地址,没有和B相关的证据。
现在A机器的ARP缓存更新了:
C:>arp -a
Interface: 192.168.10.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 DD-DD-DD-DD-DD-DD dynamic
局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输[2]。现在192.168.1.3的MAC地址在A上被改变成一个本不存在的MAC地址。现在A开始Ping 192.168.1.3,网卡递交的MAC地址是DD-DD-DD-DD-DD-DD,结果是什么呢?网络不通,A根本不能Ping通C。
从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
3.2防范措施
1. 建立DHCP服务器(建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,因为网关这里有监控程序的,网关地址建议选择192.168.10.2,把192.168.10.1留空),另外所有客户机的 IP地址及其相关主机信息,只能由网关这里取得[3],网关这里开通DHCP服务,但是要给每个网卡,绑定固定唯一IP地址。 一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。
2.建立MAC数据库,把局域网内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。
3.网关机器关闭ARP动态刷新的过程,使用静态路由,这样的话,即使ARP欺骗攻击网关的话,对网关也是没有用的,因此可以确保主机安全。
网关建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local最后添加:arp -f 生效即可 。
4.网关监听网络安全。网关上面使用抓包程序截取每个ARP程序包,用脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一可视为攻击包报警:第一以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。
或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC/IP不匹配。这些统统第一时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道哪台机器在发起攻击了。
5.使用支持端口隔离的二层交换机。通过端口隔离特性,可以将不同用户的端口划分到同一个VLAN[4],不同用户之间不能互通,从而增强了网络的安全性,阻止了ARP病毒源的机器对网络的影响,提供了灵活的组网方案,同时节省了大量的VLAN资源。
6.安装杀毒软件,及时升级病毒库,定期全网杀毒。
综上所述,ARP欺骗的防范手段很多,但并没有一种完美的方法可以解决ARP欺骗。实际应用中应该结合使用以上两种或两种以上的方法来进行ARP欺骗的防范。
4. 结论
A R P本身不能造成多大的危害,但是,一般都与木马病毒综合运用,其危险性就不可估量了。A R P地址欺骗类病毒发作时,通常会造成网络掉线,但网络连接正常,内网的部分电脑不能上网,或者所有电脑均不能上网,无法打开网页或打开网页慢以及局域网连接时断时续并且网速较慢等现象,严重影响到企业网、网吧、校园网等局域网的正常运行,必须引起我们足够重视。
参考文献:
[1] 陈明.网络协议教程[M].北京:清华大学出版社, 2004
[2] 杨义先等.网络安全理论与技术[M].人民邮电出版社.2003.
[3] 龚俭、杨望.计算机网络安全导论(第二版)》,东南大学出版社.2007
[4] Kenneth D,Reed.TCP/IP基础[M].北京:电子工业出版社,2002
