测试和部署 AWS WAF 机器人控制功能 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

测试和部署 AWS WAF 机器人控制功能

本节提供有关为您的网站配置和测试 AWS WAF 机器人控制功能实施的一般指导。您选择遵循的具体步骤将取决于您的需求、资源和收到的 Web 请求。

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

注意

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

生产流量风险

在为生产流量部署机器人控制功能实施之前,请在暂存或测试环境中对其进行测试和调整,直到您能够适应对流量的潜在影响。然后,在启用之前,在计数模式下使用生产流量对规则进行测试和调整。

本指导适用于大致了解如何创建和管理 AWS WAF Web ACL、规则和规则组的用户。这些主题将在本指南的前面章节中介绍。

配置和测试机器人控制功能实施

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. 为 Web ACL 启用日志记录和指标

    根据需要为 Web ACL 配置日志记录、Amazon Security Lake 数据收集、请求采样和 Amazon CloudWatch 指标。您可以使用这些可见性工具来监控机器人控制功能托管规则组与您的流量的交互情况。

  3. 将 Web ACL 与资源关联

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

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

    确保流量畅通,并且机器人控制功能托管规则组规则正在为匹配的 Web 请求添加标签。您可以在日志中看到标签,也可以在 Amazon CloudWatch 指标中查看机器人和标签指标。在日志中,您在规则组中覆盖计数的规则会显示在 ruleGroupList 中,action 设置为计数,overriddenAction 表示您覆盖的已配置规则操作。

    注意

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

    请仔细检查 Web 请求处理中是否存在任何可能需要通过自定义处理来缓解的误报。有关误报的示例,请参阅 AWS WAF 机器人控制功能误报的示例场景

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

    根据需要,添加您自己的明确允许或阻止请求的规则,以更改机器人控制功能规则处理请求的方式。

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

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

    • 通过在机器人控制功能托管规则组语句中添加范围缩小语句,将请求排除在机器人控制功能评估之外。此功能与前面的选项相同。它可能有助于控制使用机器人控制功能托管规则组的费用,因为与范围缩小语句不匹配的请求永远不会进入规则组评估。有关范围缩小语句的信息,请参阅 在 AWS WAF 中使用范围缩小语句

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

    • 在请求处理中使用机器人控制功能标签来允许或阻止请求。在机器人控制功能托管规则组之后添加标签匹配规则,从要阻止的请求中筛选出要允许的带标签的请求。

      测试后,将相关的机器人控制功能规则保持在计数模式,并在您的自定义规则中维护请求处理决策。有关标签匹配语句的信息,请参阅 标签匹配规则语句

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

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

  6. 根据需要启用机器人控制功能托管规则组设置

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