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

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

Amazon WAF 规则

在每个规则组和每个 Web ACL 中,规则定义了如何检查 Web 请求以及当 Web 请求与检查条件匹配时应执行的操作。每个规则都需要一个顶级语句,该语句可能包含任何深度的嵌套语句,具体取决于规则和语句类型。

检查说明作为规则语句和规则操作中的操作包含在 JSON 格式中。

您可以使用 Web ACL 中的规则来定义如何根据如下条件检查和处理 HTTP (S) Web 请求:

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

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

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

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

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

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

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

某些规则类型采用多个值。例如,您可以在 IP 地址规则中指定最多 10,000 个 IP 地址或 IP 地址范围。

除了上述列表中提供 Web 请求检查标准的语句之外,Amazon WAF支持逻辑语句ANDOR, 和NOT,用于在规则中组合语句。

例如,根据您发现的来自某个攻击者的最近请求,您可以创建一个带有逻辑AND语句,它组合了以下嵌套语句:

  • 请求来自 192.0.2.44。

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

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

在这种情况下,所有语句都需要为顶级AND语句进行匹配。

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