认识来自传输层的DoS攻击 |
发布时间: 2012/9/15 21:43:21 |
TCP连接初始化过程称为三次握手(three-way handshake):A连接发起端发送标志有SYN位的TCP数据包到目的端,用于协商参数,初始化连接;B目的端使用SYN/ACK来表明自己的连接 参数并确认发起端的连接参数;C发起端收到SYN/ACK后,使用ACK确认目的端连接参数。这样三次TCP包交换,发起端和接收端之前建立一条TCP连 接。当目的端TCP/IP收到一个TCP SYN后,就位将要建立的连接预留资源并等待发起端确定连接参数,这对建立稳定高效的TCP连接是必要的。但是如果向目的主机发送大量的TCP SYN,而不回应TCP ACK,使大量连接处于半开状态(half-open),导致预留资源长时间不能释放(直到超时),最终致使目的端资源耗尽。
Crikey CRC flooding是新出现的一种DoS攻击方式,目标主要是防火墙等纪录连接状态的网络安全设备。为了加速数据包通过防火墙,防火墙通常不会使用 Checksum对数据包进行效验,只是把连接添加到连接状态表中;Crikey CRC flooding在TCP和UDP头部加入错误的Checksum值。当这些数据包到达目的主机时,因为Checksum错误会被拒绝。这样,实际上没有 建立起来的连接被纪录到了连接状态表中,如果防火墙大量接受到这样的数据包,最终会导致连接状态表被填满,新的连接请求被拒绝。 防范方法 首先在防火墙上限制TCP SYN的突发上限,因为防火墙不能识别正常的SYN和恶意的SYN,一般把TCP SYN的突发量调整到内部主机可以承受的连接量,当超过这个预设的突发量的时候就自动清理或者阻止,这个功能目前很多宽带路由都支持,如海蜘蛛路由,只不 过每款路由设置项的名称可能不一样,原理和效果一样。一些高端防火墙具有TCP SYN网关和TCP SYN中继等特殊功能,也可以抵抗TCP SYN flooding,他们都是通过干涉建立过程来实现。具有TCP SYN网关功能的防火墙在收到TCP SYN后,转发给内部主机并记录该连接,当收到主机的TCP SYN/ACK后,以客户机的名义发送TCP ACK给主机,帮助三次握手,把连接由半开状态变成全开状态(后者比前者占用的资源少)。而具有TCP SYN中继功能的防火墙在收到TCP SYN后不转发给内部主机,而是代替内部主机回应TCP SYN/ACK,如果收到TCP ACK则表示连接非恶意,否则及时释放半连接所占用资源。
Crikey CRC flooding主要目标是网络安全设备,需要为防火墙打上安全补丁,使数据包通过时用checksum进行校验,对于checksum错误的TCP和 UDP数据包丢弃;减小连接状态条目老化时间,是不活动的连接数目要及时清除,防止填满连接状态表 本文出自:亿恩科技【www.enkj.com】 |