ARP协议网络攻击与防御

ARP协议:
arp请求包发广播包,目的mac为ff:ff:ff:ff:ff:ff
网段中的所有主机收到该arp请求后,如果arp请求中的ip地址与本机ip地址一致,则回复arp应答包,目的mac为请求包中的源mac,以单播形式传输。

免费arp:发往自己ip地址的arp请求
作用:1)检测ip冲突
2)更新arp表项,如设备更改了mac地址,通知其他设备更新arp表

arp攻防
漏洞根源:1)arp协议是无连接的
2)没有arp请求也可arp回复更新表项

一.arp泛洪攻击及防御
泛洪攻击也叫拒绝服务攻击(Denial of Service)。主要场景:设备处理arp报文和维护arp表项都需要消耗系统资源,同时为了满足arp表项查询效率的要求,一般设备都会对arp表项规模有规格限制。攻击者连续向目的主机发送大量伪造的源ip和mac地址的arp请求,使得设备arp表资源被无效的arp条目耗尽,合法用户的arp报文不能继续生成arp条目,导致正常通信中断。
在这里插入图片描述
arp泛洪防御:
1)端口报文限速。
分为基于单个交换机端口报文限速和基于源mac地址报文限速。可以防止设备因处理大量arp报文,导致cpu负荷过重而无法处理其他业务。(广播报文都要经过cpu,所以大量的广播报文会导致cpu占用较高)

2)arp表项保护。
i)仅学习本机arp请求的应答,只有本设备主动发送的arp请求报文的应答报文才能触发本设备学习arp,其他设备主动向本设备发送的arp报文不能触发本设备学习arp。这可以防止设备收到大量arp攻击报文时,arp表被无效的arp条目占满。
ii)免费arp主动丢弃,设备直接丢弃免费arp报文,可以防止设备因处理大量免费arp报文,导致cpu负荷过重而无法处理其他业务。
iii)限制端口可学习的arp表项数量,设备接口只能学习到设定的最大动态arp表项数目。这可以防止当一个接口所接入的某一台用户主机发起arp攻击时整个设备的arp表资源都被耗尽。

二.arp欺骗攻击及防御
arp欺骗攻击是指攻击者通过发送伪造的arp报文,恶意修改设备或网络内其他用户主机的arp表项,造成用户或网络的报文通信异常。存在以下危害:
i)伪造内网用户,导致内网某个用户上网异常
在这里插入图片描述
在这里插入图片描述

ii)伪造网关,导致内网用户上网异常或者截取用户报文,进而非法获取游戏、网银、文件服务等系统的账号和口令。
在这里插入图片描述

arp欺骗防御
1)arp表项更新检查
设备在第一次学习到arp之后,用户更新此arp表项时通过发送arp请求报文的方式进行确认,以防止攻击者伪造arp报文修改正常用户的arp表项内容

2)arp报文合法性校验
通过检查报文中的ip地址、mac地址,直接丢弃非法的arp报文,避免非法用户伪造arp报文,刻意的进行arp攻击

3)基于dhcp的arp绑定关系检测(DAI)
当设备收到arp报文时,将此arp报文的源ip、源mac、收到arp报文的接口及vlan信息和绑定表的信息进行比较,如果信息匹配,则认为是合法用户,允许此用户的arp报文通过,否则认为是攻击,丢弃该arp报文。该功能仅适用于dhcp snooping场景。说明:如果pc采用静态配置ip,那它也不会有snooping绑定表项,如果在交换机上配置了DAI功能的话,交换机将丢弃这台pc发送的报文。

4)网关防欺骗 丢弃源ip地址为网关设备ip地址的arp报文,防止攻击者仿冒网关,一般在网关设备上开启。