在 TCP 三次握手中,服务器为了响应一个收到的 SYN,分配并初始化连接变量和缓存。然后服务器发送一个 SYNACK 进行相应,并等待来自客户的 ACK 报文段。
如果某客户不发送 ACK 来完成三次握手的第三步,最终服务器将终止该半开连接并回收资源。
这种 TCP 连接管理协议为经典的 Dos 攻击即 SYN 洪泛攻击提供了环境。在这种攻击中,供给者发送大量的 TCP SYN 报文段,而不完成第三步握手的步骤。随着这种 SYN 报文段纷至沓来,服务器不断为这些半开连接分配资源,导致服务器的连接资源被消耗殆尽。 这种 SYN 洪泛攻击是被记载的众多 Dos 攻击中的第一种。

防御系统 : SYN cookie

  1. 服务器收到一个 SYN 报文段时,不会为该报文段生成一个半开连接,而是根据 SYN 报文段的源和目的地址与端口号以及仅有该服务器知道的秘密数的一个复杂函数(散列函数)生成一个初始 TCP 序列号。这种精心制作的初始序列号被称为 “cookie”。服务器并不记忆该 cookie 或任何对应于 SYN 的其他状态信息。 根据这个序列号,生成一个 SYNACK,发送给客户端。
  2. 如果客户合法,它将返回一个 ACK 报文段。根据报文段中的信息,可以获取该 TCP 连接的源和目的地 IP 地址和端口号。根据这些信息以及秘密数,运行相同的散列函数,得到一个值。如果该函数的结果加 1 与在客户的 SYNACK 中的确认 (cookie) 值相同的话,服务器认为该 ACK 对应于较早的 SYN 报文段,因此它是合法的。此时,服务器才生成一个具有套接字的全开的连接。
  3. 如果客户端没有返回一个 ACK 报文段,那么初始的 SYN 并没有对服务器产生危害,因为服务器并没有为它分配任何资源

SYN 洪泛攻击的更多相关文章

  1. 关于SYN洪泛攻击简介

    在TCP三次握手中,server为了响应一个收到的SYN.分配并初始化连续变量和缓存.然后server发送一个SYNACK进行响应,并等待来自客户的ACK报文段. 假设某客户不发送ACK来完毕该三次握 ...

  2. TCP连接三次握手协议,释放连接四次挥手,以及使用 awl伪造mac地址进行多线程syn洪泛攻击。

    这个TCP连接就是一次追女生-谈恋爱-分手,追求比分手简单,但是分手比追求复杂.哥,谈了半年的女朋友,在就快要成功了的时候分了,原因是因为有人在后面该老子背后搞SYN洪泛攻击,最后女朋友丢失了.学会T ...

  3. SYN洪泛(dos)攻击和DDOS攻击

    在TCP三次握手中,服务器为了响应一个收到的SYN,分配并初始化连接变量和缓存,然后服务器发送一个SYNACK进行响应,并等待来自客户的ACK报文段,如果客户不发送ACK来完成该三次握手,最终,服务器 ...

  4. [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)

    Description Roger Wilco is in charge of the design of a low orbiting space station for the planet Ma ...

  5. 扯谈网络编程之Tcp SYN flood洪水攻击

    简单介绍 TCP协议要经过三次握手才干建立连接: (from wiki) 于是出现了对于握手过程进行的攻击.攻击者发送大量的SYN包,server回应(SYN+ACK)包,可是攻击者不回应ACK包,这 ...

  6. TCP SYN flood洪水攻击原理和防御破解

    简介 TCP协议要经过三次握手才能建立连接: 于是出现了对于握手过程进行的攻击.攻击者发送大量的SYN包,服务器回应(SYN+ACK)包,但是攻击者不回应ACK包,这样的话,服务器不知道(SYN+AC ...

  7. XML DOS 攻击

    内容来自此文:http://msdn.microsoft.com/en-us/magazine/ee335713.aspx DoS(Denial of service:拒绝服务)攻击由来已久(1992 ...

  8. 实用的DDos攻击工具

    来源: http://www.safecdn.cn/linux/2018/12/ddos/95.html ‎ 特别提示:仅用于攻防演练及教学测试用途,禁止非法使用 Hyenae 是在windows平台 ...

  9. TCP/IP入门(3) --传输层

    原文:http://blog.csdn.net/zjf280441589/article/category/1854365 传输层的主要功能 1)传输层为应用进程之间提供端到端的逻辑通信(网络层是为主 ...

随机推荐

  1. (K)ubuntu上将分区格式化成NTFS格式

    新买了硬盘,装系统时,为Windows预留了几个分区,由于没有其他选择,因此将分区格式化成了fat32格式.装完系统后,总是很纠结,想把这些分区格式化成NTFS格式. google了一下,从这个网址( ...

  2. tomcat限制ip访问

    context元素添加 <Context> <Valve className="org.apache.catalina.valves.RemoteAddrValve&quo ...

  3. PLSQL启动很慢的问题

    最近重新做了系统,win7 64位系统上装了oracle10g,plsql10.发现plsql启动比较慢. 解决方法: 首先停止打印机服务:Print Spooler,然后将这个服务设置为手动模式.

  4. [DT] 数据结构术语中英文对照

    数据结构术语中英文对照 数据 Data 数据元素 Data element 数据项 Data item 数据结构 Data structure 逻辑结构 Logical structure 数据类型 ...

  5. 洛谷 P3660 [USACO17FEB]Why Did the Cow Cross the Road III G(树状数组)

    题目背景 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 题目描述 The layout of Farmer ...

  6. vue项目 菜单侧边栏随着右侧内容盒子的高度实时变化

    测试的时候发现,在选择模板.选择产品第二步第三步的时候.如果超出两行的话会盖住看不见,(因为高度所有统一都被写死了,又加了overflow~emmm~)所以要改成走马灯形式.如图: 那么问题来了,我步 ...

  7. [GO]go使用contextCancel

    package main import ( "fmt" "context" ) func main() { gen := func(ctx context.Co ...

  8. JoinMap

    #include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...

  9. Python作图笔记

    感谢莫烦大神,附带他的个人网站链接:https://morvanzhou.github.io/ 再带上官方的文档,多看文档啊!不然参数忘了就没地方查了:https://matplotlib.org/a ...

  10. 3、Docker能干什么?

    简化配置   这是Docker公司宣传的Docker的主要使用场景.虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件.系统),Docker在降低额外开销的情况下提供了同样的功能.它能 ...