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方案来防护处理攻击情况,确保网络环境的安全稳定。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

贪吃蛇(C语言版)

在我们学习完C语言 和单链表知识点后 我们开始写个贪吃蛇的代码 目标:使用C语言在Windows环境的控制台模拟实现经典小游戏贪吃蛇 贪吃蛇代码实现的基本功能: 地图的绘制 蛇、食物的创建 蛇的状态(正常 撞墙 撞到自己 正常退出&#xf…

vscode将本地服务转发到外网地址访问

示例中将本地的5500端口,用vscode进行端口转发,在外网地址访问服务 要转发的端口 转发端口 点击转发端口 输入要转发的端口,按下回车 Enter 点击允许,弹出确认界面后点击打开 转发端口已经成功配置上,右键可见性…

Git和Github绑定

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

爬虫中怎么判断一个网页是否包含ajax请求

1、前言 在用爬虫抓取数据的时候,如果一个网页包含ajax请求,由于数据时动态加载的,直接根据网址是不能获取到想要的数据。因此,在爬虫需要首先判断一个网页是否包含ajax请求数据。 2、ajax请求 2.1 什么是ajax请求 AJAX Asynch…

20240424codeforces刷题题解

240424刷题题解 Walk on Matrix CodeForces - 1332D 思路 构造题,每个 d p i , j dp_{i,j} dpi,j​​​都是由其左上方向中的按位与最大值决定的。 我们需要从使得贪心解与正确解的差值为 k k k。 为了方便获得 k k k,可以考虑构造一个贪心解为 0…

社交媒体数据恢复:Facebook

在使用Facebook的过程中,可能会出现数据丢失的情况,如误删了重要的帖子、照片或其他文件。在这种情况下,你可以尝试以下方法来恢复Facebook的数据。 首先,确保你备份了Facebook的数据。如果你定期备份数据,那么恢复起…

第26天:安全开发-PHP应用模版引用Smarty渲染MVC模型数据联动RCE安全

第二十六天 一、PHP新闻显示-数据库操作读取显示 1.新闻列表 数据库创建新闻存储代码连接数据库读取页面进行自定义显示 二、PHP模版引用-自写模版&Smarty渲染 1.自写模版引用 页面显示样式编排显示数据插入页面引用模版调用触发 2.Smarty模版引用 1.下载&#xff1a…

【C语言回顾】操作符详解

前言1. 操作符分类2. 二进制和进制转换2.1 二进制2.2 进制转换2.2.1 二进制转十进制2.2.2 二进制转八进制2.2.3 二进制转十六进制 3. 原码、反码、补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符6. 单目操作符7. 逗号表达式8. 下标引用操作符9. 函数调用操作符10.…

Linux:进程与计划任务

文章目录 Linux:进程与计划任务一、进程1、进程是什么2、进程状态 二、列出进程命令1、查看静态的进程统计信息——“ps”Play1:“ps aux”Play2:ps -elf 2、查看静态的进程统计信息——“top”段首解析进程信息区解释 三、运行与终止进程3.1、运行进程3…

一致性hash

一、什么是一致性hash 普通的hash算法 (hashcode % size ),如果size发生变化,几乎所有的历史数据都需要重hash、移动,代价非常大,常见的java中的hashmap就是如此。 那如果在hash表扩容或者收缩的时候size能够保持不变&#xff0…

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的,我马上就想放弃它了。但是看它周下载量还挺多,我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

学习Rust第14天:HashMaps

今天我们来看看Rust中的hashmaps,在 std::collections crate中可用,是存储键值对的有效数据结构。本文介绍了创建、插入、访问、更新和迭代散列表等基本操作。通过一个计算单词出现次数的实际例子,我们展示了它们在现实世界中的实用性。Hashm…

安居水站:四大学习法:成为学霸的有效途径

摘要: 本文详细探讨了全球公认的四种高效学习方法——费曼学习法、西蒙学习法、思维导图法和SQ3R阅读法,通过引入相关数据、名人名言以及名人故事,深入分析了这些方法的核心理念、实施步骤及其在学习过程中的关键作用。 一、引言 学习是人…

《QT实用小工具·三十八》QT炫酷的菜单控件

1、概述 源码放在文章末尾 非常飘逸的 Qt 菜单控件,带有各种动画效果,用起来也十分方便。 无限层级,响应键盘、鼠标单独操作,支持单快捷键。 允许添加自定义 widget、layout,当做特殊的 QDialog 使用。 项目demo演示…

如何理解自然语言处理中的位置编码(Positional Encoding)

在自然语言处理和特别是在使用Transformer模型中,位置编码(Positional Encoding)是一个关键的概念。它们的作用是为模型提供序列中各个元素的位置信息。由于Transformer架构本身并不像循环神经网络(RNN)那样具有处理序列的固有能力,位置编码因此显得尤为重要。 为什么需…

MongoDB数据恢复—拷贝MongoDB数据库文件后无法启动服务的数据恢复案例

服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分…

CCS项目持续集成

​ 因工作需要,用户提出希望可以做ccs项目的持续集成,及代码提交后能够自动编译并提交到svn。调研过jenkins之后发现重新手写更有性价比,所以肝了几晚终于搞出来了,现在分享出来。 ​ 先交代背景: 1. 代码分两部分&am…

Android Studio开发之路(八)Spinner样式设置

一、需求 白色背景显示下拉框按钮 问题: 设置Spinner的背景可以通过设置background: android:background"color/white",但是一旦设置了这个值,右侧的下拉按钮就会消失 方法一、自定义一个style(不成功) …

大模型推理框架Vllm和TensorRT-LLM在ChatGLM2-6B模型的推理速度对比

目录 一、框架的特点简介 1、vllm pagedAttention Continuous batching 2、TensorRT-LLM WOQ——W4A16、W8A16 SQ——SmoothQuant AWQ——Activation-aware Weight Quantization 二、web推理服务 vllm_service tensortllm_service 三、推理速度对比 1、非业务数据 …

第48期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…