您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
华安解密之DDoS攻防-07HTTP原理篇 HTTP POST Flood&慢速攻击
 
作者:华安
   次浏览      
2020-9-1 
 
编辑推荐:
本文主要讲解了HTTP POST Flood攻击与防御,包括:重定向认证、验证码认证、URI动态指纹学习和URI行为监测, HTTP慢速攻击与防御 下包括:Slow Headers 、Slow POST等内容。
本文来自于华为企业互动社区,由火龙果软件Anna编辑、推荐。

0x01 HTTP POST Flood攻击与防御

书接上回,本篇我们来介绍HTTP POST Flood攻击和HTTP慢速攻击的原理及防御方式,先来看HTTP POST Flood攻击。攻击者利用攻击工具或者操纵僵尸主机,向目标服务器发起大量的HTTP POST报文,消耗服务器资源,使服务器无法响应正常请求,这就是HTTP POST Flood攻击。

华为Anti-DDoS解决方案防御HTTP POST Flood攻击与防御GET Flood攻击类似,常用手段也是源认证,包括重定向认证和验证码认证。

重定向认证

Anti-DDoS系统代替服务器向客户端响应307状态码(针对POST请求方法的重定向),同时向客户端的浏览器注入Cookie,客户端再次发起请求时会在HTTP报头上附加Cookie信息,Anti-DDoS设系统通过验证Cookie信息的真实性来验证客户端。

1、当连续一段时间内去往目标Web服务器的HTTP POST请求报文超过告警阈值后,Anti-DDoS系统启动源认证机制。源认证机制启动后,Anti-DDoS系统将会代替服务器与客户端建立TCP三次握手。

2、Anti-DDoS系统拦截HTTP请求,代替Web服务器回应307状态码,并在响应头部附加上由客户端IP生成的Cookie。

3、如果这个源是虚假源,或者不支持完整HTTP协议栈的攻击工具,不会重新发起请求。

4、如果这个源是真实客户端,Anti-DDoS系统生成的Cookie会写入到浏览器中,并且客户端会重新发起请求,请求头部就会带有该Cookie信息。Anti-DDoS系统收到请求后,验证Cookie是否正确,如果正确则将该客户端的源IP地址加入白名单。然后Anti-DDoS系统会回应408状态码,表示请求超时,使客户端重新发起访问。

5、后续这个客户端发出的HTTP请求报文命中白名单直接通过。

我们结合一组抓包信息来看一下交互报文的具体情况。

1、Anti-DDoS系统代替Web服务器与客户端建立TCP三次握手,然后客户端发起访问请求。

2、Anti-DDoS系统代替Web服务器回应307状态码,同时在响应头部附加上由客户端IP生成的Cookie,然后双方关闭连接。

3、真实客户端会再次与Anti-DDoS系统建立TCP三次握手,并且会重新发起请求,请求头部就会带有Cookie信息。

4、Anti-DDoS系统收到请求后,通过验证Cookie来判定该客户端为真实客户端,将其IP地址加入白名单。然后Anti-DDoS系统会回应408状态码,表示请求超时,使客户端重新发起访问。

上面介绍的307重定向认证方式能够很好地防御HTTP POST Flood攻击,但是这种方式也具有一定的局限性。其一,依赖于客户端浏览器的Cookie的机制,受安全级别限制。如果客户端的浏览器安全级别较高而无法写入Cookie,会导致认证不通过;其二,第一阶段重定向结束后,需要客户端再次手动执行提交等操作,才能重新发起POST请求。

同HTTP GET Flood的防御方式相似,HTTP POST Flood的源认证防御也支持增强方式,即验证码认证。

验证码认证

此处的验证码认证与HTTP GET Flood中的验证码机制相同,Anti-DDoS系统要求客户端输入验证码,以此来判断请求是否由真实的用户发起。其弊端也是需要人机交互输入验证码,用户体验稍差一些。具体的工作原理请参考HTTP GET Flood攻击与防御部分中的介绍,此处不再赘述。

URI动态指纹学习和URI行为监测

防御HTTP POST Flood攻击时,也可以使用URI动态指纹学习和URI行为监测防御方式,作为源认证方式的补充,满足不同场景的需求。其防御原理我们在上面的HTTP GET Flood攻击与防御部分中已经介绍过,在此也不赘述了。

了解两种Flood类攻击后,下面我们来认识另外一种针对HTTP协议的DDoS攻击:慢速攻击。与Flood类攻击靠海量的数据洪流“淹没”目标服务器不同,慢速攻击反其道而行之,通过发送很少的数据来维持连接状态,持续消耗目标服务器的资源。

0x02 HTTP慢速攻击与防御

HTTP慢速攻击是利用HTTP协议的正常交互机制,先与目标服务器建立一个连接,然后长时间保持该连接不释放。如果攻击者持续与目标服务器建立这样的连接,就会使目标服务器上的可用资源耗尽,无法提供正常服务。

HTTP慢速攻击主要包括针对HTTP请求报文头部结束符的Slow Headers攻击,以及针对POST请求报文数据长度的Slow POST攻击。

Slow Headers

我们在HTTP协议基础部分中介绍HTTP请求报文时,提到过请求头部的后面会存在一个空行(结束符),其中包括回车符和换行符,告知服务器请求头部结束,后面不再有请求头。如果服务器没有收到这个空行则会一直保持连接。

Slow Headers攻击正是利用这一点,攻击者使用GET或POST请求方法与目标服务器建立连接,然后持续发送不包含结束符的HTTP头部报文,目标服务器会一直等待请求头部中的结束符而导致连接始终被占用。如果攻击者控制大量的僵尸主机向目标服务器发起这种攻击,将会导致服务器资源耗尽,无法正常提供服务。

如下图所示,正常的HTTP报文中请求头部的后面会有结束符0x0d0a(\r\n的十六进制表示方式),而攻击报文中不包含结束符,并且攻击者会持续发送不包含结束符的HTTP头部报文,维持连接状态,消耗目标服务器的资源。

Slow Headers攻击行为的特征比较明显,华为Anti-DDoS解决方案防御Slow Headers攻击时,会对HTTP报文进行检查。如果发现某个源发出的连续多个HTTP GET/POST请求报文的报文头中都没有结束符“\r\n”,则认为发生Slow Headers攻击,将该源IP地址加入黑名单。

Slow POST

Slow POST攻击利用的是POST请求方法,攻击者向目标服务器发送POST请求报文提交数据,数据的长度设置为一个很大的数值,但是在随后的数据发送中,每次只发送很小的报文,这样就是导致目标服务器一直等待攻击者发送数据。如果攻击者控制大量的僵尸主机向目标服务器发起这种攻击,将会导致服务器资源耗尽,无法正常提供服务。

如下图所示,Slow POST攻击报文中,POST请求头部的Content-Length关键字的值设置为8192,表示数据长度为8192字节,但是攻击者后续每次只发送1个字节的报文,导致连接一直被占用,消耗了服务器的资源。

 

华为Anti-DDoS解决方案防御Slow POST攻击时,防御方法也是对HTTP报文进行检查。如果发现某个源发出的连续多个HTTP POST请求报文的长度设置的很大,但是实际报文的数据部分长度都很小,则认为发生Slow POST攻击,将该源IP地址加入黑名单。

至此,我们讲解了HTTP协议的基础知识,并分析了针对HTTP协议的DDoS攻击方式以及防御原理,

   
次浏览       
 
相关文章

iOS应用安全开发,你不知道的那些事术
Web安全之SQL注入攻击
移动APP安全在渗透测试中的应用
从Google备份互联网看“数据安全”
 
相关文档

web安全设计与防护
互联网海量内容安全处理技术
黑客攻击与防范技术
WEB黑盒安全检测
 
相关课程

WEB网站与应用安全原理与实践
web应用安全架构设计
创建安全的J2EE Web应用代码
信息安全问题与防范
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
物联网安全概述
史上最详细的区块链技术架构分析
一文读懂区块链整体架构及应用案例
区块链技术架构
安全架构评审实战
最新课程
Web应用安全架构、入侵检测与防护
物联网关键技术、安全与边缘计算
区块链安全技术实践指南
云服务与安全架构
互联网安全开发方法与实践
更多...   
成功案例
中国银行 信息安全技术及深度防御
北京 Web应用安全架构、入侵检测与防护
某财税领域知名IT服务商 Web安全测试
普瑞克斯 web安全设计、测试与优化
北京和利时 性能和安全性测试
更多...