测试和部署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 实现的一般指导。您选择遵循的具体步骤将取决于您的需求、资源和收到的网络请求。

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

注意

Amazon托管规则旨在保护您免受常见的 Web 威胁的攻击。根据文档进行使用时,Amazon托管规则组将为您的应用程序添加另一层安全性。但是,Amazon托管规则组并非用于取代您的安全责任,这些责任由您所选择的Amazon资源决定。请参阅责任共担模式,以确保妥善保护 Amazon 中的资源。

生产流量风险

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

本指南适用于一般知道如何创建和管理Amazon WAF Web ACL、规则和规则组的用户。这些主题将在本指南的前几部分所涵盖的。

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

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

  1. 添加机器人控制托管规则组
    注意

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

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

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

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

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

        • 定向 — 包括通用级保护,并增加了对无法自我识别的高级机器人的检测。定向保护使用浏览器查询、指纹识别和行为启发式等高级检测技术来识别恶意机器人流量。这些保护措施结合了速率限制、验证码和后台浏览器挑战,针对这些机器人。提供定向保护的规则的名称以开头TGT_

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

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

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

    • 放置规则组,使其在 Web ACL 中排在最后一位,优先级设置比你已经使用的任何其他规则或规则组都要高。有关更多信息,请参阅Web ACL 中规则和规则组的处理顺序

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

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

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

  3. 将 Web ACL 与资源相关联

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

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

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

    注意

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

    仔细查看 Web 请求处理中是否存在可能需要通过自定义处理来缓解的任何误报。有关误报的示例,请参见Amazon WAF机器人控制出现误报

  5. 自定义机器人控制 Web 请求处理

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

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

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

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

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

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

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

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

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

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

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