赞
踩
说起SYN FLOOD的攻击主要的攻击原理就是让服务器创建多个半连接由此来使得服务器的资源被消耗殆尽。下面是华为防火墙的三个主要防护手段:
TCP代理的核心思想就是代表服务器去建立TCP的半连接,与防火墙充当SSL的解密中间人类似,它主要是充当一个TCP的中间人的角色,当有TCP连接的时候先和FW进行TCP的三次握手,若客户端可以正常的完成三次握手,那么FW就代替客户端与内部服务器进行TCP的三次握手,其实整个流程下来总共完成了两次的TCP握手,于是后续的关于该TCP会话的流量就直接送到服务器上。虽然TCP代理可以再一定程度上保护服务器,但是这个防范方式其实和增加服务器的性能并没有什么区别,当流量一样比较巨大的时候,大到可以讲FW冲垮,那么其实并没有什么软用。
这是TCP代理的升级版,如果仅仅是使用FW做TCP代理,那么当会话达到一定程度后,FW每次都要进行TCP连接的建立请求,而且防火墙还要承载多个半连接的工作,那么毫无疑问,这个TCP代理是一个很呆的做法。而TCP源认证比起TCP大力来说,会较好一些。防火墙收到一个TCP的SYN报文后,会主动向源地址发送错误的SYN-ACK,那么毫无疑问如果是真实的客户端一定会会送RST报文,表示将本次不正常的TCP连接断开,而虚假的客户端将不会做出任何的响应。当客户端做出了响应后,FW将认为这个客户端是正常的,后续将不会再针对这个IP地址做SYN FLOOD的防御。虽然这样子看起来还不错,但是DDOS攻击的源一般都是变化的,那么这就会使得FW仍然要向这些变化的源地址发送SYN-ACK报文,那么可能对于攻击者来说这只是一些恶意流量,但是对于FW来说,消耗的都是自己赤裸裸的性能,当然当流量达到一定程度后毫无疑问会导致性能的下降。
首包丢弃指的是FW在接收到SYN报文的时候直接将SYN报文丢弃,如果是正常的客户端那么它就会进行TCP的重传,FW会对其进行记录,如果进行了正常重传,那么就说明这个客户端时一个正常的客户端。虽然这么做可以减少FW的工作量,其实从本质上来说的话,这样的操作其实是将工作量分散到客户端上。那么FW如何判断其是否为首包?FW会记录任何三元组的信息,如果FW中没有某个接收到的三元组的信息,那么就说明这个数据包是首包,同时FW会计算报文进入FW的时间,如果某个报文进入FW后它的时间和上一个相同的报文进入FW的时间是小于一段时间的,那么就说明是重传,如果大于某段时间,那么就说明是首包。
但是到目前为止还是存在一些问题,因为很有可能开启了这个功能后会导致TCP报文的重传率的增加,所以当重传率达到一定程度后就会使用TCP源认证。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。