AWS WAF 规则 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS WAF 规则

本节解释了什么是 AWS WAF 规则及其工作原理。

AWS WAF 规则定义了如何检查 HTTP (S) Web 请求以及在请求符合检查标准时应采取的操作。只能在规则组或 Web 的上下文中定义规则ACL。

规则本身并不存在。 AWS WAF 它们不是 AWS 资源,也没有 Amazon 资源名称 (ARNs)。您可以在规则组或定义规则的 Web ACL 中按名称访问规则。您可以使用包含规则的规则组或 Web 的JSON视图ACLs来管理规则并将其复制到ACL其他 Web。您也可以通过 AWS WAF 控制台规则生成器对其进行管理,该生成器可用于 Web ACLs 和规则组。

Rule name(规则名称)

每条规则都需要一个名称。避免使用以 AWS 开头的名称和用于其他服务为您管理的规则组或规则的名称。请参阅 识别其他服务提供的规则组

注意

如果您更改了规则的名称,并且希望该规则的指标名称反映更改,则还必须更新该指标名称。 AWS WAF 当您更改规则名称时,不会自动更新规则的指标名称。在控制台中编辑规则时,您可以使用规则编辑JSON器更改指标名称。您也可以在用于定义 Web ACL 或规则组的任何JSON列表中通过APIs和更改这两个名称。

规则语句

每条规则还需要一个规则语句,用于定义规则如何检查 Web 请求。规则语句可能包含任何深度的其他嵌套语句,具体取决于规则和语句类型。一些规则语句采用一组条件。例如,您可以在 IP 条件中指定最多 10,000 个 IP 地址或 IP 地址范围。

您可以定义用于检查条件的规则,如下所示:

  • 可能是恶意的脚本。攻击者会嵌入可以利用 Web 应用程序漏洞的脚本。这称为跨站脚本 (XSS)。

  • 请求源自的 IP 地址或地址范围。

  • 请求源自的国家/地区或地理位置。

  • 请求的指定部分的长度(如查询字符串)。

  • SQL可能是恶意的代码。攻击者试图通过在 Web 请求中嵌入恶意SQL代码来从您的数据库中提取数据。这被称为SQL注射。

  • 请求中出现的字符串,例如,在 User-Agent 标头中出现的值或是在查询字符串中出现的文本字符串。您还可以使用正则表达式 (regex) 指定这些字符串。

  • 网络上先前的规则ACL已添加到请求中的标签。

除了具有 Web 请求检查标准的语句(如前面的列表中的语句)之外,还 AWS WAF 支持ANDOR、和的逻辑语句NOT,用于合并规则中的语句。

例如,根据您最近发现的攻击者请求,您可以创建一条规则,其逻辑 AND 语句由以下嵌套语句组合而成:

  • 请求来自 192.0.2.44。

  • 请求在 User-Agent 标头中包含值 BadBot

  • 它们似乎在查询字符串中包含SQL类似的代码。

在这种情况下,Web 请求需要匹配所有语句才能匹配顶级 AND