DoS的SYN泛洪攻击,原理及解决方案,学到就是赚到!

4 篇文章 0 订阅
1 篇文章 0 订阅

DoS的相关概念

DoS: 也就是我们所说到的拒绝服务,一切能够引起DoS行为的攻击都被称为DoS攻击,该攻击的效果是使得计算机或者网络无法提供正常的服务。
DoS攻击: 指的是造成DoS的攻击行为,目的是使攻击目标计算机无法提供正常的服务,最常见的DoS攻击有计算机网络带宽攻击和连通性攻击,其中带宽攻击是指以极大通信量冲击通往目标计算机的网络,使得所有可用的网络资源都被消耗殆尽,导致合法的用户请求无法通过,无法正常到达目标计算机;而连通性攻击则是指用大量的连接请求攻击目标计算机,使得所有可用的操作系统资源都被消耗殆尽,导致目标计算机无法处理合法用户的请求。

DoS攻击的攻击原理(SYN泛洪攻击)

SYN泛洪攻击是利用TCP协议的缺陷进行的DoS攻击,因为攻击者必须向被攻击的服务器发送大量的虚假的IP请求(一个虚假的IP报文,这里建议大家自己组包),被攻击者在收到请求后返回确认信息,等待攻击者进行确认,这里也就是我们所说到的TCP的三次握手的基本知识,这个过程需要TCP的三次握手。由于攻击者发送的请求信息是虚假的,所以服务器接收不到返回的确认信息,在一段时间内服务器会处于等待状态,而分配给这次请求的资源却没有被释放,当攻击者等待一定时间后,会因为连接超时而断开,这时攻击者会再次发送新的虚假信息(随机产生IP地址),直至最终服务器资源被耗尽,直到瘫痪。
涉及到的TCP三次握手:首先时请求服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个CK消息,这样一次TCP才算正式简历成功。
在这里插入图片描述

SYNFlooding(泛洪攻击):则是专门针对TCP协议栈在两台主机间初始化连接握手的过程中进行的DoS攻击,其旨在实现三次握手的前两个步骤,当服务方收到请求方的SYN消息后,由于请求方采用源地址欺骗等手段使得服务方发出的SYN-ACK得不到确认消息,于是服务方会在一定时间处于等待接受请求方的ACK的确认消息。对于服务器来说,可用的TCP连接是有限的,因为他们只有又显得内存缓存区用于创建连接,如果这一缓冲区充满了虚假连接消息的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。(这也就涉及到了网络编程中socket编程的listen的设计原理,也就是未完成三次握手的队列,及完成三次握手可以使用accept的队列)
在这里插入图片描述

解决DoS中SYN泛洪攻击的方式

对于SYN未完成连接队列已满,难道真的只能够丢弃链接吗?并不是这样的。
SYN泛洪防御:

  1. 缩短SYN timeout时间,即从服务器收到一个SYN报文到确认这个SYN报文无效这个过程所花费的时间。
  2. 设置syncookies,服务器根据当前状态计算出一个值,放在己方发出的SYN+ACK报文中发出,当客户端返回ACK报文时,取出该值验证,如果合法,就认为连接简历成功。
    在这里插入图片描述

这里我采用的是开启syncookies功能来防御SYN泛洪攻击。

Linux下怎样开启syncookies功能呢?
修改tcp_syncookied参数即可,其中值为0时表示关闭该功能,2表示无条件开启功能,而1则表示仅当SYN半连接队列放不下时,再启用它。
这也是由于syncookie仅用于应对SYN泛洪攻击,这种方式建立的连接,许多TCP特性都无法使用,所以应当把tcp_syncookied设置位1,仅在队列满时再启用。

net.ipv4.tcp_syncookies = 1

对于DoS的syn泛洪攻击防御是不是感觉就如此的简单?,收藏起来偷偷学习

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值