Amazon WAF 规则 - Amazon WAFAmazon Firewall Manager、和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon WAF 规则

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

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

Rule name(规则名称)

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

注意

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

规则语句

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

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

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

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

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

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

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

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

  • Web ACL 中先前的规则添加了到请求中的标签。

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

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

  • 请求来自 192.0.2.44。

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

  • 请求表现为在查询字符串中包含类似 SQL 的代码。

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