CC攻击的变异品种 慢速攻击

DDoS攻击凭借其严重的后果以及简单的操作,一直都是攻防中重要的攻击方式。随着DDoS攻击的演变,信息安全的防御也在同步升级。发展到今天,DDoS攻击已经多种多样。本文简要分析了CC攻击中的慢速攻击以及防护策略。

CC攻击的本名叫做HTTP-FLOOD,是一种专门针对于Web的应用层FLOOD攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,直到服务器带宽被打满,造成了拒绝服务。

由于伪造的http请求和客户正常请求没有区别,对于没有流量清洗设备的用户来说,这无疑就是噩梦。而我们今天谈的这种攻击方式,就是CC攻击的一个变异品种——慢速攻击。

什么是慢速攻击

一说起慢速攻击,就要谈谈它的成名历史了。HTTP Post慢速DoS攻击第一次在技术社区被正式披露是2012年的OWASP大会上,由Wong Onn Chee 和 Tom Brennan共同演示了使用这一技术攻击的威力。

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

和CC攻击一样,只要Web服务器开放了Web服务,那么它就可以是一个靶子,HTTP协议在接收到request之前是不对请求内容作校验的,所以即使你的Web应用没有可用的form表单,这个攻击一样有效。

在客户端以单线程方式建立较大数量的无用连接,并保持持续发包的代价非常的低廉。实际试验中一台普通PC可以建立的连接在3000个以上。这对一台普通的Web server,将是致命的打击。更不用说结合肉鸡群做分布式DoS了。

鉴于此攻击简单的利用程度、拒绝服务的后果、带有逃逸特性的攻击方式,这类攻击一炮而红,成为众多攻击者的研究和利用对象。

慢速攻击的分类

发展到今天,慢速攻击也多种多样,其种类可分为以下几种:

Slow headers:Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送HTTP头部,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立TCP连接后,每30秒才向服务器发送一个HTTP头部,而Web服务器再没接收到2个连续的\r\n时,会认为客户端没有发送完头部,而持续的等等客户端发送数据。

Slow body:攻击者发送一个HTTP POST请求,该请求的Content-Length头部值很大,使得Web服务器或代理认为客户端要发送很大的数据。服务器会保持连接准备接收数据,但攻击客户端每次只发送很少量的数据,使该连接一直保持存活,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立TCP连接后,发送了完整的HTTP头部,POST方法带有较大的Content-Length,然后每10s发送一次随机的参数。服务器因为没有接收到相应Content-Length的body,而持续的等待客户端发送数据。

Slow read:客户端与服务器建立连接并发送了一个HTTP请求,客户端发送完整的请求给服务器端,然后一直保持这个连接,以很低的速度读取Response,比如很长一段时间客户端不读取任何数据,通过发送Zero Window到服务器,让服务器误以为客户端很忙,直到连接快超时前才读取一个字节,以消耗服务器的连接和内存资源。抓包数据可见,客户端把数据发给服务器后,服务器发送响应时,收到了客户端的ZeroWindow提示(表示自己没有缓冲区用于接收数据),服务器不得不持续的向客户端发出ZeroWindowProbe包,询问客户端是否可以接收数据。

使用较多的慢速攻击工具有:Slowhttptest和Slowloris。

哪些服务器易被慢速攻击

慢速攻击主要利用的是thread-based架构的服务器的特性,这种服务器会为每个新连接打开一个线程,它会等待接收完整个HTTP头部才会释放连接。比如Apache会有一个超时时间来等待这种不完全连接(默认是300s),但是一旦接收到客户端发来的数据,这个超时时间会被重置。正是因为这样,攻击者可以很容易保持住一个连接,因为攻击者只需要在即将超时之前发送一个字符,便可以延长超时时间。而客户端只需要很少的资源,便可以打开多个连接,进而占用服务器很多的资源。

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

如何防护慢速攻击

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

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

< IfModule mod_reqtimeout.c >

RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

< /IfModule >

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

< IfModule mod_qos.c >

/# handle connections from up to 100000 different IPs

QS_ClientEntries 100000

/# allow only 50 connections per IP

QS_SrvMaxConnPerIP 50

/# limit maximum number of active TCP connections limited to 256

MaxClients 256

/# disables keep-alive when 180 (70%) TCP connections are occupied

QS_SrvMaxConnClose 180

/# minimum request/response speed (deny slow clients blocking the server, keeping connections open without requesting anything

QS_SrvMinDataRate 150 1200

< /IfModule >

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工具模拟大量http request,这种工具一般不会解析服务端返回数据,更不会解析JS之类的代码。因此当清洗设备截获到HTTP请求时,返回一段特殊JavaScript代码,正常用户的浏览器会处理并正常跳转不影响使用,而攻击程序会攻击到空处。

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

1、周期内统计报文数量。一个TCP连接,HTTP请求的报文中,报文过多或者报文过少都是有问题的,如果一个周期内报文数量非常少,那么它就可能是慢速攻击;如果一个周期内报文数量非常多,那么它就可能是一个CC攻击。

2、限制HTTP请求头的最大许可时间。超过最大许可时间,如果数据还没有传输完成,那么它就有可能是一个慢速攻击。

时间: 2024-08-24 18:00:59

CC攻击的变异品种 慢速攻击的相关文章

Azure上Linux VM DDOS攻击预防: 慢速攻击

在上篇博客(http://www.cnblogs.com/cloudapps/p/4996046.html)中,介绍了如何使用Apache的模块mod_evasive进行反DDOS攻击的设置,在这种模式中,主要预防的是对http的volume attack,然而DDOS的攻击方式,各种工具非常多,随便搜一搜就知道了,我们回过头来看看,什么叫DOS/DDOS,看看维基百科: "拒绝服务攻击(Denial of Service Attack,缩写:DoS)亦称洪水攻击,是一种网络攻击手法,其目的在于

DDOS、CC、sql注入,跨站攻击防御方法

web安全常见攻击解读--DDos.cc.sql注入.xss.CSRF 一,DDos https://www.cnblogs.com/sochishun/p/7081739.html#4111858 http://nic.swu.edu.cn/s/nic/thyt/20180604/2555404.html 1.1 DDos介绍 DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”.分布式拒绝服务攻击发起后,攻击网络包就会从很多DOS攻击源(俗称

XSS攻击常识及常见的XSS攻击脚本汇总

一.什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 这里我们主要注意四点:1.目标网站目标用户:2.浏览器:3.不被预期:4.脚本. 二.XSS有什么危害? 当我们知道了什么是XSS后,也一定很想知道它到底有什么用,或者有什么危害,如何防御. 关于XSS有关危害,我这里中罗列一段列表,详细介绍不进行更多的赘述: 挂马 盗取用户Cookie. DOS(拒绝服务)客户

服务器遭受攻击的方式与服务器受到攻击应该怎么办

安全报道显示2015年DDoS攻击强度创下新纪录,那么DDoS到底是什么呢?了解一些,对产品经理与后台的同事沟通有好处. 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力. 如何理解DDoS攻击 一群恶霸试图让对面那家有着竞争关系的商铺无法正常营业,他们会采取什么手段呢?(只为举例,切勿模仿) 恶霸们扮作普通客户一直拥挤在对手的商

服务器遭到SYN攻击怎么办?如何防御SYN攻击?

SYN洪水攻击是DDOS攻击中最常见的攻击类型之一.是一种利用TCP 协议缺陷,攻击者向被攻击的主机发送大量伪造的TCP连接请求,从而使得被攻击方主机服务器的资源耗尽(CPU 满负荷或内存不足) 的攻击方式.SYN攻击的目标不止于服务器,任何网络设备,都可能会受到这种攻击,针对网络设备的SYN攻击往往会导致整个网络瘫痪.企业遭到SYN攻击该如何防御呢?墨者安全通过以往的高防经验来分享一下如何利用iptables来缓解SYN攻击. 1.修改等待数 sysctl -w net.ipv4.tcp_ma

看你的门-攻击服务器(4)-HTTP参数注入攻击

首先需要声明.这纯粹是没有远见和有点真才实学开发一个愚蠢的观点,只为web参考系统安全. 1.HTTP参数注入攻击 參数,被用做后端HTTP请求中的參数,这个时候就有可能会导致HTTP參数注入. 一个自己想出来的烂例如: 一个P2P的转账系统:钱(money),从哪里(from)到哪里去(to). 一个非常easy的系统.开发的时候为了复用代码.加了一个推断字符(check).当然,这个推断字符(check)是不会出如今这个P2P的转账系统的文档系统中: 2.一个典型的easy被HTTP參数注入

看好你的门-攻击服务端(3)-SOAP注入攻击

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1.SOAP注入攻击 服务器端的XML解析引擎从客户端接收输入信息,这里指的客户端可以是浏览器.来自网页应用程序的数据.一部移动设备或者是其它类型的来源.如果不对输入的信息进行正确验证,接收的结果就很可能出现错误,进而为攻击行为提供了便利. 从实际的角度来说,对SOAP的注入攻击漏洞是非常难寻找的,因为这些数据往往通过接口传输,而且很多的接口对错误的都是经过处理的. 2. SOAP注入攻击的

什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?

答: - XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛.微博发布含有恶意脚本的URL就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台).XSS虽然不是什么新鲜玩意,但

CC攻击原理及防范方法和如何防范CC攻击

一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止. 二.CC攻击的种类:  CC攻击的种类有三种,直接攻