CC攻击原理及防范新思路

CC攻击原理及防范新思路
作者:冰盾防火墙 网站:www.bingdun.com

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攻击,而不会影响正常用户的访问,对用户来说是透明的。本方法比较适合在防火墙上实现,也可以由服务器本身实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值