慢速 HTTP 拒绝服务: 分析利用和缓解

这篇具有很好参考价值的文章主要介绍了慢速 HTTP 拒绝服务: 分析利用和缓解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

慢速 HTTP 拒绝服务: 分析、利用和缓解

    慢速 HTTP 攻击Slow HTTP DoS Attack基于这样一个事实,即 HTTP 协议在设计上要求服务器在处理请求之前完全接收请求。如果 HTTP 请求未完成,或者传输速率很低,服务器就会一直占用资源等待其他数据。如果服务器占用过多资源,可能会导致目标主机拒绝服务。因为我们将阻止其他用户通过协议连接或创建会话。对任何一个允许HTTP访问的服务器,攻击者先在客户端上向该服务器建立一个content-length比较大的连接,然后通过该连接以非常低的速度(例如,1秒~10秒发一个字节)向服务器发包,并维持该连接不断开。如果攻击者在客户端上不断建立这样的连接,服务器上可用的连接将慢慢被占满,从而导致服务器拒绝用户正常的访问申请。

    简而言之,攻击者向网络服务器发送合法的 HTTP 请求头。在这些报文头中,正确指定了报文主体的大小。但是,信息主体的发送速度却非常慢。这种速度可以慢到每两分钟一个字节,但还不足以导致客户端-服务器传输超时,从而导致会话关闭。由于信息是正常处理的,目标服务器会尽力遵守规则,因此服务器的速度会随之大大降低。当攻击者同时发起数百甚至数千次 "慢速 HTTP "攻击时,服务器资源几乎在几秒钟内就会被消耗殆尽,导致合法客户端连接无法访问。 这类攻击很容易实施,因为使用最小带宽的单台机器可以在很短的时间内(最多 65539 次)建立数千个连接,产生数千个未完成的 HTTP 请求。

    可怕的是,这些攻击很难与正常流量区分开来。由于它们不需要应用层的大量资源,因此可以从一台计算机启动,这使得它们非常容易启动且难以缓解。传统的速度检测技术无法阻止此类攻击。也许一种方法是更新服务器的可用性,服务器上的可用连接越多(nginx 的 max_clients = worker_processes * worker_connections),攻击压垮该服务器的可能性就越小。不幸的是,在很多情况下,攻击者会简单地扩大攻击规模,试图尽可能多地超载。这些攻击可能就像耗时较长的合法请求,因此很难使用传统的反 DoS 工具进行检测和阻止。我给你留了一个纸条,通过这种攻击的页面:


工作原理
分析 HTTP GET 请求有助于更好地解释慢速 HTTP DoS 攻击如何以及为何可能发生。

一个简单的请求如下所示:
慢速 HTTP 拒绝服务: 分析利用和缓解

特别值得注意的是上述 GET 请求中的 [CRLF]。回车换行(CRLF)是一个不可打印字符,用于表示一行的结束。与文本编辑器类似,HTTP 请求会在行尾包含一个 [CRLF] 字符以开始新行,并包含两个 [CRLF] 字符(即 [CRLF] [CRLF])以指示空行。

HTTP 协议将空行定义为标头的结束。慢速 HTTP DoS 攻击就是利用了这一点,不发送尾部空行来完成报头。

更糟的是,入侵检测系统(IDS)通常检测不到慢速 HTTP DoS 攻击,因为这种攻击不包含恶意代码请求。在 IDS(入侵检测系统)看来,HTTP 请求是合法的,并会将其传递给网络服务器,而不会察觉到攻击。

开发
在对技术进行微调时,一个重要的信息是确定服务器上保持连接状态的最长时间(秒),这将使我们能够优化作为攻击者的资源。

一个 Python 脚本就能完成这项工作():

慢速 HTTP 拒绝服务: 分析利用和缓解

在第一次尝试中,我们的窗口大小是 75 秒,第 8 条调试信息告诉我们服务器关闭了连接,因此这不是我们的值,作为攻击者,我们将浪费 1 秒钟来启动另一个新连接。因此,我们用 74 秒进行了测试,成功地保持了会话的活力。

慢速 HTTP 拒绝服务: 分析利用和缓解

工具https://github.com/shekyan/slowhttptest

docker pull shekyan/slowhttptest

根据这些测试,我们的命令将如下所示:

slowhttptest -c 65539 -H -g -o report.csv -i 10 -r 200 -t GET -u https://targethost.com:443 -x 74 -p 3 -l 1800

-c 65539 // 同时启动的最大连接数
-h // slowloris 模式 - 慢速 http
-g // 生成 CSV 和 HTML 格式的统计数据
-o report.csv // 自定义输出文件的路径和/或名称,如果指定了 -g 则有效
-i 10 // 每次会话发送信息的间隔时间(以秒为单位),这意味着 HTTP 会话打开后,将等待 10 秒发送信息,以此类推。
-r 200 // 连接比率,每次启动 200 个连接,它们是累积的,根据攻击服务器的处理速度,5 秒后我们将有 1000 个实时连接。
-t GET // 在攻击中使用的 HTTP 方法
-u
https://targethost.com:443 // 目标 URL,与在浏览器中输入的格式相同
-x 74 // 会话的最长持续时间,该值从第一次保持存活测试中获得
-3 // 请求探针,用于监控服务器在攻击期间是否正常响应,3 秒被设定为最长等待时间,如果在规定秒数后服务器没有响应,则认为服务器被 DoSed。
-l 1800 // 指定以秒为单位的攻击持续时间(本例中为 30 分钟)

慢速 HTTP 拒绝服务: 分析利用和缓解

请求探针的响应时间超过 3 秒,因此被视为 DoSed。

因此,我们将访问该网站,检查它是否如脚本所示在运行:

慢速 HTTP 拒绝服务: 分析利用和缓解

事实上,我们已经耗尽了服务器的资源,因此它不再接受合法连接,以至于主机注册的 DNS 服务显示路由进展顺利,直到它到达服务器并产生 HTTP 522 错误。522 代码代表连接超时,是在验证网络服务器和 DNS 之间的 TCP 连接是否相互同意时产生的。

更多

  • How to Protect Against Slow HTTP Attacks
  • Slow Http Post attack in Nginx
  • Cloudflare Solution

今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章:
领导人怎样带领好团队
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

慢速 HTTP 拒绝服务: 分析利用和缓解

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。文章来源地址https://www.toymoban.com/news/detail-844270.html

到了这里,关于慢速 HTTP 拒绝服务: 分析利用和缓解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 403错误是一种常见的HTTP状态码,表示服务器拒绝了请求

    403错误是一种常见的HTTP状态码,表示服务器拒绝了请求。出现403错误通常意味着客户端没有访问所请求资源的权限。以下是导致403错误的几个可能原因以及相关的编程示例: 权限配置错误:403错误可能是由于服务器权限配置错误导致的。在某些情况下,服务器可能需要用户

    2024年02月04日
    浏览(55)
  • 漏洞深度分析 | CVE-2023-36053-Django 表达式拒绝服务

    项目介绍 Django 是一个高级 Python Web 框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费且开源的。 项目地址 https://github.com/django/django https://github.com/djang

    2024年02月16日
    浏览(36)
  • 实验3 利用协议分析软件分析HTTP

    目录 一、实验目的 二、实验环境 三、 实验步骤 四、实验报告内容 一、实验目的 1.熟悉并掌握Ethereal(或WireShark)的基本操作,了解网络协议实体间的交互以及报文交换。 2.分析HTTP协议的报文格式中各字段语法语义和工作原理。 二、实验环境 联网计算机;主机操作系统为Wi

    2024年02月08日
    浏览(39)
  • 论文浅尝 | 利用对抗攻击策略缓解预训练语言模型中的命名实体情感偏差问题...

    笔记整理:田家琛,天津大学博士,研究方向为文本分类 链接:https://ojs.aaai.org/index.php/AAAI/article/view/26599 动机 近年来,随着预训练语言模型(PLMs)在情感分类领域的广泛应用,PLMs中存在的命名实体情感偏差问题也引起了越来越多的关注。具体而言,当前的PLMs基于神经上下

    2024年02月10日
    浏览(49)
  • WEB服务器配置与HTTP分析

    目录 实验目的: 实验要求: 实验原理: 实验步骤: 步骤1:创建拓扑 步骤2:为PC、Client和Server配置IPv4地址、子网掩码和域名服务器 步骤3:启动设备和服务器 步骤4:测试PC-1、Client-1和Server-1之间的通信 步骤5:在Server-1上配置并启动DNS服务器  步骤6:在Server-1上配置并启动

    2024年01月17日
    浏览(54)
  • gin源码分析(2)gin启动http服务

    gin.Run()函数调用go的官方包启动了一个http服务,并实现了http服务的回调ServeHTTP函数。当请求来的时候会调用gin的ServeHTTP函数 调用 请求进来后后,调用Nex()函数后,所有的中间件(这里包括请求的处理函数)都会遍历运行 Next()调用顺序分析 分析: NEXT()调用c.handlers[c.index](c)执

    2024年04月09日
    浏览(71)
  • Go语言网络编程:HTTP服务端之底层原理与源码分析——http.HandleFunc()、http.ListenAndServe()

    在 Golang只需要几行代码便能启动一个 http 服务,在上述代码中,完成了两件事: 调用 http.HandleFunc 方法,注册了对应于请求路径 /ping 的 handler 函数 调用 http.ListenAndServe,启动了一个端口为 8999 的 http 服务 2.1 server 结构 Addr :表示服务器监听的地址。如\\\":8080\\\"表示服务器在本地

    2024年02月08日
    浏览(62)
  • 字节微服务HTTP框架Hertz使用与源码分析|拥抱开源

    大家好,这里是白泽,今天介绍一个自己参与过一些维护的 HTTP 框架。 Hertz [həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广

    2024年01月19日
    浏览(40)
  • C++轻量级Web服务器TinyWebServer源码分析之http篇

    http类这篇个人觉得是最难同时也是最繁琐的一篇,本篇在基础知识方面,包括epoll、HTTP报文格式、状态码和有限状态机,不做赘述,所有源码分析的篇章基础知识会做单开一篇或者读者可以看 小白一文看懂社长服务器 来补基础知识。真的佩服那个叫社长的男人,我读代码且

    2024年02月10日
    浏览(48)
  • 【低危】OpenSSL 拒绝服务漏洞

    OpenSSL 是广泛使用的开源加密库。 在 OpenSSL 3.0.0 到 3.0.12, 3.1.0 到 3.1.4 和 3.2.0 中 ,使用函数 EVP_PKEY_public_check() 来检查 RSA 公钥的应用程序可能会遇到长时间延迟。如果检查的密钥是从不可信任的来源获取的,这可能会导致拒绝服务。 其他 OpenSSL 函数不会调用 EVP_PKEY_public_che

    2024年01月18日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包