定位:一篇从原理到对抗的 Web 应用防火墙(WAF)完整解析。不只是"挡 SQL 注入的盒子"——把它在协议栈的位置画清、把检测引擎的七种流派讲透、把 OWASP Top 10 的防护逐项拆开、把 ModSecurity + CRS 的规则链跑通、把 WAF 绕过全家桶和运维调优摆上桌面。所有规则片段、命令、参数均可直接对照实验。
0 · 导读:为什么 WAF 值得"全解"
WAF(Web Application Firewall,Web 应用防火墙)做一件事:在应用层(L7)审视进出 Web 应用的 HTTP/HTTPS 流量,按规则识别并阻断针对应用逻辑的攻击。它和"网络防火墙"不是一回事——后者看的是 IP、端口、TCP 标志(L3/L4),对"HTTP 请求体里藏了一段 SQL"一无所知。
它值得单独成篇,是因为四个"之最":
| 维度 | WAF 的地位 |
|---|---|
| 最贴身 | 唯一直接理解应用语义(URL/参数/Header/Cookie/Body)的安全设备 |
| 最"夹缝" | 夹在"必须放行合法业务"与"必须拦住恶意请求"之间,误报即业务事故 |
| 最易绕过 | 攻击者与防御者在同一份 HTTP 协议上博弈,协议歧义就是突破口 |
| 最易误解 | “上了 WAF 就安全”“WAF 能防 0day”"正向/负向安全模型"互相纠缠,选型重灾区 |
本篇路线图:
- 定位:WAF 是什么、在协议栈哪一层、能防/不能防什么、与网络防火墙/IDS/RASP 的边界;
- 拓扑:反向代理、透明桥、云 WAF、旁路、sidecar 五种部署模式与流量路径;
- 引擎:签名、正向安全、词法、语义、行为、ML、RASP 七种检测流派;
- OWASP Top 10:2021 版逐项拆解 WAF 如何防护(及防护不到的地方);
- 规则引擎:ModSecurity 五阶段、SecRule、CRS 异常评分模型、可跑配置;
- 绕过对抗:SQLi 绕过全家桶、HTTP 请求走私、HPP、编码混淆、ML 对抗;
- 运维:误报调优、虚拟补丁、日志审计;
- 选型与面试题 + 小结速查表。
1 · WAF 是什么:定位与协议栈位置
1.1 WAF 与网络防火墙的根本区别
| 维度 | 网络防火墙(NGFW) | WAF |
|---|---|---|
| 工作层 | L3/L4(IP、端口、TCP/UDP) | L7(HTTP/HTTPS 语义) |
| 看得到什么 | 源/目的 IP、端口、协议、包标志 | URL、查询参数、Header、Cookie、请求体、响应 |
| 典型规则 | “放行 443 端口” | “拦截参数 id 含 UNION SELECT” |
| 对 SQL 注入 | 看不见(只是 TCP 包) | 能解析并拦截 |
| 误放代价 | 端口级 | 单条业务请求级(更敏感) |
一句话:网络防火墙决定"谁能敲门",WAF 决定"进来的话能不能伤人"。 两者互补不替代。
1.2 WAF 在协议栈的位置
┌──────────────── 应用层 (L7) ────────────────┐
│ Web 应用 (业务代码 / 框架) │
│ ▲ 保护目标 │
│ ┌────┴────┐ ← WAF 工作在这里(看 HTTP 语义)│
│ │ WAF │ │
│ └────┬────┘ │
├────────┼──────── 传输/网络层 (L4/L3) ─────────┤
│ TLS 终止 · TCP · IP ← 网络防火墙在这里 │
└────────┴─────────────────────────────────────┘
三种形态,本质都是"在 HTTP 路径上插一脚":
| 形态 | 部署位置 | 代表 |
|---|---|---|
| 网络型/硬件 WAF | 串联在 Web 服务器前(透明桥或反向代理) | 硬件盒子、虚拟设备 |
| 云 WAF | 流量经 CDN/云厂商清洗(DNS 把域名指向 WAF 的 VIP) | Cloudflare、阿里云 WAF、AWS WAF |
| 主机/内联 WAF | 作为 Web 服务器模块/agent 运行(如 ModSecurity 嵌入 Nginx) | ModSecurity、RASP |
1.3 WAF 能防什么、不能防什么
能防(强项):
- 已知攻击特征:SQL 注入、XSS、命令注入、路径遍历、文件包含、反序列化、SSRF 等;
- 自动化滥用:凭据填充、暴力破解、扫描器、恶意 Bot、L7 DDoS(CC 攻击);
- 合规辅助:强制 HTTPS/HSTS、敏感数据脱敏、错误页归一、虚拟补丁。
不能防(边界,务必讲清):
- 业务逻辑漏洞:越权(IDOR)、条件竞争、短信轰炸——无特征可匹配,需业务层或正向安全模型;
- <
872



被折叠的 条评论
为什么被折叠?



