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 的形式出现,包含四条规则。 每条规则为符合其条件的流量维护独立的流量基线,并且每个规则都可以配置其独特的敏感性和操作方式。

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

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

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

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

地理规则(预览)

重要

HTTP DDoS规则集中的地理规则,即规则500310和500320,目前处于预览阶段。 HTTP DDoS 规则集的其余部分现已正式发布。 有关适用于测试版、预览版或尚未正式发布的 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。