SYNFlOOD攻击原理、检测及防御
SYN LLOOD是现在比较常见的攻击方式,它可以利用TCP协议的缺陷来对TCP连接请求进行伪造,进而导致CPU在资源方面出现耗尽的情况,或者是导致CPU出现内存不足的情况。在对SYN FLOOD攻击进行分析的时候可以从TCP三次握手和握手的时候出现的缺陷,同时在IP方面出现的欺骗进行分析,这样可以更好的对SYN FLOOD 进行分析,进而找到检测的方法和防御的方法。
标签:SYN Flood攻击;检测;防御
拒绝服务攻击和分布式拒绝服务攻击是网络攻击方式中危害极大的攻击,和其他的网络攻击不同,拒绝服务攻击不是对攻击目标的系统和数据进行危害,而是对攻击目标的网络进行耗尽,同时对系统的操作面临着资源不断减少的情况,这样就会导致攻击目标的服务器系统出现崩溃的情况,使得用户无法使用网络服务。SNY FLOOD就是拒绝服务攻击和分布式拒绝服务攻击的重要方式之一,如果攻击的目标是支持TCP应用的,那么这种攻击方式就可以对攻击目标的所有网络连接进行攻击,同时使用户无法正常进行网络的访问,SNY FLOOD攻击的原理就是利用TCP协议在建立连接的时候三次握手的缺陷,同时利用IP的欺骗技术。为了更好的解决这种攻击方式,对SYN FLOOD攻击进行必要的检测是非常重要的,在检测方面人们已经在使用一些方法的,同时在防御方法上人们也找到了一些措施,可以通过修改系统的配置,采用必要的防火墙或者只允许合法的IP源在设备上进行使用,这样进行网络连接的时候才能避免出现IP欺骗的情况。
1 TCP三次握手
TCP是传输控制协议的简称,它是一种传输层协议,在使用的时候主要是进行面向连接。面向连接是一种数据在传输的时候建立起来的虚电路连接,在进行连接的时候主要是对客户端和服务器之间进行连接。这个连接的过程通常被人们称作为TCP的三次握手。TCP的第一次握手是客户端向服务器发送SYN包,并且要在系统缓存中开辟一个空间来对服务器的请求进行处理,这时候连接的状态表现为SYN 的发送状态。TCP的第二次握手是服务器收到SYN包之后,对客户发送的SYN包进行确认,然后向客户端发送SYN+ACK包这时在系统的缓存区域同时也是要开辟一块空间对客户端的请求进行处理,这时的连接状态是SYN 的接收状态。TCP的第三次握手是客户端收到服务器发送的SYN+ACK包,然后将ACK包重新发送给服务器,服务器收到ACK包以后,客户端和服务器的连接就完成了,三次握手也就完成了,这时客户端和服务器就可以进行数据的传输了。
2 SYN FLOOD攻击原理
2.1 TCP握手缺陷
TCP的第二次握手时,服务器在收到客户端发送的SYN 包以后,要在系统
的缓存中对客户的请求进行处理,同时服务器要向客户端发送SYN+ACK包,在没有SYN FLOOD 攻击的情况下,也可能会出现因为网络的原因导致服务器在一定的时间内无法收到ACK包,在收到SYN FLOOD 攻击以后,服务器会不断的进行SYN+ACK包的传输,这样就会导致缓存不断要进行空间的预留,进而出现系统缓存不断释放的情况,这时的SYN FLOOD 攻击就是利用的TCP 握手时出现的缺陷。
2.2 IP欺骗
在网络中,路由设备要根据数据包的目标IP地址进行数据包的传输,使数据包传输到目的端,在这个过程中,对源IP地址是不会进行检查的,这样也就为SYN FLOOD 的攻击提供了一个便利的条件。SYN FLOOD 进行攻击的时候,可以对源IP 的地址进行随意的伪造,使源IP 地址在进行追踪的时候非常难进行,尽管SYN FLOOD可以通过这种方式来进行攻击,同时也可以找到防御的方法。
2.3 SYN FLOOD攻击
SYN FLOOD 进行攻击的时候主要是利用TCP协议的三次握手缺陷和IP 欺骗,这样就可以向服务器发送大量的伪造源IP地址,而且这种发送还可以是持续来进行的,这样就会导致系统在资源使用上出现问题。伪造的源IP 地址通常都是不存在的,这样就使得服务器无法收到ACK包,使得服务器要不断的向客户端发送SYN+ACK 包,这样就使得客户端要在系统中不断进行空间的开辟来进行客户端的处理,这样就会使得网络出现堵塞的情况,导致系统出现瘫痪的情况,使正常的SYN请求在系统中被丢弃。
3 SYN Flood攻击检测
3.1 传统检测方法
一种是查看本地连接是否有大量的半开连接队列,但这个方法不是很准确。另一种是给每一个请求连接的IP地址分配一个Cookie.如果短时间内连续受到某个IP的重复SYN包,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。由于SYN包的源IP地址可以随意伪造,SYN FIood攻击可以很容易规避SYNCookie检测。
3.2 牛顿均差插值检测法
插值法利用函数f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化, 这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。
4 攻击防御
只要服务器提供TCP应用,攻击者就可以进行SYN Flood攻击,而且SYN Flood攻击一般很难以防御和追踪,现介绍几种防御办法。
4.1 修改系统配置
我们可以修改系统支持的最大TCP连接数以及通过负载均衡等来提高防御SYN Flood攻击能力。
4.2 采用防火墙
防火墙通常用于保护内部网络不受外部网络的非授权访问,它位于客户端和服务器之间。由于防火墙所能处理的半开连接数远大于服务器所能处理的半开连接数以及根据SYN Flood攻击特性,因此防火墙可以用来阻止DDOS攻击有效地保护内部的服务器。
4.3 边缘路由设备只允许合法源IP进入网络
通过在边界路由设备上配置访问控制列表只允许合法源IP地址才能访问网络.这样会大大过滤掉SYNFlood攻击流量.即使部分利用合法源IP地址进行的攻击.也非常容易被追踪。这是目前解决互联网SYNFlood攻击最有效的办法。
5 结束语
为了更好的对SYN FLOOD 攻击原理进行掌握,同时对传统的攻击检测方法进行分析,进而找到更加准确的检测方法,在检测方法进行分析的时候对防御的方法也能进行必要的分析。SYN FLOOD 攻击方式是与其他攻击方式不同的攻击,在进行攻击的时候,不需要使用木马等程序就能对攻击目标进行攻击,只是需要攻击目标在使用TCP服务即可。现在,网络应用规模越来越大,为了更好的利用网络,一定要提高网络的使用安全,拒绝服务攻击的危害越来越严重,需要提高全网用户的网络安全防护意识和技术水平以及需要网络服务提供商和用户进行共同防御。拒绝服务攻击将仍是我们必须重点防范和研究的网络安全的威胁之一。
参考文献
[1]胡伟栋,汪为农.分布式拒绝服务攻击及其防范[J].计算机工程,2000(10).
[2]韦卫.Internet网络层安全协议理论研究与实现[J].计算机学报,1999(3).
[3]于泠.DoS攻击原理与对策的进一步研究[J].计算机工程与应用,2001(10).