沧水的博客
我们能在这里相遇,一定是前世的缘结

声明

实验所提及的工具,均为自己编写。读者请不要索取任何源码,作者也从未参与任何压力测试。测试单站仅持续5分钟左右。

语言

C++实现,曾尝试过requests、urllib、twisted,然多进程(GIL多线程效果更差 )效果实在低下。

参考文档

  • https://tools.ietf.org/html/rfc1945
  • https://tools.ietf.org/html/rfc2616
  • https://tools.ietf.org/html/rfc7540

测试环境

单台机器,处理器:E3 1231V3,带宽:1GB

实验一:免费图床(namecheap的1$/Y虚机)

实验二:免费图床(quadranet的虚机)

实验三:aliyun-2H2G4M

实验四:ovh-kimsufi-4H16G100M

ovh- Kimsufi-CC,迅速502,再此不再截图

实验五:百度云加速某网站(迅速无法连接,防御ok)

实验六:某厦门电信某网站

CC,迅速502,再此不再截图

CC的原理

CC即ChallengeCollapsar,基于7层协议HTTP、HTTPS 。其模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面),直至服务器宕机。还有其他变种CC攻击,例如慢速攻击等。

CC的危害

  • 恶意消耗主机带宽,类似实验二,带宽反弹攻击,月平均流量流出高达50TB
  • 恶意消费主机性能
  • 恶意使网站访问巨慢或使服务器宕机

本篇介绍下CC攻击的防御方案

WAF即Web应用防护系统,也称“网站应用级入侵防御系统”。其实际为基于七层协议(HTTP/HTTPS)的防御。原理是统计、黑名单制等,一个完整的WAF系统还会有xss跨站,sql注入防御等等功能。

WAF的一些方法

利用这些方法很容易基于shell或python等脚本语言开发出最适合自己的软防火墙。

  • 限制单IP并发数 ,设置黑名单制
  • Nginx反向代理做好回源策略
  • Nginx反向代理并做缓存,忽略带参数的请求
  • Nginx配置验证码,做人机校验
  • 高并发网站一定要做好内存缓存

基于脚本及工具的防御

因每个模块的配置都不一样,再此不在贴出详细的配置文件,翻阅官方文档&帮助即可。

  • nginx模块:ngx_http_limit_req_module 限制每秒请求数
  • nginx模块:ngx_http_limit_conn_module 限制IP连接数
  • nginx模块【力荐】:ModSecurity,WAF,功能强大,但是配置复杂。官网:www.modsecurity.org
  • nginx模块【推荐】:ngx_lua_waf,WAF,轻量级、高性能。官网:github.com/loveshell/ngx_lua_waf
  • nginx模块:CDNFly(原http_guard),WAF,同样基于openresty。
  • fail2ban和iptables:fail2ban是一个基于日志分析的强大工具。分析日志,拦截。

基于CDN的WAF

  • akamai【力荐】:针对CC能迅速阻断,防御大规模DDOS,有钱就打不死。
  • fastly:针对CC能迅速阻断,防御大规模DDOS,烧钱。
  • cloudflare【推荐】:针对CC能迅速阻断,便宜廉价,TB级DDOS清洗,打不死。
  • amazon cloudfront:未测试,来自亚马逊的CDN 和 WAF。
  • 百度云cdn:实为cloudflare的马甲

ddos的硬抗机房

简单介绍下ddos的硬抗机房,结合CC七层防御很有效。后边会有文章详细介绍ddos等4层协议的攻击。

  • 法国【力荐】:ovh
  • 英国:voxility
  • 美国:sharktech,buyvm,ramnode,ceranetworks

以上所有推荐软件和配置均做了大量基于CPP.LA的CC攻击模拟测试。大家可以基于本站做下测试。随便打。

做下CC攻击和防御的总结:

一般来说CC和DDOS(后续会有文章专门介绍ddos原理测试和防御)混合攻击的较多,进而防御就变成了系统性工程。

  • 带宽打满了一切都得从来,提防御都是瞎扯淡~
  • 做好负载均衡很重要,前后端一定要分离,同时做集群。
  • 帝国主义骨干网带宽大,充分利用美和法的硬防和流量牵引。
  • CDN能分散请求,加速网站可以,但防御意义不大。太烧钱。
  • 七层好防,四层难防!
  • 需要调整防御策略,调整出适合自己的WAF

这篇文章还没有人发言,快抢第一!

发表评论