SYN攻击利用的是TCP的三次握手机制,攻击端利用伪造的IP地址向被攻击端发出请求,而被攻击端发出的响应 报文将永远发送不到目的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源,如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的目的。

1、什么是SYN泛洪攻击

TCP SYN泛洪发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。

2、SYN泛洪攻击原理

大家都知道一个TCP连接的启动需要经历三次握手的过程。正常情况下客户端首先向服务端发送SYN报文,随后服务端回以SYN+ACK报文到达客户端,最后客户端向服务端发送ACK报文完成三次握手,后续就是上层业务数据交互,直到某一方断开连接。

那么假如在这“握手”的过程中,客户端程序因为莫名崩溃等原因,收到SYN+ACK报文后不再回以ACK,服务端将如何处置呢?这时服务端会“优雅地”再等等,会不会是发送的包丢失了呢?于是重新发送一遍SYN+ACK,再收不到来自客户端的ACK响应的话,就把这次连接丢弃掉。这个过程大约会“优雅地”持续分钟级,这个持续时间被称作SYN timeout时间。如果只有个别这样的异常情况,目标服务端处理起来自是毫不费力;可如果大量这样的情况出现,对服务端来说就不堪重负了。这是为什么呢?

如果大量的握手请求涌向TCP服务端,而它们只发出SYN报文而不以ACK响应结束握手,服务端就要为这每一个请求都维持约一分多钟的连接去等待ACK,也就形成所谓的“半连接”。维护这些半连接是需要消耗很多服务器的网络连接资源的。如果短时间内这些资源几乎都被半连接占满,那么正常的业务请求在这期间就得不到服务,处于等待状态。

更进一步的,如果这些半连接的握手请求是恶意程序发出,并且持续不断,那么就会导致服务端较长时间内丧失服务功能——这就形成了DoS(Denial of Service拒绝服务)攻击。这种攻击方式就称为SYN泛洪(SYN flood)攻击。

由于正常的TCP三次握手中发出去多少SYN报文,就会收到多少SYN+ACK报文。攻击方需要将这些消息丢弃,同时为了隐藏自己,于是需要大量伪造泛洪攻击的源地址,随机改成其它地址。为达到SYN泛洪攻击的效果,这些伪造的源地址最好无法响应SYN+ACK,如这些源地址的主机根本不存在,或者被防火墙等网络设施拦截,等等。

3、防范措施

对于SYN泛洪攻击的防范,优化主机系统设置是常用的手段。如降低SYN timeout时间,使得主机尽快释放半连接的占用;又比如采用SYN cookie设置,如果短时间内连续收到某个IP的重复SYN请求,则认为受到了该IP的攻击,丢弃来自该IP的后续请求报文。此外合理地采用防火墙等外部网络安全设施也可缓解SYN泛洪攻击。

syn泛洪 过滤_SYN泛洪攻击详解相关推荐

  1. TCP: SYN ACK FIN RST PSH URG 详解【转】

    TCP: SYN ACK FIN RST PSH URG 详解 ============================================================= TCP的三次 ...

  2. ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一

    DDOS全称Distributed Denial of Service,翻译成中文是'分布式拒绝服务',DDOS攻击是安全领域最难解决的问题之一,由于其攻击方式的特殊性,始终没有一个完美的解决方案,随 ...

  3. 【Web 安全】XSS 攻击详解

    文章目录 一.XSS 攻击概述 二.XSS 攻击原理 1. XSS的攻击载荷 (1) script 标签 (2) svg 标签 (3) img 标签 (4)body 标签 (5) video 标签 ( ...

  4. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  5. Linux缓冲区溢出攻击详解

    Linux缓冲区溢出攻击详解 (一)当一个函数被调用后,它会: 移动栈指针ESP,EBP.开辟一段栈空间 在栈(堆)空间内分配程序申请的局部变量 (二)当一个函数去调用另一个函数时,它会: 准备入口参 ...

  6. XXE无回显攻击详解

    今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE无回显攻击详解. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权 ...

  7. 【Web 安全】CSRF 攻击详解

    文章目录 一.CSRF 简介 二.CSRF 原理 三.CSRF 的危害 四.CSRF 的攻击类型 1. GET型 2. POST型 五.CSRF 的防御 1. 验证 HTTP Referer 字段 2 ...

  8. 一机双平面、TCP半连接攻击——SYN攻击详解

    目录 一机双平面: 半连接攻击: 相关概念: SYN攻击简介: SYN攻击原理与实现: SYN攻击+IP欺骗: 一机双平面: 半连接攻击: 半连接攻击是一种攻击协议栈的攻击方式,坦白说就是攻击主机的一 ...

  9. 渗透测试攻击(二)——wireshark过滤数据包语法详解

    目录 Wireshark过滤语句中常用的操作符 Wireshark捕获UDP数据包 UDP协议分析常用过滤条件 UDP校验和过滤条件

最新文章

  1. 端午安康 | 经久熬煮,方能出“粽”
  2. 毕业后的第二个月的一点思绪
  3. ITIL的一些简单感受
  4. Demon_接金币(三个掉落物品预设体,一接物体的工具)
  5. 【中级软考】两个人同一日就同样的发明创造申请专利,应该授予谁?
  6. caffe基础(8):draw_net.py绘制网络结构
  7. windwos 批处理重定向, 讲的策彻底
  8. 打开cmd窗口新技巧get
  9. 全站HTTPS底层实现原理
  10. vsCode 快捷键、插件
  11. 用c语言判断字符串为空,如何检查C字符串是否为空
  12. 工具说明书 - 单词发音及根据发音查单词
  13. 面试官常问 webpack 面试题
  14. 【Unity3D】自学之路2.0
  15. oracle 11g crsd ocssd,[Oracle 11g r2(11.2.0.4.0)]集群守护进程gipc介绍
  16. python word.documents.open报错_Python教程:[43]Word基本操作
  17. 手机屏幕取词翻译软件哪个比较好?快看这篇文章,它能告诉你
  18. matlab中如何写出图像第一行到第十行_第一列到第十列之间的数据,Excel中表示从第3列的1行到第10行的单元格引用为()。...
  19. SQL和Oracle数据库备份
  20. 层次分析法之matlab代码实现

热门文章

  1. Web 动画帧率(FPS)计算
  2. electron对接dll
  3. 线圈拉链行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  4. js处理移动端有虚拟按键影响页面布局的处理方法
  5. LESS与SASS的伯与仲
  6. 上交计算机考研分数线2018,2018上交考研经验贴
  7. 二补数(2’scomplement)乘法算法及其Verilog实现 - 固定系数h
  8. Python爬虫_线程池实例——北京新发地菜价
  9. matlab 椭圆方程拟合,matlab中如何插值拟合求椭圆方程
  10. python爬取b站弹幕_如何爬取B站弹幕