1. WAF的定义

  WAF全称 Web Application Firewall,即Web应用防火墙,是一种专门用于保护Web应用服务免受各种网络攻击的安全防护工具。在现有网络中,WAF可能作为一个独立的硬件设备安装在网络中,也可能以软件形式作为模块集成到服务器上。随着云化趋势的深度扩展,云化接入、云集成的形式将成为主流发展方向。

  这里看似WAF有多种表现形态,为防止疑惑,有必要重塑一下对于防火墙的理解。所谓的“防火墙”,指的是一个处在外网和内网之间、由软件和硬件设备组合构成的保护屏障,“墙”的概念是一种获取安全性方法的形象说明。也就是说,防火墙本身就是计算机软件和硬件的结合,任何正常的、合规的网络通信和数据包能够通过此“墙”的筛查、过滤,而那些“坏东西”无法穿墙而过。

WAF工作场景拓扑

  了解网络技术最好先对场景有个整体的概念,WAF的工作场景如上图所示(这次试一下Excalidraw的手绘风格)。一般来说需要运营web业务的主体有部署WAF的需求,比如拥有网站服务的一般机构网络、Web服务提供商等。实际中,WAF部署选择会复杂许多,后面会专门介绍。

  区别于传统防火墙,WAF工作在应用层,处于Web业务服务器和客户端(比如,浏览器)之间,对Web网站或App业务的HTTP/HTTPS流量进行监测和过滤,通过一系列安全策略和规则来进行恶意特征识别及防护,就像在Web应用周围建立了一道安全屏障。


2. WAF需求背景和功能

  WAF的出现与传统防火墙的局限相合。传统防火墙主要工作在网络层和传输层,一般主要针对IP地址、端口等进行过滤控制,针对应用层的攻击较难识别,比如无法理解HTTP(s)中的内容,对一些恶意请求(如SQL注入、XSS攻击)无法进行识别。WAF的出现正是为了解决这些问题。

  WAF的推广与Web应用本身的广泛相伴。任何对运营和盈利有需求的网络主体,面临日益复杂的Web应用攻击手段,自然愿意为应用层防护买单,而WAF是一个直接易用的选择。

  那么,WAF的出现是为了解决哪些问题呢?我们试着从攻击者的角度去思考这个问题:假设本鲤作为一个攻击者,我基本的步骤是 “选定目标 → 目标画像 → 漏洞缺陷分析 → 攻击方式 → 发起攻击 → 胜利/失败结算时刻” 。在思考WAF时,不需要全流程的罗列,我们简单关注几个点,重点放在(w/o)WAF的情况下有什么差异即可。

  攻击者选定的目标由大到小大致如下,一般目标越大造成的危害越广泛,收益也越高。在选定目标之后,本鲤自然不会冒失地去搞一些小伎俩,我首先做的就是对目标画像,从多个维度了解目标,尽可能找出他的缺点或弱点,然后伺机而启,一击毙命。因此我会进行网络探测(踩点扫描)、服务版本识别等操作,从多个维度为目标画像,找缺点、弱点。

全网 > 网络主机 > 主机数据库 > 主机WEB系统管理员 > 主机WEB系统其余用户 

Web网络结构示意

  一个Web网络的结构如上图所示,我们假设网络的管理者安全意识足够,已经用传统防火墙对Web业务服务器进行了保护。很显然,由于防火墙在网络层和传输层进行了过滤,我们再想用主机发现、端口扫描之类的简单攻击行为就基本无效了,攻击者可能只能获取到Web业务服务域名信息(图中为www.0w0.com),想获得主机相关的IP、端口状态、系统等信息只能在其它层(比如应用层)想想办法。

  • 首先,可以通过Options、Trace方法探测目标服务域的节点拓扑。如果Web服务器支持这两个方法的话(一般来说,目前安全点的网站都不会允许这两个方法),可以通过检查响应包的Via或Max-forwards字段,得到各个节点的域名。然后,进一步查找对应的IP,尝试对IP直接进行扫描。
Web服务器不支持:以本站为例
  • 如果失败了,可以直接访问服务,检查响应包的Server字段或X-Powered-By字段确定业务域各个节点的http服务器软件版本和脚本语言解释器版本。可能需要扫描页面查看能否获取系统信息,如操作系统类型、版本,开启服务类型等,如有则可进一步查询CVE版本漏洞,并在exploit-db上寻找相应方法攻陷主机。
  • 复杂一些,可以检查有无文件路径遍历,文件包含注入,API注入,命令注入之类的漏洞,来获取整个站点的系统信息甚至获取webshell。或者寻找有无SQL注入、XSS和URL注入等漏洞 —— 总言之,作为攻击者,拥有的武器库非常之丰富强大

  理论上,WAF应当针对Web应用的HTTP(s)流量进行安全防护,可能需要支持的功能包括:

  • 禁止HTTP协议的非安全方法
  • 伪装Web服务的特征
  • 防止API和命令注入防止路径遍历和文件包含注入,对敏感的系统路径进行保护
  • 防止sql注入
  • 防止XSS攻击
  • 防止网页挂马
  • 防护CC攻击
  • 文件上传的防护
  • 动态IP黑名单
  • 白名单
  • 与实时计算平台对接
  • ……

  截至目前,WAF已经进化到WAF3.0,除了常见Web应用攻击的防护外,能够防御CC攻击,还能支持精确防护,进行攻击事件管理等,功能可以说已经十分强大,可以简单看看阿里云WAF3.0的介绍:

阿里云WAF3.0

3. WAF发展历程和主要变化

  随着 Web 技术的不断演进,WAF 也历经了从 1.0 到 3.0 的发展与变革。WAF 1.0 诞生于传统 Web 时代,基于签名规则应对基础攻击;WAF 2.0 随着 Web 2.0 的兴起而出现,引入动态分析与机器学习优化;如今的 WAF 3.0 则是在黑客利用零日漏洞攻击增多的背景下,以构建正常应用行为模型来实现更全面、更精准的防护,满足现代网络安全需求。

A. 发展历程

  从 WAF 到 WAF 3.0 的发展历程如下:

  • WAF 1.0 :在入侵检测系统 / 入侵防护系统(IDS/IPS)基础上,利用 HTTP 属性和数据转换进行分析,采用基于签名的方法,主要针对服务器攻击,如 SQL 注入、跨站脚本攻击等。
  • WAF 2.0 :随着 Web 2.0 技术栈和关键网络应用数量激增,传统基于签名的方法过时,于是引入动态分析方法和监督式机器学习来优化签名列表,同时增加了保护用户免受攻击的方法。
  • WAF 3.0 :黑客利用零日漏洞攻击增多,防御者需构建正常应用行为模型来检测异常,WAF 3.0 应运而生,可保护免受零日漏洞攻击,并防止绕过尝试。
B. 主要变化

  WAF 从传统版本发展到 3.0,在全方位发生了变革与优化,主要表现在以下四个方面:

  • 接入方式 :WAF 3.0 在支持 CNAME 接入和透明接入的基础上,实现了与应用型负载均衡 ALB 等云产品的云原生架构集成,支持云产品接入,还增加了全新的云原生架构接入方式,即通过 SDK 模块化的方式将 WAF 集成在云产品的网关中,避免因额外引入一层转发而带来兼容性和稳定性问题。
  • 防护配置 :相比 WAF 2.0 为单个域名配置防护规则,WAF 3.0 支持为防护对象或防护对象组配置防护策略,可通过创建防护模板配置防护规则,还支持通过多种方式查看防护规则,以及管理默认防护规则。
  • 功能优化 :WAF 3.0 取消了规则防护引擎的智能规则托管功能、自定义规则的滑块验证功能等部分功能,但新增了防护模板配置、自定义响应规则、重保场景防护、高级资产中心等功能。
  • 技术应用 :WAF 3.0 更多地引入了机器学习、人工智能等技术,能够自动学习和识别新的攻击模式,通过对大量网络流量数据进行分析和建模,检测出异常行为和潜在攻击,提供更高级别的防护。

4. WAF的工作原理和流程

  Web 应用防火墙(WAF)通过深度检测和过滤 Web 应用的 HTTP/HTTPS 请求与响应,防御常见 Web 攻击。本部分介绍WAF的工作原理、关键模块和大致的工作流程。下图一般WAF的部署方式,直接插入到防火墙后面:

WAF应用场景
A. 工作原理
  • 请求检查(全面检查):WAF 拦截每个传入的 Web 请求,包括请求头、请求体、URL 参数等。检查来源 IP、URL 路径是否异常,是否含特殊字符、SQL 关键字等,还检测请求头(如 User-Agent 字段)是否被篡改。

  • 规则匹配(预定义规则集):WAF 内置基于常见 Web 攻击模式(如 SQL 注入、XSS 等)的安全规则。将请求特征与规则匹配,若符合恶意模式(如参数含 XSS 代码),判定为恶意请求。

  • 防护动作(多样化响应):根据匹配结果采取防护动作。阻止恶意请求,防止其访问 Web 应用;记录攻击时间、源 IP、类型等信息到日志文件,方便后续分析;向管理员发送警报,提示攻击发生。

B. WAF 的关键模块

  WAF 专注于保护 Web 服务和 Web 应用,能深入分析 HTTP 流量,有效防御多种 Web 攻击。其核心是规则策略模块,能区分正常与恶意流量,并采取相应防护措施。

  • 入侵检测模块:分析 HTTP 输入输出数据流,识别潜在威胁。
  • 规则策略模块:依据黑白名单、规则集区分正常与恶意流量,是 WAF 的核心依据。
  • 防护模块:在检测到恶意请求时,采取拒绝服务、返回 400 响应页面等防护措施。
C. 工作流程

  以请求处理为例,WAF的工作流程大致如下:WAF接收请求 → 请求检查(来源IP、URL路径、特殊字符等;黑白名单、规则集) → 规则匹配(与预定义规则对比;请求解密、头部&内容过规则) → 判断是否恶意请求 → 是 → 防护动作(阻止请求、记录日志、报警) → 否 → 请求继续处理。

  在处理过程中采取的操作可能包括直接放行(比如匹配到URL白名单,直接放行至Web服务器)、关卡放行(进入下一检测关卡),以及丢弃、拒绝、重定向、暂停(对于暴力攻击)、代理导流(如蜜罐)。

  WAF同样会对响应作一定处理,但相比请求要简单许多。下图是WAF处理过程的工作流示意:

WAF处理工作流


5. WAF的部署模式

  随着网络安全需求的不断演进和技术的持续创新,WAF的部署经历了一定的发展变化。早期的反向代理、透明代理和旁路监控等传统模式,与如今云原生的架构进行了融合,WAF的部署方式变得更加灵活、高效且适应性强。这些变化能够提升WAF在复杂网络环境中的适用性和性能表现,极大简化部署和管理流程,使其能够更好地满足现代企业对Web应用安全防护的多样化需求。

  此前提到,在现有网络中,WAF可能作为一个独立的硬件设备安装在网络中,也可能以软件形式作为模块集成到服务器上。随着云化趋势的深度扩展,云化接入、云集成的形式或将成为主流。云化并未根本改变WAF部署的模式结构,而是将此前的部署模式与云场景、云部署进行了融合。

A. WAF的主流部署模式

  WAF一般支持透明代理、反向代理和旁路监控模式,三种部署模式从网络结构上存在明显的区别。

  • 透明代理串接模式 :将WAF串接在网络中,实现即插即用,无需更改网络设备与服务器配置。其优点是部署简单、对网络结构无影响、安全防护性能强、故障恢复快可支持Bypass;缺点是对网络的依赖性较强,若网络出现故障可能会影响WAF的正常工作。
WAF-透明代理串接部署
  • 反向代理模式 :早期WAF多采用此模式,其部署在Web服务器前端,客户端请求先经过WAF,由WAF代为转发请求到后端服务器,再将服务器的响应返回给客户端。优点是部署相对简单,且能有效隐藏后端服务器地址等信息,对服务器有较好的保护作用;缺点是可能会成为性能瓶颈,且需要更改网络配置,故障恢复相对较慢。具体可细分为代理模式和牵引模式,主要区别在于映射转发的位置。
WAF-反向代理部署
  • 旁路监控模式 :通过在交换机上做服务器端口镜像,将流量复制一份到WAF上,WAF仅对流量进行监控和告警而不阻断,部署时不影响在线业务。此模式优点是不影响现有网络业务,可作为安全监测手段;缺点是无法直接对攻击流量进行阻断,只能起到事后分析的作用。

    WAF-旁路监控模式
B. 当前主流接入方式

  当前主流的 WAF 接入方式各有特点,分别为 CNAME 接入、云产品接入和云原生架构接入。CNAME 接入操作简单,适合大多数网站业务,修改通过域名 DNS 解析实现引流;云产品接入则适用于阿里云用户,在云产品控制台添加引流端口到 WAF,无需修改 DNS,降低了配置复杂度;云原生架构接入是 WAF 3.0 的特有方式,采用 SDK 模块化集成,避免流量转发带来的兼容性问题,提升业务性能,简化接入流程。

  • CNAME接入(反向代理模式):CNAME 接入是通过将域名的 DNS 解析指向 WAF 提供的 CNAME 地址,使 Web 业务流量被引流到 WAF。WAF 作为反向代理集群,拦截攻击请求并将正常业务请求转发回源站服务器。它适用于大多数网站的 Web 业务,操作相对简单,只需修改域名的 DNS 解析设置,可以有效隐藏源站 IP,便于集中管理多个域名的流量并实施统一的安全策略。
  • 云产品接入(透明代理模式):云产品接入是通过在云产品控制台(如阿里云的 ALB 等)添加引流端口到 WAF,使云产品网关自动改变路由,将 Web 业务流量引导至 WAF。WAF 进行攻击拦截并转发正常请求回源站。它适用于使用阿里云云产品的用户,无需修改 DNS,降低了配置复杂度,减少了因 DNS 变更可能带来的流量中断风险,该接入适合与云平台应用产品紧密集成的场景。
  • 云原生架构集成接入:这是WAF部署模式的重要发展方向,以阿里云WAF 3.0为代表。采用 SDK 模块化的方式将 WAF 集成到云产品的网关中,内嵌在网关中的 SDK 提取流量并进行检测和防护,WAF 不直接参与流量转发。它适合对业务性能和稳定性要求较高的场景,尤其是当用户已在使用阿里云的云产品且希望通过更高效的方式实现安全防护时。这种方式避免了因额外引入 WAF 转发层而可能产生的兼容性和稳定性问题,提升了业务性能,简化了接入流程,降低了对用户业务的影响。

6. WAF vs 其它

  WAF的功能,免不了要与传统安全设备如IDS和IPS有所对比,但从WAF的出现和发展,俨然就是一个“专项特种兵”的模板,因此有其独特优势的同时,短板和局限也是十分明显的。

A. WAF 与其他网络安全设备的对比
  • 传统防火墙:工作在网络层和传输层,侧重源地址、目的地址和端口号的初步检测,无法深入分析 HTTP 流量。
  • 入侵检测系统(IDS):部署在内部网络,监控网络安全状况,侧重检测和审计,无法主动防御。
  • 入侵防御系统(IPS):基于签名数据库和策略来检查已知漏洞和攻击,适用于保护多种网络协议,但不专用于 HTTP 流量。
B. WAF 的价值与优势
  • 深度防御:工作在应用层,能够审计所有 HTTP 流量,提供比传统设备更深入的 Web 应用保护。
  • 灵活性:可以快速修改规则策略,及时应对不断变化的攻击。
  • 速率限制:能够快速实施速率限制,有效防止 DDoS 攻击。
C. WAF 的局限
  • 协议局限:WAF主要针对HTTP/HTTPS协议,无法过滤其他协议(如FTP、PoP3)的流量。
  • 功能局限:无法实现传统防火墙的功能,如地址映射、端口转发等网络层和传输层操作。
  • 攻击局限:主要针对应用层攻击,由于难以理解复杂业务逻辑,无法识别如恶意利用优惠券、外挂抢购等业务逻辑攻击,也无法防御零日攻击和部分复杂的应用层攻击。
  • 防护局限:不具备防病毒功能,无法检测和清除终端设备上的病毒和恶意软件。
  • 误报和漏报:尽管是共性问题,但WAF中部署模式的影响可能比较明显。
  • 性能开销:对HTTP流量的深度检查和过滤会增加请求处理时间,导致延迟,且在处理大量流量时会消耗较多系统资源,影响Web应用性能。
  • 配置和管理复杂:需要专业知识和经验来合理配置规则,过于严格或宽松都会影响效果,且需要定期更新规则以应对新的攻击方式,增加了维护成本。

7. 主流供应厂商和WAF产品

  目前市场上的WAF产品种类繁多,涵盖了云WAF、硬件WAF和软件WAF等多种部署模式。云WAF产品如AWS WAF、Akamai Kona Site Defender、Fortinet FortiWeb、Cloudflare WAF等,具有部署便捷、易于扩展和集成等优势,适合各类企业使用。硬件WAF产品如安恒明御Web应用防火墙、长亭雷池(SafeLine)等,适合对安全性要求较高的企业。软件WAF产品如网站安全狗、云锁等,适合中小企业和开发者。各厂商不断推出创新产品和解决方案,以满足不同用户的需求。

  下表是目前比较主流的WAF供应厂商和产品线(这部分借助kimi整理):

公司名称 简述
国内
深信服 国内领先的网络安全解决方案提供商,WAF 产品简单易用、高效防护,广泛应用于各类企业及机构。
绿盟科技 提供硬件 WAF 产品,在网络入侵防护领域技术深厚,能有效应对各类 Web 攻击。
启明星辰 国内知名网络安全企业,硬件 WAF 产品防护能力强、功能丰富,满足金融、能源等行业需求。
安恒信息 国内网络安全佼佼者,天穹 Web 应用防火墙硬件产品,提供多方位安全防护服务。
腾讯云 提供云 WAF 服务,具备强大 Web 攻击检测能力,支持多种架构及接入方式,满足多行业需求。
阿里云 云 WAF 结合多种云服务交付,市场占有率高,提供全面防护功能及灵活付费模式。
国外
Fortinet 提供硬件和软件形式的 WAF 解决方案,其 FortiWeb 产品采用多层安全方法,防止已知和未知攻击,保护 Web 应用程序和 API,支持物理设备、虚拟机、云实例和容器等多种部署方式。
Imperva 提供全面网络安全解决方案,WAF 产品及服务防护能力强、功能丰富,应用于全球大型企业。
Cloudflare 全球知名云服务提供商,WAF 服务集成于云平台,具备强大 DDoS 防护及 Web 攻击防护功能。
Akamai 提供软件和托管服务形式的 WAF 解决方案,依托全球分布式网络,保障 Web 应用可用性和安全性。
F5(CloudGuard) 提供高性能硬件 WAF 设备和软件解决方案,在应用交付和安全领域经验丰富,提供高级防护。
Barracuda Networks 提供多种形式的 WAF 解决方案,产品易用且高效,可有效保护 Web 应用免受多种攻击威胁。
厂商 产品 部署模式 核心能力
AWS AWS WAF 基于云 基于云的WAF解决方案,与AWS服务集成,提供可扩展和灵活的保护,实时威胁检测和阻止,可自定义规则和策略
Akamai Kona Site Defender 基于云 提供企业级保护,高级DDoS保护,实时威胁检测和阻止,与Akamai的CDN集成以改善性能,全面的报告和分析
Fortinet FortiWeb 硬件或虚拟 基于AI的威胁检测和阻止,提供硬件和虚拟解决方案,机器人保护和DDoS缓解,全面的报告和分析
Cloudflare Cloudflare WAF 基于云 提供低延迟、高可用、高可扩展的防护能力,可防止OWASP Top 10等常见攻击,可根据用户自定义规则和Cloudflare智能规则进行灵活配置,可与其他服务集成
ModSecurity ModSecurity WAF 主机层 开源免费,灵活配置,支持多种协议和格式的分析和过滤,可使用OWASP Core Rule Set等标准规则集,也可使用用户自定义规则,还可与其他工具集成
阿里云 阿里云WAF 基于云 提供基于云计算的Web应用防火墙,保护Web应用免受常见黑客攻击技术和安全漏洞的侵害
腾讯云 T-Sec WAF 基于云 提供Web应用防火墙服务,具备Web安全防护和Web威胁智能拦截功能
华为云 Web应用防火墙 WAF 基于云 提供Web应用防火墙服务,保护Web应用的安全
安恒信息 玄武盾 基于云 提供云防护平台,具备Web应用防火墙功能
百度智能云 云应用防火墙 WAF 基于云 提供应用防火墙服务,具备安全漏洞防护和云安全应用防护功能
知道创宇 创宇盾 基于云 提供Web应用防火墙服务,具备政企网站防护、被黑防护、防篡改等功能
F5 分布式云 WAF 基于云 提供分布式云WAF服务
奇安信 网站卫士 基于云 提供Web应用安全防护服务
360 磐云 基于云 提供Web应用防火墙服务
网宿科技 Web应用防火墙 基于云 提供Web应用防火墙服务,具备网站防护和智能边缘安全功能
深信服 云Web应用防火墙 基于云 提供云WAF服务,具备Bot防护和云安全功能
绿盟科技 网站云防护 基于云 提供云计算安全产品,具备网站云防护功能
启明星辰 虚拟化WAF 虚拟化 提供虚拟WAF服务,具备Web应用安全网关功能
长亭科技 雷池(SafeLine) 硬件 下一代Web应用防火墙,提供Web应用防护功能
天融信 Web应用安全防护系统(TopWAF) 硬件 提供Web应用安全防护系统服务
瑞数信息 动态Web应用防火墙(River Safeplus) 硬件 提供动态Web应用防火墙服务

写在最后

  本质上,WAF作为一种专用网络安全技术,在安全防御体系中需要承担特定的责任。用现实世界中安防机构的安防全景图来类比,WAF比较类似一个大门入口处智能安检系统的角色,负责检查进入Web应用的“人员”(HTTP请求),并拦截可疑行为(如SQL注入、XSS攻击)。

  关于安防机构的全景图,我简单设想了一个分层比喻的对应情况,便于理解WAF的角色定位:

  • 外部防御层:防火墙(围墙+安检门)+ VPN(加密电梯)
  • 入口过滤层:WAF(智能安检系统)
  • 内部监测层:IDS(摄像头)+ IPS(安保人员)+ HIDS(保镖)
  • 数据保护层:加密技术(保险柜)+ 网络隔离(防火分区)
  • 高级防护层:蜜罐(诱饵房间)+ 零信任(人脸识别门禁)+ SIEM(指挥中心)

Refer