登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

梦想之鹰的天空

天高任鸟飞......放飞....心情..........放飞.....梦想

 
 
 

日志

 
 

有效防范CC的新思路--CC Cookie  

2008-06-06 12:54:09|  分类: 桌面应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  1. CC基本原理

  CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS,而攻击者一旦发送请求给代理后就主动断开连接,因为代理并不因为客户端这边连接的断开就不去连接目标服务器,因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的。

  2. 以前的方法

  为防范CC,以前的方法一个是限制每个IP的连接数,这个在地址范围很广阔的情况下比较难实现;二是限制代理的访问,因为一般的代理都会在HTTP头中带X_FORWARDED_FOR字段,但也有局限,有的代理的请求中是不带该字段的,另外有的客户端确实需要代理才能连接目标服务器,这种限制就拒绝了这类合法客户。

  3. 新思路

  CC有效性在于攻击方不接受服务器回应的数据,发送完请求后就主动断开连接,因此要确认连接是否是CC,服务器端不立即执行URL请求命令,而是简单的返回一个页面转向的回应,回应中包含新的URL请求地址,如果是正常访问,客户端会主动再次连接到转向页面,对用户来说是透明的;而对于CC攻击者,由于不接收回应数据,因此就不会重新连接,服务器也就不需要进行查询操作。

  4. 具体实现: CC cookie

  具体实现的关键在于转向的URL如何构造,我设计的方法是增加CC cookie,即在原URL请求的最后面添加一个独一无二的cookie,文本形式,作为URL的一部分;当包含该cookie的URL重新返回时,先检查该cookie是否合法,如果合法,则说明该URL是合法的再次连接,将URL中的cookie部分抹去,恢复为原始的URL请求再发给服务器进行正常访问;否则拒绝该URL。

  5. 安全性考虑

  为保证此方法的有效,需要注意以下问题:

  1)cookie的选择,要对每个URL请求都不同,即使URL是相同的,有两种方式,一种是根据所请求的URL和客户端的信息和一些随机信息计算出一个cookie值,检验时按相同的方式计算cookie是否符合;第二种方式是直接随机生成cookie,然后将cookie保存到一个库中,检验时就是检查客户端提交的cookie是否在库中。无论哪种方法,cookie的选择必须足够随机,不能被猜出计算规律或猜出当前cookie库中有哪些cookie;

  2)cookie添加到URL时的格式标志必须独特,不能和正常URL请求中有冲突的地方,这个应该是可以控制的,因为要保护的服务器是在自己控制之下的,URL有哪些格式是可控的,因此设计一个独特的cookie标志是可行的,而且这个标志格式应该经常变换;

  3)cookie的有效时间,cookie只在一定时间内有效,超时将删除,时间选择必须合适,不要太长或太短;

  4)cookie dos攻击,如果CC攻击程序发现服务器用了cookie保护而中预先带了cookie,必须能比较快速地检测这个cookie是否合法,对于非法cookie的连接请求丢弃;cookie标志也要经常变换以防止DOS;

  5)提高效率方法,对于HTTP/1.1的连接,有keep-alive选项,一个连接中可以进行多次URL请求操作,对于已经认证了的连接,如果该连接中继续有URL请求的话,可以不用再进行cookie认证以提高效率;此外,应该可以指定只对某些类型的URL进行cookie处理,如cgi、php、asp的请求,而普通静态文本或图片、媒体等URL不用进行cookie处理。

  6. 结论

  本文提出的这种CC cookie防御方法可以有效防御CC攻击,而不会影响正常用户的访问,对用户来说是透明的。本方法比较适合在防火墙上实现,也可以由服务器本身实现。

  评论这张
 
阅读(372)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018