Azure Web 应用程序防火墙的工作原理

已完成

熟悉 Azure Web 应用程序防火墙的基本功能和优点。 现在,让我们了解 Azure Web 应用程序防火墙的工作原理。 特别是,让我们考虑一下规则集和规则组等功能如何允许 Azure Web 应用程序防火墙帮助保护 Web 应用免受常见攻击。 此信息有助于你评估 Azure Web 应用程序防火墙是否适合你的公司。

部署选项

可将 Azure Web 应用程序防火墙部署为 Web 应用的 Azure 前端解决方案的一部分。 首先要创建 Azure Web 应用程序防火墙策略,其中包括以下设置:

  • 要使用哪个产品集成
  • 希望使用的托管规则集
  • 希望添加的任何自定义规则
  • 希望使用的模式

Microsoft 托管规则集、规则组和规则

Azure Web 应用程序防火墙通过对应用程序的传入 HTTP/HTTPS 请求应用规则来阻止已知的攻击。 规则是设计用于识别和阻止特定威胁的防火墙代码。

Azure Web 应用程序防火墙用于检测和阻止常见漏洞的规则大多是属于不同规则组的托管规则。 每个规则组是规则的集合,托管规则集是规则组的集合。 托管规则集包括基于 Microsoft 威胁情报的规则组、CVE(常见漏洞和暴露)规则组以及核心规则组 (CRS)。

CRS 规则由 Open Web Application Security Project (OWASP) 定义。 Microsoft 的安全专家团队对托管规则进行编码、维护和更新。 规则根据需要进行修改或添加。 当托管规则更改时,Microsoft 会自动更新 Azure Web 应用程序防火墙,而不会导致应用程序停机。

以下屏幕截图显示了 Microsoft 默认规则集 2.1 (DRS2.1) 中的一些规则和规则组。 通过它,你应该能够了解 Azure Web 应用程序防火墙提供的保护深度。

显示 WAF 托管规则的屏幕截图。

机器人规则

机器人规则根据 Microsoft 威胁情报和专有 WAF 规则识别坏机器人、好机器人和未知机器人。

显示 WAF 机器人规则的屏幕截图。

自定义规则

Azure Web 应用程序防火墙提供的托管规则可能不会涵盖 Web 应用正在遭遇的特定威胁。 如果是这样,则可以创建自定义规则。 可以通过创建包含以下组件的条件来构建自定义规则:

  • 匹配类型,例如地理位置、IP 地址、大小、字符串
  • 匹配变量,例如 RequestHeader、QueryString、RequestUri、RequestBody、Cookies 或 PostArgs
  • HTTP/HTTPS 请求方法(例如 POST 或 PUT)
  • 运算符,例如 Equal、Contains、Regex、Begins with、Any、Ends with
  • 允许、阻止、记录或重定向等操作

地区筛选

默认情况下,WAF 将响应所有用户请求,而不管请求来自哪里。 在某些情况下,你可能想要按国家/地区限制对 Web 应用程序的访问。 通过地区筛选自定义规则,可在终结点上定义特定路径,以允许或阻止来自指定国家/地区的访问。 地区筛选规则使用相关的双字母国家/地区代码。

地区筛选规则的匹配变量为 RemoteAddr 或 SocketAddr。 RemoteAddr 是通常通过 X-Forwarded-For 请求头发送的原始客户端 IP 地址。 SocketAddr 是 WAF 看到的源 IP 地址。 如果用户位于代理后,SocketAddr 通常是代理服务器地址。

可以将 GeoMatch 条件与 REQUEST_URI 字符串匹配条件组合在一起,创建一个基于路径的地区筛选规则。

IP 限制

Azure Web 应用程序防火墙自定义规则通过指定 IP 地址或 IP 地址范围列表来控制对 Web 应用程序的访问。

通过 IP 限制自定义规则可控制对 Web 应用程序的访问。 它通过按无类别域间路由 (CIDR) 格式指定 IP 地址或 IP 地址范围来实现此操作。

默认情况下,可从 Internet 访问 Web 应用程序。 但是,有时需要限制从已知 IP 地址或 IP 地址范围列表对客户端的访问。 为此,可以创建一个 IP 匹配规则,阻止未在自定义规则中列出的 IP 地址访问你的 Web 应用。

速率限制

Azure Web 应用程序防火墙自定义规则支持根据匹配条件和传入请求的速率来限制速率,从而控制访问。

此自定义规则使你能够检测异常高级别的流量,并阻止某些类型的应用程序层拒绝服务攻击。 速率限制还可以防止意外地错误配置客户端,避免它在短时间内发送大量请求。 自定义规则由速率限制计数持续时间(1 分钟或 5 分钟间隔)和速率限制阈值(速率限制持续时间内允许的最大请求数)定义。

检测模式与防护模式

Azure Web 应用程序防火墙可以在两种模式之一下运行。 你选择的模式取决于你希望防火墙如何处理与其规则之一匹配的传入 HTTP/HTTPS 请求:

  • 检测模式:记录请求,但允许请求通过。
  • 防护模式:记录请求,但不允许请求通过。

常见的情况是在测试应用时以检测模式运行 Azure Web 应用程序防火墙。 在检测模式下,你可以检查两种类型的问题:

  • 误报:防火墙标记为恶意的合法请求。
  • 漏报:防火墙允许的恶意请求。

在应用做好部署后,可以切换到防护模式。

将 Microsoft Sentinel 与 Azure WAF 配合使用

通过将 Azure WAF 与 Microsoft Sentinel 相结合,可以为 WAF 资源提供安全信息事件管理。 借助 Microsoft Sentinel,可使用 Log Analytics 访问到 Sentinel 的 WAF 数据连接器。 WAF 工作簿显示了对 Azure Front Door 上的 WAF 和应用程序网关上的 WAF 的分析。 WAF 分析规则从 AFD 和应用程序网关日志检测 SQLi 和 XSS 攻击。 通过 WAF 笔记本可调查 Azure Front Door 上的 SQL 注入事件。

显示 Sentinel WAF 设置的屏幕截图。

显示 WAF 事件的屏幕截图。