《白帽子讲web安全》读书笔记系列11:应用层拒绝服务攻击

1、DDOS distributed Denial of Service 分布式拒绝服务;

利用合理的请求造成资源过载,导致服务不可用。

常见的DDOS攻击:SYN flood、UDP flood、ICMP flood等,其中SYN flood尤其严重。

TCP三次握手:SYN(x)、SYN/ACK(x+1,y)、ACK(x+1,y+1)

SYN flood攻击时,伪造大量源IP,向服务器发送大量SYN,服务器返回SYN/ACK包,并持续重试SYN time(一般30s-2min);从而持续消耗服务器资源(CPU和内存),导致无暇处理正常连接。

对抗SYN flood:SYN Cookies/SYN Proxy、safereset等算法;

本质:通过各种方式,对来自于同一个源IP的数据包进行分析,如果判定受到攻击,则丢弃该源IP的包。

 

2、应用层DDOS

应用层DDOS攻击时TCP连接已建立,源IP为真实存在,商业Anti-DDOS主要防御网络DDOS。

CC攻击 Challenge Collapasar(黑洞):对一些消耗资源较大的页面不断发起正常请求,以达到消耗服务器资源的目的。

针对应用层DDOS攻击的防御:在应用中针对每个“客户端”进行请求频率限制;限制需放在业务逻辑之前。

同一客户端的判断依据:IP、cookie,IP可通过代理或傀儡机获取,cookie可被清空;

应用层DDOS防御:

1)优化应用代码性能;

2)优化网络架构;

3)实施对抗手段,如限定每个IP的请求频率。

 

3、验证码

CAPTCHA 全自动区分计算机和人类的图灵测试

验证码破解:

1)图像识别算法;

2)验证码实现上的漏洞

a、验证码验证过后sessionID未更新,使用原sessionID可重复提交同一验证码;

b、提前将所有验证码图片生成好,以哈希过的字符串作为图片文件名,验证文件名;攻击者可收集图片名“彩虹表”,修补方法:验证码文件名需要随机化,满足“不可预测性”原则。

 

4、防御应用层DDOS

判断HTTP头中的User-Agent来识别客户端

让客户解析一段JavaScript

优化Apache配置参数:Timeout、KeepAliveTimeout、MaxClients;

对抗模块:mode_qos、mod_evasive

Yahoo解决思路:根据IP和Cookie等信息,计算客户端的请求频率并进行拦截。

 

5、资源耗尽攻击

slowloris攻击:以极低速度往服务器发送HTTP请求,以消耗连接数。

正常HTTP包头以两个CLRF作为结束,攻击者只发一个,并保持连接不释放。

HTTP POST DOS攻击:为POST包指定一个非常大的content-length,并以极低速度发包,保持连接不释放,从而导致DOS(拒绝服务)

解决办法:web应用防火墙或定制的webserver安全模块

Server Limit DOS web server对HTTP包头有长度限制,如Apache,默认Request Header为8192字节,Request Body默认2GB;如果客户端发送的HTTP包头超过这个大小,则服务器返回4xx错误

攻击者可能通过XSS攻击,恶意向客户端写入一个超长的cookie,则该客户端在清空该cookie之前,均无法访问该cookie所在域的任何页面,因为cookie也是放在HTTP包头里面的。

解决办法:调整apache参数LimitRequestFieldSize

 

6、正则表达式导致的攻击:RdDOS

当正则表达式写得不好时,就有可能被恶意输入利用,消耗大量资源,从而造成DOS。

如:^(a+)+$

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值