DHCP防攻击技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着网络规模的扩大化和网络环境的复杂化,DHCP服务被应用到越来越多的网络环境中。DHCP虽然提供了一种简捷、高效的主机配置机制,但由于在设计上未充分考虑到安全因素,从而留下许多安全漏洞,使得DHCP服务器很容易受到攻击。
本文将针对几种常见的DHCP攻击,对我司支持的DHCP防攻击功能的技术特点以及应用场景进行归纳总结,以帮助用户更好地应用这些功能。本文涉及的DHCP协议的相关原理以及作用机制,请参考《DHCP技术白皮书》。
在实际网络中,主要存在以下四种DHCP攻击类型:
· DHCP饿死攻击
· DHCP Flood攻击
· 仿冒DHCP Server攻击
· 伪造DHCP请求方向报文攻击
攻击者伪造chaddr(client hardware address,DHCP客户端的硬件地址)字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址。一方面导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址;另一方面可能导致DHCP服务器消耗过多的系统资源,无法处理正常业务。
图2-1 DHCP饿死攻击
攻击者短时间内恶意向DHCP服务器发送大量的DHCP请求报文申请IP地址,侵占DHCP服务器的系统资源,导致其它合法的DHCP交互无法正常进行。
图2-2 DHCP Flood攻击
攻击者私自安装并运行DHCP Server程序后,将自己伪装成DHCP Server。DHCP客户端接收到来自DHCP Server的DHCP应答报文后,无法判断DHCP Server是否合法。如果客户端第一个接收到的应答报文来自仿冒的DHCP Server,那么仿冒的DHCP Server会给DHCP客户端分配错误的IP地址,导致DHCP客户端无法访问网络。
图2-3 仿冒DHCP Server攻击
非法客户端伪造DHCP续约报文、DHCP-DECLINE和DHCP-RELEASE三种DHCP请求方向的报文对DHCP服务器进行攻击:
· 伪造DHCP续约报文攻击是指攻击者冒充合法的DHCP客户端,向DHCP服务器发送伪造的DHCP续约报文,导致DHCP服务器和DHCP客户端无法按照自己的意愿及时释放IP地址租约。如果攻击者冒充不同的DHCP客户端发送大量伪造的DHCP续约报文,则会导致大量IP地址被长时间占用,DHCP服务器没有足够的地址分配给新的DHCP客户端。
· 伪造DHCP-DECLINE/DHCP-RELEASE报文攻击是指攻击者冒充合法的DHCP客户端,向DHCP服务器发送伪造的DHCP-DECLINE/DHCP-RELEASE报文,导致DHCP服务器错误终止IP地址租约。
图2-4 伪造DHCP请求方向报文攻击
针对四种常见的DHCP攻击,设备可以采取的防范措施及部署位置如表3-1所示。
表3-1 DHCP防攻击技术
攻击类型 |
防范措施 |
防范措施部署位置 |
DHCP饿死攻击 |
DHCP防饿死攻击功能 |
DHCP服务器、DHCP中继、DHCP Snooping |
存在大量DHCP饿死攻击报文时,可同时开启DHCP防饿死攻击功能和DHCP Flood攻击防范相关功能 |
DHCP服务器、DHCP中继、DHCP Snooping |
|
DHCP Flood攻击 |
DHCP Flood攻击防范功能 |
DHCP服务器、DHCP中继 |
DHCP接口攻击抑制功能 |
DHCP服务器、DHCP中继 |
|
限制接口动态学习DHCP Snooping表项的最大数目 |
DHCP Snooping |
|
DHCP Snooping报文限速功能 |
DHCP Snooping |
|
仿冒DHCP Server攻击 |
DHCP Snooping信任功能 |
DHCP Snooping |
伪造DHCP请求方向报文攻击 |
防止伪造DHCP请求方向报文攻击功能 |
DHCP Snooping |
DHCP防饿死攻击功能用于防止DHCP饿死攻击。本功能支持在DHCP服务器、DHCP中继和DHCP Snooping设备上配置,部署位置如图3-1所示。
图3-1 DHCP防饿死攻击功能部署
针对攻击者发送报文的源MAC地址,可以采取不同的防饿死攻击措施:
· 如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则攻击者接入的接口会学习到大量的MAC地址。此时,可以通过设置允许接口学习的最大MAC地址数,并配置当达到接口的MAC地址数学习上限时,禁止转发源MAC地址不在MAC地址表里的报文来防止饿死攻击。当接口学习到的MAC地址数达到最大值时,接口将丢弃源MAC地址不在MAC地址表中的请求报文,从而避免攻击者申请到过多的IP地址,在一定程度上阻止了DHCP饿死攻击。其它不存在DHCP饿死攻击的接口连接的DHCP客户端仍可以正常获取IP地址。
· 如果封装DHCP请求报文的数据帧的源MAC地址相同,则可以通过在DHCP设备上开启MAC地址检查功能来防止饿死攻击。开启该功能后,DHCP设备会检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,进行后续处理;如果不一致,则丢弃该报文。
DHCP Flood攻击防范功能用于防止源MAC地址固定的DHCP泛洪类攻击。本功能支持在DHCP服务器和DHCP中继上配置,部署位置如图3-2所示。
图3-2 DHCP Flood攻击防范功能部署
接口开启DHCP Flood攻击防范功能后:
(1) DHCP设备会根据DHCP请求报文中的源MAC地址统计收到的DHCP请求报文数,同时创建一个check状态的DHCP防Flood攻击表项。
(2) 当某个源MAC地址对应DHCP客户端发送的DHCP请求报文数在指定时间内达到配置的阈值时,则认为DHCP设备受到了DHCP报文攻击,该DHCP客户端对应的DHCP防Flood攻击表项状态被置为restrain,DHCP设备将丢弃后续收到的该DHCP客户端发送的DHCP请求报文。
(3) 当该源MAC地址的DHCP防Flood攻击表项老化时,将重新统计本接口指定时间内收到的来自该DHCP客户端的DHCP请求报文数。
¡ 如果未超过阈值,则删除此表项。当再次收到同一源MAC的DHCP请求报文时,将重新统计接收到的报文数并建立check状态的DHCP防Flood攻击表项;
¡ 如果仍超过阈值,则刷新DHCP防Flood攻击表项老化时间,继续丢弃其发送的DHCP请求报文。
DHCP接口攻击抑制功能用于防止对某个指定接口的DHCP泛洪类攻击。本功能支持在DHCP服务器和DHCP中继上配置,部署位置与DHCP Flood攻击防范功能一致。
接口开启DHCP接口攻击抑制功能后:
(1) DHCP设备会统计该接口收到的DHCP请求报文数,同时创建一个check状态的DHCP接口攻击抑制表项。
(2) 当接口收到的DHCP请求报文数在指定时间内达到配置的阈值时,则认为DHCP设备受到了DHCP报文攻击,DHCP接口攻击抑制表项状态从check变成restrain,设备将限制该接口接收DHCP请求报文的速率,避免DHCP攻击报文持续冲击CPU。
(3) 当接口对应的DHCP接口攻击抑制表项老化时,DHCP设备会重新统计该接口指定时间内收到的DHCP请求报文数。
¡ 如果未超过阈值,则删除此表项。当再次收到DHCP请求报文时,重新统计接收到的报文数并建立check状态的DHCP防Flood攻击表项;
¡ 如果仍超过阈值,则刷新DHCP接口攻击抑制表项老化时间,继续限制被该接口接收DHCP请求报文的速率。
为了避免非法用户发送大量DHCP报文,对网络造成攻击,DHCP Snooping支持报文限速功能,限制接口接收DHCP报文的速率。当接口接收的DHCP报文速率超过限制的最高速率时,DHCP Snooping设备将丢弃超过速率限制的报文。DHCP Snooping报文限速功能的部署位置如图3-3所示。
图3-3 DHCP Snooping报文限速功能部署
限制接口动态学习DHCP Snooping表项的最大数目,可以防止接口学习到大量DHCP Snooping表项,占用过多的系统资源。接口动态学习的DHCP Snooping表项数达到最大数目后,不影响DHCP Snooping功能正常运行,只是接口不会再继续学习新的DHCP Snooping表项。本功能的部署位置与DHCP Snooping报文限速功能一致。
DHCP Snooping信任功能通过控制DHCP服务器应答报文的来源,可以有效地阻止仿冒或非法的DHCP服务器为DHCP客户端分配IP地址及其他配置信息。
DHCP Snooping信任功能将端口分为信任端口和不信任端口:
· 将与合法DHCP服务器直接或间接连接的端口设置为信任端口,信任端口对接收到的DHCP报文正常转发,从而保证了DHCP客户端获取正确的IP地址。
· 将未与合法DHCP服务器连接的端口都设置为不信任端口,从不信任端口接收到DHCP服务器响应的DHCP-ACK、DHCP-NAK和DHCP-OFFER报文会被丢弃,从而防止了DHCP客户端获得错误的IP地址及网络参数。
DHCP Snooping信任功能中信任端口的部署情况如图3-4所示。
在DHCP Snooping设备上开启DHCP请求方向报文检查功能后,当DHCP Snooping设备接收到DHCP请求方向报文时,会检查本地的DHCP Snooping表项:
· 若存在与请求方向报文匹配的DHCP Snooping表项:
¡ 请求方向的报文信息与DHCP Snooping表项信息一致时,认为该DHCP请求方向报文合法,将其转发给DHCP服务器;
¡ 请求方向的报文信息与DHCP Snooping表项信息不一致时,则认为该报文为伪造的DHCP请求方向报文,将其丢弃。
· 若不存在与请求方向报文匹配的DHCP Snooping表项,则认为该报文合法,将其转发给DHCP服务器。
本功能的部署位置如图3-5所示。
图3-5 防止伪造DHCP请求方向报文攻击功能部署
如图4-1所示,用户跨网段以DHCP的方式动态获取IP地址。采取如下措施以防止DHCP攻击:
· 将DHCP Snooping设备上与DHCP中继设备相连的端口设置为信任端口,其余接口设置为不信任端口,防止收到来自仿冒DHCP Server的报文。
· 在DHCP Snooping设备上与攻击者相连的接口上配置限制接口动态学习DHCP Snooping表项的最大数目、DHCP Snooping报文限速功能和防止伪造DHCP请求方向报文攻击功能。
· 在DHCP中继与攻击者相连的接口上配置DHCP防饿死攻击功能、DHCP Flood攻击防范功能和DHCP接口攻击抑制功能。
图4-1 DHCP防攻击技术应用综合组网