SYN Flood是当前最流行的DDoS攻击方式之一,它利用TCP协议缺陷发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU 满负荷或内存不足)。由于SYN Flood是通过网络底层对服务器进行攻击的,攻击者可以任意改变自己的网络地址而不被网络上的其他设备所识别。受攻击者一旦发现服务器不再接受请求,甚至是本地访问的速度也很慢,就应使用Netstat检查处于SYN_RECV(半连接)状态的连接。如果数量大于500或占总连接数的10%以上,可以认定其系统(或主机)遭到SYN Flood攻击。
通常,有两种简单的方法可以防御SYN Flood攻击:一是缩短等待时间(SYN Timeout)并增大队列SYN包的最大容量(tcp_max_SYN_backlog);二是设置SYN Cookie。但是,这两种方法只能对付比较原始的SYN Flood攻击。缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,而SYN Cookie依赖于对方使用真实的IP地址。如果攻击者以每秒数万条的速度发送SYN报文,同时利用SOCK_RAW等工具随机改写IP报文中的源地址,那么上述方法显然无法生效。
当然,也可以利用iptables编写功能完善的防火墙。iptables为模块化结构,管理方便,易于排错,是一种功能强大的实用防火墙工具。但是,利用iptables建立的防火墙系统,即使能够快速发现网络出现问题的原因,也不可能在第一时间内调整防火墙规则来响应攻击者的攻击行为。因为当遇到SYN Flood攻击时再加载防火墙启动脚本,并使用vi对iptables规则进行编辑,以便阻塞那些发出恶意攻击数据的源地址的数据报,所有这些工作至少需要耗费一两分钟。对于SYN Flood攻击尤其是DDoS攻击,这种反应速度显然是跟不上的。而且一旦攻击者使用虚假的随机IP地址,上述方法会导致网络的严重堵塞。若要再次修改防火墙启动脚本来阻止攻击,只能被动地跟在攻击者之后修补漏洞,收效甚微。因此,在网络受到攻击时,通过修改防火墙规则配置脚本,被动慌乱地对攻击做出快速防范反应,这显然是不现实的。
【责任编辑: book TEL:(010)68476606】
|