ARP攻防原理 

 

 ARP定义

 

 

 

  ARPAddress Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,负责将某个IP地址解析成对应的MAC地址。

 

 

 

  ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。

 

 

 

  ARPAddressResolutionProtocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

 

 

 

  ARP攻击定义

 

 

 

  ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。最早探讨ARP攻击的文章是由Yuri Volobue所写的《ARPICMP转向游戏》。

 

 

 

  [1][2][3]ARP攻击原理

 

 

 

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

 

 

 

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

 

 

 

  某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到BIP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机AIP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有BMAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

 

 

 

  遭受ARP攻击后现象

 

 

 

  ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。

 

 

 

  ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。

 

 

 

  基于ARP协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信。一般情况下,受到ARP攻击的计算机会出现两种现象:

 

 

 

  1.不断弹出“本机的0-255段硬件地址与网络中的0-255段地址冲突”的对话框。

 

 

 

  2.计算机不能正常上网,出现网络中断的症状。

 

 

 

  因为这种攻击是利用ARP请求报文进行“欺骗”的,所以防火墙会误以为是正常的请求数据包,不予拦截。因此普通的防火墙很难抵挡这种攻击。

 

 

 

  对ARP攻击的防护

 

 

 

  防止ARP攻击是比较困难的,修改协议也是不大可能。但是有一些工作是可以提高本地网络的安全性。

 

 

 

  首先,你要知道,如果一个错误的记录被插入ARP或者IP route表,可以用两种方式来删除。

 

 

 

  a. 使用arp d host_entry

 

 

 

  b. 自动过期,由系统删除

 

 

 

  这样,可以采用以下的一些方法:

 

 

 

  1. 减少过期时间

 

 

 

  #ndd set /dev/arp arp_cleanup_interval 60000

 

 

 

  #ndd -set /dev/ip ip_ire_flush_interval 60000

 

 

 

  60000=60000毫秒 默认是300000

 

 

 

  加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。

 

 

 

  2. 建立静态ARP

 

 

 

  这是一种很有效的方法,而且对系统影响不大。缺点是破坏了动态ARP协议。可以建立如下的文件。

 

 

 

  test.nsfocus.com 08:00:20:ba:a1:f2

 

 

 

  user. nsfocus.com 08:00:20:ee:de:1f

 

 

 

  使用arp f filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp d才能删除。但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。这个方法,不适合于经常变动的网络环境。

 

 

 

  3).禁止ARP

 

 

 

  可以通过ipconfig interface arp 完全禁止ARP,这样,网卡不会发送ARP和接受ARP包。但是使用前提是使用静态的ARP表,如果不在ARP表中的计算机 ,将不能通信。这个方法不适用与大多数网络环境,因为这增加了网络管理的成本。但是对小规模的安全网络来说,还是有效可行的。

 

 

 

  但目前的ARP病毒层出不穷,已经不能单纯的依靠传统的方法去防范,比如简单的绑定本机ARP,我们还需要更深入的了解ARP攻击原理,才能够通过症状分析并解决ARP欺骗的问题

 

参考链接:http://10.3.0.210/show.php?id=6