SYN Flood(同步)溢出
类型:拒绝服务攻击
控制台名:SYN(同步)溢出
技术描述:一个TCP的会话是通过以下方式来建立的,源主机首先向目标主机发送一个SYN(同步)数据包,如果目标主机在一特定的端口(PORT)等待连接时,它会返回对应于同步数据包的响应数据包(SYN/ACK),源主机接收后再返回确认的响应数据包(ACK),这样会话连接建立。当目标主机向源主机返回响应数据包(SYN/ACK)时,目标主机会分配一定的内存以存储当前建立的会话连接的状态信息。这部分内存会一直占用着以等待接收源主机发送来的更多信息,除非最终的响应数据包(ACK)到达或连接超时。当向一台主机传送大量的SYN(同步)数据包时,目标主机必定会使用很多的内存专门用来处理打开的连接,而其它的合法连接就无法与这台主机建立了。如果主机检测到有大量的无相应响应的SYN(同步)数据包存在,它会采取如下纠错方式:主机首先向目标主机发送一重置(RST)数据包以初始化SYN(同步)数据包,随后目标主机就可以释放原本用来接收响应数据包的内存,腾出内存空间以接收其它合法的连接。
严重性:大多数系统会对激活的TCP连接有一预定义的限制设定,一旦TCP连接达到这一限制设定值,再有其它的连接就会被忽略。SYN(同步)溢出攻击方式就是企图使主机连接大批空闲的连接,而其它的连接无法连接上。
误判断:一些网络应用程序(例如PointCast更新或者是向一个非常“繁忙”的网页发出HTTP请求)应用时会触发这种机制,他们会在很短的时间内与主机建立大量的TCP会话。管理员可以在引擎控制窗口里调整SYN(同步)溢出的定义参数。
受影响系统:任何对激活的TCP连接有限制的网络设备。
采取措施:快速地重启受影响的机器以释放一些连接,并必须等到空的连接超时。实时监控可以关闭未激活的连接。配置实时监控里有关SYN(同步)溢出的Kill选项。实时监控会关闭可能造成机器SYN(同步)溢出的连接企图。
补救措施:更新操作系统的版本或者应用相应的补丁程序。现在许多操作系统具备通过试探的方法来关闭闲置的连接, 并将SYN(同步)溢出的连接请求阻挡在合法的连接之外。另外也可以通过增加连接缓存缺省值以达到目的。