上个月,我们的网站遭到了一次CC攻击。虽然我对CC的防御还是比较了解,但是真正遇到时依然打了我个措手不及。CC防御是一件比较繁琐的事,面对各种不同类型的攻击,防御方式也不尽相同。当面临攻击来的太快量也很大这种情况,在自身环境下做调整已经无法抵抗攻击。为了缓解网站压力,在尝试了其他方式后最终还是选择切换到了百度云加速高防CDN上。过程中也遇到了很多问题,但是为以后的DDoS防御留下的很多经验。所以写下这篇文章,与大家分享。
CC攻击是目前应用层攻击的主要手段之一,只需要借助代理服务器生成指向目标系统的合法请求,就能实现伪装和DDoS。
其实我们都有这样的体验,访问一个静态页面,即使人多也不需要太长时间,但如果在高峰期访问论坛、贴吧等,那就很慢了,因为服务器系统需要到数据库中判断访问者是否有读帖、发言等权限。访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当的大。CC攻击就充分利用了这个特点,模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费。
当时我们发现服务器的CPU长时间处于100%的状态,永远都有处理不完的请求,网络拥塞,正常访问被中止,PHP直接卡死了,但是由于CC攻击技术性含量高,我们又无法见到真实源IP,也见不到特别大的异常流量,但服务器就是无法进行正常连接。最后才确定,这些其实都是CC攻击的典型特征。
CC攻击之所以会选择代理服务器是因为代理可以有效地隐藏自己的身份,也可以绕开防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。当然也可以使用肉鸡来发动CC攻击,攻击者使用CC攻击软件控制大量肉鸡发动攻击,肉鸡可以模拟正常用户访问网站的请求伪造成合法数据包,相比前者来说更难防御。
CC攻击是针对Web服务在第七层协议发起的攻击,在越上层协议上发动DDoS攻击越难以防御,上层协议与业务关联愈加紧密,防御系统面临的情况也会更复杂。比如CC攻击中最重要的方式之一HTTP Flood,不仅会直接导致被攻击的Web前端响应缓慢,对承载的业务造成致命的影响,还可能会引起连锁反应,间接攻击到后端的Java等业务层逻辑以及更后端的数据库服务。真的非常的扎心!由于CC攻击成本低、威力大,很难防御,80%的DDoS攻击都是CC攻击。而攻击造成的后果就是:带宽资源严重被消耗,网站瘫痪;CPU、内存利用率飙升,主机瘫痪;瞬间快速的打击,使我们根本无法快速响应。
那我们是如何一步一步解决的?其实在遇到攻击时,我们有仔细考虑过很多方案,是选择高防机房、机房流量清洗还是云防御?
遭到攻击的第一刻,我们首先想到的是更换服务器的方法。网上也有很多过来人推荐这种办法,但问题是,CC攻击主要是从域名攻击而来,你不可能因为对方攻击你域名就换个域名吧,一开始我们找了网上一些小服务商的高防服务器转移过去,号称无视CC攻击…但结果效果并不理想,首先对方防火墙误杀率非常高,有些正常用户都被拦截了,其次是他们宽带普遍不高,被攻击后,虽然可以访问,但是速度非常慢。无奈之下我们只好往大品牌看,在选择高防产品时我们对阿里云、腾讯云和知道创宇、百度云加速几家进行了对比。这几家实力都很雄厚,价格阿里云>腾讯云>知道创宇>百度云加速,但是除了百度云加速外,前面三家真的贵,怎么贵呢?相当于百度云加速价格的十倍以上还高,我们网站也没多少盈利,如果全部花在防御上的话,那就等于白干了,而且听说百度云加速是与国外著名的高防CDN CloudFlare同套系统的,效果应该特别好,所以综合考虑我们选择了百度云加速。
一开始买了百度云加速的专业版使用,开启百度云加速的CC防护强力防护模式后,还真的防御住了CC攻击,用了一天后查看报表,我的乖乖!居然拦截了2亿次攻击!最高峰值高达2000万次!对方是有多恨我们呀!
但百度云加速的CC防护强力防护模式有个不好,就是单个IP首次登陆网站后会显示有5秒的安全检测,虽然对正常访问不会有什么影响,但多多少少会有些影响用户体验,而且由于5秒跳转导致微信是无法直接打开网站的,因为微信是禁止网页跳转的,这对我们网站有点伤,联系百度云加速后,在他们的推荐下我们又升级了商务版,商务版提供超级清洗功能,可以让官方自义CC防护规则,而且没有5秒盾,升级后终于解决了CC攻击问题!
最后一点点经验给到大家:买防护千万别买小服务商的,既浪费时间也容易把业务搞死,小服务商的高防可能会把你正常用户也拦截了,甚至可能把搜索引擎蜘蛛都给拦截了,那到时真的哭都来不及,而且我们发现百度云加速价格真的便宜,比那些小服务商的价格还便宜,但防御真的牛!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/249267.html