什么是DDoS攻击?

分布式拒绝服务(Distributed Denial of Service,简称DDoS)指借助于客户机/服务器模式,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

通常,攻击者使用一个非法账号将DDoS主控程序安装在一台计算机上,并在网络上的许多计算机上安装了代理程序。在所设定的时间,主控程序将与大量代理程序进行通讯,代理程序收到指令时就发动攻击。利用客户机/服务器模式,主控程序能在几秒钟内激活成百上千次代理程序的运行。

畸形报文

畸形报文攻击指通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的报文时出现崩溃,从而达到拒绝服务的攻击目的。

畸形报文主要包括以下类型:Frag Flood、Smurf、Stream Flood、Land Flood、IP畸形报文、TCP畸形报文、UDP畸形报文。

传输层DDoS攻击

传输层DDoS攻击主要是指Syn Flood、Ack Flood、UDP Flood、ICMP Flood、RstFlood等攻击。

以Syn Flood攻击为例,它利用了TCP协议的三次握手机制,当服务端接收到一个Syn请求时,服务端必须使用一个监听队列将该连接保存一定时间。因此,通过向服务端不停发送Syn请求,但不响应Syn+Ack报文,从而消耗服务端的资源。当监听队列被占满时,服务端将无法响应正常用户的请求,达到拒绝服务攻击的目的。

DNS DDoS攻击

DNS DDoS攻击主要是指DNS Request Flood、DNS Response Flood、虚假源+真实源DNS Query Flood、权威服务器攻击和Local服务器攻击。

以DNS Query Flood攻击为例,其本质上执行的是真实的Query请求,属于正常业务行为。但如果多台傀儡机同时发起海量的域名查询请求,服务端无法响应正常的Query请求,从而导致拒绝服务。

连接型DDoS攻击

连接型DDoS攻击主要是指TCP慢速连接攻击、连接耗尽攻击、Loic、Hoic、Slowloris、 Pyloris、Xoic等慢速攻击。

以Slowloris攻击为例,其攻击目标是Web服务器的并发上限,当Web服务器的连接并发数达到上限后,Web服务即无法接受新的请求。具体来说,Web服务接收到新的HTTP请求时,建立新的连接来处理请求,并在处理完成后关闭这个连接;如果该连接一直处于连接状态,收到新的HTTP请求时则需要建立新的连接进行处理;而当所有连接都处于连接状态时,Web将无法处理任何新的请求。

Slowloris攻击利用HTTP协议的特性来达到攻击目的。HTTP请求以\r\n\r\n标识Headers的结束,如果Web服务端只收到\r\n,则认为HTTP Headers部分没有结束,将保留该连接并等待后续的请求内容。

Web应用层DDoS攻击

Web应用层攻击主要是指HTTP Get Flood、HTTP Post Flood、CC等攻击。

通常应用层攻击完全模拟用户请求,类似于各种搜索引擎和爬虫一样,这些攻击行为和正常的业务并没有严格的边界,难以辨别。

Web服务中一些资源消耗较大的事务和页面。例如,Web应用中的分页和分表,如果控制页面的参数过大,频繁的翻页将会占用较多的Web服务资源。尤其在高并发频繁调用的情况下,类似这样的事务就成了早期CC攻击的目标。

由于现在的攻击大都是混合型的,因此模拟用户行为的频繁操作都可以被认为是CC攻击。例如,各种刷票软件对网站的访问,从某种程度上来说就是CC攻击。

CC攻击瞄准的是Web应用的后端业务,除了导致拒绝服务外,还会直接影响Web应用的功能和性能,包括Web响应时间、数据库服务、磁盘读写等。

我公司提供DDOS高防服务器租用,10Gbps到1800Gbps。联系QQ:28575315

低延时高防服务器,CDN节点高防服务器,网站高防服务器

低延时高防服务器,CDN节点高防服务器,网站高防服务器

低延时!!!
不是那种被攻击了延时上到几百的那种防护。
完全是本地清洗,被攻击了之后用户无感知,自动清洗。

当然价格也贵一点,看客户需求什么样的防护。这两种高防我们都有。需要的联系QQ28575315

另外提供多IP服务器、超高配服务器等等,联系我说出需求即可。

浅谈DDos攻击与防御

最近重新拜读了道哥的经典力作《白帽子讲Web安全》一书,发觉好书看一遍是不够的,每次品味都有不同的味道。道哥此书侧重于企业安全,即所讲所写偏重企业内部的安全建设,而不是针对某些漏洞大书特书。再次细读,深感需要做点笔记加强加强记忆,于是便以本篇开始,记录一些曾经看过的经典书籍的笔记。本篇主要用于记录《白帽子讲Web安全》读后感之DDos攻击与防御相关的知识。本篇记录的绝大部分内容来自《白帽子讲Web安全》,感谢道哥!

DDOS攻击
DDOS攻击

DDos简介

DDos又叫分布式拒绝服务,全称Distributed Denial of Service,利用DDos造成的攻击称为拒绝服务攻击,其原理就是利用大量的请求造成资源过载,导致服务不可用。
DDos攻击从层次上可分为网络层攻击与应用层攻击,从攻击手法上可分为快型流量攻击与慢型流量攻击,但其原理都是造成资源过载,导致服务不可用。

网络层DDos攻击

网络层DDos攻击包括SYN flood、UDP flood、ICMP flood等。

SYN flood攻击

SYN flood攻击主要利用了TCP三次握手过程中的bug,我们知道TCP三次握手过程是要建立连接的双方发送SYN,SYN+ACK,ACK数据包,而当攻击方随意构造源ip去发送SYN包时,服务器返回的SYN+ACK就不能得到应答(因为ip是随意构造的),此时服务器就会尝试重新发送,并且会有至少30s的等待时间,导致资源饱和服务不可用,此攻击属于慢型dos攻击。

UDP flood攻击

由于udp是一种无连接的协议,因此攻击者可以伪造大量的源IP地址去发送udp包,此种攻击属于大流量攻击。正常应用情况下,UDP包双向流量会基本相等,因此在消耗对方资源的时候也在消耗自己的资源。

ICMP flood攻击

此攻击属于大流量攻击,其原理就是不断发送不正常的ICMP包(所谓不正常就是ICMP包内容很大),导致目标带宽被占用,但其本身资源也会被消耗。并且目前很多服务器都是禁ping的(在防火墙在可以屏蔽icmp包),因此这种方式已经落伍。

网络层DDos防御

  • 网络架构上做好优化,采用负载均衡分流。
  • 添加抗DDos设备,流量清洗。
  • 限制单ip请求频率。
  • 防火墙等防护设置禁止icmp包等

网络层的DDos攻击究其本质其实是无法防御的,我们能做得就是不断优化自身的网络架构,以及提升网络带宽。

应用层DDos攻击

应用层DDos攻击不是发生在网络层,是发生在TCP建立握手成功之后,应用程序处理请求的时候。

CC攻击

CC攻击还有一段比较有趣的来历,据说当时绿盟为了防御DDos攻击研发了一款产品,叫做“Collapasar”,能够有效的防御SYN flood攻击。然而黑客为了挑衅,研发了一款Challenge Collapasar工具(简称CC)。
CC攻击的原理,就是针对消耗资源比较大的页面不断发起不正常的请求,导致资源耗尽。因此在发送CC攻击前,我们需要寻找加载比较慢,消耗资源比较多的网页,比如需要查询数据库的页面、读写硬盘文件的等。通过cc攻击,使用爬虫对某些加载需要消耗大量资源的页面发起http请求。

slowloris

这是由于webserver中间件漏洞引发的拒绝服务攻击,其原理是以极低的速度往服务器发送HTTP请求。apache等中间件默认会设置最大并发链接数,而这种攻击就是会持续保持连接,导致服务饱和不可用。slowloris有点类似基于HTTP协议的SYN flood攻击。

poc

构造以下畸形http请求包

GET / HTTP/1.1\r\n

Host: Victim host\r\n

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n

Content-Length: 42\r\n

完整的http请求头结尾应该是两次的\r\n\r\n,这里少了一次,因此服务器将会一直等待。

HTTP POST DOS

其原理是在发送HTTP POST包时,指定一个非常大的Content-Length值,然后以极低的速度发包,保持连接不断,导致服务饱和不可用。

poc

构造以下畸形http请求包

GET / HTTP/1.1\r\n

Host: Victim host\r\n

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n

Content-Length: 9999999999\r\n\r\n

Slow Read attack

Slow Read attack攻击方式是采用调整TCP协议中的滑动窗口大小,来对服务器单次发送发送的数据大小进行控制,使得服务器需要对一个回应分成很多个包来发送。

Server Limit Dos

这是由于cookie导致的dos攻击,当然其原理还是基于webserver的特性。apache默认最大的http包头长度为8192字节,如果超出此长度,则会返回4xx错误。如果我们利用存储型xss漏洞,将一个超长的cookie写入客户端页面,则用户再访问此页面后,由于请求头加载了恶意的超长cookie,导致其不能访问该站的页面(除非清空cookie)

ReDos

这是由于代码写得有缺陷,导致使用正则时,会出现大量占用资源的情况,导致服务不可用,这是利用了正则表达式在匹配时的某些特性决定的。

应用层DDos防御

  • 判断User-Agent字段(不可靠,因为可以随意构造)
  • 网页中镶嵌js代码(不可靠,因为爬虫也可携带浏览器引擎,或者执行js代码)
  • 针对ip+cookie,限制访问频率(由于cookie可以更改,ip可以使用代理,或者肉鸡,也不可靠)
  • 关闭apache最大连接数等,合理配置中间件,缓解ddos攻击。
  • 页面中添加验证码,比如搜索数据库时。
  • 编写代码时,尽量实现优化,并合理使用缓存技术,减少数据库的读取操作。

应用层的防御有时比网络层的更难,因为导致应用层被dos攻击的因素非常多,有时往往是因为程序员的失误,导致某个页面加载需要消耗大量资源,有时是因为中间件配置不当等等。而应用层DDos防御的核心就是区分人与机器(爬虫),因为大量的请求不可能是人为的,肯定是机器构造的。因此如果能有效的区分人与爬虫行为,则可以很好地防御此攻击。

无线DDOS

@更新于2017年5月31日
参考:http://www.freebuf.com/articles/wireless/135598.html

Auth Flood攻击

Auth Flood攻击:即身份验证洪水攻击。该攻击目标主要针对那些处于通过验证、和AP建立关联的关联客户端,攻击者将向AP发送大量伪造的身份验证请求帧(伪造的身份验证服务和状态代码),当收到大量伪造的身份验证请求超过所能承受的能力时,AP将断开其他无线服务连接。

Deauth Flood攻击

Deauth Flood攻击即为取消验证洪水攻击,它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。对于目前的工具来说,这种形式的攻击在打断客户无线服务方面非常有效和快捷。一般来说,在攻击者发送另一个取消身份验证帧之前,客户端会重新关联和认证以再次获取服务。攻击者反复欺骗取消身份验证帧才能使所有客户端持续拒绝服务。

Association Flood攻击

Association Flood攻击即为关联洪水攻击。在无线路由器或者接入点内置一个列表即为连接状态表,里面可显示出所有与该AP建立连接的无线客户端状态。它试图通过利用大量模仿和伪造的无线客户端关联来填充AP的客户端关联表,从而达到淹没AP的目的。
由于开放身份验证(空身份验证)允许任何客户端通过身份验证后关联。利用这种漏洞的攻击者可以通过创建多个到达已连接或已关联的客户端来模仿很多客户端,从而淹没目标AP的客户端关联表。

Disassociation Flood攻击

Disassociation Flood攻击即为取消关联洪水攻击,和deauthenticaiton flood攻击表现方式很相似。它通过欺骗从AP到客户端的取消关联帧来强制客户端成为未关联/未认证的状态。一般来说,在攻击者发送另一个取消关联帧之前,客户端会重新关联以再次获取服务。攻击者反复欺骗取消关联帧才能使客户端持续拒绝服务。
Disassociation Broadcast攻击和Disassociation Flood攻击原理基本一致,只是在发送程度及使用工具上有所区别,前者很多时候用于配合进行无线中间人攻击,而后者常用于目标确定的点对点无线DOS,比如破坏或干扰指定机构或部门的无线接入点等。

RF Jamming攻击

RF Jamming攻击即为RF干扰攻击。该攻击是通过发出干扰射频达到破坏正常无线通信的目的。而前面几种攻击主要是基于无线通信过程及协议的。RF为射频,主要包括无线信号发射机及收信机等。

原文:https://thief.one/2017/05/10/1/

为什么DDOS攻击流量一直在上升?

通过发动DDOS攻击可以赚很多金钱。曾经愤怒的青少年玩家之间互相攻击的东西现在是黑客、罪犯和政治组织使用的常用工具。而且DDoS攻击越来越大。在2017年, 42%的攻击超过50Gbps。两年前只有10%的攻击能够超过50Gbps的流量。今年两攻击甚至已经通过该1Tbps马克。

随着更多物联网(IoT)设备被消费者购买并放置在网络上,黑客们可以访问更少的更新设备,这些设备可以用于大型机器人网络,以发起我们所看到的最大的攻击。此外,比特币(Bitcoin)和服务等难以追踪的密码货币的兴起也出现了,从而允许根据需求购买DDOS攻击。

DDOS攻击的站点有没有结束?可能不是短期内可以消失的。但是,您可以做的是确保您的网站或业务受到DDOS的保护,以免对发生攻击的恶意人员感到担心。攻击越来越大,确保防御DDOS攻击也越来越大。

什么是死亡Ping(Ping of Death)?

什么是死亡Ping攻击?

死亡攻击是一种拒绝服务(DoS)攻击,攻击者的目标是通过发送大于最大允许大小的数据包来破坏目标机器,导致目标机器冻结或崩溃。原来的平安死亡袭击今天不太常见。称为ICMP洪水袭击的相关攻击更为普遍。

死亡Ping如何工作?

互联网控制消息协议(ICMP)回应回复消息或“ping”是用于测试网络连接的网络实用程序,它的工作原理与声纳相似 – “脉冲”被发送出来,并且该脉冲的“回波”告诉操作员有关环境的信息。如果连接正常,源计算机从目标机器接收到一个回复​​。

虽然一些ping数据包很小,但是IP4 ping数据包要大得多,可以和最大允许数据包大小为65,535字节一样大。一些TCP / IP系统从未被设计为处理大于最大数据包的数据包,使得它们容易受到超过该大小的数据包的影响。

当恶意大数据包从攻击者发送到目标时,数据包将分段成分段,每个数据段都低于最大大小限制。当目标机器尝试将这些部分重新放在一起时,总数超过了大小限制,并且可能会发生缓冲区溢出,导致目标机器冻结,崩溃或重启。

虽然ICMP回显可用于此攻击,但是发送IP数据报的任何内容都可用于此漏洞。这包括TCP,UDP和IPX传输。

死亡Ping DDoS攻击如何缓解?

阻止攻击的一个解决方案是对重新组装过程添加检查,以确保在分组重组后不会超过最大数据包大小约束。另一种解决方案是创建一个具有足够空间的内存缓冲区来处理超过最大准则的数据包。

原来的“死亡Ping”攻击大多走过恐龙之路; 1998年以后创建的设备通常受到此类攻击的保护。一些传统设备可能仍然易受攻击。近期发现了针对Microsoft Windows的IPv6数据包的新的Ping死亡攻击,并于2013年中期进行了修补。

什么是Smurf攻击?

Smurf攻击是一种分布式拒绝服务攻击(DDoS)攻击,攻击者尝试使用Internet控制消息协议(ICMP)数据包来淹没目标服务器。通过将目标设备的欺骗IP地址的请求发送到一个或多个计算机网络,计算机网络然后响应于目标服务器,放大初始攻击流量并潜在地压倒目标,使其无法访问。这种攻击向量通常被认为是一个解决的漏洞,不再普及。

Smurf攻击如何工作?

虽然ICMP数据包可以用于DDoS攻击,通常它们在网络管理中提供有价值的功能。使用ICMP数据包的ping应用程序由网络管理员用来测试网络硬件设备,如计算机,打印机或路由器。通常使用ping来查看设备是否可操作,并跟踪消息从源设备往目的地返回到源的时间。不幸的是,由于ICMP协议不包括握手,接收请求的硬件设备无法验证请求是否合法。

这种类型的DDoS攻击可以被认为是一个叫做办公室经理的恶作剧者,并假装成为公司的首席执行官。恶作剧者要求经理告诉每位员工,将他的私人电话号召给执行官,并给他们关于他们的工作情况的最新情况。恶作剧者给出了目标受害者的回调号码,然后接收与办公室中的人一样多的无用电话。

以下是Smurf攻击的工作原理:

首先,Smurf恶意软件构建一个欺骗的数据包,其源地址设置为目标受害者的真实IP地址。
然后,该分组被发送到路由器或防火墙的IP广播地址,路由器或防火墙又向广播网络内的每个主机设备地址发送请求,通过网络上的网络设备的数量增加请求的数量。
网络内的每个设备接收来自广播者的请求,然后使用ICMP回应应答包来响应目标的欺骗地址。
目标受害者然后收到大量的ICMP回应回复数据包,可能会变得不知所措,并导致对合法流量的拒绝服务。
如何减轻Smurf攻击?

多年来,已经开发和实施了这个攻击媒介的几个缓解策略,并且大部分被考虑解决这个攻击。在有限数量的遗留系统上,仍然需要应用缓解技术。一个简单的解决方案是在每个网络路由器和防火墙上禁用IP广播地址。较旧的路由器可能默认启用广播,而较新的路由器可能已经禁用。

什么是Slowloris DDoS攻击?

Slowloris是一种拒绝服务攻击程序,允许攻击者通过打开和维护攻击者与目标之间的许多同时HTTP连接来淹没目标服务器。

Slowloris攻击如何工作?

Slowloris是通过利用部分HTTP请求来操作的应用层攻击。攻击功能通过打开与目标Web服务器的连接,然后尽可能长地保持这些连接。

Slowloris不是一个攻击类别,而是一种特定的攻击工具,旨在允许单个机器在不使用大量带宽的情况下占用服务器。与基于反射的基于反射的DDoS攻击(例如NTP放大)不同,这种类型的攻击使用的带宽较少,而是旨在以似乎比正常速度慢的请求使用服务器资源,但是模拟常规流量。它属于被称为“低和慢”攻击的攻击类别。目标服务器只有很多线程可用于处理并发连接。每个服务器线程将尝试在等待缓慢请求完成时保持活动,从不发生。当服务器的最大可能连接已超出时,

慢病毒攻击发生在四个步骤:

攻击者首先通过发送多个部分HTTP请求标头打开与目标服务器的多个连接。
该目标为每个传入请求打开一个线程,其目的是在连接完成后关闭线程。为了有效,如果连接耗时太长,服务器将超时连接超时,释放线程以进行下一个请求。
为了防止目标超时,攻击者会定期向目标发送部分请求头,以保持请求的有效性。本质上说,“我还在这里!我只是慢,请等我。
在等待终止请求时,目标服务器永远不能释放任何打开的部分连接。一旦所有可用的线程正在使用中,服务器将无法响应由常规流量引起的其他请求,导致拒绝服务。
Slowloris背后的关键在于其带宽消耗很少的麻烦。

Slowloris攻击如何缓解?

对于易受Slowloris影响的Web服务器,有一些方法可以减轻一些影响。弱势服务器的缓解选项可以分为3个一般类别:

增加服务器可用性 – 增加服务器在任何时候允许的最大客户端数量将增加攻击者在使服务器超负荷之前必须创建的连接数。实际上,攻击者可以扩大攻击次数,以克服服务器容量,而不管增加。
限速传入请求 – 基于某些使用因素限制访问将有助于缓解Slowloris攻击。允许限制单个IP地址的最大连接数限制,限制传输速度慢以及限制客户端保持连接的最大时间的技术都是限制低速和慢速攻击有效性的方法。
基于云的保护 – 使用可用作反向代理的服务,保护源服务器。

什么是Ping(ICMP)洪水攻击?

ping flood是一种 拒绝服务攻击,攻击者试图用ICMP回显请求报文来淹没目标设备,导致目标对正常流量无法访问。当攻击流量来自多台设备时,攻击成为DDoS攻击或分布式拒绝服务攻击。

平洪攻击如何工作?

在Ping Flood攻击中使用的 Internet控制消息协议(ICMP)是由网络设备使用的Internet层协议进行通信。网络诊断工具 traceroute和 ping均使用ICMP进行操作。通常,ICMP回显请求和回应回复消息用于ping网络设备,以便诊断设备的健康和连接以及发送方和设备之间的连接。

ICMP请求需要一些服务器资源来处理每个请求并发送响应。请求还要求传入消息(回应请求)和传出响应(回应 – 回复)两者都有带宽。Ping Flood攻击旨在压倒有针对性的设备响应大量请求的能力和/或使虚假的流量网络连接过载。通过使僵尸网络中的许多设备 使用ICMP请求定位同一个Internet属性或基础设施组件,攻击流量将大大增加,可能导致正常网络活动中断。从历史上看,攻击者经常会 伪造一个假的 IP地址以屏蔽发送设备。随着现代僵尸网络攻击,恶意行为者很少看到需要掩盖机器人的IP,而是依靠一个庞大的非欺骗机器人网络来饱和目标的容量。

Ping(ICMP)Flood的DDoS形式可以分为2个重复步骤:

1.攻击者使用多个设备向目标服务器发送许多ICMP回显请求报文。
2.然后,目标服务器作为响应向每个请求设备的IP地址发送ICMP回应应答分组。

Ping Flood的破坏性影响与对目标服务器的请求数成正比。与基于反射的DDoS攻击(如 NTP放大和 DNS放大)不同,Ping Flood攻击流量是对称的; 目标设备接收的带宽量只是从每个机器人发送的总流量的总和。

Ping洪水袭击如何缓解?

通过禁用目标路由器,计算机或其他设备的ICMP功能,最容易实现禁止Ping洪水。网络管理员可以访问设备的管理界面,并禁用其使用ICMP发送和接收任何请求的能力,有效地消除了对请求的处理和回应回复。这样做的结果是所有涉及ICMP的网络活动都被禁用,使得设备对ping请求,跟踪路由请求和其他网络活动无响应。

什么是UDP Flood攻击?

UDP洪泛是一种拒绝服务攻击,其中大量的用户数据报协议(UDP)数据包被发送到目标服务器,目的是压倒该设备的处理和响应能力。防火墙保护目标服务器也可能因UDP泛滥而耗尽,从而导致对合法流量的拒绝服务。

UDP Flood攻击如何工作?

UDP Flood主要通过利用服务器响应发送到其中一个端口的UDP数据包所采取的步骤。在正常情况下,当服务器在特定端口接收到UDP数据包时,会经过两个步骤:

服务器首先检查是否正在运行正在侦听指定端口的请求的程序。
如果没有程序在该端口接收数据包,则服务器使用ICMP(ping)数据包进行响应,以通知发送方目的地不可达。
可以在酒店接待员路由呼叫的上下文中考虑UDP洪水。首先,接待员接收到呼叫者要求连接到特定房间的电话。接待员然后需要查看所有房间的清单,以确保客人在房间中可用,并愿意接听电话。接待员意识到客人没有接听电话时,必须先接听电话并告知来电者客人不会接听电话。如果突然间所有的电话线同时亮起来,那么他们就会很快被淹没。

当服务器接收到每个新的UDP数据包时,它将通过步骤来处理请求,并利用该过程中的服务器资源。发送UDP报文时,每个报文将包含源设备的IP地址。在这种类型的DDoS攻击期间,攻击者通常不会使用自己的真实IP地址,而是会欺骗UDP数据包的源IP地址,从而阻止攻击者的真实位置被暴露并潜在地饱和来自目标的响应数据包服务器。

由于目标服务器利用资源检查并响应每个接收到的UDP数据包的结果,当接收到大量UDP数据包时,目标的资源可能会迅速耗尽,导致对正常流量的拒绝服务。

如何缓解UDP洪水攻击?

大多数操作系统部分限制了ICMP报文的响应速率,以中断需要ICMP响应的DDoS攻击。这种缓解的一个缺点是在攻击过程中,合法的数据包也可能被过滤。如果UDP Flood的容量足够高以使目标服务器的防火墙的状态表饱和,则在服务器级别发生的任何缓解都将不足以应对目标设备上游的瓶颈。

什么是SYN Flood攻击?

SYN Flood(半开放攻击)是一种拒绝服务(DDoS)攻击,其目的是通过消耗所有可用的服务器资源使服务器不可用于合法流量。通过重复发送初始连接请求(SYN)数据包,攻击者能够压倒目标服务器机器上的所有可用端口,导致目标设备根本不响应合法流量。

SYN Flood攻击如何工作?

通过利用TCP连接的握手过程,SYN Flood攻击工作。在正常情况下,TCP连接显示三个不同的进程以进行连接。

1.首先,客户端向服务器发送SYN数据包,以便启动连接。
2.服务器响应该初始包与SYN / ACK包,以确认通信。
3.最后,客户端返回ACK数据包以确认从服务器接收到的数据包。完成这个数据包发送和接收序列后,TCP连接打开并能发送和接收数据。

为了创建拒绝服务,攻击者利用这样的事实,即在接收到初始SYN数据包之后,服务器将用一个或多个SYN / ACK数据包进行响应,并等待握手中的最后一步。这是它的工作原理:

攻击者向目标服务器发送大量SYN数据包,通常会使用欺骗性的IP地址。
然后,服务器响应每个连接请求,并留下开放端口准备好接收响应。
当服务器等待从未到达的最终ACK数据包时,攻击者继续发送更多的SYN数据包。每个新的SYN数据包的到达导致服务器暂时维持新的开放端口连接一段时间,一旦所有可用端口被使用,服务器就无法正常工作。

在网络中,当服务器断开连接但连接另一端的机器没有连接时,连接被认为是半开的。在这种类型的DDoS攻击中,目标服务器不断离开打开的连接,等待每个连接超时,然后端口再次可用。结果是这种攻击可以被认为是“半开攻击”。

SYN洪水可以以三种不同的方式发生:

直接攻击IP地址不被欺骗的SYN Flood被称为直接攻击。在这次攻击中,攻击者根本不掩盖其IP地址。由于攻击者使用具有真实IP地址的单个源设备来创建攻击,因此攻击者极易受到发现和缓解的影响。为了在目标机器上创建半开状态,黑客可以防止其机器响应服务器的SYN-ACK数据包。这通常是通过阻止除SYN数据包之外的传出数据包的防火墙规则来实现的,或者在到达恶意用户机器之前过滤任何传入的SYN-ACK数据包。实际上,这种方法很少使用(如果有的话),因为减轻是非常简单的 – 只是阻止每个恶意系统的IP地址。
欺骗性攻击:恶意用户也可以欺骗他们发送的每个SYN数据包上的IP地址,以抑制缓解工作,使其身份更难发现。虽然数据包可能被欺骗,但这些数据包可能会被追溯到其来源。很难做这种侦探工作,但并不是不可能的,特别是如果互联网服务提供商(ISP)愿意帮助的话。
分布式攻击(DDoS):如果使用僵尸网络创建攻击,则将攻击溯源到源的可能性很低。对于增加的混淆级别,攻击者可能会使每个分布式设备也欺骗发送数据包的IP地址。如果攻击者正在使用诸如未来僵尸网络的僵尸网络,他们通常不会关心被感染设备的IP掩蔽
通过使用SYN Flood攻击,恶意攻击者可以尝试在目标设备或服务中创建拒绝服务,其流量大大低于其他DDoS攻击。为了使目标周边的网络基础设施饱和,SYN攻击只需要比目标操作系统中可用的积压更大的体积攻击。如果攻击者能够确定积压的大小,并且在超时之前每个连接将被打开多长时间,攻击者可以定位禁用系统所需的确切参数,从而将总流量减少到最小必要量以创建拒绝服务。

如何减轻SYN洪水攻击?

长期以来已知SYN洪水脆弱性,并且已经采用了许多缓解途径。几种方法包括:

增加积压队列

目标设备上的每个操作系统都具有一定数量的半开放连接。对大量SYN数据包的一个响应是增加操作系统允许的可能半开连接的最大数量。为了成功增加最大积压,系统必须预留额外的内存资源来处理所有新的请求。如果系统没有足够的内存来处理增加的积压队列大小,系统性能将受到负面影响,但仍然可能优于拒绝服务。

回收最早的半开TCP连接

一旦积压已被填补,另一个缓解策略就是覆盖最早的半开式连接。这种策略要求合法连接可以在比可以填充恶意SYN数据包的积压时间更短的时间内完全建立。当攻击量增加时,或者如果积压量太小而不实际,这种特定的防御就会失败。

SYN饼干

这个策略涉及服务器创建一个cookie。为了避免在积压已经被填满的情况下连接丢失的风险,服务器使用SYN-ACK数据包对每个连接请求进行响应,然后从积压中删除SYN请求,从存储器中删除请求并使端口打开,准备建立新的连接。如果连接是合法请求,并且最终的ACK数据包从客户端计算机发送回服务器,则服务器将重建(有一些限制)SYN积压队列条目。尽管这种缓解措施确实丢失了有关TCP连接的一些信息,但是优于允许合法用户因攻击而发生拒绝服务。