关于ARP欺骗问题的研究

时间:2022-10-13 07:51:56

关于ARP欺骗问题的研究

摘 要:在我们使用局域网时可能会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。那么是什么问题导致的呢?

关键词:ARP欺骗;网关;计算机;局域网;断网

其实,此伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。这一切的一切其实都是ARP惹的祸。那么什么是ARP欺骗呢?它又是如何实现这一破坏呢?下面我们从几个方面来开始研究:

第一、什么是ARP?ARP(Address Resolution Protocol),即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、ARP。NDP用于在IPv6中代替地址解析协议。

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

ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。

从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是――截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是――伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。 而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅”。作为网吧路由器的厂家,对防范ARP欺骗不得已做了不少份内、份外的工作。

第三、如何防范ARP欺骗?目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。下面来了解以下三种方法:静态绑定、ARP防护软件和具有ARP防护功能的路由器。

1、静态绑定。最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。 欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。

方法: 对每台主机进行IP和MAC地址静态绑定。 通过命令,arp -s可以实现 “arp Cs IP MAC地址 ”。 例如:“arp Cs 192.168.1.1 AA-AA-AA-AA-AA-AA”。 如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示: Internet Address Physical Address Type

192.168.1.1 AA-AA-AA-AA-AA-AA static(静态) 。一般不绑定,在动态的情况下:Internet Address Physical Address Type 192.168.1.1 AA-AA-AA-AA-AA-AA dynamic(动态)

说明:对于网络中有很多主机,500台,1000台,如果我们这样每一台都去做静态绑定,工作量是非常大的。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的!

2、使用ARP防护软件。目前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp等。它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。

3、购买一个具有ARP防护功能的路由器,是不错的方法,但是此方法代价比较高,需要花费金钱去买的。对于一个普通用户来讲,是没有必要的。所以一般情况下,上述两种方法是采用较多的。

第四、最后再来掌握一些预防措施。1、减少过期时间 #ndd Cset /dev/arp arp_cleanup_interval 60000 #ndd -set /dev/ip ip_ire_flush_interval 60000 60000=60000毫秒 默认是300000 加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。2、建立静态ARP表这是一种很有效的方法,而且对系统影响不大。缺点是破坏了动态ARP协议。可以建立如下的文件。 08:00:20:ba:a1:f2 user. 08:00:20:ee:de:1f 使用arp Cf filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp Cd才能删除。但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。这个方法,不适合于经常变动的网络环境。3、禁止ARP,可以通过ipconfig interface Carp 完全禁止ARP,这样,网卡不会发送ARP和接受ARP包。但是使用前提是使用静态的ARP表,如果不在ARP表中的计算机将不能通信。这个方法不适用与大多数网络环境,因为这增加了网络管理的成本。但是对小规模的安全网络来说,还是有效可行的。

参考文献

[1] 单国杰. 基于ARP欺骗攻击的防御策略研究[D]. 山东师范大学 2011

[2] 朱泽波. ARP防攻击技术的研究与实现[D]. 南京理工大学 2013

[3] 王力. 基于WinPcap的ARP欺骗实时检测与恢复[D]. 武汉工业学院 2012

[4] 龚庭楠. 关于网络欺骗攻击实现和防范的研究[D]. 南京邮电大学 2012

上一篇:关于农机社会化服务体系建设的讨论 下一篇:基于生态文明下的新型城镇化