什么是 WAF?| Web 应用程序防火墙详解
网络应用程序防火墙(WAF)是一种防火墙,通过过滤、监控和阻止恶意网络流量和应用层攻击(如 DDoS、SQL 注入、cookie 操作、跨站点脚本 (XSS)、跨站点伪造和文件包含)来保护网络应用程序和 API。
作为第 7 层防御,WAF 主要针对网络应用程序与互联网之间的流量。它们能够在网络应用程序和网络服务器接受恶意请求之前对其进行检测和响应,为企业(及其客户)提供重要的安全保障。
WAF 技术的出现
在前云时代,您可以使用防火墙来划分内部网络和外部网络,以保护您的资产免受恶意网络流量的侵害。但传统的防火墙方法并不适合云。许多应用程序无法在内部网络上隔离,因为它们需要连接到互联网。
20 世纪 90 年代末,为防范网络应用程序受到越来越多的攻击,WAF 技术应运而生。早期版本的网络应用程序防火墙可保护应用程序不被提交非法字符。后来,WAF 发展到了应用程序和客户端之间,也就是所谓的 "内联 "位置,它可以过滤往来于网络服务的 HTTP 流量,阻止恶意请求。
在出现 WAF 技术的同时,OASIS 网络应用安全技术委员会(WAS TC)的漏洞工作也扩展到 开放式网络应用安全项目(OWASP)的 10 大清单中。几十年过去了,OWASP Top 10 仍然是网络应用安全合规性的行业标准。
WAF 和 OWASP Top 10 这两项发展共同为我们提供了一种防御手段,帮助我们阻止威胁参与者试图入侵我们的系统、消耗我们的资源和外泄我们的数据。
WAFs:重要的安全组件
由于对网络应用程序的攻击是造成漏洞的主要原因,保护应用程序和应用程序接口一直是应用程序安全工程师、安全架构师和信息安全专业人员最关心的问题。由于发布的应用程序往往存在 OWASP Top 10 漏洞,因此必须将网络应用程序安全标准纳入 软件开发生命周期 (SDLC)。
网络应用程序防火墙通过提供一层网络防火墙无法实现的安全保护,起到保护漏洞不被利用的作用。传统的网络防火墙根本无法保护面向网络的应用程序,这些应用程序需要接受和响应来自互联网的网络内容请求。
WAF 解决了这一问题,它提供了一种过滤网络流量的方法,同时仍允许应用程序直接连接到互联网。WAF 不是在内部和外部网络资源之间建立一堵墙,而是像屏幕一样发挥作用,允许友好流量通过,但阻止恶意流量。
因此,WAF 有助于防范一些常见的 网络应用安全风险,如设计不当的应用程序和注入攻击。虽然 WAF 无法修复网络应用程序中的潜在漏洞或缺陷,但它们可以阻止试图利用这些缺陷的攻击到达应用程序。WAF 可阻止初始探测、阻止常见的攻击途径并限制请求的速率,从而给攻击者带来挑战。
此外,网络应用防火墙还可以记录网络应用流量、攻击尝试以及企业为保护网络应用安全而采取的措施,所有这些都支持审计和合规性活动。
了解威胁形势
在讨论有效的网络应用程序防火墙的关键组件之前,我们先来了解一下针对网络应用程序的不同类型的威胁。我们已经提到了 XSS、SQL 注入和本地文件包含。最初的应用防火墙的目标是防范这些类型的攻击,但战场已经发生了变化,并在持续发展。
随着按需云计算的普及,拒绝服务 ( DoS) 攻击和 DDoS 攻击 变得越来越频繁。
最新的 OWASP Top 10 榜单现在包含了更多与访问控制和配置相关的风险。在 2021 年的榜单中,访问控制失灵和加密失灵占据了前两位。从安全配置错误到组件过时等相关问题也有所增加。除了保护服务免受攻击,您还需要防止敏感数据意外泄露防护。
有效网络应用程序防火墙的功能
网络应用程序防火墙通过一套规则或策略运行,旨在通过监控和过滤使用网络协议(尤其是 HTTP 和 HTTPS)的网络流量,防范网络应用程序中的漏洞。
我们可以将 WAF 的功能分为两个不同的部分:保护入站流量和出站流量。WAF 的入站保护功能负责检查来自外部世界的应用流量。作为保护网络应用免受入站流量影响的一部分,WAF 需要识别危险的活动模式、可疑的有效载荷和漏洞。
由于黑客不断创新,境内攻击的性质也在不断变化。WAF 需要根据一套积极主动的安全策略来运行,以防范网络应用中的已知漏洞。要过滤掉各种类型的恶意流量,每项安全策略都必须与时俱进,与不断变化的攻击载体保持同步。网络应用防火墙特别有效,因为它们是为修改安全策略而设计的。
出站保护就是要防止企业和客户数据泄露。虽然在现实世界中准确解析出站数据具有挑战性,但基于代理的内嵌式 WAF 可以拦截出站数据,屏蔽或阻止敏感数据通过意外或恶意手段泄漏。
不同类型的网络应用程序防火墙
在使用 WAF 保护网络应用时,您可以定义规则,根据特定条件允许、阻止或监控网络请求。例如,您可以自定义 WAF 规则,阻止包含特定 HTTP 标头或来自特定 IP 地址的传入请求。
拦截列表与允许列表 WAF
从分类上看,网络应用程序防火墙可按其工作方式加以区分。拦截列表 WAF 基于消极安全模型,而允许列表 WAF 则遵循积极安全模型:
- 拦截列表 WAF 设计用于拦截某些端点或流量类型,而允许所有其他端点或流量类型。
- Allowlist WAF 的工作原理与 blocklist WAF 有点相反,默认情况下会阻止所有流量,只允许经过明确批准的流量通过。
Allowlist WAF 被认为更安全,因为它们能最大限度地降低恶意流量因防火墙规则配置不当而逃避防御的风险。也就是说,在无法预测所有有效流量类型或端点的情况下,允许列表 WAF 的效果并不好。
考虑到这两种 WAF 的优缺点,现在许多 WAF 采用 "允许列表-阻止列表 "混合安全模式也就不足为奇了。
基于网络、主机和云的 WAF
WAF 可根据其部署模式进行分类--基于网络、基于主机和基于云。
- 基于网络:基于网络的 WAF 采用硬件设备的形式,必须获得许可并进行维护,它在网络基础设施(如交换机)上运行,位于应用程序和互联网之间。
- 基于主机的 WAF:基于主机的 WAF 位于网络应用程序所在的服务器上。由于它们是作为应用程序操作系统的一部分部署的,因此使用操作系统级过滤功能来过滤传递到网络应用程序的流量,可以轻松实现大规模扩展。
- 基于云的 WAF:托管在云中的应用程序可以使用基于云的 WAF,它与云虚拟网络服务或负载平衡器集成,以过滤网络流量。虽然基于云的 WAF 不需要庞大的团队来部署或维护,但它们通常无法提供完整的威胁背景。
企业使用哪种 WAF 部署模式,部分取决于其网络应用的位置。例如,基于云的 WAF 只有在云中部署应用程序时才会起作用。如果在选择部署模式时要考虑维护问题,基于网络和主机的 WAF 通常需要更多的设置和管理,而基于云的 WAF 只需要更改 DNS 或代理即可。
WAF 与其他安全工具
Web 应用程序防火墙提供的功能使其与其他防火墙和安全解决方案相比独具特色,但它们并不打算充当包罗万象的安全工具。事实上,WAF 并不能抵御所有类型的攻击。网络应用程序防火墙只是安全的一个组成部分,其设计目的是对综合工具套件进行补充,以提供针对所有可能的攻击载体的整体防御。
WAF 与传统防火墙的比较
传统防火墙的设计目的是确定一个边界,将在内部网络上运行的资源与直接与互联网连接的资源分隔开来。WAF 更为细致,因为它们允许应用程序与互联网连接,同时仍提供一层保护。
WAF 与新一代防火墙的比较
新一代防火墙(NGFW)是一种应用防火墙,它结合了传统网络防火墙和 WAF 的最佳功能。除了通过检查网络层数据包来阻止传入请求外,NGFW 还具有检查功能,可以阻止专用网络上不需要的流量。
虽然 NGFW 和 WAF 的功能有重叠,但主要区别在于它们的核心责任模式。新一代防火墙可捕获更多网络流量上下文,执行基于用户的策略,并增加防病毒和防恶意软件等基本功能。此外,通过为安全策略添加上下文,NGFW 可以结合威胁情报引擎来协助决策过程。
相比之下,WAF 则仅限于应用层。它们专门防范常见的网络攻击,如 XSS 或 DDoS 攻击,因此对于确保面向互联网和云原生应用程序的安全至关重要。
但从代理的角度来看,最能理解这两种技术的总体区别。服务器使用的 WAF 几乎都是反向代理。NGFW 由客户端使用,旨在保护客户端,因此在大多数情况下,NGFW 都是前向代理。
WAF 与入侵防御系统的比较
与 WAF 类似,入侵防御系统 (IPS) 也是为了识别和阻止恶意网络流量而设计的。不过,IPS 的设计目的是过滤所有协议的所有类型流量。
尽管如此,WAF 在检测通过网络协议运行的复杂攻击方面的能力通常更为先进。IPS 解决方案通常依赖于通用攻击签名(特定类型的数据包或流量模式),并不广泛使用上下文数据(历史流量模式或用户行为模式)来确定哪些流量可能是恶意流量。
如何部署网络应用程序防火墙
WAF 可以通过多种方式部署,具体取决于应用程序的部署位置、所需服务、管理方式以及所要求的架构灵活性和性能水平。
需要考虑的问题
- 您是想自己管理 WAF,还是想将管理外包?
- 基于云的模式是更好的选择,还是您希望在本地部署 WAF?
您希望如何部署将有助于确定哪种 WAF 适合您。然后,您需要决定如何将 WAF 集成到网络应用程序网络堆栈中。您有三种方法可供选择:
- 透明桥在透明桥接模式下,WAF 与其保护的网络应用绑定到相同的端口。从网络应用程序和连接到它们的客户端的角度来看,似乎并没有安装防火墙,但端口绑定在幕后工作,允许 WAF 拦截流量并决定是否允许其通过。
- 透明反向代理:在透明反向代理方法下,网络应用程序知道防火墙的存在,但客户端却不知道。WAF 接受端口和地址上的流量,这些端口和地址在外部端点看来是应用程序,但应用程序本身在不同的内部端口和地址上运行。WAF 会检查流量,并决定是否将其转发到这些端口和地址。
- 反向代理:反向代理是指客户向 WAF 发送请求,WAF 在用于运行代理服务的端口或地址上运行,然后将请求转发给应用程序。反向代理与透明反向代理类似,主要区别在于,当使用简单的反向代理时,客户会意识到代理服务器的存在。
透明网桥模式最容易实施,因为它要求的网络绑定、地址和端口配置最少。不过,它并不能在网络层面将网络应用与 WAF 隔离。透明反向代理和反向代理提供了更多的隔离功能和能力,可在流量到达应用之前对其进行检查。
在部署 WAF 的步骤中,下一步就是选择托管 WAF 的地点。主要选项有
- 基于云的全面管理服务:WAF 以完全托管服务的形式在云中运行。用户只需打开它并进行配置,除了设置所要求的网络策略外,无需任何管理。
- 基于云,自主管理:WAF 托管在云中,但用户负责部署、配置和管理。
- 基于云,自动配置:WAF 托管在云中。虽然用户必须对其进行配置和管理,但它会自动填充与云环境相匹配的网络规则。这种方法提供了一种介于完全管理和自我管理 WAF 选项之间的中间方案。
- 本地部署的高级 WAF:WAF 由本地部署的基础设施托管。内部部署需要更多的设置工作,企业必须为 WAF 提供主机基础设施。代价是对 WAF 配置方式的更大控制权。
- 基于代理或无代理 主机的 WAF:WAF 在主机服务器或应用程序容器上运行。用户可能需要在每台服务器上部署代理,以托管网络应用程序防火墙服务,但也可以采用执行防火墙规则的无代理方法。
选择网络应用程序安全解决方案时应考虑的因素
评估网络应用程序防火墙选项时应考虑的因素:
- 支持哪些部署模式?最好的 WAF 支持一系列部署选项,因此可以本地部署或在云中运行,使用完全管理或自我管理的方法,具体取决于适合企业的选项。
- WAF 如何过滤流量?WAF 在评估流量时能考虑的背景因素越多,其检测一般防火墙往往无法检测到的复杂攻击的能力就越强。
- WAF 需要多高效?所有 WAF 都应高效运行,避免剥夺应用程序运行所需的基础设施资源。
在选择网络应用程序安全解决方案时,除了要考虑上述因素外,最好还要考虑可扩展性。WAF 今后需要如何扩展?是否需要支持跨混合云和多云架构运行的应用程序?是否需要 支持应用程序接口?随着应用程序接口(API)在应用程序与用户之间的通信中越来越重要,保护应用程序接口(API)和网络应用程序的能力将变得至关重要。
网络应用程序和应用程序接口安全(WAAS)的未来
基于云原生架构构建的现代网络应用比以往任何时候都更加复杂。敏捷开发流程、持续集成和部署以及不断变化的环境为传统的 WAF 带来了新的挑战。下一代 网络应用程序和应用程序接口保护 是网络应用程序和应用程序接口安全(WAAS)。
WAAS 包括传统的 WAF 功能,如自动发现网络应用。它还能进一步发现环境中的所有 API 端点。这种方法可简化安全规则的配置,以 保护网络应用程序和应用程序接口 ,或更新环境中的现有应用程序。
通过自动检测和保护面向网络的应用程序和应用程序接口,您还可以降低应用程序可能配置错误或部署时未提供保护的风险。
有效的 WAAS 解决方案将接受 Swagger 和 OpenAPI 等各种格式的 API 规范,并使用这些定义来筛选请求,以确定是否符合规范。有些端点可能需要较少的保护和更大的访问权限,而那些处理敏感数据的端点则需要最高级别的保护和审查。此外,WAAS 解决方案还包括开箱即用的 DoS 保护功能。
在选择应用程序安全解决方案时,您应该考虑的其他功能还包括根据来源地筛选请求的能力。您还希望能够通过自定义规则来定制针对每个应用程序或应用程序接口应用的防御措施级别。您可能还想根据严重性和潜在风险的组合,设置每个应用程序的警报和错误报告级别。
确保您的应用程序面向未来
随着云计算在行业中的地位不断巩固,云原生应用程序持续激增,其重要性和复杂性也与日俱增。安全必须具备与动态威胁环境一样快速发展的能力。
信息安全专业人员-- DevOps 工程师、安全架构师和应用安全小组--将需要相互协作并借鉴彼此的经验,以构建能够防御现代企业的全面安全策略。
WAF 常见问题
WAAP 解决方案将传统 WAF 的功能与高级 API 安全功能(如速率限制、身份验证和访问控制)相结合。通过提供网络应用程序和 API 安全的整体方法,WAAP 解决方案使组织能够更有效、更高效地保护其数字资产,确保其应用程序和服务的安全性和合规性。
WAF 类型分为三类:基于网络、基于主机和基于云。
- 基于网络的 WAF 是部署在组织网络基础设施内的硬件设备,可为网络应用程序提供低延迟保护。
- 基于主机的 WAF 是一种软件解决方案,可与网络应用程序安装在同一服务器上,提供更强的定制能力并与应用环境集成。
- 基于云的 WAF 由第三方供应商作为服务提供,要求的现场设置和维护最少。这些 WAF 可以轻松实现大规模扩展,提供现收现付的定价模式,并可能包含 DDoS 保护和内容分发网络(CDN)集成等附加功能。
选择合适的 WAF 类型取决于组织的需求、资源和安全要求。
DDoS 攻击是恶意请求的另一个例子。DDoS 攻击使用不同的策略,目的是通过耗尽系统资源来阻止对系统的合法请求。黑客有时会通过向系统发出大量虚假请求来成功实施 DDoS 攻击。
保护系统免受 DDoS 攻击的最佳方法是隐藏与系统相关的每个 IP 地址。同样重要的是,将与恶意用户相关的 IP 地址添加到安全规则中,以便将来检测和过滤来自该来源的恶意数据包。
各种 WAF 提供商可分为三类:
- 提供 WAF 的 CDN 提供商
- 云服务提供商 (CSP) WAF
- 现代 WAF 提供商
提供 WAF 的 CDN 提供商包括 Akamai、Fastly、Cloudflare 和 Imperva。CSP WAFs 供应商包括谷歌云的 Cloud Armor、AWS WAF、Azure Web 应用程序防火墙和 Barracuda Web 应用程序防火墙。现代 WAF 提供商有 Prisma Cloud、Akamai、Cloudflare、Traceable 和 Imperva。