首 页 行业热点 新车 试驾评测 养车用车 车型库

如何防御arp攻击

发布网友

我来回答

6个回答

懂视网

欢迎进入网络技术社区论坛,与200万技术人员互动交流 >>进入 最近一段时间,arp欺骗病毒十分猖獗,经常造成局域网内主机断网。 从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。 第一种ARP欺骗的原

欢迎进入网络技术社区论坛,与200万技术人员互动交流 >>进入

  最近一段时间,arp欺骗病毒十分猖獗,经常造成局域网内主机断网。

  从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

  第一种ARP欺骗的原理是――截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是――伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。

  一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。

  有经验的网关会利用arp命令来查找发出arp欺骗包的主机,然后采取相应的措施。但这些都是亡羊补牢的办法,能不能把防范做在前面,让那些中毒的主机无所作为呢?

  其实,cisco也有类似的命令,能够在有arp欺骗的情况下保护网关和其它主机,使网络得以畅通。

  命令格式:

  arp IP add mac arpa intID,比如:

  arp 10.1.1.222 0000.ac01.2ca9 arpa fastethernet 3/19

  它的作用相当于:在快速以太3/19口上,能与它连接的只能是1001.1.222,mac地址只能是0000.ac01.2ca9 ,其它一律拒绝。

  在汇聚和接入交换机之间,通过这第条命令两端互相绑定对端的ip和mac地址,这样可以防止接入交换机下的pc中毒后发出虚假的arp信息,导致汇聚和接入交换机之间的通信异常。比如汇聚在请求对端接入交换机的mac地址时,pc首先发出了回应也就是以接入交换机的管理ip和自己的(或者伪装的)mac封装了arp reply那么汇聚的arp表就会出现错误,导致整个接入交换机下的用户无法上网,这也是一种arp欺骗。利用了上面的命令就可以将汇聚和接入交换机的 arp条目固化,防止出现上述情况。

  同理,在接入层交换机上做出绑定,那么当接入交换机请求目的主机的mac时,会直接从自己的固化arp表中去查找,而不会再向整个网络发布arp广播,这样即使有arp欺骗的主机存在,它也不会有向整个网络发难的机会。

热心网友

要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。ARP是地址转换协议的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。

我们知道,二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。

ARP工作时,首先请求主机发送出一个含有所希望到达的IP地址的以太网广播数据包,然后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统这个时间为2分钟,而Cisco路由器的这个时间为5分钟),就会被删除。通过下面的例子我们可以很清楚地看出ARP的工作机制。

假定有如下五个IP地址的主机或者网络设备,它们分别是:

主机A 192.168.1.2
主机B 192.168.1.3
网关C 192.168.1.1
主机D 10.1.1.2
网关E 10.1.1.1
假如主机A要与主机B通信,它首先会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域网的广播地址发送ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而广播地址会把这个请求包广播给局域网内的所有主机,但是只有192.168.1.3这台主机才会响应这个请求包,它会回应192.168.1.2一个ARP包,大致的意思是192.168.1.3的MAC地址是02-02-02-02-02-02。这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自己的ARP缓存表中。之后主机A与主机B之间的通信就依靠两者缓存表里的MAC地址来通信了,直到通信停止后2分钟,这个对应关系才会从表中被删除。

再来看一个非局域网内部的通信过程。假如主机A需要和主机D进行通信,它首先会发现这个主机D的IP地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查自己的ARP缓存表里是否有网关192.168.1.1对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关通信,然后再由网关C通过路由将数据包送到网关E,网关E收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP缓存,看看里面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址与主机D通信。

通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B之类的是无法截获A与D之间的通信信息的。

但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。这就导致主机B截取主机A与主机D之间的数据通信成为可能。

首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是02-02-02-02-02-02,主机A收到这个包后并没有去验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成02-02-02-02-02-02,同时主机B向网关C发送一个ARP响应包说192.168.1.2的MAC是02-02-02-02-02-02,同样,网关C也没有去验证这个包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成02-02-02-02-02-02。当主机A想要与主机D通信时,它直接把应该发送给网关192.168.1.1的数据包发送到02-02-02-02-02-02这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真正的网关C,当从主机D返回的数据包到达网关C后,网关也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地址的数据发往02-02-02-02-02-02这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次ARP欺骗攻击。

因此简单点说,ARP欺骗的目的就是为了实现全交换环境下的数据监听。大部分的木马或病毒使用ARP欺骗攻击也是为了达到这个目的。

如何发现及清除

局域网内一旦有ARP的攻击存在,会欺*域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。

一旦怀疑有ARP攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP应答包,并且将所有的IP地址都指向同一个MAC地址,那么就说明存在ARP欺骗攻击,并且这个MAC地址就是用来进行ARP欺骗攻击的主机MAC地址,我们可以查出它对应的真实IP地址,从而采取相应的控制措施。另外,我们也可以到路由器或者网关交换机上查看IP地址与MAC地址的对应表,如果发现某一个MAC对应了大量的IP地址,那么也说明存在ARP欺骗攻击,同时通过这个MAC地址查出用来ARP欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。

如何防范?

我们可以采取以下措施防范ARP欺骗。

(1)在客户端使用arp命令绑定网关的真实MAC地址命令如下:

arp -d *(先清除错误的ARP表)

arp -s 192.168.1.1 03-03-03-03-03-03 (静态指定网关的MAC地址)

(2)在交换机上做端口与MAC地址的静态绑定。

(3)在路由器上做IP地址与MAC地址的静态绑定。

(4)使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。

(5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。

ARP工作原理如下:

在TCP/IP协议中,A给B发送IP包,在包头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址.

计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议。

在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。

A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。

本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。

ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。

热心网友

每台主机都有一个临时存放IP-MAC的对应表ARP攻击就通过更改这个缓存来达到欺骗的目的,使用静态的ARP来绑定正确的MAC是一个有效的方法.在命令行下使用arp -a可以查看当前的ARP缓存表.以下是本机的ARP表 :

C:\Documents and Settings\cnqing>arp -a

Interface: 192.168.0.1 on Interface 0x1000003

Internet Address Physical Address Type

192.168.0.1 00-03-6b-7f-ed-02 dynamic

其中代表动态缓存,即收到一个相关ARP包就会修改这项.如果是个非法的含有不正确的网关的ARP包,这个表就会自动更改.这样我们就不能找到正确的网关MAC,就不能正常和其他主机通信.静态表的建立用ARP -S IP MAC.

执行arp -s 192.168.0.1 00-03-6b-7f-ed-02后,我们再次查看ARP缓存表.

C:\Documents and Settings\cnqing>arp -a

Interface: 192.168.0.1 on Interface 0x1000003

Internet Address Physical Address Type

192.168.0.1 00-03-6b-7f-ed-02 static

此时"TYPE"项变成了"static",静态类型.这个状态下,是不会在接受到ARP包时改变本地缓存的.从而有效的防止ARP攻击.静态的ARP条目在每次重启后都要消失需要重新设置. 此时我们就可以自己写一个批处理文件,文件内容如下:

@echo off
arp -d
arp -s 192.168.0.1 00-03-6b-7f-ed-02

写好之后我们把它存储为 rarp.bat,再把此文件放到开始菜单-程序-启动栏,这样每次启动机器时,就自动执行此批处理文件。菜单-程序-启动栏默认目录:C:\Documents and Settings\All Users\「开始」菜单\程序\启动。

热心网友

装arp防火墙、360有的

热心网友

双绑。
安装ARP防火墙。

热心网友

费尔防火墙,让病毒进不来,出不去。
介绍与下载在:www.onlinedown.net/soft/139.htm

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com