WAF、高防IP、CC防护:安全产品到底怎么选
摘要:做IDC之后被问得最多的安全问题就是"我该买哪个防护"。WAF、高防IP、CC防护解决的是不同层面的问题,很多人花了钱买了不需要的,或者该买的没买。本文用实际案例把三个产品讲清楚。
关键词:WAF、高防IP、CC防护、DDoS、Web安全
分类:安全 / IDC / 运维
一个被错买的案例
做游戏的客户找过来,说网站被打了一直访问不了,想买高防IP。
我问他怎么个"打不了"法。
"打开特别慢,有时候直接502。"
看了下他的Nginx日志:
bash
tail -1000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
2847 103.xx.xx.15
2103 103.xx.xx.16
1876 103.xx.xx.17
345 185.xx.xx.22
201 202.xx.xx.88
三个IP在一分钟内发了几千个请求,全POST到登录接口。每个请求都有完整HTTP头,看起来像正常用户,但频率不对。
这是CC攻击,不是DDoS。买高防IP防不了。
三个产品分别防什么
WAF:检查请求内容
WAF工作在HTTP层,逐个检查请求的内容,拦截恶意行为。
正常请求:GET /api/user?id=123 → 放行
注入攻击:GET /api/user?id=1;DROP TABLE users → 拦截
防的是SQL注入、XSS、CSRF、文件上传漏洞这类针对Web应用的攻击。
打个比方:WAF是门口的保安,检查每个进来的人包里有没有违禁品。不管进来的人多人少,只看你带的东西对不对。
高防IP:清洗大流量
防的是大流量DDoS攻击。
DDoS的逻辑很粗暴:你服务器带宽100M,我用10G的垃圾流量灌满。你的水管被灌满了,正常用户的请求进不去。
高防的做法是所有流量先过一遍高防平台,平台清洗掉攻击流量,正常的再转发到你的源站。
用户请求 → 高防平台(过滤攻击)→ 你的源站
高防的能力用"G"衡量。10G高防能扛10Gbps的攻击流量。
CC防护:识别异常行为
CC攻击跟DDoS不同。它不发垃圾流量,而是模拟正常用户的HTTP请求,用高频的"正常请求"把后端打垮。
DDoS是用消防水龙头灌你家水管------水管爆了
CC是找一万个人同时去你店"正常购物"------店员忙不过来
CC攻击的请求看着跟正常用户一模一样,有正常的UA、Referer、Cookie。流量层面看不出异常,因为它确实不是垃圾流量------只是频率太高了。
CC防护靠行为分析识别:同一IP短时间内几千次请求、某个URL请求量突然暴涨、请求间隔过于均匀------这些特征说明不是正常人类行为。
三者关系
互联网攻击
/ \
流量层攻击 应用层攻击
(大流量DDoS) / \
漏洞攻击 CC攻击
(注入/XSS) (HTTP洪水)
| |
WAF CC防护
← 高防IP管这一层(流量层)→
三个产品管三个层面,不能互相替代。
买了高防IP防不了SQL注入。一个1Mbps的SQL注入请求,流量看着完全正常,高防放行,你的数据库就没了。
WAF防不了大流量DDoS。10G垃圾流量直接把带宽打满,请求到不了WAF。
CC防护防不了SQL注入。一个精心构造的注入请求如果频率正常,CC不会管它。
什么场景用什么
个人博客/小企业官网
日PV几千,没什么竞争对手,被攻击概率极低。
CDN自带的基础防护就够了,不用额外花钱。
大部分CDN自带基础DDoS防护和WAF规则。Cloudflare免费方案就包含无上限DDoS防护、基础WAF规则、SSL证书。对小网站来说足够了。
这种场景花钱买高防或专业WAF就是浪费。真被打了再说。
中小电商/SaaS
有用户数据、有交易、有登录,是攻击的有价值目标。
CDN + WAF。 WAF防SQL注入和XSS,必须有。电商的登录接口、支付接口、用户信息接口都是高价值攻击目标。
CC防护看行业情况。如果你的行业存在恶意竞争(竞争对手打你的服务器让用户跑他那),加上CC防护。如果行业比较正常,先不买,被打的时候再加。
CDN(基础DDoS + 缓存)
+ 云WAF(防注入和XSS)
+ 可选CC防护
游戏/金融
被攻击概率高、攻击强度大、一次宕机损失大。
三件套全上:高防IP + WAF + CC防护。
游戏行业DDoS太常见了。竞争对手打你让你宕机,用户跑到他那。不是夸张,这种事在游戏行业几乎天天发生。
金融平台同理。在线交易中断一分钟损失都很大。
高防IP(30G-100G起步)
+ WAF(防应用层攻击)
+ CC防护(防HTTP洪水)
费用不低。30G高防一年几千到几万。但一次宕机的损失远大于这个数。
API/微服务后端
不面向终端用户,只给前端提供接口。
WAF + 可选CC。 API接口是SQL注入和越权访问的高发区,WAF必须有。
如果API有鉴权(API Key、JWT),CC攻击效果有限------攻击者拿不到合法Token。但如果鉴权弱或者接口公开,CC也需要。
几个坑
买了高防被CC打死
最常见的坑。客户以为"买了高防就安全了",结果CC攻击把后端打垮。
高防只管流量大小不管请求内容。CC攻击可能只有几百Mbps流量,高防看着完全正常直接放行。但几千次/秒的登录请求把数据库打崩了。
买之前确认高防方案包不包含CC防护。有些自带基础CC防护,有些是另外收费的。
WAF规则太严误拦正常请求
规则越严误拦率越高。全开之后,正常表单提交可能被当成SQL注入拦截,正常图片上传被当成文件上传漏洞。
先用观察模式跑一周------不拦截只记录。看哪些规则老误拦正常请求,把误拦率高的调成白名单或者降敏感度。调整好了再开拦截模式。
别上来就全开。先观察再调整,不然用户投诉不断。
只防了Web,其他入口裸奔
WAF只管HTTP/HTTPS流量。攻击者直接打你的SSH端口、数据库端口、Redis端口,WAF不管。
基础网络层防护也要做:
- 安全组只开必要的端口(80、443、你的SSH端口)
- SSH改端口+限制源IP
- 数据库和Redis不对外暴露
- Nginx加limit_req做基础限流
nginx
# Nginx基础限流
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
location /api/ {
limit_req zone=api_limit burst=20 nodelay;
proxy_pass http://backend;
}
WAF是Web层的,网络层的防护还得自己做。
源站IP暴露了
买了高防,域名解析到高防IP。但攻击者通过历史DNS记录、邮件头、子域名解析找到了你的源站IP,绕过高防直接打源站。
bash
# 查你的域名有没有暴露源站IP
# 用 securitytrails.com 查历史DNS记录
# 用 viewdns.info 查子域名解析
源站要藏好。所有对外服务都走高防或CDN,源站只接受来自高防平台的流量:
nginx
# Nginx只允许高防平台的IP访问
allow 高防平台的IP段;
deny all;
费用量级
各地各供应商差异大,只说量级和计费方式。
WAF
CDN自带:通常免费或含在CDN费用里
云WAF:按域名数+请求量,一年几百到几千
硬件WAF:一次性几万到十几万(大企业才需要)
中小业务用云WAF就行,不用买硬件的。
高防IP
按防护带宽:
10G防护:一年几千
30G防护:一年几千到一两万
100G:一年几万
300G+:一年十几万起
弹性防护:
基础10G + 弹性可跑100G
平时按10G收费,被打时自动升级,按超出部分额外收费
弹性防护适合"平时不太可能被打但万一得扛住"的场景,比直接买100G便宜很多。
CC防护
通常包含在高防方案里
单独买的话按QPS计费
基础CC:几百到几千一年
决策流程
你的业务面向公网吗?
├── 不面向 → 安全组+防火墙就够
└── 面向公网
├── 日PV<1万,无交易无敏感数据
│ → CDN基础防护,不额外花钱
├── 有用户数据/交易/登录
│ → 加WAF
├── 所在行业有恶意竞争
│ → 加CC防护
├── 被打过大流量DDoS 或 中断损失大
│ → 加高防IP
└── 游戏/金融/高价值目标
→ 三件套全上
不用一步到位。从基础防护开始,遇到什么问题加什么。很多中小网站CDN防护就足够了。
出了问题再加比提前买一堆用不上的划算。 除非你的业务一次中断损失就很大,那提前上全套是值得的。
一个省钱的基础方案
大部分中小业务:
Cloudflare(免费或Pro方案)
→ 基础DDoS防护(无上限)
→ 基础WAF规则
→ CDN + SSL
→ 隐藏源站IP
Nginx基础安全
→ limit_req限流
→ 安全响应头
→ 敏感路径禁止访问
安全组/防火墙
→ 只开80/443
→ SSH限制源IP
→ 数据库不对外
费用:Cloudflare免费方案0元,Pro方案每月20美元。
覆盖大部分中小网站的安全需求。真遇到大流量DDoS或高级CC,再上专业的。
总结
| 产品 | 防什么 | 什么时候需要 |
|---|---|---|
| WAF | SQL注入、XSS、CSRF | 有用户数据/交易 |
| 高防IP | 大流量DDoS | 被打过DDoS或行业恶意竞争 |
| CC防护 | HTTP洪水 | 被打过CC或业务中断损失大 |
三个管三个层面,不能互相替代。但也不是都要买。
先用好CDN自带的基础防护和Nginx的基本安全配置。不够了再针对性加。花冤枉钱的典型就是三个全买了但源站IP还暴露在外面------攻击者绕过高防直接打源站,钱白花了。
有问题评论区聊。