安全之道:掌握ARP协议 防范ARP攻击

安全 黑客攻防
不可否认,计算机网络是人类伟大的发明,它给人们带来了便利,创造了价值,提高了效率,提供了快乐。不知不觉中,人们已经不再习惯没有网络的工作生活。

不可否认,计算机网络是人类伟大的发明,它给人们带来了便利,创造了价值,提高了效率,提供了快乐。不知不觉中,人们已经不再习惯没有网络的工作生活。有了网络,你我可以随心所欲地浏览全世界的资讯新闻,快捷地收发邮件信息,与远在千里之外的人分享资源,坐在家里买卖商品,使地球村成为可能,这些都已经成为了很多人生活的一部分。但人们在发明计算机网络之初,只是考虑到了网络的互联互通,而没有考虑到安全性。这其中有一个比较重要的网络协议ARP,没有它,IPV4网络就无法正常工作,但很多安全问题又因它而起。今天我们就对ARP协议做一些介绍,希望大家能对ARP协议有一个较为正确的认识。

ARP协议:

为了工作需要,很多企业都会建立自己的企业内网,我们称之为局域网,如政府部门、机关单位、学校宿舍都对以太网情有独钟。在这种网络中有两种地址,一种是IP地址,它是由软件分配的,可以改变,工作于OSI参考模型的第三层;另一种是MAC地址,也称为网卡地址,是存储在种个网卡的,是不可改变的,工作于OSI参考模型的第二层。局域网中的每一台计算机都具有这两种地址。

按照OSI封装、解封装的工作过程,必须实现这两种地址之间的转换,这中间需要用到ARP以及RARP协议,当然我今天的重点是ARP。

ARP协议,又称为地址解析协议,英文全称是(Address Resolution Protocol)是属于TCP/IP协议族的。它的主要作用是网络地址转换。

在局域网中,当一台主机把以太网数据帧发送到另一台主机时,是根据48bit以太网地址来确定目的接口的。网络中实际传输的每一帧里包含有目标主机的介质访问控制子层(Media Access Control,MAC)地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。而MAC地址可以通过地址解析协议获得。所谓“地址解析”就是在IP地址和采用不同网络技术的硬件地址之间提供的动态映射。ARP协议就是用来获取目的主机的MAC地址的。需要获取的主机MAC地址,是存储在网络传输数据帧中的。

当然,还有另外一个协议是RARP,叫做反向地址解析协议(Reverse Address Resolution Protocol,RARP),其作用是将MAC地址转换为IP地址。

ARP缓存表:

为了提高通信的效率,网络上每台主机都有一个ARP缓存表,这也是ARP高效运行的关键所在。缓存表中存放了最近的Internet地址到硬件地址之间的映射记录。用户可以使用arp–a命令查看本机ARP缓存内容。以主机A向主机B发送数据为例,当发送数据时,主机A会在本机的ARP缓存表中寻找是否有目标IP地址。如寻找到,将目标主机MAC地址写入以太网帧首部加入到输出队列等候发送;否则,主机A就会在网络上发送一个ARP请求广播,询问同一网段内主机B的MAC地址。网络上其他主机并不响应该ARP询问,只有主机B的ARP层收到这份报文后,才会向主机A发送一个ARP应答,告知其MAC地址为“00-E0-4C-87-DD-D2”

此时,主机A将获得主机B的MAC地址,就可以向主机B发送信息。在发送信息的同时更新本机的ARP缓存表,以便下次再向主机B发送信息时,直接从ARP缓存表里查找。每台在第一次登录网络建立网络连接时,都要发送ARP广播包;如果要访问的主机的IP地址和MAC地址在本机ARP缓存表中不存在,也将向网络发送ARP请求。由此可以根据每个用户的既定访问权限信息对主机的ARP缓存表作相应改变,从而达到访问控制的目的。

但考虑到网络的实时变化,ARP高速缓存中的记录不是一承不变的,而是是动态变化的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加当前项目。ARP缓存采用老化机制,在一段时间内如果表中的某一行没有被使用,该行就会被删除,如此可以大大缩小ARP缓存表的长度,加快查询速度。因此,访问控制要求所进行的ARP缓存改变必须进行定时刷新,从而适应ARP缓存老化机制。#p#

ARP攻击(网络侦听):

在网络中,当信息进行传播的时候,通过某种方式将其截获或者捕获,从而进行分析处理,称之为网络监听。网络监听在网络中的任何一个位置模式下都可实施。用户只需要一个协议分析软件即可实现。

1)信息发送。Ethernet网协议的工作方式是将要发送的数据报发往连接在一起的所有主机。包头中包括有应该接收数据报的主机的正确地址。要发送的数据报必须从TCP/IP协议的IP层交给数据链路层,在这个过程中,采用ARP将网络地址翻译成48bit的MAC地址。

2)信息接收。Ethernet中填写了物理地址的帧经网卡发送到物理线路上。当使用集线器的时候,发送出去的信号到达集线器,由集线器再转发到相连接的每一条线路。当数字信号到达一台主机的网络接口时,正常状态下,网络接口对读入数据帧进行检查,决定是否将数据帧交给IP层软件。但是,当主机工作在监听模式下时,所有的数据帧都将被交给上层协议软件处理。以太网卡典型地具有一个“混合模式(Promiscuous)”选项,能够关掉过滤功能而查看经过它的所有数据报。这个混合模式选项恰好被数据报监测程序利用来实现它们的监听功能。

ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。

通过数据报截获分析,系统探测到非法主机登录网络或者试图访问,系统将根据合法主机IP信息,构造虚假MAC地址,使用特定线程对非法主机进行持续欺骗。根据实际运行情况,考虑到网络负担以及系统性能,欺骗信息连续发送时间可为2~5min,每轮间隔为10~20s。系统运行所得结果如下图所示:

▲被攻击后的ARP缓存表

ARP攻击防范:

1、双向绑定:

一般来说,在小规模网络中,大家比较推荐使用双向绑定,也就是在路由器和终端上都进行IP-MAC绑定的措施,它可以对ARP欺骗的两边,伪造网关和截获数据,都具有约束的作用。这是从ARP欺骗原理上进行的防范措施,也是最普遍应用的办法。它对付最普通的ARP欺骗是有效的。

2、ARP个人防火墙:

在一些杀毒软件中加入了ARP个人防火墙的功能,它是通过在终端电脑上对网关进行绑定,保证不受网络中假网关的影响,从而保护自身数据不被窃取的措施。ARP防火墙使用范围很广,但也会有问题,如,它不能保证绑定的网关一定是正确的。如果一个网络中已经发生了ARP欺骗,有人在伪造网关,那么,ARP个人防火墙上来就会绑定这个错误的网关,这是具有极大风险的。

3、VLAN和交换机端口绑定:

通过划分VLAN和交换机端口绑定,以图防范ARP,也是常用的防范方法。做法是细致地划分VLAN,减小广播域的范围,使ARP在小范围内起作用,而不至于发生大面积影响。同时,一些网管交换机具有MAC地址学习的功能,学习完成后,再关闭这个功能,就可以把对应的MAC和端口进行绑定,避免了病毒利用ARP攻击篡改自身地址。也就是说,把ARP攻击中被截获数据的风险解除了。这种方法也能起到一定的作用。
 

 

责任编辑:于爽 来源: it168
相关推荐

2010-09-16 15:39:18

2013-06-17 09:48:02

2009-12-11 14:46:13

2010-09-07 10:44:14

2010-07-06 16:22:01

2009-08-17 08:24:52

2011-08-30 15:19:07

2012-12-03 09:32:22

ARP

2011-11-08 09:46:10

2019-10-31 08:43:43

ICMPARP协议ARP欺骗

2011-04-06 10:23:46

2010-06-09 15:30:51

2014-06-11 13:25:14

IPARPRARP

2010-06-28 16:12:43

ARP协议

2010-06-12 17:53:14

ARP协议

2010-06-13 13:55:21

ARP协议

2010-03-22 09:44:08

2013-04-01 10:12:39

2009-07-17 17:58:51

2009-10-29 17:30:08

点赞
收藏

51CTO技术栈公众号