声明
实验所提及的工具,均为自己编写。读者请不要索取任何源码,作者也从未参与任何压力测试。测试单站仅持续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攻击模拟测试。大家可以基于本站做下测试。随便打。