华为云Web应用防火墙WAF实战:防护策略配置与常见攻击拦截华为云Web应用防火墙WAF实战:防护策略配置与常见攻击拦截
一、背景:为什么网站还需要 WAF
安全组解决的是“端口和网段该不该通”的问题,对应用层攻击几乎无能为力。SQL 注入、XSS、恶意爬虫、CC 刷接口这类流量,表面上都是合法的 HTTP 请求,防火墙和负载均衡通常都会放行。业务自己在代码里做参数校验当然必要,但指望每一条业务链路都覆盖全量攻击特征并不现实,而且攻击手法还在持续变化。
华为云 Web 应用防火墙 WAF(Web Application Firewall) 部署在客户端与源站之间,对 HTTP/HTTPS 流量做应用层检测与过滤,拦截常见 Web 攻击、控制异常访问频率,并把防护事件记录下来便于追溯。本文以“给一台对外提供网站服务的 ECS(或 ELB 后端)接入 WAF”为主线,介绍云模式接入、防护策略配置、CC 防护与精准访问控制、日志排查与上线注意事项。
二、核心概念
| 概念 | 说明 |
|---|---|
| 防护域名 | 需要接入 WAF 的业务域名,对应一组源站地址 |
| 云模式 / 独享模式 | 云模式通过 CNAME 把流量引流到 WAF;独享模式以独立引擎部署,适合高定制或大流量场景,本文以云模式为例 |
| 源站 | 真实业务服务器或负载均衡,WAF 检测通过后将请求回源 |
| 防护策略 | 一组规则的集合,包括基础 Web 防护、CC 防护、精准访问控制、黑白名单等 |
| 防护动作 | 常见有拦截、仅记录(观察)、放行、人机验证等 |
| 误报 | 正常业务请求被规则命中,需要通过加白或调整规则解决 |
三、准备工作
开始之前建议确认:
- 域名与备案:防护域名已完成 ICP 备案(国内站点),并能正常解析到当前业务入口;
- 源站可达:记录源站 IP 或 ELB 地址、业务端口,以及是否已开启 HTTPS;
- 证书:若业务使用 HTTPS,准备好域名证书与私钥,后续在 WAF 中配置;
- 权限:当前账号具备 WAF 相关操作权限,首次开通时按控制台提示完成服务授权。
四、接入 WAF(云模式)
4.1 添加防护域名
登录华为云控制台,进入“Web 应用防火墙 WAF”,选择云模式,添加防护域名,主要配置:
- 域名:填写对外访问的完整域名,例如
www.example.com; - 防护协议与端口:按实际选择 HTTP/HTTPS 及端口;
- 源站地址:填写 ECS 公网 IP,或 ELB 的公网/内网地址(以控制台支持的回源方式为准);
- 回源协议:建议与源站实际监听保持一致;源站仅 HTTP 时也可由 WAF 对外提供 HTTPS(SSL 卸载);
- 证书:HTTPS 场景下上传或选择已有证书。
提交后,控制台会给出一个 WAF 的 CNAME 地址。
4.2 切换域名解析
在云解析 DNS(或其他 DNS 服务商)中,将业务域名的 CNAME 记录改为 WAF 提供的地址。切换前建议:
- 先把 TTL 调小(例如 60~300 秒),降低切换窗口;
- 用
dig/nslookup确认解析已指向 WAF; - 用浏览器或
curl -I https://www.example.com验证页面可访问,且响应头中可看到 WAF 相关标识(具体字段以当前产品文档为准)。
注意:解析切到 WAF 后,客户端不再直连源站公网 IP。源站安全组应尽量只允许 WAF 回源网段访问业务端口,避免攻击者绕过 WAF 直打源站。回源网段以控制台或官方文档公布的地址段为准,并随变更及时更新。
五、配置防护策略
域名接入后,为其绑定或编辑防护策略。建议按“先观察、再拦截”的节奏上线。
5.1 基础 Web 防护
开启基础 Web 防护,覆盖 SQL 注入、XSS、命令注入、路径穿越、恶意爬虫等常见攻击特征:
- 防护模式:初期可先选“仅记录(观察)”,跑几天业务后再改为“拦截”;
- 防护等级:一般业务选中等;对误报非常敏感的接口可适当调低,对管理后台可调高;
- 语义检测 / 特征库:保持跟随官方规则库更新,不必手工维护每一条特征。
5.2 CC 攻击防护
CC(Challenge Collapsar)表现为短时间对同一 URL 的高频请求,容易打满应用线程或数据库连接。在 CC 防护中为关键接口配置限频规则,例如:
- 路径:
/api/login、/api/sms/send等; - 限频维度:按源 IP,或按 IP + Cookie / Token(登录后接口更适合后者);
- 阈值阈值:结合业务基线设置,例如“同一 IP 每分钟超过 N 次则人机验证或拦截”;
- 处置动作:人机验证适合前台页面,纯 API 更适合直接拦截或返回明确错误码。
阈值不要拍脑袋。可先在观察模式下结合访问日志与 CES/ELB 监控看正常峰值,再定为阈值的 2~3 倍作为起点,后续再收敛。
5.3 精准访问控制
精准访问控制按请求方法、路径、Header、参数、地理位置等组合条件匹配,适合做:
- 管理后台仅允许办公网出口 IP 访问;
- 屏蔽已知恶意 User-Agent 或异常 Referer;
- 对特定接口强制要求自定义 Header(简单的接口防刷辅助手段)。
规则顺序通常按“黑名单优先、再白名单、再常规限制”理解,具体以控制台规则优先级说明为准。写规则时条件尽量精确,避免一条过宽的规则误伤全站。
5.4 IP 黑白名单
- 黑名单:对反复攻击的源 IP / IP 段直接拦截;
- 白名单:对监控拨测、合作方回调、办公出口等可信来源放行,避免被 CC 或基础防护误伤。
白名单应定期回顾,人员或供应商变更后及时清理,防止“永久放行”变成隐患。
六、误报处置与日志排查
再好的规则库也可能误伤正常业务,例如富文本编辑器提交的内容触发 XSS 规则,或开放 API 的特殊参数被判为注入。处理流程建议:
- 在 WAF 防护日志中按时间、域名、规则 ID、源 IP、URL 过滤,找到被拦截的请求;
- 核对是否为真实业务:看账号、Referer、参数是否符合正常操作;
- 若是误报,优先对具体 URL + 规则做精准放行或加白,而不是关闭整类防护;
- 若是攻击,保留日志并视情况加入黑名单或收紧 CC 阈值。
示意性的排查命令(在已安装 curl 的运维机上,仅作连通与响应头确认):
# 确认解析与 HTTPS 证书
dig +short www.example.com CNAME
curl -sI https://www.example.com | head -n 20
# 模拟带可疑参数的请求(用于在观察模式下验证规则是否命中,勿对未授权目标使用)
curl -sI "https://www.example.com/search?q=1'%20OR%20'1'='1"
把防护日志与应用访问日志、LTS 日志关联,能更快判断“拦对了还是拦错了”。
七、配置示例:登录接口限频
下面是一条思路清晰的 CC 规则示例(字段名以控制台为准,这里用伪配置表达意图):
规则名称: limit-login-by-ip
匹配路径: /api/login
匹配方法: POST
限频对象: 源IP
阈值: 60 秒内超过 20 次
动作: 拦截(或人机验证)
生效时间: 全天
对应的精准访问控制示例——管理后台仅办公网可访问:
规则名称: allow-admin-from-office
条件: 路径 前缀匹配 /admin 且 源IP 不在 203.0.113.0/24
动作: 拦截
上线前在测试域名或观察模式下验证:正常登录不受影响,脚本高频刷登录会被阻断。
八、使用建议与常见坑
- 先观察再拦截:新域名接入后至少观察一个业务高峰周期,再把基础防护改为拦截,减少首日误报;
- 别让源站裸奔:解析切到 WAF 后,源站安全组收敛到回源网段,否则攻击者可直接访问源站 IP 绕过防护;
- 证书与兼容性:WAF 上的证书过期会导致全站 HTTPS 失败,把证书到期纳入巡检;同时确认 TLS 版本与客户端兼容;
- WebSocket / 长连接:若业务使用 WebSocket 或特殊长连接,需确认当前 WAF 模式与版本是否支持,并单独验证升级、超时参数;
- 灰度与回滚:重大活动前可临时调高 CC 阈值;出现大面积误报时,可对单条规则切回“仅记录”,而不是直接停用整个 WAF;
- 多环境隔离:测试、预发、生产使用不同防护策略,避免测试脚本污染生产黑名单,或测试白名单被误同步到生产;
- 合规与隐私:防护日志可能包含 URL 参数与部分 Header,注意脱敏与留存周期,符合公司安全规范。
九、总结
WAF 补上了安全组与业务代码之间的应用层防护空白。实践主线是:用云模式为域名完成 CNAME 接入并收敛源站暴露面;以观察模式启动基础 Web 防护,再为登录、短信等敏感接口叠加 CC 限频;用精准访问控制与黑白名单处理后台与可信来源;借助防护日志快速区分攻击与误报,并做最小范围加白。把这些步骤固化成上线检查项,网站在华为云上的抗攻击能力会扎实很多。
- 点赞
- 收藏
- 关注作者
评论(0)