前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TDP-【tomat彻底解决】检测到目标主机可能存在缓慢的HTTP拒绝服务攻击

TDP-【tomat彻底解决】检测到目标主机可能存在缓慢的HTTP拒绝服务攻击

原创
作者头像
西门呀在吹雪
发布2022-06-24 15:27:20
8.7K6
发布2022-06-24 15:27:20
举报
文章被收录于专栏:架构之巅

现象:

安全扫描软件报告截图:

原理:

    HTTP Post慢速DoS攻击第一次在技术社区被正式披露是2012年的OWASP大会上(https://owasp.org/www-pdf-archive/Layer_7_DDOS.pdf),由Wong Onn Chee 和 Tom Brennan共同演示了使用这一技术攻击的威力,Slow HTTP Denial of Service Attack 中文叫作缓慢的HTTP攻击漏洞,服务器在接收到请求时,彻底接收之后才会处理请求,若是攻击者发送的比较缓慢或者发送的不完整,服务器会保留其链接,占用资源池,若是请求数量较多,就会造成 DDOS 攻击。利用的HTTP POST的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。这样当客户端连接多了后,占用住了webserver的所有可用连接,从而导致DDOS。

慢速攻击类型分三种

代码语言:javascript
复制
- Slow Headers Attack (也称为 Slowloris 攻击)本次试验使用该种方式
- Slow Message Body Attack(也称为慢帖子攻击)
- Slow Read (称为慢读)

原理验证:

    慢速攻击验证工具  GitHub - shekyan/slowhttptest: Application Layer DoS attack simulator ,该软件对gcc版本要求比较严格单独使用安装依赖比较繁琐,建议使用docker运行。

代码语言:javascript
复制
#拉取官方最新版本
docker pull shekyan/slowhttptest:latest
#启动测试
docker run -i -t shekyan/slowhttptest -c 400 -H -i 10 -r 200 -t GET -u https://10.0.12.6:9443/ -x 24 -p 3 -l 200
#重要参数说明  -c 400 -H -i 10 -r 200 -t GET -u https://10.0.12.6:9443/ -x 24 -p 3 -l 200
-u 要验证的地址,https://10.0.12.6:9443/ 如果在本机验证,因为是docker环境动不要使用localhost,请使用主机的ip地址
-c 400:总连接数
-H: slowloris模式
-i 10:发送数据间的间隔10s
-r 200: 200个连接每秒-t GET:使用GET请求-u url
-x 24:发送的最大数据长度24
-p 3∶等待3秒来确定DoS攻击是否成功
-l 200:测试持续时间

测试结束后 connected数量较多,closed数量很少或为0,说明之前建立的400个慢速攻击测试连接没有被关闭,存在漏洞。

代码语言:javascript
复制
1. 测试发起的连接较少,不能以“service available”参数作为依据。
2. 若结果为“Exit status: No open connections left”,则不存在漏洞

漏洞的两种原因:

  • tomcat某些版本的bug

 详情参考这里http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11996 摘抄了一下主要内容

代码语言:javascript
复制
A specially crafted sequence of HTTP/2 requests sent to Apache Tomcat 10.0.0-M1 to 10.0.0-M5, 
9.0.0.M1 to 9.0.35 and 8.5.0 to 8.5.55 could trigger high CPU usage for several seconds. 
If a sufficient number of such requests were made on concurrent HTTP/2 connections, the server 
could become unresponsive.

    总结: tomcat某些版本存在该bug,请按照官网说明升级tomcat版本即可。

  • tomcat参数配置问题。

   如果普通tomcat找到根目录下/conf/server.xml,将所有connector节点都加上 connectionTimeout="8000"  

代码语言:javascript
复制
<Connector port="8009" connectionTimeout="8000"/>

如果是springboot项目则增加如下配置

代码语言:javascript
复制
server:
  tomcat:
    connection-timeout: 8000

复测通过。


腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云 GTS 官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧 。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档