一、攻击过程:
在三次握手过程中,sever发送SYN-ACK后,收到client的ACK之前的TCP连接称为半连接(half-open connect),此时sever处于SYN-RECV状态,当收到ACK后进入establised状态。
SYN攻击(syn flood)就是,攻击的客户端在短时间内伪造大量不存在的IP地址,向服务器不断发送syn请求建立连接,服务器回复确认报,并等待客户端的确认,由于源地址不存在,服务器需要不断重发直至超时,这些伪造的syn包将长时间占用半连接队列,正常的SYN请求被抛弃,目标系统运行慢,严重引起网络堵塞甚至瘫痪。
Syn Flood类型:
Direct Attact:攻击方使用固定的源地址发起攻击,这种方法对攻击者的消耗最小;
spoofing attact:攻击方使用变化的源地址发起攻击,消耗有些大;
distributeed direct attact:这种攻击主要是使用僵尸网络进行固定原地址的攻击
syn攻击时典型的DDOS攻击。Linux上检测是否被syn攻击:netstat -n -p TCP | grep SYN_RECV
二、syn攻击的防御
1、具有SYN proxy(SYN代理)功能的防火墙
每秒通过指定对象(目标地址和端口、仅目标地址或仅源地址)的SYN片段数的阀值,当来自相同源地址或发往相同目标地址的SYN片段数达到一定阀值时,防火墙开始截断连接请求和代理回复SYN/ACK片段,当防火墙代理半连接的队列被填满,防火墙拒绝来自相安全同区域所有地址的新SYN片段。
缺点:当攻流量较大时,连接出现较大延迟,网络负载高,很多时候成为整个网络瓶颈