你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

Azure Front Door WAF 中的 HTTP DDoS 规则集

适用于: ✔️ Front Door Premium

HTTP层洪水仍然是导致应用可用性事件最频繁的驱动因素,而静态控制如IP和地理过滤或固定速率限制往往无法跟上分布式僵尸网络的步伐。 HTTP DDoS规则集是Azure Web 应用程序防火墙(WAF)自动化的第7层保护模型,能够在最小的用户配置下学习、检测并防御。 一旦分配,规则集会持续为每个 Azure Front Door 配置文件建立正常流量基线,并在流量激增表明发生攻击时,选择性地缓解恶意流量,无需紧急调优。

HTTP DDoS 规则集的工作原理

一旦将HTTP DDoS规则套用到绑定在Azure Front Door Premium配置文件上的策略上,流量基线就会通过滚动窗口计算。 对于在过去七天中至少有 50% 的天数有流量的配置文件,规则集会计算基线,并在 24 至 36 小时内开始检测流量峰值。 如果 Front Door 配置文件在过去七天内流量不足(少于50%),规则集不会检测或缓解攻击,直到有足够流量建立可靠的基线。

请求阈值在全局配置文件级别获知。 如果将配置了 HTTP DDoS 规则集的单个 WAF 策略分配给多个 Azure Front Door 配置文件,则会为策略附加到的每个配置文件单独计算流量阈值。

规则采用两阶段设计。 它会学习全局画像阈值,以及针对单个客户端 IP 地址的更窄阈值,并通过地理规则,为每个国家/地区设置阈值。 在请求的配置项阈值被突破之前,更严格的阈值不会被强制执行。 这种方法可防止规则集对少数客户端的流量激增采取措施,除非这些峰值导致配置文件的总请求率超过阈值。

HTTP DDoS 规则集中的每个规则都提供三个敏感度级别,每个级别对应于不同的阈值。 较高的敏感度设置为该规则应用较低的阈值,而较低的敏感度设置则应用更高的阈值。 默认设置和建议的设置是中等敏感度。

当你将规则集分配给相应对象时,其规则默认以 日志 操作和中等敏感度启用。 查看日志,然后根据你的应用设置每条规则的动作。

HTTP DDoS 规则集是 Azure WAF 评估的第一个规则集,即使在自定义规则之前也是如此。

重要

任何带有允许操作的自定义规则都不会绕过HTTP DDoS规则集,但会绕过所有其他WAF检查。 为了将受信任流量排除在 HTTP DDoS 规则集之外,可以使用 例外。

点球框

一旦配置概况阈值被突破,任何超过规则500100或500110阈值的客户端IP地址都会被放入惩罚箱。 当IP地址处于惩罚框中时,WAF会将规则配置的动作应用于其请求。 当惩罚期结束后,IP地址会再次受到正常评估,如果再次超过阈值,IP地址会返回惩罚箱。

规则集规则

HTTP DDoS 规则集在你的 WAF 策略的管理规则中以 Microsoft_HTTPDDoSRuleSet_1.0 的形式出现,包含四条规则。 每条规则为符合其条件的流量维护独立的流量基线,并且每个规则都可以配置其独特的敏感性和操作方式。

规则编号 规则 它作为基线的内容 Status
500100 检测到客户端请求率过高 来自每个客户端IP地址的请求 正式发布
500110 疑似机器人发送高频率请求 来自被 Microsoft Threat Intelligence 归类为机器人的 IP 地址的请求 正式发布
500310 检测到来自高流量来源地区的高请求率异常 来自各高请求量国家/地区的请求 Preview
500320 检测到来自低流量源地理区域的高请求率异常 来自所有其他国家/地区的合并的请求 Preview

规则 500100:检测到客户端请求率过高异常:该规则跟踪并为附加了策略的配置文件上的所有流量建立基线。 当客户超过设定的阈值时,将触发相应的配置的动作。

规则500110:疑似机器人发送高频率请求:该规则允许您根据Microsoft威胁情报归类为机器人的流量设置不同的敏感度等级。 对于可疑机器人,默认阈值比所有其他 IP 地址的默认阈值更严格。 当超过全局配置阈值时,分类为高风险的机器人会立即被此规则阻止。

规则500310和500320是地理规则,将在下一节详细说明。

地理规则(预览)

重要

HTTP DDoS规则集中的地理规则,即规则500310和500320,目前处于预览阶段。 HTTP DDoS 规则集的其余部分现已正式发布。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款 。

Per-IP 阈值对每个客户端发送大量请求的攻击有很好的防御效果。 它们对高度分布式攻击效果较差,僵尸网络将流量分散到如此多的IP地址,以至于每个IP地址的流量都低于各自的阈值。 地理规则增加了第二层防御,按国家/地区而非客户端为流量建立基线。

地理规则的工作原理

大多数应用的合法流量来自少数高流量国家或地区。 地理规则采用了这种模式:

  • 规则500310 为每个高流量国家或地区学习单独的阈值。
  • 规则500320 为其他每个国家或地区学习一个合并阈值。 所有这些低流量来源的请求都计入这个单一阈值。

例如,假设一个个人资料的大部分流量来自美国、澳大利亚和法国。 规则500310为这三者分别学习一个阈值,规则500320则为来自其他所有地方的合并流量学习一个阈值。 在攻击过程中,来自美国的流量激增会根据美国的阈值进行衡量,而分散在许多其他地点的攻击则根据合并阈值进行衡量。

地理规则遵循与规则集其他部分相同的两阶段设计:仅在配置档案的整体请求率超过其学习阈值时才起作用。 当这种情况发生且来自高流量国家或地区的请求率超过其阈值时,规则500310将对来自该国家或地区的请求执行其操作。 当来自所有其他国家或地区的总请求率超过阈值时,规则500320将对所有这些低流量来源的请求应用其行动。

请记住以下行为:

  • 地理规则会根据大约过去七天的流量数据获取基线,并定期重新计算,从而随时间适应流量的变化。
  • 阈值反映了你的峰值流量,而非平均水平,因此正常的日常峰值低于这些阈值。
  • 来自未映射到某个国家或地区的IP地址请求会被归类为未知国家或地区(ZZ),并像其他国家或地区一样进行基线化。
  • 如果某个配置文件没有足够的流量历史来学习可靠的基线,地理规则就不会对该配置文件采取行动。
  • 地理规则在规则500100之后进行评估。 超过自身每IP阈值的客户端首先由每个IP规则处理,然后geo规则对保持在每个IP阈值以下的分布式流量进行处理。

为地理规则选择动作和敏感度

地理规则适用于整个国家或地区的流量,而非单个客户端。 当地理规则匹配时,其操作适用于该国家或地区的合法用户以及攻击流量。 在更改默认动作之前,先做好准备:

  • 从Log动作开始。 地理规则启用时默认使用日志操作。 在实施它们之前,请查看正常流量和任何流量高峰期间的日志。
  • 宁可选择挑战,也不要障碍。 JavaScript 挑战允许合法浏览器通过,同时阻止大多数脚本化客户端,限制了对受影响国家或地区的真实用户的影响。
  • 降低预期区域性峰值的敏感度。 如果你预期某个国家或地区会有合法的激增,比如在区域活动或产品发布期间,应在事件发生前降低受影响规则的敏感度。

将可信流量从规则集中豁免

带有允许操作的自定义规则不会绕过HTTP DDoS规则集。 为了让已知良好流量(如健康探针、合成监控、负载测试或合作伙伴集成)绕过规则集,可以使用 WAF例外。 你可以将例外限定到 HTTP DDoS 规则集中的特定规则或整个规则集,并根据远程 IP 地址、请求 URI 或请求头进行匹配。

尽可能缩小例外范围。 例如,如果某个负载测试工具只需要获得规则 500100 的豁免,就不要豁免其在该规则集中的其他规则。

监视 HTTP DDoS 规则集

HTTP DDoS 规则集提供了以下监控选项:

  • 当 IP 地址首次达到或超过规则 500100 或 500110 的阈值时,会记录该 IP 地址的日志条目及该规则的操作,并递增 WAF 管理的规则匹配指标。
  • 你可以通过使用 Web 应用程序防火墙 请求计数指标并按规则名称过滤来监控规则匹配。 地理规则匹配结果记录在规则编号500310和500320下。
  • Web 应用程序防火墙 HTTPDDoSRuleset Is Active 指标的值为 1,当规则集完成学习并准备对超出已学习阈值的流量采取行动时。