什么是DHCP Snooping
DHCP Snooping也叫DHCP窥探,是一种常应用在二层接入设备的DHCP安全协议,它通过监听DHCP报文来拦截局域网中不合法的DHCP流量,从而防止DHCP攻击,提升网络安全。部署了DHCP Snooping的设备能够实现以下动作:
● 过滤不受信端口的DHCP应答报文;
● 构建和维护DHCP Snooping绑定表,其中包含用户获取到的IP信息以及用户MAC地址、VID、PORT和租约时间等信息;
● 通过与ARP检测功能或ARP Check功能配合使用,可以进一步实现控制用户合法使用IP地址的目的。
DHCP Snooping如何工作
DHCP工作原理
在介绍DHCP Snooping如何工作之前,先简要说明DHCP的工作机制。
DHCP是一个被广泛应用的、为局域网内主机动态分配IP地址等重要信息的协议。一次DHCP协议交互可以简单概括为如下4个步骤:
(1) DHCP客户端通过广播DHCP Discover报文来向局域网内的DHCP服务器请求服务。
(2) DHCP服务器根据自身配置的IP地址池、相应的子网掩码和网关等信息,通过DHCP Offer报文应答客户端。
(3) 若接受DHCP Offer报文中的配置,DHCP客户端则广播DHCP Request报文以通告DHCP服务器和局域网内其他主机其生效的IP地址。
(4) 最后,服务器将会应答DHCP ACK报文给客户端进行最终确认。
如图2-1中,通过DHCP协议交互,客户端从DHCP地址池中租用了IP地址10.0.0.11/24,并得知局域网内网关地址为10.0.0.1。那么,客户端后续的IP数据将发往网关10.0.0.1实现与广域网的通信。
DHCP Snooping防止服务欺骗攻击
由于DHCP Discover/Request是广播报文,假如局域网中加入了攻击者,那么它便可以获取到网络内每一台主机的DHCP请求信息。通过修改IP地址或者网关等信息伪造DHCP Offer/ACK报文应答主机,来达到使用户无法上网或者窃取用户信息的目的,这种攻击方式被称为DHCP服务欺骗攻击。如图2-2,攻击者为了截获局域网内用户的流量,将自己本地的IP地址10.0.0.2作为虚假网关地址,非法应答客户端的DHCP请求。后续,客户端的IP数据包将会发往虚假网关,造成信息泄露。如果攻击者在截获流量的同时对真实网关和客户端之间的数据进行转发,那么网络内受到攻击的主机将感受不到断网等网络异常,隐蔽性极强。
在设备上开启DHCP Snooping功能,把连接可信服务器的端口设置为Trust口,其余皆为Untrust口,DHCP Snooping能够有效的防止上文所述的DHCP服务欺骗攻击。如图2-3,在Device A上开启DHCP Snooping功能,只有服务器的DHCP Offer/ACK报文能够通过Trust口送达客户端,攻击者设备由于连接在Untrust口上,其发送的非法DHCP Offer/ACK报文将不允许通过,从而保证客户端能够获得正确的网络配置,避免了信息泄露。
DHCP Snooping防止伪造报文攻击
除了仿冒DHCP服务器,攻击者还能仿冒DHCP客户端对DHCP服务器发起攻击。如图2-4,攻击者通过非法截获DHCP客户端在局域网内广播的DHCP Discover报文获取其MAC地址,从而仿冒MAC伪造不同的DHCP客户端向DHCP服务器大量发送非法请求报文,使得DHCP服务器的IP地址池被消耗,甚至抢夺网络内合法客户端的IP地址。一旦服务器的IP地址池被非法请求耗空,网络内的其他合法主机将由于无法通过DHCP获得IP地址而断网。这种攻击方式被称为伪造DHCP报文攻击,也是一种典型的DoS攻击。
除了过滤Untrust口的非法DHCP应答报文,DHCP Snooping通过进一步维护DHCP绑定表项来防止伪造报文攻击。DHCP绑定表项通过窥探合法DHCP报文来对客户端的MAC地址、IP地址租期、接口号和VLAN信息等建立起关联并且维护,从而对后续DHCP客户端请求报文进行过滤。如图2-5,在Device A上部署DHCP Snooping功能并将与客户端主机相连的接口设置为Untrust口。那么,所有通过Untrust口的DHCP请求报文将会首先进行DHCP绑定表项匹配。由于攻击者伪造的报文与Device A上维护的绑定表无法匹配,伪造报文将会被丢弃,从而有效阻止了这类攻击。
DHCP Snooping作为DHCP安全特性,除了能通过对Untrust口非法DHCP流量的拦截以及绑定表的维护来防止DHCP服务欺骗攻击和伪造DHCP报文攻击外,还能通过与ARP协议联动防止ARP入侵。由于DHCP协议应用广泛,为提升网络安全性能,在用户接入层部署支持DHCP Snooping特性的设备是十分必要的。