1.背景

初始化连接的 SYN 超时问题 Client 发送 SYN 包给 Server 后挂了,Server 回给 Client 的 SYN-ACK 一直没收到 Client 的 ACK 确认,这个时候这个连接既没建立起来,也不能算失败。

这就需要一个超时时间让 Server 将这个连接断开,否则这个连接就会一直占用 Server 的 SYN 连接队列中的一个位置,大量这样的连接就会将 Server 的 SYN 连接队列耗尽,让正常的连接无法得到处理。

TCP三次握手流程

上图为一个正统的 TCP 三次握手流程,攻击者就是利用 TCP 三次握手的漏洞,攻击者可以利用 TCP 协议漏洞,不发第三次 ACK 确认,服务端只能一次又一次的重试,直到超时。

目前,Linux 下默认会进行 5 次重发 SYN-ACK 包,重试的间隔时间从 1s 开始,下次的重试间隔时间是前一次的双倍,5 次的重试时间间隔为 1s, 2s, 4s, 8s, 16s,总共 31s,第 5 次发出后还要等 32s 都知道第 5 次也超时了

所以,总共需要 1s + 2s + 4s+ 8s+ 16s + 32s = 63s,TCP 才会把断开这个连接。

由于,SYN 超时需要 63 秒,那么就给攻击者一个攻击服务器的机会,攻击者在短时间内发送大量的 SYN 包给 Server(俗称 SYN flood 攻击),用于耗尽 Server 的 SYN 队列。

2.什么是 SYN 攻击

SYN 攻击指的是,攻击客户端在短时间内伪造大量不存在的 IP 地址,向服务器不断地发送 SYN 包,服务器回复确认包,并等待客户的确认。

由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的 SYN 包将长时间占用未连接队列,正常的 SYN 请求被丢弃,导致目标系统运行缓慢,严重者会引起网络堵塞甚至系统瘫痪。SYN 攻击是一种典型的 DoS 攻击。

3.如何检测 SYN 攻击?

检测 SYN 攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源 IP 地址是随机的,基本上可以断定这是一次 SYN 攻击。在 Linux/Unix 上可以使用系统自带的 netstats 命令来检测 SYN 攻击。

4.如何防御 SYN 攻击?

SYN 攻击不能完全被阻止,除非将 TCP 协议重新设计。我们所做的是尽可能的减轻 SYN 攻击的危害,常见的防御 SYN 攻击的方法有如下几种:

缩短超时(SYN Timeout)

时间增加最大半连接数

过滤网关防护 SYN

cookies 技术

java syn包_TCP攻击之SYN攻击相关推荐

  1. 快速穷举TCP连接欺骗攻击-利用SYN Cookies

    摘要   TCP 利用 32比特的 Seq/Ack 序列号来确认每一个连接的可靠性. 此外, 这些32位的序列号还能保证服务器不会被会话劫持,伪造一个服务器发出的初始序列号(ISN) 是个难以实现的技 ...

  2. 第一篇,怎么增加SYN数据包的大小(syn flood攻击实验)

    新人学习,如有错误请见谅和指正.如果大家参考,请多找资料和实验进行比对研究.谢谢 iphdr->tot_len 总长度字段(16位)是指整个IP数据报的长度,以字节为单位.利用首部长度字段和总长 ...

  3. 浅谈iptables防SYN Flood攻击和CC攻击

    何为syn flood攻击: SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻 ...

  4. TCP的FIN、ACK、SYN、URG、PSH及攻击方式

    From: http://www.hackbase.com/tech/2009-10-08/56746.html 三次握手Three-way Handshake 一个虚拟连接的建立是通过三次握手来实现 ...

  5. TCP洪水攻击(SYN Flood)的诊断和处理

    TCP洪水攻击(SYN Flood)的诊断和处理 SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood. SYN Flood是当前最流行的DoS(拒绝服 ...

  6. linux洪水攻击软件,SYN洪水攻击工具hping SYN-Flooding tool

    这是SYN洪水攻击工具hping SYN-Flooding tool,是一個網路工具,可以用來測試firewall, 網路效能, 觀察遠端主機的回應狀態,包括TCP,UDP,ICMP. 软件介绍 前段 ...

  7. SYN,ICMP, UDP Flood攻击原理与防护

    DoS(Denial of Service拒绝服务)和DDoS(Distributed Denial of Service分布式拒绝服务)攻击是大型网站和网络服务器的安全威胁之一.2000年2月,Ya ...

  8. 使用iptables防止SYN Flood攻击和CC攻击

     ------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击--------------- ...

  9. 攻击工具SYN Flood的源代码

    文章转自王牌软件 第一部分 SYN Flood的基本原理 SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的T ...

  10. SYN攻击(DDOS攻击的一种)

    SYN攻击(DDOS攻击的一种) SYN攻击是黑客攻击的手段.SYN洪泛攻击的基础是依靠TCP建立连接时三次握手的设计.第三个数据包验证连接发起人在第一次请求中使用的源IP地址上具有接受数据包的能力, ...

最新文章

  1. 论COSPLAY / 谨以此文纪念我暂短的Cos生涯
  2. X3650M3 客户端联不上加密狗!
  3. 块状元素的text-align对齐属性
  4. ArcGIS for window mobile 数据打开
  5. mongodb mysql json数据_使用MongoDB与MySQL有很多JSON字段?
  6. sql优化——模糊查询
  7. 一)golang的单例模式
  8. mysql有关时间教程_MySQL教程21-日期和时间类型
  9. 【eclipse反编译工具】最好的反编译工具
  10. kettle数据库乱码问题
  11. 2012考研数学二第(11)题——链式法则偏导数
  12. MIUI12系统怎么样开启Root超级权限的流程
  13. 合同智能审核软件-提高审查效率和准确性
  14. Hadoop3.x学习教程(二)
  15. 微机原理与接口技术:接口概述 详细笔记
  16. 【算法导论】生日悖论
  17. 201901 寄语南开师生
  18. C# wave mp3 播放器探寻
  19. JavaScript 基础知识点
  20. 面试题:寻找一个字符串中出现次数最多的字符以及出现的次数

热门文章

  1. c语言中输入123输出123321,2011年计算机等级二级C语言章节习题及答案(39)
  2. 阿里云商标注册入口(附商标申请流程)
  3. c++中计算2得n次方_【复习专题】解析二元一次方程知识点及应用
  4. PushService开发分享
  5. 更换苹果推送服务证书Apple Push Services Certificate
  6. fastq质量值_fastq碱基质量值转化
  7. PHP框架高级编程——应用Symfony、CakePHP和Zend
  8. 夕夕博士的视频观后笔记集合~
  9. GSM模块通过服务器或GSM内部获取网络时间 网络授时
  10. 永久免费的域名注册有吗?免费的域名注册在哪个平台?