文章目录
- 1. 协议基础概述
- 2. HTTP协议报文
- 2.1 HTTP Request 请求包
- 2.2 HTTP Response 应答包
- 3. HTTP GET Flood
- 3.1. 攻击原理
- 3.2. 防护方法
- 4. HTTP POST Flood
- 4.1. 攻击原理
- 4.2. 防护方法
- 5. 慢速CC攻击
- 5.1. 攻击原理
- 5.2. 防护方法
- 6. 总结
1. 协议基础概述
HTTP - HyperText Transport Protocol 超文本传输协议:客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本等信息,服务器收到该请求后,回复一个状态应答作为响应。
参考文档:Linux系统HTTP服务部署参考
2. HTTP协议报文
2.1 HTTP Request 请求包
Client发送请求到Server侧,请求某个网页内容。
2.2 HTTP Response 应答包
Server侧收到Client请求后,做出回应。
3. HTTP GET Flood
3.1. 攻击原理
黑客利用工具向目标Web服务器发送大量HTTP GET请求报文,造成大量资源消耗而影响正常业务请求。
3.2. 防护方法
- 3xx重定向机制:当流量达到告警阈值时,当新的HTTP GET请求达到防护设备时,会被告知重定向到新的UR L,以此验证客户端是否为有效请求,真实的浏览器支持重定向过程,通过重定向发起新的TCP连接后再次重定向到正常URL即可恢复正常的业务请求(需要进行两次重定向,第一次为源认证,第二次为恢复);
- 代理转发:若客户端通过代理转发请求Web资源,则防护设备需要匹配 X-Forward-For 字段或 X-Real-IP 字段内真实的客户侧请求IP,而不是代理IP。
- 验证码机制:人机交互手段,防护设备要求客户端必须通过验证码手段认证方可进行业务访问,以此来判断是否为真实用户,验证码机制会使得用户体验感较差。
- 限速访问:若请求多为肉机人为访问(如病毒木马导致的人为误访问多点并发请求),此时无法通过重定向与验证码进行限制,需要限制访问TOP Web服务,以此来防止其他业务受到影响。
4. HTTP POST Flood
4.1. 攻击原理
黑客利用工具向目标Web服务器发送大量HTTP POST请求报文,造成大量资源消耗而影响正常业务请求。
4.2. 防护方法
- 3xx重定向机制:与HTTP GET Flood防护机制基本完全相同,唯一区别:重定向时返回需要附加POST请求Cookie,客户端第二次请求携带此Cookie时则认证通过,客户端加白后第二次重定向到正常业务即可;
- 代理转发
- 验证码机制
- 限速访问
5. 慢速CC攻击
5.1. 攻击原理
黑客利用工具向目标Web服务器建立连接,长时间保持连接不主动释放资源,持续消耗Web服务资源。
5.2. 防护方法
- Slow Headers:正常请求头部字段均会携带结束符(\r\n,十六进制为0x0d0a),攻击中不携带此标识,服务侧持续维持连接状态,防护设备需要检测HTTP报文规范格式,不满足格式要求的报文直接丢弃,并记录其SIP,达到阈值后进行拉黑操作。
- Slow POST:客户端发送一个POST请求,其数据长度设置为非常大的数值,每次数据传输只传输一个字节,保持连接资源占用,导致服务器资源持续被占用。防护设备需要校验POST请求中设置的数据长度阈值,且同时检测正文数据大小,若同时存在传输阈值偏大,正文数据较小的情况则丢弃报文,并进行记录SIP拉黑即可。
6. 总结
常见的HTTP DOS防护手段的方法:
- 3xx重定向机制:在TCP三次握手之前校验源是否真实可信,常用TCP代理和首包丢弃校验方法;
- 协议字段标准:当使用肉机时,无法进行TCP/IP源认证,此时需要使用协议特征进行校验,如HTTP协议的302重定向机制来验证客户端可信;
- 验证码认证:人机交互,通过验证码或者图片进行校验,对登陆的用户进行一次性安全认证,以此判断是否为真实用户请求。