计算机网络之洪水攻击
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泛洪攻击。
计算机网络之洪水攻击相关推荐
- 【Linux网络编程】UDP洪水攻击
00. 目录 文章目录 00. 目录 01. 洪水攻击概述 02. UDP洪水攻击原理分析 03. IP协议格式 04. UDP协议格式 05. 原始套接字 5.1 原始套接字概述 5.2 原始套接字 ...
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇 //======================================================== ...
- TCP洪水攻击(SYN Flood)的诊断和处理
TCP洪水攻击(SYN Flood)的诊断和处理 SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood. SYN Flood是当前最流行的DoS(拒绝服 ...
- 巧用iptables五招免费搞定SYN洪水攻击
转载来源 :巧用iptables五招免费搞定SYN洪水攻击 :https://www.toutiao.com/i6772397997692027399/ 摘要: SYN Flood是种典型的DoS攻击 ...
- Linux实战:awl-2.0工具模拟洪水攻击,建立大量的TCP连接
实战:awl工具模拟洪水攻击,建立大量未完成第二次握手的TCP连接 基于TCP协议的数据传输,需要进行三次握手四次挥手才可以完成.每一次连接都会占用系统内存,直至连接关闭才会释放系统内存.在进行第一次 ...
- TCP三次握手之-awl工具-SYN洪水攻击
文章目录 云盾数据 TCP三次握手 TCP报文段的头部格式 实战-使用tcpdump 抓包 tcpdump 常用参数 tcpdmp 抓包 awl -syn-洪水攻击 原理 实战 总结: 云盾数据 - ...
- 云计算高级运维第一阶段项目实战:在局域网中使用 awl 伪装 MAC 地址进行多线程 SYN 洪水攻击
在局域网中使用 awl 伪装 MAC 地址进行多线程 SYN 洪水攻击 (1)SYN 洪水攻击的过程 在服务器返回一个确认的 SYN-ACK 包的时候有个潜在的弊端,如果发起的客户是一个不存在的客户端 ...
- 利用tcp三次握手,使用awl伪装MAC地址进行多线程SYN洪水攻击
SYN洪水攻击概述: SYN洪水攻击主要源于: tcp协议的三次握手机制 tcp协议面向链接的协议 SYN洪水攻击的过程: 在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是 ...
- 洪水攻击程序c语言,洪水攻击原理及代码实现全攻略(附源代码)
下载本文示例代码 推荐:应用程序安全的魔道之争 声明:本文所提供的资料仅仅限于技术交流和学习,请不要用于其他非法目的,维护网络安全是我们的共同责任. 下载本文源代码和例程 一. 什么是洪水攻击 洪水之 ...
最新文章
- BoneCP学习笔记
- javax.xml.bind.UnmarshalException: 意外的元素 (uri:, local:xml)。所需元素为(none)
- js正则匹配闭合标签_正则表达式匹配封闭html标签
- C++ 形参与实参的传递
- linux入门怎么学?
- zngnqfxtuubuosmo
- Java 程序员必须掌握的 8 道数据结构面试题,你会几道?
- java递归100_java递归算法1加到100怎么实现?
- MRP格式的手机QQ2008软件介绍
- 新规后股指期货开户条件
- MATLAB麦克劳林展开式cosx,用matlab绘制e^x的泰勒展开式的图像
- JAVA实现AES加密、解密
- 180822 逆向-网鼎杯(2-1)
- 【Java进阶营】2022全栈Java开发工程师要掌握哪些技能?
- book mac pro怎么重装系统_macbook pro怎么重装mac系统?
- C#毕业设计——基于C#+asp.net+sqlserver的设备管理系统设计与实现(毕业论文+程序源码)——设备管理系统
- SLAM十四讲之第5讲--相机标定
- Nyquist-Shannon采样定理的理解
- 8005端口导致的阿里云上的tomcat无法外部访问
- 按键控制8*8led点阵C语言程序,单片机按键控制8X8LED点阵屏显示图形 程序的几个问题...