DDOS之CC攻击

上一篇讲了SYN Flood攻击,该种攻击方式处于OSI模型的第四层,TCP层。下面来讲讲应用层的经典攻击,CC攻击,更为官方的名字应该叫做HTTP Flood攻击,只是CC叫得更多一点。

CC攻击和SYN Flood攻击的区别在于,前者发生在TCP三次握手后,应用程序处理请求的时候,而后者发生在TCP三次握手过程中。

CC攻击原理

CC攻击和正常的HTTP请求的区别在于,CC攻击借助肉鸡或代理向目标服务器发送海量的HTTP请求,当服务器收到高并发的时候,服务器的响应就变得极其缓慢。不光如此,CC攻击尤其喜欢挑一些对数据库查询慢的请求,导致服务器CPU负载过高,从而宕机。

总结一下,CC攻击的表象有以下几类:

  • 利用服务器向受害者发起大量HTTP GET请求
  • 主要请求动态页面,涉及数据库访问操作
  • 数据库负载以及数据库连接池负载极高,无法响应正常请求

如何判断CC攻击

总的可以概括为以下几点:

  1. 服务器CPU占用率很高
  2. Web服务器出现类似Service Unvailable提示
  3. 出现大量的ESTABLISHED的网络连接状态且单个IP高达几十甚至上百个连接,Windows可以通过命令netstat -n -p TCP来查看
  4. 用户无法正常访问网站页面或打开过程非常缓慢,软重启后短期内恢复正常,几分钟后又无法访问

CC攻击示例

Github上有很多CC攻击的示例,我个人比较推荐使用Go语言写的,因为Go的并发做得真的很好,如果模拟CC攻击,一台电脑足矣。可以看看这个CC攻击的工具,代码十分简洁,但是却霸道异常。如果只是用来做压力测试的话,开1000并发就能瞬间搞瘫一台服务器。

总结

CC攻击比之SYN Flood攻击而言,更难被拦截,尤其是肉鸡多的情况下。但并不是不可防,网上也有相关的CC防御脚本可以参考,比如CC Killer

avatar

chilihotpot

You Are The JavaScript In My HTML