CC攻击

[TOC]

第三方云安全

网易云盾,阿里云盾,云锁、安全狗、Cloudflare、百度云加速、360网站卫士等。

开源软件

openwaf github地址:https://github.com/titansec/OpenWAF/blob/master/doc/轻松玩转OpenWAF之安装篇.md

openstar-Enterprise地址
https://www.kancloud.cn/openstar/install/1136671

1 攻击原理

是一种针对Http业务的攻击手段,该攻击模式不需要太大的攻击流量,它是对服务端业务 处理瓶颈的精确打击,
攻击目标包括:大量数据运算、数据库访问、大内存文件等,
攻击特征包括:

a、只构造请求,不关心请求结果,即发送完请求后立即关闭会话;
b、持续请求同一操作;
c、故意请求小字节的数据包(如下载文件);
d、qps高;

针对CC的攻击的防御需要结合具体业务的特征,针对具体的业务建立一系列防御模型
,如:连接特征模型,客户端行为模型,业务访问特征模型等,接收请求端统计客户信息并根据模型特征进行一系列处理,
包括:列入黑名单,限制访问速率,随机丢弃请求等。

2 处理方法:

2.1 第一阶段

Nginx原生的limit_req模块来针对请求进行限制,
(ngx_http_limit_req_module 模块)

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
 
server {
    location /search/ {
        limit_req zone=one burst=5 nodelay;
    }

one区域名称,大小为10m,平均处理的请求频率不能超过每秒一次。 如果限制域的存储空间耗尽了,对于后续所有请求,服务器都会返回 503 (Service Temporarily Unavailable)错误。 速度可以设置为每秒处理请求数和每分钟处理请求数,其值必须是整数,
所以如果你需要指定每秒处理少于1个的请求,2秒处理一个请求,可以使用 “30r/m”

2.2 第二阶段

limit_req_zone  $anti_spider  zone=one:10m   rate=10r/s;
limit_req zone=one burst=100 nodelay;

第一个参数:zone=one 设置使用哪个配置区域来做限制,与上面limit_req_zone 里的name对应
第二个参数:burst=5,重点说明一下这个配置,burst爆发的意思,这个配置的意思是设置一个大小为5的缓冲区当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内
第三个参数:nodelay,如果设置,超过访问频次而且缓冲区也满了的时候就会直接返回503,如果没有设置,则所有请求会等待排队

当然,也可以使用tengine的limit_req模块,对官方模块进行了增强(The Tengine Web Server)