ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定电脑或所有电脑无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》()。
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地址截收到数据包,可篡改后再送回真正的网关,或是什么也不做,让网络无法连线。
简单案例分析:这里用一个最简单的案例来说明ARP欺骗的核心步骤。假设在一个LAN里,只有三台主机A、B、C,且C是攻击者。
最理想的防制方法是网络内的每台电脑的ARP一律改用静态的方式,不过这在大型的网络是不可行的,因为需要经常更新每台电脑的ARP表。
另外一种方法,例如DHCP snooping,网络设备可借由DHCP保留网络上各电脑的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的网络设备产品所支持。
有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送电子邮件通知管理者。例如UNIX平台的Arpwatch以及Windows上的XArp v2或一些网络设备的Dynamic ARP inspection功能。
ARP欺骗亦有正当用途。其一是在一个需要登录的网络中,让未登录的电脑将其浏览网页强制转向到登录页面,以便登录后才可使用网络。另外有些设有备援机制的网络设备或服务器,亦需要利用ARP欺骗以在设备出现故障时将讯务导到备用的设备上。