什么是ACK攻击
ACK Flooding攻击是在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。
当攻击程序每秒钟发送ACK报文的速率达到一定的程度,才能使主机和防火墙的负载有大的变化。当发包速率很大的时候,主机操作系统将耗费大量的精力接收报文、判断状态,同时要主动回应RST报文,正常的数据包就可能无法得到及时的处理。这时候客户端(以IE为例)的表现就是访问
页面反应很慢,丢包率较高,这就是ACK攻击
防御方法:
有软防与硬防两方面做处理,
首先软防在安装之后,可对其进行设置,现在的iptabls有相应设置,特别是ACK这方面,专门对ACK协议进行判断,同时实现ack过滤,减少对网站本身的连接数,从而减少负载,对于一些小攻击基本不影响到网站的访问,但出现大量ack攻击的时候,iptabls防火墙的过滤能力是有限的,所以需要能够处理大量ack包的能力,这就需要强大的集群硬件防火墙,通过强大的过滤功能,将ack分批过滤,也是解决这类攻击的最有效的办法。