网络安全 频道

CC攻击分析与新思路

现在最热门的就是CC攻击了,CC巧妙利用大量的代理,拖跨动态网站.防护难度之大,有目共睹.
现在的抗CC技术基本上就是过滤关键字,还有程序自身的防刷新技术.
分别简单分析一下,这两种技术,最后提出一个新的防护思路,一起分析:
过滤关键字,的确有一定的防护效果,可以有效保护动态网站服务器,对于小型CC攻击或加上服务器强大的处理能力,还是能挺的过去.此方法有以下缺点,一是互联网上的服务器复杂,有很多代理软件,每个代理软件都有自己的关键字,如果每个都过滤对速度影响之大,当然抓包分析,可以看出三次握手后,如果有关键字的话前几个包就包括你需要的关键字,这是优化处理,效果有限.二是有不少代理软件根本没有任何指示是代理的关键字,所以这部分代理就不能防范了,代理找的越多,几率越大.所以面对强大的CC攻击时,用户反应效果不好.如果有心人专找这种代理的话,是很可怕的事,也不能通过IP找到攻击着.

防刷新技术,有两种.一种是在地层,另一种是动态脚本中加入.这两种技术也都有局限性,地层防刷新,可以通过限制每秒或几秒通过SYN数,也可能对每个请求(URL)每秒不能通过多少个,进行限制的办法.这种方法也有一定的效果,但是很容易误报,用户不小多点了几个窗口就不能访问了.最后就是脚本中加入了,防刷新的功能,也是有一定的效果,可能也存在前边的问题.另外是攻击包已经到了服务器了,这时为每个代理只少查询了一次数据库了,如果代量多的话,一样也能拖跨服务器.
通过分析可知,每个方法都有一定的效果,可又都不是完美的解决CC的方案,其实并不是没有办法的,我们仔细想想可知,CC攻击有如下特点:
(1)攻击着为了攻击动态网站,都是用了专用的CC攻击工具,此工具必须能比较快的建立三次握手,并且能快速的断开.
(2)必须借助大量第三方的代理服务器.

我们首先分析代理服务器,代理服务器既然是第三方的,不是CC攻击者的,所以呢代理服务器的行为是固定的,就是CC攻击着不能改变其功能,只能被动使用.通过代理服务器的原理可知,他就是把用户发来的请求进行解析,转发出去,等待服务器返回数据做个备份,下次再有请求时,直接返数据.就是只有转发,缓存网页的做用,没有对脚本执行分析的作用(这点很重点).
再次分析攻击软件的特点,攻击软件只是与代理建立三次握手,发出个GET请求就断开了,省下的就又代理完成,为什么这么做请看CC攻击作者说明.本身对脚本也没有执行分析的作用(这点很重要).
我们反过来看看,我们正常的访问,访问动态网站都是用IE等有分析执行功能的浏览器(这点很重要).
好,我们知道这些特点,下边就是怎么利用这个特点进行防护.

当我们的防火墙与代理完成三次握手后,代理会向服务器发出GET请求,这时我们的防火墙截获此包,然后替服务器对代理服务器进行应答,这个应答是一个转向脚本,告诉代理服务器你访问网站在别一个地方,同时这个应答包中包括代理服务器真实的请求+上防火墙加密的动态数据(防止被解密),等待这个代理再次发出我们要求的这个转向请求,如果验证加密的数据是对的,就发个服务器,完成实际的请求(这地方有个seq包同步问题,很好解决).刚才发到的包是攻击软件发出的,他就不会就浏览器一样,正确解释执行这个加密脚本.大体思想就是这样的.

好处,一是不依靠有限的关键字,漏掉部分代理.二是并不武断拒绝一切代理,只要不是攻击,正常的用户是可以用代理访问的.http://netadmin.77169.com/HTML/20060615002241.html
0
相关文章