WAF的定义、原理、形态、部署方式、选型与局限
WAF的定义
WAF(Web Application Firewall)是Web 应用防火墙,它是一种专门保护 Web 网站、Web API 和其他 HTTP 应用的安全设备或安全软件。针对OSI模型第七层应用层中web的安全问题,通过规则检测HTTP/HTTPS会话,通常用于防御 SQL 注入、CSRF、SSRF等等 Web 攻击。
本文章是通过看网上各位师傅的文章和与ai沟通总结的,如有错误与缺漏,请各位师傅多多指导。
WAF的原理
WAF本质上是一台针对 HTTP/HTTPS 流量的“解析器 + 检测模型 + 决策执行器”。常见的然后WAF在客户端和web应用中间增加了一个防火墙,拿到流量后,会对流量中的协议进行解析和提取其中的内容,然后送到检测引擎,进行黑名单、白名单、漏洞签名、行为规则检测,最后将风险指数给决策执行器,决定放行、记录、限速、挑战、阻断。
流程图如下:
WAF的检测模型:
- 黑名单模型: 识别已知危险内容。如SQL注入特征、XSS特征、目录穿越、恶意文件上传、已知的POC等等;
- 白名单模型: 只允许已知正常内容通过。如固定 API、支付接口、后台管理系统等等;
- 异常评分模型: 现代规则集不一定在某一条规则命中后立即阻断,而是让多条规则共同累积分数。然后将累计异常分数与阈值进行比较,再决定是否拦截。请求和响应还可以使用不同的评分与阈值;
- 速率检测: 可以设置速率规则,根据 IP、请求头或其他聚合键统计请求数量,并在超过阈值时限速或阻断。如某个 IP 一分钟请求登录接口几千次、同一账号来自大量不同 IP、某个客户端高速遍历商品编号、请求节奏明显不符合正常浏览器行为等等;
WAF的形态
| 形态 | 优点 | 缺点 | 常见产品 |
|---|---|---|---|
| 云WAF | 部署快、容易扩容、不需要购买硬件、规则由服务商持续维护 | 流量需要经过第三方平台、依赖服务商网络和平台、特殊协议或高度定制业务可能受到限制、如果源站仍可被公网直接访问,攻击者可能绕过 WAF | 阿里云盾、创宇盾、CloudFllare、腾讯云WAF、华为云WAF等等 |
| 硬件WAF | 数据不必交给第三方云平台、性能和容量相对可控、可以统一保护大量内部应用 | 采购和维护成本高、扩容需要增加设备、规则升级和证书和高可用需要自行运维、设备可能成为性能瓶颈或单点故障 | 绿盟WAF、天清 Web 应用安全网关、深信服WAF、安恒明御WAF、天融信WAF等等 |
| 软件WAF | 部署灵活、成本低、容易扩容、更新和回滚方便、定制能力较强 | 性能依赖服务器资源、运维要求较高、规则误报和漏报需要调优、软件 WAF 自身也需要加固 | 安全狗、云锁、360主机卫士、ModSecurity、雷池WAF等等 |
| 虚拟WAF | 保留传统网关架构、企业控制权较强、比硬件设备灵活 | 企业需要自行运维、性能受虚拟化环境影响、云网络改造可能较复杂、扩缩容仍然偏“设备化” | Fortinet FortiWeb-VM、Imperva WAF Gateway Virtual Appliance |
| 容器化WAF | 适合云原生交付、扩缩容更加自然、自动化程度较高 | 规则版本容易不一致、可能与业务争抢资源镜像供应链成为新的风险点 | OWASP ModSecurity CRS Docker、Wallarm、open-appsec |
WAF的部署方式
基于DNS的云反向代理模式

当正常用户访问域名时:
- 用户访问DNS服务器;
- DNS返回WAF的IP;
- 用户连接WAF;
- WAF终止HTTPS并检查请求;
- 合法请求转发给源站;
- 源站响应经过WAF返回给用户。
关键问题: 源站绕过问题。仅仅修改 DNS 并不能保证源站安全。如果攻击者知道源站真实 IP,仍可能不经过WAF检测直接访问源站。
防止源站绕过的方法:
- 防火墙规则限制:源站防火墙只允许云WAF出口IP、运维专线IP、可信合作方IP,其他公网IP全部拒绝。
- 认证回源:云WAF向源站转发请求时,携带一个只有双方知道或能够验证的认证信息。如X-Origin-Auth中携带一个高强度密钥;
- 双向TLS:CDN/代理节点访问源站时,不仅要验证源站服务器的证书,源站也要验证 CDN/代理节点提供的客户端证书。如WAF和攻击者访问源站时,源站会要求访问者出示客户端证书,WAF有证书成功完成 TLS 握手,成功连接,而攻击者没有客户端证书,无法完成 TLS 握手,就拒绝连接;
- 私网回源:云WAF不通过源站公网 IP,而是通过私有网络连接源站。如WAF通过专线、VPN、云网络互联或 PrivateLink 一类的私有网络通道访问源站的私网地址;
- 专线回源:云WAF或安全服务节点通过专用连接访问企业数据中心或云环境;
- 随机高强度回源 Host:CDN、WAF或反向代理访问源站时,不使用公开网站域名作为 HTTP Host,而是使用一个随机生成、难以猜测、只在 CDN 和源站之间使用的专用域名;
- 定期检查泄漏信息:定期确认源站 IP、暗号域名或内部地址有没有在过去或其他渠道暴露;
反向代理串联模式

当正常用户访问域名时:
- 用户向DNS服务器查询目标域名;
- DNS返回WAF的公网IP;
- 用户通过HTTPS连接WAF;
- WAF终止HTTPS,对请求进行解密和安全检查;
- 检查通过后,WAF通过HTTP或HTTPS将请求转发给负载均衡器或Web服务器;
- 转发时,WAF通过X-Forwarded-For、X-Real-IP或Forwarded请求头传递用户真实IP;
- 负载均衡器从健康的后端服务器中选择一台,并将请求转发过去;
- 后端服务器将处理结果返回给负载均衡器;
- 负载均衡器将响应返回给WAF;
- WAF检查并记录响应,然后通过原有HTTPS连接将响应返回给用户。
优点:
- 能主动阻断;
- 容易做TLS解密;
- 可以修改请求头;
- 可以统一记录访问日志;
- 可隐藏后端服务器;
缺点:
- 需要修改网络和域名配置;
- WAF出现故障可能影响业务;
- 会增加少量延迟;
- 必须考虑容量和高可用;
透明代理串联模式

当正常用户访问域名时:
- 用户向DNS服务器查询目标域名;
- DNS返回Web服务器的原业务IP,通常不需要修改域名解析;
- 用户向该业务IP发起HTTP或HTTPS请求;
- 请求先到达交换机或路由器;
- 交换机或路由器按照现有网络路径,将流量发送到串联部署的透明WAF;
- WAF对请求进行安全检查,包括URL、参数、请求头、Cookie、请求体及上传文件等;如果是HTTPS流量,WAF需要配置服务器证书并进行TLS解密,才能检查完整的HTTP内容;
- 请求检查通过后,WAF将流量继续转发给 Web 服务器;
- Web 服务器生成响应,并将响应发送回透明 WAF;
- WAF检查或记录响应内容;
- 响应经过交换机或路由器返回给用户。
优点:
- 对原有网络地址改动较少;
- 适合已有复杂机房网络;
- 可以在线阻断;
- 后端通常能保留原始网络连接信息;
缺点:
- 二层和路由设计较复杂;
- 高可用和故障切换更难;
- HTTPS 解密仍需要证书和代理能力;
- 容易受到非对称路由影响;
- 必须明确设备故障时采用 Fail-open 还是 Fail-close。
旁路模式

当正常用户访问域名时:
- 用户向DNS服务器查询目标域名;
- DNS返回Web 服务器或负载均衡器的业务IP;
- 用户向业务IP发起HTTP或HTTPS请求;
- 请求先到达交换机,再沿原有业务链路直接转发给Web服务器,交换机通过SPAN、端口镜像或网络 TAP,把业务流量复制一份发送给旁路WAF;
- Web服务器正常接收并处理用户请求,进行身份认证、权限校验和业务查询,然后将响应通过原业务链路返回给用户;
- 交换机也可以把服务器响应流量复制给旁路WAF,旁路WAF分析复制到的请求和响应,识别SQL注入、XSS、扫描、恶意上传等攻击行为;
注意: 真实业务流量不经过旁路WAF,WAF收到的只是交换机复制出来的流量副本。旁路WAF通常擅长检测、告警和事后联动,要进行阻断等操作要和其它设备联动。
优点:
- 部署风险低;
- WAF 故障不会中断业务;
- 适合资产梳理、攻击监测和上线前观察;
- 可以承受更复杂的检测逻辑;
缺点:
- 一般只能检测和告警;
- HTTPS 流量可能看不到明文;
- 镜像口可能丢包;
- 高带宽环境中镜像容量不足;
- 请求和响应关联可能不完整;
WAF的功能
- Web攻击防护: WAF可以识别并阻断常见的Web攻击,如SQL注入、XSS、文件上传漏洞利用、目录遍历、恶意扫描和漏洞探测等等;
- 网站访问控制: WAF可以根据访问来源和请求特征实施控制。如IP黑白名单、URL访问控制、User-Agent过滤、请求方法限制和特定接口访问频率限制等等;
- CC攻击和恶意爬虫防护: WAF可以根据IP、账号、会话、设备指纹、访问频率等信息识别异常访问,对高频请求采取限速、验证码、人机验证或封禁措施,从而缓解CC攻击、撞库、恶意爬虫和接口滥用;
- API安全防护: 现代WAF通常也具备一定的API安全能力。如API资产发现、未授权接口识别、敏感数据泄露检测、API调用频率控制和异常接口调用行为分析等等;
- 虚拟补丁: 当业务系统出现漏洞但无法立即修改代码时,可以先在WAF上配置防护规则,拦截漏洞利用请求。这种方式称为“虚拟补丁”,能够阻止漏洞的直接暴露、缩短漏洞暴露时间,但不能代替应用程序本身的漏洞修复。
- 自主学习能力: 现在部分新一代WAF或智能WAF已经具备自主学习能力。它们不再完全依赖人工编写固定规则,而是通过机器学习、行为分析和业务流量建模,自动学习网站或API的正常访问模式。其自主学习能力通常包括:根据误报情况调整检测策略、自动生成或推荐防护规则、根据历史攻击结果优化风险评分、识别偏离正常基线的异常请求和学习正常的URL、参数、请求方法和访问频率等等。如某个接口平时每分钟只被访问几十次,突然出现单个IP每分钟访问数千次,智能WAF可以将其判断为异常行为。不过,“自主学习”并不意味着WAF可以完全无人管理。机器学习模型仍需要训练周期、人工审核、策略调优和持续运营。对于新上线业务、低流量接口或业务突变场景,自主学习结果也可能不准确。
WAF常见问题
- 误报问题: 正常业务请求可能包含特殊字符、SQL片段、脚本代码或较长参数,从而被WAF误判为攻击。例如,技术论坛中用户提交代码,可能触发SQL注入或XSS规则。
- 漏报问题: 攻击者可能通过编码、分片、参数混淆、大小写变化或协议差异绕过WAF。对于业务逻辑漏洞、越权访问、低频撞库等问题,单纯依靠传统特征规则也很难准确识别。
- 自主学习模型不准确: 智能WAF在学习阶段可能把攻击流量误当成正常流量,也可能将业务高峰、新功能上线或营销活动识别为异常。
- HTTPS流量检测问题: WAF需要解密HTTPS流量后才能检查请求内容,因此需要正确配置证书、TLS协议和加密套件。配置不当可能导致证书异常、访问失败、性能下降或客户端兼容性问题;
- 性能和延迟问题: WAF需要对每个请求进行解析和规则匹配。规则数量过多、正则表达式复杂、日志记录过细或流量突增,都可能增加访问延迟,严重时甚至形成性能瓶颈。
- 真实客户端IP获取错误: 当WAF部署在反向代理、CDN或负载均衡设备之后时,需要正确识别X-Forwarded-For等请求头。如果配置错误,WAF可能把代理设备IP当作客户端IP,导致封禁、限速和日志审计失效。同时,不能无条件信任客户端自行提交的真实IP请求头,否则可能被攻击者伪造。
- 规则配置过于宽松或严格: 规则过于宽松会导致攻击漏过;规则过于严格则会影响正常业务。不同系统的参数格式、访问方式和风险等级不同,不能简单使用同一套策略覆盖全部业务。
- 业务逻辑攻击识别能力有限: 传统WAF擅长识别SQL注入、XSS等技术型攻击,但对优惠券滥用、恶意注册、账号共享、水平越权、订单刷量等业务逻辑风险,通常需要结合账号信息、业务数据、风控系统和API安全平台进行判断。
总结
WAF是保护Web网站和API的重要安全组件,能够通过规则匹配、异常评分、访问控制、速率限制和行为分析等方式,识别并阻断SQL注入、XSS、恶意扫描、CC攻击和接口滥用等威胁。根据业务需求,WAF可采用云、硬件、软件、虚拟化或容器化形态,并通过反向代理、透明串联或旁路等方式部署。部分新一代WAF还具备自主学习能力,可以学习正常访问模式、建立行为基线并发现异常请求,但仍需要人工审核和持续调优。需要注意的是,WAF可能存在误报、漏报、性能损耗和绕过风险,也难以单独解决越权和业务逻辑漏洞,因此应与安全开发、漏洞修复、身份认证、主机防护和安全运营共同组成纵深防御体系。
如何系统学习网络安全?
网络安全作为数字时代的核心技术基石,已成为保障各行业安全稳定运行的坚实屏障。筑牢网络安全的防线,掌握先进的防护策略和技能正上升为国家与企业发展的战略优先级。
构建稳固的网络安全能力是一个体系的工程,需要从夯实基础理论出发,持续深化到攻防对抗与应急响应的实战层面。
如果你是准备学习网络安全(黑客)或者正在学习,我可以把我自用的360独家内部资料分享给你,包含以下内容你应该能用得上:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】


286

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



