客服热线:00000000000

DDoS 和 CC 攻击的原理和区别

后台-系统设置-扩展变量-手机广告位-内容广告位一

明月发现很多站长搞不清楚 DDoS 和 CC 攻击的区别,今天就给大家简单的讲解一下 DDoS 和 CC 攻击的原理以及区别,随后明月会结合自己多年来运维经验给大家分享一下应对 DDoS 和 CC 攻击的措施和心得,希望可以帮助到大家。


DDoS 和 CC 攻击的原理和区别


DDoS 攻击的原理是什么

DDoS 全称:分布式拒绝服务(DDoS:Distributed Denial of Service)。

信息安全的三要素——“保密性”、“完整性”和“可用性”中,拒绝服务攻击,针对的目标正是“可用性”。该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。

拒绝服务攻击问题一直得不到合理的解决,目前还是世界性难题,究其原因是因为这是由于网络协议本身的安全缺陷造成的,(这里不细说,详情自行百度)从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:

  • 一是迫使服务器的缓冲区满,不接收新的请求;
  • 二是使用 IP 欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。


DDoS 和 CC 攻击的原理和区别


CC 攻击的原理是什么

CC 攻击全称 Challenge Collapsar,中文意思是挑战黑洞,因为以前的抵抗 DDoS 攻击的安全设备叫黑洞,顾名思义挑战黑洞就是说黑洞拿这种攻击没办法,新一代的抗 DDoS 设备已经改名为 ADS(Anti-DDoS System),基本上已经可以完美的抵御 CC 攻击了。CC 攻击的原理是通过代理服务器或者大量肉鸡模拟多个用户访问目标网站的动态页面,制造大量的后台数据库查询动作,消耗目标 CPU 资源,造成拒绝服务。CC 不像 DDoS 可以用硬件防火墙来过滤攻击,CC 攻击本身的请求就是正常的请求。我们都知道网站的页面有静态和动态之分,动态网页是需要与后台数据库进行交互的,比如一些论坛用户登录的时候需要去数据库查询你的等级、权限等等,当你留言的时候又需要查询权限、同步数据等等,这就消耗很多 CPU 资源,造成静态网页能打开,但是需要和数据库交互的动态网页打开慢或者无法打开的现象。这种攻击方式相对于前两种实现要相对复杂一些,但是防御起来要简单的多,提供服务的企业只要尽量少用动态网页并且让一些操作提供验证码就能抵御一般的 CC 攻击。


DDoS 和 CC 攻击的原理和区别


DDoS 和 CC 的区别

DDoS 攻击打的是网站的服务器,而 CC 攻击是针对网站的页面攻击的,用术语来说就是,一个是 WEB 网络层拒绝服务攻击(DDoS),一个是 WEB 应用层拒绝服务攻击(CC),网络层就是利用肉鸡的流量去攻击目标网站的服务器,针对比较本源的东西去攻击,服务器瘫痪了,那么运行在服务器上的网站肯定也不能正常访问了。而应用层就是我们用户看得到的东西,就比如说网页,CC 攻击就是针对网页来攻击的,CC 攻击本身是正常请求,网站动态页面的正常请求也会和数据库进行交互的,当这种"正常请求"达到一种程度的时候,服务器就会响应不过来,从而崩溃。

DDoS 和 CC 攻击的原理和区别


现在 CC 攻击基本和 DDOS 一样泛滥了。在防护上,确实有着不小的难度. 一般来说,CC 攻击有一些特征可以发现,比如肉鸡的访问频率通常会快于正常的速度,但防御不能这么光凭访问频率来做粗暴的封禁,因为这里面涉及到业务本身的特点等等,一不留神就很容易有误报。目前业界的主流做法一般是 cookie 验证、验证码提交等等方式。但这种常见防护方法,对付一些老手,已经是应付不来了。

比如一些黑客,会利用 WordPress 等一些插件的漏洞在一些大的站点 A 上埋下对目标站点 B 的访问,这样每一台访问 A 站点的机器就自动成了肉鸡对 B 发起访问请求。这种攻击倒也有解,因为这类的请求可能 referer 或者 UA 可能比较固定,站点 B 可以利用这个特征做防护过滤。


DDoS 和 CC 攻击的原理和区别


又比如有一些坏小子,会专门去研究你的业务哪些 URL 最消耗性能,集中一批肉鸡专打这种 URL,那这个时候其实可以重点对这些 URL 做防护。

最难的是利用海量肉鸡对站点进行慢速的访问攻击。这种攻击没有任何攻击特征,访问速度也相对平缓,访问的 URL 可能也会比较分散。这时候能应对的,我想就是各家厂商自身平时积累的 IP 信誉库以及威胁情报能力了。


DDoS 和 CC 攻击的原理和区别


CC 防护思路目前来看,资源以及多样的防护算法,缺一不可。首先你的资源要足够多,不然一下子打过来,别说对请求做各种分析了,直接就打瘫了,这也是决定为什么我们小老百姓自己做防护不现实的原因……,谁有那么多资本去为了可能存在的海量攻击预备机器资源?其次,CC 一直是一个攻防博弈的过程,到目前来看,很难做到全自动化的防护并且还零误杀,这就要求你有足够的防护能力能应对各种不同场景下的攻击,根据特征选出合适的解法。

CC 攻击防御策略

  • 1.取消域名绑定

取消域名绑定后 Web 服务器的 CPU 能够马上恢复正常状态,通过 IP 进行访问连接一切正常。但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对 IP 的 CC 攻击它是无效的,就算更换域名攻击者发现之后,攻击者也会对新域名实施攻击。

  • 2.更改 Web 端口

一般情况下 Web 服务器通过 80 端口对外提供服务,因此攻击者实施攻击就以默认的 80 端口进行攻击,所以,可以修改 Web 端口达到防 CC 攻击的目的。

  • 3.屏蔽 IP

我们通过命令或在查看日志发现了 CC 攻击的源 IP,就可以在防火墙中设置屏蔽该 IP 对 Web 站点的访问,从而达到防范 CC 攻击的目的。

CC 攻击的防范手段

  • 1.优化代码

尽可能使用缓存来存储重复的查询内容,减少重复的数据查询资源开销。减少复杂框架的调用,减少不必要的数据请求和处理逻辑。程序执行中,及时释放资源,比如及时关闭 mysql 连接,及时关闭 memcache 连接等,减少空连接消耗。

  • 2.限制手段

对一些负载较高的程序增加前置条件判断,可行的判断方法如下:

必须具有网站签发的 session 信息才可以使用(可简单阻止程序发起的集中请求);必须具有正确的 referer(可有效防止嵌入式代码的攻击);禁止一些客户端类型的请求(比如一些典型的不良蜘蛛特征);同一 session 多少秒内只能执行一次。

  • 3.完善日志

尽可能完整保留访问日志。日志分析程序,能够尽快判断出异常访问,比如单一 ip 密集访问;比如特定 url 同比请求激增。

上述的防御策略和防范手段仅供参考,基本上当 DDoS 或者 CC 攻击来临的时候我们能做的工作很少,明月认为更多的是预防措施是否准备完善,手里时刻准备几个有 WAF 功能的 CDN 账户是很有必要的,最经济的方法就是借助 CDN 的节点请求验证码来应急还是很不错的,HTTP 站点推荐百度云 CDN(CloudFlare 的技术框架还是很给力的),HTTPS 站点推荐上海云盾 CDN。这两个 CDN 可以说是免费 CDN 里比较有用的了,所以明月非常建议大家提前注册并实名认证这两个 CDN,一旦有需要可以随时 DNS 解析里 CNAME 过去,再结合服务器层面的防火墙基本上可以阻挡大部分“练手型”的 DDoS 或者 CC 攻击了。

后台-系统设置-扩展变量-手机广告位-内容广告位二

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。