ARP欺骗

本页使用了标题或全文手工转换
维基百科,自由的百科全书

ARP欺骗(英语:ARP spoofing),又称ARP毒化ARP poisoning,网路上多译为ARP病毒)或ARP攻击,是针对乙太网路地址解析协议ARP)的一种攻击技术。此种攻击可让攻击者取得区域网路上的资料封包甚至可篡改封包,且可让网路上特定电脑或所有电脑无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection games[1]

运作机制[编辑]

ARP欺骗的运作原理是由攻击者发送假的ARP封包到网路上,尤其是送到闸道器上。其目的是要让送至特定的IP位址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的闸道(被动式封包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP封包导到不存在的MAC位址以达到阻断服务攻击的效果,例如netcut软体。

例如某一的IP位址是192.168.0.254,其MAC位址为00-11-22-33-44-55,网路上的电脑内ARP表会有这一笔ARP记录。攻击者发动攻击时,会大量发出已将192.168.0.254的MAC位址篡改为00-55-44-33-22-11的ARP封包。那么网路上的电脑若将此伪造的ARP写入自身的ARP表后,电脑若要透过网路闸道连到其他电脑时,封包将被导到00-55-44-33-22-11这个MAC位址,因此攻击者可从此MAC位址截收到封包,可篡改后再送回真正的闸道,或是什么也不做,让网路无法连线。

Ethernet封包,ARP欺骗会篡改封包标头中的Source MAC位址(绿色段)以欺骗网路上的电脑及设备

简单案例分析:这里用一个最简单的案例来说明ARP欺骗的核心步骤。假设在一个LAN里,只有三台主机A、B、C,且C是攻击者。

  1. 攻击者聆听局域网上的MAC地址。它只要收到两台主机洪泛的ARP Request,就可以进行欺骗活动。
  2. 主机A、B都洪泛了ARP Request.攻击者现在有了两台主机的IP、MAC地址,开始攻击。
  3. 攻击者发送一个ARP Reply给主机B,把此包protocol header里的sender IP设为A的IP地址,sender mac设为攻击者自己的MAC地址。
  4. 主机B收到ARP Reply后,更新它的ARP表,把主机A的MAC地址(IP_A, MAC_A)改为(IP_A, MAC_C)。
  5. 当主机B要发送数据包给主机A时,它根据ARP表来封装数据包的Link报头,把目的MAC地址设为MAC_C,而非MAC_A。
  6. 当交换机收到B发送给A的数据包时,根据此包的目的MAC地址(MAC_C)而把数据包转发给攻击者C。
  7. 攻击者收到数据包后,可以把它存起来后再发送给A,达到偷听效果。攻击者也可以篡改数据后才发送数据包给A,造成伤害。

防制方法[编辑]

最理想的防制方法是网路内的每台电脑的ARP一律改用静态的方式,不过这在大型的网路是不可行的,因为需要经常更新每台电脑的ARP表。

另外一种方法,例如DHCP snooping,网路设备可借由DHCP保留网路上各电脑的MAC位址,在伪造的ARP封包发出时即可侦测到。此方式已在一些厂牌的网路设备产品所支援。

有一些软体可监听网路上的ARP回应,若侦测出有不正常变动时可发送电子邮件通知管理者。例如UNIX平台Arpwatch以及Windows上的XArp v2[2]或一些网路设备的Dynamic ARP inspection功能。

正当用途[编辑]

ARP欺骗亦有正当用途。其一是在一个需要登入的网路中,让未登入的电脑将其浏览网页强制转向到登入页面,以便登入后才可使用网路。另外有些设有备援机制的网路设备或伺服器,亦需要利用ARP欺骗以在设备出现故障时将讯务导到备用的设备上。

参考资料[编辑]

  1. ^ ARP and ICMP redirection games. INSECURE.ORG. [2010-05-24]. (原始内容存档于2010-06-12) (英语). 
  2. ^ XArp advanced ARP spoofing detection. chrismc. [2010-05-24]. (原始内容存档于2010-05-27) (英语). 

外部链接[编辑]