DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
http://blog.csdn.net/bill_lee_sh_cn/article/details/6065704
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手(SYN+ACK包),因为对方是假冒IP,对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来。

要明白这种攻击的基本原理,还是要从TCP连接建立的过程开始说起:

大家都知道,TCP与UDP不同,它是基于连接的,也就是说:为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程是这样的:

首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;

第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。

第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。

以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。

问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。

从防御角度来说,有几种简单的解决方法,第一种是缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x  SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。

第二种方法是设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。

可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法将毫无用武之地。

时间: 2024-10-20 04:42:45

DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的相关文章

DDOS分布式拒绝服务

DDOS(分布式拒绝服务)概念 DDOS称为分布式拒绝服务,DDOS本是利用合理的请求伪造资源过载,导致服务不可用.比如一个停车场有100个停车位,当100个停车位都停满后,再有车想要进来.就必须要等已有的车先出来才行.如果已有的车一直不出去,那么停车场的入口就会排有长队.停车场的负荷过载.不能进行正常工作了,这种情况就是"拒绝服务".我们的系统就好比停车场,系统中的资源就是车位,资源是有限的,而服务必须一直提供下去.如果资源已经被占用了,那么服务也将过载,导致系统停止新的响应. 分布

DDOS分布式拒绝服务攻击

概念: 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力.通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上.代理程序收到指令时就发动攻击.利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行. 原理: SYN-

DDoS --- 分布式拒绝服务(Disturbuted Denial of Service)

DDOS攻击都是由僵尸网络发起的 僵尸网络的通信协议:IRD --> HTTP --> P2P IRC型僵尸网络 HTTP型网络 P2P型网络 僵尸网络的危害 发送DDOS攻击 发送垃圾邮件 窃取敏感信息 抢占系统资源 分布式拒绝服务攻击:利用分布式的客户端,像服务提供者发起大量看似合法的请求,消耗和长期占用大量资源,从而达到拒绝服务的目的 攻击网络带宽资源 利用受控主机发送大量的网络数据包,占满被攻击目标的全部带宽,从而使正常的请求无法得到及时有效的响应,造成拒绝服务. 直接攻击ICMP/I

web前端安全之分布式拒绝服务攻击

一.DDOS攻击的原理分布式拒绝服务,Distributed Denial of Service,利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务.通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的.具体有几种形式: 通过使网络过载来干扰甚至阻断正常的网络通讯: 通过向服务器提交大量请求,使服务器超负荷: 阻断某一用户访问服务器: 阻断某服务与特定系统或个人的通讯. SYN攻击,synchronous,属于DDOS攻击中的一种具体表现形式.SYN是TCP

分布式拒绝服务攻击(DDoS)原理及防范

DDoS攻击概念 DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应. DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低.内存小或者网络带宽小等等各项性能指标不高它的效果是明显的.随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 – 目标对恶意攻击包的”消化能力”加强了不

分布式拒绝服务(DDOS)攻击发展趋势

分布式拒绝服务 (DDoS) 攻击虽然已不是一个新概念,但其攻击效果却非常有效.近年来,DDoS 攻击的强度和数量不断上升,但攻击时间却通常仅持续数小时.攻击者轻而易举就可实施攻击,并给目标公司带来毁灭性打击.特别是目前极为常见的放大攻击,此类攻击支持小型僵尸网络入侵大型目标.攻击过程中,攻击者向第三方服务发送欺骗性流量,并向攻击目标提供回复.为放大响应流量,攻击者会选择使用智能查询技术,从而导致产生大量服务回复.例如,它可能会向 DNS 服务器重复请求所有记录,或使用 NTP 服务器的 mon

ddos(分布式拒绝服务)攻击防御措施

总体来说,对DoS和DDoS的防范主要从下面几个方面考虑: 尽可能对系统加载最新补丁,并采取有效的合规性配置,降低漏洞利用风险: 采取合适的安全域划分,配置防火墙.入侵检测和防范系统,减缓攻击. 采用分布式组网.负载均衡.提升系统容量等可靠性措施,增强总体服务能力. 可参考措施如下: 1.采用高性能的网络设备引 首先要保证网络设备不能成为瓶颈,因此选择路由器.交换机.硬件防火墙等设备的时候要尽量选用知名度高. 口碑好的产品. 再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时

DOS攻击和DDOS攻击有啥区别啊

DDOS是DOS攻击中的一种方法. DoS:是Denial of Service的简称,即拒绝服务,不是DOS操作系统,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带宽攻击和连通性攻击. DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力. 举一个最通俗的例

cc攻击和ddos攻击的区别和攻防

1.一个是WEB网络层拒绝服务攻击(DDoS),一个是WEB应用层拒绝服务攻击(CC),网络层就是利用肉鸡的流量去攻击目标网站的服务器,针对比较本源的东西去攻击,服务器瘫痪了,那么运行在服务器上的网站肯定也不能正常访问了. 2.而应用层就是我们用户看得到的东西,就比如说网页,CC攻击就是针对网页来攻击的,CC攻击本身是正常请求,网站动态页面的正常请求也会和数据库进行交互的,制造大量的后台数据库查询动作,当这种"正常请求"达到一种程度的时候,服务器就会响应不过来,从而崩溃. 参考:htt