HTTP慢连接攻击的原理和防范措施

随着互联网的快速发展,网络安全问题日益凸显,网络攻击事件频繁发生。其中,HTTP慢速攻击作为一种隐蔽且高效的攻击方式,近年来逐渐出现的越来越多。

为了防范这些网络攻击,我们需要先了解这些攻击情况,这样才能方便我们对症下药,选择合适的安全解决方案。作为当前常见的网络攻击方式,慢速连接攻击导致很多企业用户的网站业务或主机服务器深受其害,下面德迅云安全就从安全角度详细介绍HTTP慢速攻击的情况,并探讨一些对应的防护措施。

一、什么是HTTP慢速连接攻击?

HTTP慢速攻击(Slowloris Attack)是一种利用HTTP协议特性进行的攻击方式。攻击者通过发送大量的半开连接请求到目标服务器,每个连接请求只发送少量的数据,并长时间保持连接不断开。这样,攻击者可以逐渐占满服务器的连接资源,导致服务器无法处理正常的请求,从而造成拒绝服务(DoS)或分布式拒绝服务(DDoS)的效果。

由于这种攻击方式发送的请求都是合法的,因此很难被传统的防火墙或入侵检测系统所识别。同时,慢速攻击还可以与其他攻击方式相结合,形成更为复杂的攻击链,进一步提高攻击的成功率和隐蔽性。

二、HTTP慢速攻击的特点

1、隐蔽性高:慢速攻击利用的是HTTP协议的合法特性,因此很难被传统的安全设备所识别。

2、占用资源少:每个慢速连接只发送少量的数据,因此攻击者可以使用较少的资源发起大量的攻击。

3、攻击效果显著:通过占用服务器的连接资源,慢速攻击可以迅速导致服务器性能下降,甚至崩溃。

三、HTTP慢速连接攻击原理

HTTP慢速连接攻击是CC攻击的变种,对任何一个允许HTTP访问的服务器,攻击者先在客户端上向该服务器建立一个content-length比较大的连接,然后通过该连接以非常低的速度(例如,1秒~10秒发一个字节)向服务器发包,并维持该连接不断开。

由于 HTTP 请求底层使用TCP网络连接进行会话,因此如果中间件对会话超时时间设置不合理,并且HTTP在发送请求的时候采用了这种慢速连接发 HTTP 请求,并维持该连接不断开,就会导致占用一个HTTP连接会话。

如果攻击者在客户端上不断建立这样的连接,服务器上可用的连接和服务器正常资源将慢慢被占满,从而导致服务器拒绝用户正常的访问请求,也就产生了拒绝服务攻击的效果。

四、HTTP慢速连接攻击种类

HTTP慢速连接攻击主要分为三种:Slow read攻击、Slow headers攻击、Slow body攻击。

1、Slow read攻击

攻击者建立连接后发送完整的请求给服务器端,然后一直保持这个连接,以很低的速度读取Response或者让服务器误以为客户端很忙,如很长一段时间客户端不读取任何数据,通过发送Zero Window到服务器,直到连接快超时前才读取一个字节,这样方式以消耗服务器的连接和内存资源。

2、Slow headers攻击

Web应用在处理HTTP请求之前都要先接受完所有的HTTP头部,Web 服务器在没接收到 2 个连续的 \r\n 时,会认为客户端没有发送完头部,而持续的等客户端发送数据。

攻击者就是利用了这点,对服务器发起一个HTTP请求,一直不停的发送HTTP头部,但是HTTP头字段不发送结束符,之后发送其他字段,而服务器在处理之前需要先接收完所有的HTTP头部,导致连接一直被占用,这样就消耗了服务器的连接和内存资源;

3、Slow body攻击

攻击者发送一个 HTTP POST 请求,并将总报文长度(Content-Length)设置为一个很大数值,表示要发送大量数据,服务器就会保持连接准备接收数据。

但是在随后的数据发送中,每次却只发送很小的报文(比如10-100s发一个字节),这样导致服务器端一直等待攻击者发送数据,以此消耗服务器的资源。

五、HTTP慢速攻击的防御措施

上述我们了解到了关于HTTP慢连接攻击的三种攻击方式,我们可以举个简单的例子再加强理解,比如一个餐馆,通常用餐的步骤是:点菜、用餐、付款。HTTP慢连接攻击,攻击者就像是看这个餐馆不顺眼的人,他雇佣了许多看似正常的客人进来用餐,但是做出一些不是正常用户会出的事情,结果就会发生了许多不正常的情况。

Slow read攻击就像吃完饭不离开一直霸占座位的客人,导致新的顾客无法进来就餐;

Slow headers攻击就像那种点餐犹豫不决的人,不停的说又一直说不清自己要点什么菜;

Slow body攻击就好比顾客结账,但却是从口袋一个一个摸硬币出来付款。

上面三种类型,共同特点就是:慢!想方设法地让自己的动作慢下来,在看似正常的点餐流程里面,他们总能想尽办法来拖延时间,占用资源并且长时间不释放,导致正常客人在后面排队等待,无法正常就餐。如果餐馆想正常营业,就只能通过阻止这些捣乱的顾客,清理这些点餐慢、付款慢的顾客,限定进餐时长等来解决,同理,防御这类慢连接攻击也是同样的道理。下面就来了解下HTTP慢连接攻击可以有哪些防护措施。

针对HTTP慢速攻击,我们可以采取以下防御措施:

1、限制连接数

在服务器端设置最大连接数限制,防止攻击者通过大量半开连接占满服务器资源。

2、设定超时时间

对web服务器的HTTP头部传输的最大许可时间进行限制,为每个连接设置合理的超时时间,当连接在一定时间内没有活动时,自动关闭该连接。

3、针对HTTP慢速攻击的特点,对每秒钟HTTP并发连接数进行检查,若发现如POST报文的报文头都没有结束标识等异常,断开此IP地址与HTTP服务器的连接。

4、使用安全设备

部署专业的网络安全设备,像德迅云安全的安全加速SCDN,可以进行慢连接攻击防御,对如Slow Headers攻击,可以通过检测请求头超时时间、最大包数量阈值进行有效防护,提高服务器的安全防护能力。

六、总结

HTTP慢速攻击作为一种隐蔽且高效的攻击方式,对服务器的安全和稳定性构成了严重威胁。通过大概了解了关于HTTP慢速连接攻击的相关情况,我们是可以从多个方面入手,包括限制连接数、设定超时时间、使用安全加速SCDN方案来防护处理攻击情况,确保网络环境的安全稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2979279.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C++判断一个点是否在一个在任意空间中的长方体中

目录 不旋转的长方体计算旋转矩阵及旋转后的长方体计算旋转矩阵计算旋转后的长方体 判断点是否在旋转后的长方体内 不旋转的长方体 如果这个长方体是规则的,不进行任何旋转,可以先计算长方体的BoundingBox,判断点是否在3D的BoundingBox中即可…

软硬件无缝集成:新加坡量子公司首创下一代量子集成平台

为了充分发挥量子系统的性能,已经公认的一个关键方法是在硬件和软件层之间实现紧密集成。这种集成使得软件能够充分利用硬件的所有特性,以实现最佳性能。随着行业努力开发能够提供量子优势的系统,实现这种高性能显然是非常必要的。 Horizon的…

Python学习从0开始——项目一day02数据库连接

Python学习从0开始——项目一day02数据库连接 一、在线云数据库二、测试数据库连接三、数据库驱动介绍四、SQL执行4.1插入测试数据4.2安装数据库连接模块4.3测试SQL语句执行4.4执行SQL的固定步骤及示例 一、在线云数据库 找了一个在线数据库,需要邮箱注册&#xff…

Linux系统中安装MySQL

1、在电脑中安装虚拟机 2、df -h查看光盘是否挂载,没挂载用mount -o ro /dev/sr0 /media命令挂载 3、进入etc/yum.repos.d目录查看仓是否配置,若配置进行下一一步,未配置则进行配置 配置软件仓库 [rootlocalhost yum.repos.d]# vim rhle.r…

tcp inflight 守恒算法背后的哲学

tcp inflight 守恒拥塞控制的正确性 很久以前我开始纠结 tcp 锯齿,很多年后我知道这叫 capacity-seeking,甚至说 tcp 属于 capacity-seeking protocol 的原因就是它早已深入人心的 aimd 行为,而该行为生成了 tcp 锯齿。 在消除锯齿&#xf…

归并排序精讲

一.定义 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子…

AI交互数字人对教育领域有何优势?

AI交互数字人不仅能够跨越物理距离的限制,以数字人形象为学生提供“面对面”教学互动体验,还能根据学生的具体需求提供个性化的知识解答。如天津大学推出了数字人老师,以刘艳丽教授形象1:1仿真打造的2.5D数字人,能够应…

【深度学习】行人跌倒行为检测软件系统

行人跌倒检测系统在各个领域的应用都对社会的整体健康、安全和福祉产生积极影响,为人们的生活和工作提供了更加安全和可靠的环境, 本文主要使用YOLOV8深度学习框架自训练了一个“行人跌倒检测模型”,基于此模型使用PYQT5实现了一款界面软件用…

MATLAB实现蚁群算法栅格路径优化

蚁群算法是一种模拟自然界中蚂蚁觅食行为的优化算法,常用于解决路径规划问题。在栅格路径优化中,蚁群算法可以帮助找到从起点到终点的最优路径。以下是蚁群算法栅格路径优化的基本流程步骤: 初始化参数: (1)设置蚂蚁数量&#xff…

Rest微服务案例

Rest 父工程构建microservicecloud-api公共子模块Modulemicroservicecloud-provider-dept-8001部门微服务提供者Modulemicroservicecloud-consumer-dept-80部门微服务消费者Module 以Dept部门模块做一个微服务通用案例 Consumer消费者(Client)通过REST调…

Go 堆内存分配源码解读

简要介绍 在Go的内存分配中存在几个关键结构,分别是page、mspan、mcache、mcentral、mheap,其中mheap中又包括heapArena,具体这些结构在内存分配中担任什么角色呢? 如下图,可以先看一下整体的结构: mcach…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件,开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

跟着野火从零开始手搓FreeRTOS(6)多优先级的配置

在 FreeRTOS 中,数字优先级越小,逻辑优先级也越小。 之前提过,就绪列表其实就是一个数组, 里面存的是就绪任务的TCB(准确来说是 TCB 里面的 xStateListItem 节点),数组的下标对应任务的优先级&a…

GUI简述

GUI概述 swing概述 swing是java设计的GUI包,该包包括了GUI中各种组件支持 swing中的组件包括两大类,容器(例如窗口,对话框,面板)和功能组件(如按钮,输入框,菜单等&…

【RSGIS数据资源】2018年北京森林站东灵山样地无人机遥感生态数据集

文章目录 一、数据集基本信息二、数据结构和内容三、 数据集质量控制(一) 产生方式(二) 数据源说明(三) 数据采集、加工处理方法 四、 数据使用 一、数据集基本信息 说明数据集基本描述信息,包…

Linux安装部署Tomcat

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Linux安装部署Tomcat //将tomcat压缩包解压到对…

电脑上如何将png图片改为jpg?这几个方法一定用的上

在我们的日常工作、学习中,经常需要用到不同的图片格式类型,比如jpg、png、gif、tiff等等,这些图片之间有着非常大的区别,静态图片jpg格式,设计工作者常接触到的png,还有我们平时发的动态表情包是gif格式&a…

微服务架构中10个常用的设计模式,建议收藏!

从软件开发早期(1960 年代)开始,应对大型软件系统中的复杂性一直是一项令人生畏的任务。多年来为了应对软件系统的复杂性,软件工程师和架构师们做了许多尝试:David Parnas 的模块化和封装 (1972&#xff09…

上门废品回收小程序,互联网回收拥有哪些特点?

随着社会的进步,人们的生活水平不断提高,产生的可回收物也在不断上升,每年垃圾站都能产生大量的可回收物,这也造成了资源的浪费。 目前,加快发展回收模式,提高我国回收效率成为了当下回收市场发展的重要方…