Arp即地址解析协议,它虽然是一个网络层协议,也涉及一些数据链路层的信息,基本作用是已知IP地址获得其对应的MAC地址,当某个设备需要向目的设备发送单播帧时,首先查看自己的缓存表中是否有目的设备的MAC地址,如果有,就直接使用它,如果没有,就发起ARP请求获取它。原设备需要解析IP地址时,发出一个载荷数据为一个ARP请求报文的广播帧,目的设备接收到ARP请求报文后,向原设备发送一个载荷数据是一个ARP应答报文的单播帧,该ARP应答报文中包含了目的设备的MAC地址。缓存表的条目在180s(可修改)的生存期内没有被使用就会被删除,在该条目每次被使用时,生存期被重新设置为180s。
ARP攻击可以用地址欺骗的方法,用错误的主机MAC地址刷新网关的ARP缓存,导致主机无法上线,也可以向主机发送错误的ARP应答,使主机得到错误的网关地址,也会导致主机无法上线。也可以利用ARP进行DOS攻击,主要是利用设备ARP缓存的有限性,通过发送大量伪造的ARP请求报文、ARP应答报文造成ARP缓存溢出,从而无法缓存正常的ARP表项,从而阻碍正常转发。或者利用设备计算能力有限性,通过发送大量伪造的ARP请求报文、ARP应答报文或其他能够触发ARP处理的报文,造成设备的计算资源长期忙于ARP报文处理,影响其他业务的处理,从而阻碍正常的转发。比如攻击者利用工具扫描本网段主机或者跨网段进行扫描时,设备在发送回应报文时,会查找ARP表项,如果目的IP地址对应的MAC地址不存在,会导致设备的ARP模块向上层软件发送ARP Miss消息,要求上层软件发送ARP请求报文以获得目的端的MAC地址,大量的扫描报文会导致大量的ARP Miss消息)。可以通过ARP报文速率抑制,ARP报文源抑制、ARP Miss消息速率抑制、ARP Miss源抑制、ARP表项严格学习、ARP表项抑制的方法防止ARP泛洪攻击。
如果是主机遭受ARP攻击,会使主机无法上线、网管信息被篡改或者被窃取。针对主机的防攻击,可以通过在主机上安装守护程序的方法来解决,如果守护程序发现网关MAC地址被欺骗就清除本机的ARP缓存,并重发ARP请求。如果是接入交换机遭受ARP攻击,可能导致局域网内多用户甚至大量用户无法上线。由于任何ARP包都必须由交换机转发,,才能到达被攻击目标,只要交换机不接受非法的ARP报文,非法报文的攻击就不可能产生。作为交换机的S5700可以起到良好的ARP防攻击的作用。如果路由器遭受ARP攻击,路由器一般连接多个交换机,会造成更多的用户无法上线,路由器一般可以使用双向绑定、主动防御等方法,但是当ARP攻击包到达路由器是,攻击的影响已经造成了,所有由路由器承担ARP攻击的任务并不能很好的解决问题。双向绑定可以防范非法用户上线,相关的措施一般在攻击前发生,但DOS攻击伪造合法用户,造成大量用户上线,而且在攻击发生后才能发现,因此大部分网络中默认使能限速或者CAR等防御此类攻击,若还是发生了此类攻击,可以通过网络监控等方式发现后通过指定目标限速、隔离等方法解决。
防御ARP攻击的方法一般是ARP静态绑定、安装ARP防火墙、在交换机上启用DAI技术