防火墙、CDN、WAF等防御CC攻击的几种方式

一,防御方式 
1)JavaScript方式输出入口 
演示可以看下面这张图:  
 
第一次访问的时候,不是直接返回网页内容,而且返回这段JS程序。  
作用就是计算出入口变量的值,然后在访问的网址后面加上类似于”?jdfwkey=hj67l9″的字串,组合成新的网址,然后跳转,当防火墙验证了jdfwkey的值(hj67l9)是正确的之后,就放行,一段时间内就不会再出这个判断程序的页面。  
 
2)301或者302转向方式输出入口  
原理和1类似,区别在于把入口直接输出在了HTTP头部 信息 里,不重复叙述了。  
 
2.5)还有一些把入口通过其他方式输出的,比如cookie,类似于1和2,原理都是在第一次访问的时候设置一道槛。这个就不单独计算为一条了。  
 
3)屏蔽代理 
由于一部分的CC攻击是利用代理 服务器 发起的,所以有些时候防CC会屏蔽掉带x-forward-for这个值的IP,对匿名代理无效。  
 
4)判断速率 
由于CC攻击是持续的发起请求,所以发起攻击的IP在单位时间内的请求数量会明显比正常多出很多,通过把请求频率过高的IP屏蔽掉来防御。  
 
5)验证码 
这个基本是最后的无敌大招了,必须在用户输入验证码后才能访问。  
 
二,防御效果(突破方式) 
1中的防护方式用的最早并且用的最多的是金盾防火墙。也正是由于用的人太多了,市面上已经有突破金盾防火墙的软件在出售,原理就是通过JS解析引擎计算出jdfwkey的值。  
 
突破2的方式更简单,和1差不多,只不过是直接在HTTP头中,连JS引擎都省了。  
 
3无法硬性突破,也就是说,如果屏蔽了带x-forward-for的IP,那么它就不可能访问到。  
 
突破4的方式就是限制请求速度,但是这对于攻击者是一个挑战,限制单个攻击源的请求速度,并且保证攻击效果,这就要求攻击者拥有更多倍的攻击源(肉鸡)。  
 
对于5,验证码识别是个大话题,目前阶段几乎不可能应用到CC攻击中,未来也不太可能。但是网络上有很多的打码平台,如果和这些平台对接的话,人工识别验证码,就OVER了(应该不会有人去搞,太麻烦)。  
 
对于所有的防护方式,如果是把 网站 域名 解析到了别处,通过其他机器转发请求来防御CC攻击流量的(比如 CDN ),都可以通过添加HOST值的方式将流量发到真实机器上,使这些防护失效。找查网站真实IP的方法很多很复杂,不能保证100%都能找得到,本文不做叙述。  
 
三,负作用 
有些IP,我们会要求它一直可以访问到网站内容,比如蜘蛛,比如交易类网站的 支付宝 异步通知。  
但是收集这些IP,几乎是无法100%准确的收集到的(可能有人会想到useragent,一句话:攻击者可以伪造)。  
 
下面要讲的,就不再考虑上述的这个 问题 了。  
 
对于1和2,对访客几乎不会造成影响,判断过程是由浏览器 动完成的。  
 
对于3,由于个别的网络 环境 ,在没有使用代理的情况下,也会在浏览器访问时强行加上x-forward-for的值,最终的导致的就是这个访问无法访问。其实在现在这个年代,除了CC攻击中使用的代理IP外,剩的带x-forward-for的IP,几乎都是这样的情况,也就是访客本地网络环境强加上的。早些年设置代理主要是因为那个时候网速差,用于提高速度。现在搬梯子时设置的SSH代理一般不会加上x-forward-for。  
 
对于4,可能会造成误封。而且这个判断攻击的阀值也没法精确的设置,只能凭经验以及分析网站的具体情况。  
 
对于5,对用户体验会产生影响,并且长期下去,对网站形象也会产生影响。  
 

总结下来就是,几乎所有方式,都会产生或多或少的负作用,所以,任何一种防护方式,在没事的时候不要开,只在被攻击的时候开启。 

封 http_user_agent 屡试不爽 
偶尔有useragent也随机的cc攻击,可以封 http_refferer,总归有共同点,通过tail日志几秒就看得出来 
nginx一个简单的if判断return一个503之类,或者apache一个简单的deny配置 
一般一分钟内搞定

具体的应该是ECS+SLB+百度cdn

一些防CC攻击手段方法,对搜索引擎并不友好。

 
四,什么样的网站容易被CC攻击 
在我处理过的CC攻击中,主要消耗的是CPU和内存,通常在 带宽 被占满前CPU和内存已经爆掉。  
而对于静态网站,也就是生成HTML页面的网站,静态请求占用的CPU和内存是极低的,所以几乎不太可能出现生成HTML后被CC攻击挂掉的情况。  
所以,被CC的主要都是动态网站,比如Discuz,Wordpress等。  
 
五,都是什么人在攻击 
1)无聊恶作剧  
2)打击报复  
3)敲诈勒索  
4)同行恶意竞争  
 
六,结尾 
今天遇到的一起攻击事件,某网站被敲诈1万块(也就是前文中的截图,网站有金盾防护,但是被肉鸡穿透)。于是理了理思绪,写下了这些经验之谈,与大家分享。

你可能感兴趣的:(防火墙、CDN、WAF等防御CC攻击的几种方式)