一.SYN Flood的概念

SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分散式拒绝服务攻击)的方式之一,这是一种利用TCP协定缺陷,传送大量伪造的TCP连线请求,从而使得被攻击方资源耗尽(CPU满负荷或记忆体不足)的攻击方式。

二.攻击原理

1.请求端(客户端)传送一个包含SYN标誌的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的连线埠以及TCP连线的初始序号;

2.伺服器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。

3.客户端也返回一个确认报文ACK给伺服器端,同样TCP序列号被加一,到此一个TCP连线完成。以上的连线过程在TCP协定中被称为三次握手(Three-way Handshake)。

重点:TCP连线的三次握手中,假设一个用户向伺服器传送了SYN报文后突然当机或掉线,那幺伺服器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下伺服器端一般会重试(再次传送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连线,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致伺服器的一个执行绪等待1分钟并不是什幺很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,伺服器端将为了维护一个非常大的半连线列表而消耗非常多的资源----数以万计的半连线,即使是简单的保存并遍历也会消耗非常多的CPU时间和记忆体,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果伺服器的TCP/IP栈不够强大,最后的结果往往是堆叠溢出崩溃---即使伺服器端的系统足够强大,伺服器端也将忙于处理攻击者伪造的TCP连线请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),这种时候伺服器就会失去回响,而这种就叫做SYN Flood攻击(SYN洪水攻击)。

三.SYN Flood识别和防御的方法

SYN Flood的目的是占满服务器的连接数,消耗服务器的系统资源。对于服务器自身来说,最直接的做法就是提高服务能力,比如组建集群,升级硬件。但是这种方式成本巨大,且对于海量的攻击报文来说,并没有太大的作用,仅多撑几分钟甚至几秒而已。

所以,必须在这些攻 击报文到达服务器 之前就进行拦截。然而对于防火墙这类安全设备而言,SYN报文是正常的业务报文,防火墙的安全策略必须允许其通过,否则服务器就无法对外提供服务。如果能明确虚假源的IP地址,就能通过精细的安全策略阻止这些源发来的SYN报文。但是管理员无法预知哪些是虚假源。即使能分析出虚假源,也无法做到快速、自动地配置或取消安全策略来应对不可预期的攻击流量。

1.源认证

Anti-DDoS系统拦截客户端发送的SYN报文,代替服务器向客户端发送SYN-ACK报文,如果客户端不应答,则认为该客户端为虚假源;如果客户端应答,则Anti-DDoS系统认为该客户端为真实源,并将其IP地址加入白名单,在一段时间允许该源发送的所有SYN报文通过,也不做代答。

2.首包丢弃

如果Anti-DDoS系统代替服务器应答了所有的SYN Flood攻击报文,那么性能瓶颈仅仅是从服务器转移到了Anti-DDoS系统而已。一旦Anti-DDoS系统的系统资源耗尽,攻击依旧会透传到服务器,而且大量反弹的SYN-ACK报文也会对网络造成一定的压力。Anti-DDoS系统利用首包丢弃来解决这个问题。

TCP协议的可 靠性不仅体现在三次握 手,还体现在超时与重传的机制。正常情况下客户端发送SYN报文后如果在一定时间没有收到服务器的SYN-ACK应答,客户端会重新发送SYN报文。Anti-DDoS系统会丢弃掉收到的第一个SYN报文。SYN Flood攻击时,黑客发送的绝大多数是变源的SYN报文,所有的SYN报文对于Anti-DDoS系统来说都是首包,都将被直接丢弃。如果客户端重传了SYN报文,Anti-DDoS系统再对该报文进行源认证。如此一来,大大减少了Anti-DDoS系统代答的压力。首包丢弃和源认证两种手段结合,对于防御SYN Flood(特别是不断变换源IP和源端口的虚假源攻击)非常有效。

什么是SYN Flood?相关推荐

  1. DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有...

    摘自:https://zhuanlan.zhihu.com/p/22953451 首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed ...

  2. 如何应対syn flood

    syn flood的原理就不介绍了 主要总结一下解决方法: 防火墙禁IP 内核参数的调优 Linux内核参数调优主要有下面三个: 增大tcp_max_syn_backlog 减小tcp_synack_ ...

  3. ddos ***之 SYN Flood

    SYN Flood是互联网上最经典的DDoS***方式之一,最早出现于1999年左右,雅虎是当时最著名的受害者.SYN Flood***利用了TCP三次握手的缺陷,能够以较小代价使目标服务器无法响应, ...

  4. syn flood dos

    TCP/IP协议栈维护一个叫做TCB(Transmission Control Block)的特殊的数据结构,这个数据结构中记录了用于建立TCP连接的信息 (1) local and remote s ...

  5. pythonddos防御_浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击...

    01 前言 以前做DDOS的实验都是用python来编写工具的,开始不会编写结构不会算校验和的时候就用scapy写,后来学会了报文结构开始自己构造各种报文,但是用python写成之后虽然是能实现基本功 ...

  6. 如何防御syn flood的一些思路!

    厦门-志君同学21期群里疑问? syn flood是否无法防御 刚看到群里同学问问题,我还在讲课,利用间隙简单给大家点思路吧. 老男孩简单答疑如下: 1.先了解什么是SYN Flood? SYN Fl ...

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

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

  8. 重学TCP协议(10)SYN flood 攻击

    1.SYN flood 攻击 SYN Flood(半开放攻击)是一种拒绝服务(DDoS)攻击,其目的是通过消耗所有可用的服务器资源使服务器不可用于合法流量.通过重复发送初始连接请求(SYN)数据包,攻 ...

  9. 网络(13)-SYN flood及其应对方法

    什么是SYN flood 攻击者伪装大量的IP地址给服务器发送SYN报文,由于伪造的IP地址几乎不可能存在,也就几乎没有设备会给服务器返回任何应答了.因此,服务器将会维持一个庞大的等待列表,不停地重试 ...

  10. TCP/IP:TCP SYN Flood攻击原理与实现

    目录 三次握手过程 SYN Flood攻击原理 SYN Flood攻击实验 1. 初始化 IP 头部 2. 初始化 TCP 头部 3. 初始化 TCP 伪首部 4. 构建 SYN 包 5. 创建原始套 ...

最新文章

  1. 科普:BCH能够买什么?如何使用BCH买东西?
  2. ORACLE将表中的数据恢复到某一个时间点
  3. springboot启动时的一个bug
  4. 解决 service、killall 等命令找不到的问题
  5. with as 语句真的会把数据存内存嘛?(源码剖析)
  6. python中对文件的操作_Python对文件操作知识
  7. 对话阿里巴巴副总裁贾扬清:追求大模型,并不是一件坏事
  8. android aar项目_一文了解Android游戏SDK开发
  9. 简单python脚本实例-终于晓得python入门脚本实例
  10. 微软正式提供免费杀毒软件下载 仅限7.5万份
  11. 啊哈c语言逻辑的挑战课后题答案,啊哈C语言 逻辑的挑战(修订版)pdf
  12. Java new一个对象的过程
  13. 传送网SDN化再上台阶 中联通将全面开启T-SDN商用
  14. win10系统安装jdk8简易教程
  15. android画布橡皮,Android 橡皮擦功能的实现
  16. 已知x=[[1]]*3,那么执行语句x[0][0]=5之后,变量x的值为 _____。
  17. 批处理命令之Start的详细用法-P处理打开IE窗口最大化
  18. SQLite Expert 5.X 通用注册版-你的SQL好帮手
  19. 在大公司做凤尾,还是在小公司做鸡头?如何选择
  20. 基于ZigBee的智能家居安全监控系统设计

热门文章

  1. 加工制造业采购商城平台:实现加工制造业采购自动化、协同化管理
  2. 武汉的樱花开了!出不了门别担心,线上带你开樱花![Python画樱花]
  3. 网络空间安全要学c语言吗,2019年硕士研究生入学考试网络空间安全学院专业课考研大纲...
  4. 传奇游戏架设与M2修改常见问题收集(大合集)
  5. 京东能成为快手的老铁吗?
  6. mysql if 多个,mysql if条件中的多个条件
  7. 短网址ShortUrl的算法
  8. 技术领导之路:如何从开发人员转变为团队负责人
  9. SEO教程:如何优化长尾关键词达到快速排名(干货)
  10. 【GDOI 2016 Day1】疯狂动物城