CC是怎么样攻击的?如何预防?
攻击就是充分利用了这样一个特点:模拟多个用户不停的进行访问1.访问那些需要大量数据操作,如搜索页面,就是需要大量CPU时间的页面2.访问有大量图片或音视频内容的页面。第一种的CC攻击就是占用完你的cpu,让合法的请求埋没大大量的攻击请求中。这是以前的高水平的黑客喜欢使用的方法。因为只需要很少的带宽(小于1M)就可以让你的100M 甚至1G的带宽的网站立即挂掉。第二种CC攻击是目前使用最普遍也是最简单的攻击方式。不需要去分析被攻击网站的实际内容,直接对某个页面发起攻击就能起作用。如果你的网页其中一面有256Kbyte (包括所要打开的图片等内容),那么就需要1Mbit/s的带宽2秒时间来打开。而客户发送给服务器的请求包长最多就 1Kbyte.所以攻击比例是256倍。同时有100个客户来点开这个页面的话,就需要有100Mbit/s 的带宽来支持。客户都能在2秒种内打开这个网站。这100个客户发起访问所需的带宽才100Kbyte X 8=0.8Mbit/s 。这样看来1M不到的带宽来攻击网站,网站得准备有100M的带宽来应付。无视cc防护方法:第一、用户自己解决 ,主要就是提高主机处理性能,增加更多带宽,修改 或者关闭在log里出现大量相同访问文件的页面。处理效果很一般,有时没什么效果,借助第三方工具 .使用软件冰盾等软件防火墙 关闭代理访问,限制80端口同一ip的并发链接数; 使用包分析软件对数据包里存在 FORWARDED_FOR 等关词进行过滤,把ip暂进加到黑名单中。有一定效果。攻击量大量也会影响访问效率(南昌壹基比)
CC主要是用来攻击页面的,让你的服务器瘫痪!
对于CC攻击.其防御必须采用多种方法,而这些方法本质上也是在提高服务器的并发能力。
1、服务器垂直扩展和水平扩容
资金允许的情况下,这是最简单的一种方法,本质上讲,这个方法并不是针对CC攻击的,而是提升服务本身处理并发的能力,但确实提升了对CC攻击的承载能力。垂直扩展:是指增加每台服务器的硬件能力,如升级CPU、增加内存、升级SSD固态硬盘等。水平扩容:是指通过增加提供服务的服务器来提升承载力。上述扩展和扩容可以在服务的各个层级进行,包括:应用服务器、数据库服务器和缓存服务器等等。
2、数据缓存(内存级别,不要用文件)
对于服务中具备高度共性,多用户可重用,或单用户多次可重用的数据,一旦从数据库中检索出,或通过计算得出后,最好将其放在缓存中,后续请求均可直接从缓存中取得数据,减轻数据库的检索压力和应用服务器的计算压力,并且能够快速返回结果并释放进程,从而也能缓解服务器的内存压力。要注意的是,缓存不要使用文件形式,可以使用redis、mem—cached等基于内存的nosql缓存服务,并且与应用服务器分离,单独部署在局域网内。局域网内的网络IO肯定比起磁盘IO要高。为了不使局域网成为瓶颈,千兆网络也是有必要的。
3、页面静态化
与数据缓存一样,页面数据本质上也属于数据,常见的手段是生成静态化的html页面文件,利用客户端浏览器的缓存功能或者服务端的缓存服务,以及CDN节点的缓冲服务,均可以降低服务器端的数据检索和计算压力,快速响应结果并释放连接进程。
4、用户级别的调用频率限制
不管服务是有登陆态还是没登陆态,基于session等方式都可以为客户端分配唯一的识别ID(后称作SID),服务端可以将SID存到缓存中。当客户端请求服务时,如果没有带SID(cookie中或请求参数中等),则由服务端快速分配一个并返回。可以的话,本次请求可以不返回数据,或者将分配SID独立出业务服务。当客户端请求时带了合法SID(即SID能在服务端缓存中匹配到),便可以依据SID对客户端进行频率限制。而对于SID非法的请求,则直接拒绝服务。相比根据IP进行的频率限制,根据SID的频率限制更加精准可控,可最大程度地避免误杀隋况。
5、IP限制
最后,IP限制依然可以结合上述规则一起使用,但是可以将其前置至)JCb层的防火墙或负载均衡器上去做,并且可以调大限制的阈值,防止恶意访问穿透到应用服务器上,造成应用服务器压力。
[3]