Celmet = CDN Helmet || CC Helmet
应用Celmet可有效降低cdn遭遇cc攻击时的流量损失,轻量、高性能,低部署成本,1Mb带宽即可撬动百万乃至千万级单日请求。

通过增加Celmet层,配合CDN的URL鉴权功能,提高恶意请求发起者的攻击门槛和攻击成本。
对于少量IP针对css、js、图片等静态资源文件的CC攻击,Celmet可有效隔绝恶意请求;
对于大量代理IP进行的CC攻击,配合使用CDN服务商的请求频率阈值、带宽阈值、费用阈值等限制,Celmet可补足前者时间粒度大、限制触发有延迟的弊端,对于缓解延迟期间内的流量损失亦有显著效果。
Celmet原理
网站静态资源使用二级域名(这里我们称为B域名)进行CDN加速时,在CDN服务商处配置URL鉴权,并设置较短的有效时长。
使用另外的域名(这里我们称为A域名)指向到Celmet。
配置WEB应用,将前端引用的静态资源前缀由原来的B域名改为A域名。
用户访问A域名下的静态资源时,Celmet返回302状态码以及携带鉴权参数的B域名URL。
当恶意用户直接攻击B域名URL时,B域名鉴权参数很快失效,不再返回静态资源文件(但仍会产生少量的流量费用和https请求数费用)。
当恶意用户直接攻击A域名URL时,会触发用户预设的Celmet请求频率限制,攻击被阻断,不会流向B域名。实质上是在CDN服务商原有WAF(可能需要付费)外再新增一层防护,低成本,有效且高效。
典型性能
CPU Geek Bench 5 每 100 分 ~= 3000/s 并发性能(单核500分,2核VPS CPU理论并发 1亿/h)
1Mb 带宽 ~= 500/s 并发性能(180万/h)
通常情况下(即便正处于CC攻击),性能瓶颈都在于网络(带宽、pps、最大连接数、延迟、丢包率等)
以下并发性能理论计算忽略TCP、TLS握手等可复用的网络开销:
正常请求的带宽开销<300B(由静态资源URL长短决定),1Mb对应: 1 * 1024 * 1024 / 8 / 300 = 436
触发限制后请求的带宽开销约60B,1Mb对应: 1 * 1024 * 1024 / 8 / 60 = 2184