什么是慢速攻击?

慢速攻击了解的人比较少,是CC攻击的一个变种,可以使用很少的资源发起攻击。

慢速攻击的原理

慢速攻击的基本原理如下:对任何一个开放了HTTP访问的HTTP服务器,先建立了一个连接,指定一个比较大的content-length,然后以非常低的速度发包,比如1-10s发一个字节,然后维持住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务

与可能需要一个僵尸网络才能发起的分布式攻击相反,发起低速缓慢攻击不需要很多资源,使用一台计算机就可以成功发起。用于发动低速缓慢攻击的最受欢迎的工具是 Slowloris 、 R.U.D.Y.和Slowhttptest。

慢速攻击的分类

  • Slow headers

Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送HTTP头部,消耗服务器的连接和内存资源。

  • Slow body

攻击者利用HTTP POST请求进行一种攻击,该请求的Content-Length头部值被设置为一个非常大的值,从而让Web服务器或代理误认为客户端即将发送大量的数据。服务器因此会保持连接以准备接收数据,然而攻击者每次只发送极少量的数据,导致连接始终保持活动状态,不断消耗服务器的连接和内存资源。

  • Slow read

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

哪些服务器容易被慢速攻击?

慢速攻击利用thread-based架构的服务器特性进行攻击。这种服务器为每个新连接打开一个线程,并等待接收完整的HTTP头部才释放连接。虽然服务器设置了一个超时时间(默认为300秒)来等待不完整的连接,但一旦接收到客户端发送的数据,超时时间会被重置。攻击者利用这一特性可以轻易地保持连接,只需在超时前发送一个字符即可延长超时时间。攻击者只需少量资源即可打开多个连接,占用服务器大量资源。

经验证,Apache、httpd采用thread-based架构,很容易遭受慢速攻击。而另外一种event-based架构的服务器,比如nginx和lighttpd则不容易遭受慢速攻击。

如何防护慢速攻击?

Apache服务器现在使用较多的有三种简单防护方式:

  • mod_reqtimeout

Apache2.2.15后,该模块已经被默认包含,用户可配置从一个客户端接收HTTP头部和HTTP body的超时时间和最小速率。如果一个客户端不能在配置时间内发送完头部或body数据,服务器会返回一个408REQUEST TIME OUT错误。

  • mod_qos

Apache的一个服务质量控制模块,用户可配置各种不同粒度的HTTP请求阈值;

  • mod_security

一个开源的WAF模块,有专门针对慢速攻击防护的规则,配置如下:

SecRule RESPONSE_STATUS “@streq 408” “phase:5,t:none,nolog,pass, setvar:ip.slow_dos_counter=+1, expirevar:ip.slow_dos_counter=60, id:’1234123456′”
SecRule IP:SLOW_DOS_COUNTER “@gt 5” “phase:1,t:none,log,drop,msg:’Client Connection Dropped due to high number of slow DoS alerts’, id:’1234123457′”

针对CC攻击,传统的流量清洗设备主要通过设定阈值来进行防护。当某个客户在一定周期内的请求访问量超过阈值时,清洗设备会采取返回验证码或JS代码的方式进行防护。这种防护方式基于攻击者使用的DDoS工具通常不会解析服务端返回数据,也不会解析JS代码等。因此,当清洗设备截获到HTTP请求时,返回一段特殊的JavaScript代码。正常用户的浏览器可以处理并正常跳转,不受影响,而攻击程序则会攻击到无效的位置。

而对于慢速攻击来说,通过返回验证码或者JS代码的方式依然能达到部分效果。但是根据慢速攻击的特征,可以辅助以下几种防护方式:

1、周期内统计报文数量。针对一个TCP连接,HTTP请求的报文中,报文过多或者报文过少都是有问题的,如果一个周期内报文数量非常少,那么它就可能是慢速攻击;如果一个周期内报文数量非常多,那么它就可能是一个CC攻击。
2、限制HTTP请求头的最大许可时间。请求超过最大许可时间,如果数据还没有传输完成,那么它就有可能是一个慢速攻击。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值