泛洪攻击防范
泛洪攻击是指攻击者在短时间内向目标设备发送大量的虚假报文,导致目标设备忙于应付无用报文,而无法为用户提供正常服务。
泛洪攻击防范是指设备实时检测出泛洪报文并予以丢弃或者限速处理,实现对本设备的保护。
泛洪攻击主要分为TCP SYN泛洪攻击、UDP泛洪攻击和ICMP泛洪攻击。
TCP SYN泛洪攻击
TCP SYN攻击利用了TCP三次握手的漏洞。在TCP的3次握手期间,当接收端收到来自发送端的初始SYN报文时,向发送端返回一个SYN+ACK报文。接收端在等待发送端的最终ACK报文时,该连接一直处于半连接状态。如果接收端最终没有收到ACK报文包,则重新发送一个SYN+ACK到发送端。如果经过多次重试,发送端始终没有返回ACK报文,则接收端关闭会话并从内存中刷新会话,从传输第一个SYN+ACK到会话关闭大约需要30秒。
在这段时间内,攻击者可能将数十万个SYN报文发送到开放的端口,并且不回应接收端的SYN+ACK报文。接收端内存很快就会超过负荷,且无法再接受任何新的连接,并将现有的连接断开。
设备对TCP SYN攻击处理的方法是在使能了TCP SYN泛洪攻击防范后对TCP SYN报文进行速率限制,保证受到攻击时设备资源不被耗尽。
UDP泛洪攻击
UDP泛洪攻击是指攻击者在短时间内向目标设备发送大量的UDP报文,导致目标设备负担过重而不能处理正常的业务。UDP泛洪攻击分为以下两类:
Fraggle攻击
Fraggle攻击的原理是攻击者发送源地址为目标主机地址,目的地址为广播地址,目的端口号为7的UDP报文。如果该广播网络中有很多主机都起用了UDP响应请求服务,目的主机将收到很多回复报文,造成系统繁忙,达到攻击效果。
使能泛洪攻击防范功能后,设备默认UDP端口号为7的报文是攻击报文,直接将其丢弃。
UDP诊断端口攻击
攻击者对UDP诊断端口(7-echo,13-daytime,19-Chargen等UDP端口)发送报文,如果同时发送的数据包数量很大,造成泛洪,可能影响网络设备的正常工作。
使能泛洪攻击防范功能后,设备将UDP端口为7、13和19的报文认为是攻击报文,直接丢弃。
ICMP泛洪攻击
通常情况下,网络管理员会用Ping程序对网络进行监控和故障排除,大概过程如下:
- 源设备向接收设备发出ICMP响应请求报文;
- 接收设备接收到ICMP响应请求报文后,会向源设备回应一个ICMP应答报文。
如果攻击者向目标设备发送大量的ICMP响应请求报文,则目标设备会忙于处理这些请求,而无法继续处理其他的数据报文,造成对正常业务的冲击。
设备针对ICMP泛洪攻击进行CAR(Committed Access Rate)限速,保证CPU不被攻击,保证网络的正常运行。