测试和部署Amazon WAF机器人控制 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

测试和部署Amazon WAF机器人控制

本节提供有关为您的网站配置和测试 Amazon WAF Bot Control 实现的一般指导。您选择遵循的具体步骤将取决于您的需求、资源和收到的 Web 请求。

此信息是对中提供的有关测试和调整的一般信息的补充测试和调整您的Amazon WAF保护措施

注意

Amazon托管规则旨在保护您免受常见 Web 威胁的侵害。根据文档使用Amazon托管规则组时,可以为您的应用程序增加另一层安全保护。但是,Amazon托管规则规则组并不是用来取代您的安全职责,后者由您选择的Amazon资源决定。请参阅责任共担模式,以确保妥善保护 Amazon 中的资源。

生产流量风险

在为生产流量部署 Bot Control 实现之前,请在暂存或测试环境中对其进行测试和调整,直到您对流量可能产生的影响感到满意。然后,在启用规则之前,使用您的生产流量在计数模式下对其进行测试和调整。

本指南适用于一般了解如何创建和管理 Amazon WAF Web ACL、规则和规则组的用户。这些主题已在本指南的前几节中介绍。

配置和测试机器人控制实现

首先在测试环境中执行这些步骤,然后在生产环境中执行这些步骤。

  1. 添加 Bot Control 托管规则组
    注意

    使用此托管规则组时,您需要支付额外费用。有关更多信息,请参阅 Amazon WAF 定价

    将托管Amazon规则组AWSManagedRulesBotControlRuleSet添加到新的或现有的 Web ACL 中,并对其进行配置,使其不会改变当前的 Web ACL 行为。

    • 添加托管规则组时,对其进行编辑并执行以下操作:

      • 在 “检查级别” 窗格中,选择要使用的检查级别。

        • 常见-检测各种自我识别的机器人,例如网页抓取框架、搜索引擎和自动浏览器。此级别的机器人控制保护使用传统的机器人检测技术(例如静态请求数据分析)来识别常见的机器人。这些规则会标记来自这些机器人的流量,并屏蔽他们无法验证的流量。

        • 向 — 包括通用级保护,并针对无法自我识别的复杂机器人添加定向检测。有针对性的保护结合了速率限制和验证码以及后台浏览器挑战,缓解了机器人活动。

          • TGT_— 提供定向保护的规则的名称以开头TGT_。所有有针对性的保护都使用浏览器查询、指纹识别和行为启发式等检测技术来识别恶意的机器人流量。

          • TGT_ML_— 使用机器学习的定向保护规则的名称以开头TGT_ML_。这些规则使用对网站流量统计数据的自动机器学习分析来检测表明分布式、协调的机器人活动的异常行为。 Amazon WAF分析有关您的网站流量的统计信息,例如时间戳、浏览器特征和之前访问的 URL,以改进 Bot Control 机器学习模型。默认情况下,机器学习功能处于启用状态,但您可以在规则组配置中将其禁用。禁用机器学习时,Amazon WAF不评估这些规则。

        有关此选项的更多信息,请参阅Amazon WAF机器人控制规则组

      • 在 “规则” 窗格中,打开 “覆盖所有规则操作” 下拉列表并选择Count。使用此配置,可以根据规则组中的所有规则Amazon WAF评估请求,并仅计算结果的匹配项,同时仍将标签添加到请求中。有关更多信息,请参阅覆盖规则组中的规则操作

        通过此替换,您可以监控 Bot Control 规则对您的流量的潜在影响,以确定是否要为内部用例或所需机器人之类的内容添加例外。

    • 定位规则组,使其在 Web ACL 中最后进行评估,优先级设置在数字上要高于您已在使用的任何其他规则或规则组。有关更多信息,请参阅Web ACL 中规则和规则组的处理顺序

      这样,您当前的交通处理就不会中断。例如,如果您有检测恶意流量的规则,例如 SQL 注入或跨站脚本,它们将继续检测和记录这些请求。或者,如果您的规则允许已知的非恶意流量,则它们可以继续允许该流量,而不必被 Bot Control 托管规则组阻止。在测试和调整活动期间,您可能会决定调整处理顺序,但这是一个不错的起点。

  2. 为 Web ACL 启用采样、记录和指标

    根据需要,为 Web ACL 配置日志记录,并启用采样和亚马逊 CloudWatch指标。您可以使用指标和日志记录来监控 Web 流量与 Bot Control 托管规则组的交互情况。

  3. 将 Web ACL 与资源关联

    如果 Web ACL 尚未与资源关联,请将其关联。有关信息,请参阅 将 Web ACL 与资源关联或取消关联 Amazon

  4. 监控流量和机器人控制规则匹配情况

    确保流量畅通,并且 Bot Control 托管规则组规则正在为匹配的 Web 请求添加标签。您可以在日志中看到标签,也可以在亚马逊指标中查看机器人和标签 CloudWatch 指标。在日志中,您在规则组中重写为计数的规则显示在action设置为 count,并overriddenAction指示您已覆盖的已配置规则操作。ruleGroupList

    注意

    Bot Control 托管规则组使用来自Amazon WAF的 IP 地址验证机器人。如果您使用 Bot Control,并且已经验证了通过代理或负载均衡器进行路由的机器人,则可能需要使用自定义规则明确允许它们。有关如何创建自定义规则的信息,请参阅转发的 IP 地址。有关如何使用该规则自定义 Bot Control Web 请求处理的信息,请参阅下一步。

    请仔细检查 Web 请求处理中是否存在任何可能需要通过自定义处理来缓解的误报。有关误报的示例,请参见Amazon WAFBot Control 的误报

  5. 自定义 Bot Control 网页请求处理

    根据需要,添加您自己的明确允许或阻止请求的规则,以更改 Bot Control 规则处理请求的方式。

    如何执行此操作取决于您的用例,但以下是常见的解决方案:

    • 使用您在 Bot Control 托管规则组之前添加的规则明确允许请求。这样,允许的请求就永远不会到达规则组进行评估。这有助于控制使用 Bot Control 托管规则组的费用。

    • 通过在 Bot Control 托管规则组语句中添加范围缩小语句,将请求排除在 Bot Control 评估之外。此功能与前面的选项相同。它可以帮助控制使用 Bot Control 托管规则组的成本,因为与 scope-down 语句不匹配的请求永远无法达到规则组评估。有关范围缩小语句的信息,请参见。范围缩小语句

      有关示例,请参阅以下内容:

    • 在请求处理中使用 Bot Control 标签来允许或阻止请求。在 Bot Control 托管规则组之后添加标签匹配规则,从要屏蔽的请求中筛选出要允许的带标签的请求。

      测试后,将相关的 Bot Control 规则保持在计数模式,并在您的自定义规则中维护请求处理决策。有关标签匹配语句的信息,请参见标签匹配规则声明

      有关此类自定义的示例,请参阅以下内容:

    有关其他示例,请参阅 Amazon WAF机器人控制示例

  6. 根据需要启用 Bot Control 托管规则组设置

    根据您的情况,您可能已经决定要将某些 Bot Control 规则保留为计数模式或使用不同的操作覆盖。对于要按照规则组内部配置的方式运行的规则,请启用常规规则配置。为此,请编辑 Web ACL 中的规则组语句,然后在 “规则” 窗格中进行更改。