[网络编程] 同步洪流攻击(TCP SYN FLOOD),ddos攻击的原理和预防

同步洪流攻击(SYN FLOOD ATTACK)是什么?

TCP SYN fllod是一种DDos攻击,它利用TCP三次握手的机理,在其中做文章消耗服务端系统资源,从而导致服务端出现反应迟钝。
实际上,这种攻击会快速发送TCP链接请求,这个速度快过了服务端系统的处理速度,进而导致网络的饱和,正常用户无法享受服务。

攻击原理

客户端和服务端建立正常的三次握手的具体情况是这样的:
1.Client requests connection by sending SYN (synchronize) message to the server.
2.Server acknowledges by sending SYN-ACK (synchronize-acknowledge) message back to the client.
3.Client responds with an ACK (acknowledge) message, and the connection is established.

SNY flood attack会这些进行破坏:
攻击者使用假IP重复发送SYN包到目标服务端的每一个端口。服务端接受这些表面上合法的请求并与之建立链接,接着从自己的端口应答SNY-ACK报文给每一个请求。
攻击者此时,要么不接受SNY-ACK(第3步),要么不发送ACK(第3步),此时服务端就会等待攻击者应答自己,但是明显是等不到的(但是还要等一个固定的时间段),
那么这个socket就被占用了,网络资源也被浪费了。
这种情况下,服务端无法通过发送RST packet来关闭连接,这个连接会维持一个“超时时间”的打开状态。接着会有源源不断的请求上来,连接也不停地创建,超时后关闭
连接的速度压根赶不上连接的创建速度。此时就会有大量的半打开状态(half-open)的连接。正因为如此,SNY flood attack也叫作 half-open attach。

*注: “半打开状态”  和   “半关闭状态”  不一样


“半打开”还没有建立连接,一端等待对端的建链ACK,会有一个超时丢弃机制,出现在三次握手阶段
“半关闭”是已经建立了,后来又断开了,因为没收到对端的断链ACK而产生,也会有一个超时丢弃机制,出现在四次挥手阶段,鉴于上述情况,服务端因为连接表不断溢出,正常的客户端无法得到服务,服务端也可能会崩溃。

半打开状态的超时时间为:1s + 2s + 4s+ 8s+ 16s + 32s = 2^6 -1 = 63s  , 这期间会尝试发送6次SYN,间隔分别是 1 , 2 ,4 ,8 ,16 ,32,共计63s,6次后还没收到对端的ACK,则发送RST。

详细介绍见:[网络协议] Tcp协议中的临界状态半打开、半关闭、TIME_WAIT、CLOSE_WAIT_什么是许接半打川,义关闭状态?-CSDN博客

缓和的办法

现如今操作系统在资源管理方面已经设计的相当良好,连接表很难再被溢出,但是在面对SNY flood attack的时候,系统依旧是脆弱的。

目前有如下几种方法来缓和SNY flood attack(疏,堵):
1.Micro blocks  ---  “疏”,依旧接受SNY请求,但是变相扩大自己的容量。对于SNY请求,不在用大数据结构管理,而采用微型数据结构(16个字节)。


2.SYN cookies   ---  “疏”,依旧接受SNY请求,但是延迟分配资源。客户端发送请求,服务端不立刻分配连接管理资源(分配内存空间),先使用客户端IP,客户端port或者其他特殊字段结合起来生成一个哈希值,附在SNY-ACK packet里面回给客户端,客户端再把哈希值附在ACK packet中回给服务端,服务端验证这个ACK packet中的哈希值和之前的一样后,再分配资源。
(这里涉及到tcp/ip协议的调整,要求客户端和服务端协商好附加哈希验证值的过程)


3.RST cookies   ---  “堵”+“骗”,服务端不再傻乎乎地走正常套路了,服务端在收到SNY后,会故意发一个错误的SNY-ACK给客户端,这个时候,如果使用正常tcp/ip协议的客户端会发现SNY-ACK内容不对,于是会回一个RST给服务端,告诉服务端“你发的东西不对头啊”。如果客户端收到了这个RST packet,那么可以说明对面那个客户端是合法的,接着进入正常流程。


4.Stack tweaking  ---   “疏”,把相关资源首位相接,做成环状(类似于日志模块),TCP栈空间的分配使用环状资源,这样不至于耗尽资源。

网络防火墙是防御针对网络服务器的不良和恶意流量的主要防线的结果。 预测整体防火墙的整体性能对于社区安全工程师和设计师评估社区防火墙对抗分布式拒绝服务(分配拒绝运营商)攻击的有效性和弹性至关重要,因为这些攻击有时会通过今天的僵尸网络释放。 分布式拒绝服务攻击 (DDoS) 可能是云环境的主要危害。 古老的保护程序不能仅仅应用于云保护,因为它们的效力低得令人难以置信,而且存储量很大,称之为一些。 分布式拒绝服务 (DDoS) 攻击是第二大被接受的违法攻击,一旦事实被盗。 DDoS 通信协议泛洪攻击将耗尽云的资源,消耗其大部分信息度量,并在您的短时间内破坏整个云任务。 因此,在云任务中及时检测和干扰此类攻击是必要的。 计划中的设备提供了一种通过实时数据包观察和通过对传入数据包进行受害分类来保存事实来保护机器的方法,您可以根据分类效果创建一个选择。 对于检测部分的长度,机器在 Nursingd 中识别 Associate 来确定数据包是传统的还是来自违规者。 在干扰部分的某个阶段,被归类为恶意的数据包被拒绝访问云服务,并且提供科学也被列入黑名单。 云虚拟化、数据包工具 Wireshark 和支持向量机 (SVM) 用于部署可运行的计划系统。 将计划系统的性能与具有不同类型的复杂性和数据包过滤和学习方式(如 OSSEC)的不同当前系统的利用率进行比较。 结果表明,计划的机器通过实时改变分类和包过滤技术产生了惊人的性能,具有先进的效力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值