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

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

Amazon WAF 机器人控制规则组

VendorName:AWS,名称:AWSManagedRulesBotControlRuleSet,WCU:50

机器人控制功能托管规则组提供管理来自机器人的请求的规则。机器人可能会消耗过多的资源,歪曲业务指标,导致停机以及执行恶意活动。

保护级别

机器人控制功能托管规则组提供两种保护级别供您选择:

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

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

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

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

目标保护级别和 Amazon WAF 基于速率的规则声明均提供速率限制。有关两个选项的对比,请参阅 基于速率的规则和定向机器人控制功能规则中的速率限制选项

使用此规则组

此规则组是 Amazon WAF中智能威胁缓解保护的一部分。有关信息,请参阅 Amazon WAF 智能威胁缓解

注意

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

为了降低成本并确保您可以根据需要管理 Web 流量,请按照 智能威胁缓解的最佳实践 中的指导使用此规则组。

我们会定期更新基于机器学习的目标保护级别规则的机器学习 (ML) 模型,以改善机器人预测。基于 ML 的规则的名称以开头。TGT_ML_如果您发现这些规则所做的机器人预测突然发生重大变化,请通过您的客户经理联系我们或在 Center 提起诉Amazon Web Services Support 讼

机器人控制功能规则组不提供 SNS 更新通知。

此规则组添加的标签

此托管规则组会为其评估的 Web 请求添加标签,这些标签可用于在 Web ACL 中在此规则组之后运行的规则。 Amazon WAF 还会记录亚马逊 CloudWatch 指标的标签。有关标签和标签指标的一般信息,请参阅 Web 请求上的标签标签指标和维度

令牌标签

该规则组使用 Amazon WAF 令牌管理根据令牌的状态检查和标 Amazon WAF 记 Web 请求。 Amazon WAF 使用令牌进行客户端会话跟踪和验证。

有关令牌和令牌管理的信息,请参阅 Amazon WAF 网络请求令牌

有关此处描述的标签组件的信息,请参阅 标签语法和命名要求

客户端会话标签

该标签awswaf:managed:token:id:identifier包含一个唯一标识符, Amazon WAF 令牌管理使用该标识符来标识客户端会话。如果客户端获取了新令牌,例如在丢弃其正在使用的令牌之后,标识符可能会更改。

注意

Amazon WAF 不报告该标签的 Amazon CloudWatch 指标。

令牌状态标签:标签命名空间前缀

令牌状态标签报告令牌的状态、质询以及其中包含的 CAPTCHA 信息。

每个令牌状态标签都以下列命名空间前缀之一开头:

  • awswaf:managed:token: – 用于报告令牌的一般状态以及令牌的质询信息的状态。

  • awswaf:managed:captcha: – 用于报告令牌的 CAPTCHA 信息的状态。

令牌状态标签:标签名称

在前缀之后,标签的其余部分提供详细的令牌状态信息:

  • accepted – 请求令牌存在且包含以下内容:

    • 有效的质询或 CAPTCHA 解决方案。

    • 未过期的质询或 CAPTCHA 时间戳。

    • 对 Web ACL 有效的域规范。

    示例:标签 awswaf:managed:token:accepted 表明 Web 请求的令牌具有有效的质询解决方案、未过期的质询时间戳以及有效的域。

  • rejected – 请求令牌存在但不符合接受标准。

    除了被拒绝的标签外,令牌管理还添加了一个自定义标签命名空间和名称来指示原因。

    • rejected:not_solved – 令牌缺少质询或 CAPTCHA 解决方案。

    • rejected:expired – 根据您的 Web ACL 配置的令牌免疫时间,令牌的质询或 CAPTCHA 时间戳已过期。

    • rejected:domain_mismatch – 令牌的域与您的 Web ACL 的令牌域配置不匹配。

    • rejected:invalid— Amazon WAF 无法读取指示的标记。

    示例:标签 awswaf:managed:captcha:rejectedawswaf:managed:captcha:rejected:expired 表示请求被拒绝,因为令牌中的 CAPTCHA 时间戳已超过 Web ACL 中配置的 CAPTCHA 令牌免疫时间。

  • absent – 请求没有令牌,或者令牌管理器无法读取它。

    示例:标签 awswaf:managed:captcha:absent 表示请求没有令牌。

机器人控制功能标签

机器人控制功能托管规则组生成带有命名空间前缀的标签,awswaf:managed:aws:bot-control:后面是自定义命名空间和标签名称。规则组可能会向一个请求添加多个标签。

每个标签都反映了机器人控制功能规则的调查发现:

  • awswaf:managed:aws:bot-control:bot: – 有关与请求关联的机器人的信息。

    • awswaf:managed:aws:bot-control:bot:name:<name> – 机器人名称(如有),如自定义命名空间 bot:name:slurpbot:name:googlebotbot:name:pocket_parser

    • awswaf:managed:aws:bot-control:bot:category:<category>— 机器人的类别,例如 Amazon WAF,由bot:category:search_engine和定义bot:category:content_fetcher

    • awswaf:managed:aws:bot-control:bot:organization:<organization> – 机器人的发布者,如 bot:organization:google

    • awswaf:managed:aws:bot-control:bot:verified – 用于表示可以识别自己并且机器人控制功能已经能够验证的机器人。这用于常见的理想机器人,与类别标签(例如 bot:category:search_enginebot:name:googlebot 等名称标签)结合使用时可能很有效。

      注意

      机器人控制功能使用来自 Web 请求源的 IP 地址来帮助确定机器人是否经过验证。您无法将其配置为使用 Amazon WAF 转发的 IP 配置来检查其他 IP 地址源。如果您已验证通过代理或负载均衡器进行路由的机器人,则可以添加一条在机器人控制功能规则组之前运行的规则来帮助解决此问题。将您的新规则配置为使用转发 IP 地址,并明确允许来自已验证机器人的请求。有关使用转发 IP 地址的信息,请参阅 转发的 IP 地址

    • awswaf:managed:aws:bot-control:bot:user_triggered:verified – 用于表示类似于已验证机器人,但最终用户可以直接调用的机器人。机器人控制功能规则将此类机器人视为未经验证的机器人。

    • awswaf:managed:aws:bot-control:bot:developer_platform:verified – 用于表示类似于已验证机器人,但开发者平台使用它来编写脚本的机器人,例如 Google Apps 脚本。机器人控制功能规则将此类机器人视为未经验证的机器人。

    • awswaf:managed:aws:bot-control:bot:unverified – 用于表示可以识别自己的机器人,因此可以对其进行命名和分类,但它不会发布可用于独立验证其身份的信息。这些类型的机器人签名可能会被伪造,因此被视为未经验证。

  • awswaf:managed:aws:bot-control:targeted:<additional-details> – 用于机器人控制功能目标保护的特定标签。

  • awswaf:managed:aws:bot-control:signal:<signal-details>awswaf:managed:aws:bot-control:targeted:signal:<signal-details> – 用于在某些情况下提供有关请求的更多信息。

    以下是信号标签的示例。该列表并不完整:

    • awswaf:managed:aws:bot-control:targeted:signal:browser_automation_extension – 指示检测到有助于自动化的浏览器扩展,如 SeleniumIDE。

      只要用户安装了这种类型的扩展,即使他们没有积极使用它,也会添加此标签。如果为此实施标签匹配规则,请注意规则逻辑和操作设置中存在误报的可能性。例如,您可以使用 CAPTCHA 操作代替 Block,或者可以将此标签匹配与其他标签匹配相结合,以增强您对正在使用自动化的信心。

    • awswaf:managed:aws:bot-control:signal:automated_browser – 表示请求包含表明客户端浏览器可能已自动运行的指标。

    • awswaf:managed:aws:bot-control:targeted:signal:automated_browser— 表示请求的 Amazon WAF 令牌包含表明客户端浏览器可能已自动运行的指标。

您可以通过调用 DescribeManagedRuleGroup 从 API 检索一个规则组的所有标签。标签列在响应的 AvailableLabels 属性中。

机器人控制功能托管规则组将标签应用于一组通常允许的可验证机器人。规则组不会阻止这些已验证机器人。如果需要,您可以编写使用机器人控制功能托管规则组所应用的标签的自定义规则,以阻止这些机器人或其中的一部分。有关此项与示例的更多信息,请参阅 Amazon WAF 机器人控制

机器人控制功能规则列表

此部分列出了机器人控制功能规则。

注意

我们为 Amazon 托管规则组中的规则发布的信息旨在为您提供使用规则所需的足够信息,同时不提供不良行为者可能用来规避规则的信息。如果您需要本文档以外的信息,请联系 Amazon Web Services Support 中心

Rule name(规则名称) 描述
CategoryAdvertising

检查是否存在用于广告目的的机器人。例如,您可能会使用第三方广告服务,这些服务需要以编程方式访问您的网站。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:advertising

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryArchiver

检查是否存在用于存档目的的机器人。这些机器人会爬网并捕获内容以创建档案。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:archiver

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryContentFetcher

检查是否存在代表用户访问应用程序网站、获取 RSS feed 等内容或验证您的内容的机器人。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:content_fetcher

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryEmailClient

检查是否存在检查电子邮件中指向应用程序网站的链接的机器人。这可能包括企业和电子邮件提供程序运行的机器人,用于验证电子邮件中的链接并举报可疑电子邮件。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:email_client

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryHttpLibrary

检查机器人从各种编程语言的 HTTP 库中生成的请求。其中可能包括您选择允许或监控的 API 请求。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:http_library

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryLinkChecker

检查是否存在检查断开链接的机器人。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:link_checker

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryMiscellaneous

检查是否存在与其他类别不匹配的其他机器人。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:miscellaneous

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryMonitoring

检查是否存在用于监控目的的机器人。例如,您可以使用机器人监控服务,这些服务会定期对应用程序网站执行 Ping 操作,以监控性能和正常运行时间等信息。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:monitoring

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryScrapingFramework

检查来自网页抓取框架的机器人,这些框架用于自动爬取和从网站提取内容。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:scraping_framework

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategorySearchEngine

检查是否存在搜索引擎机器人,这些机器人会抓取网站以进行内容索引并提供信息以生成搜索引擎结果。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:search_engine

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategorySecurity

检查是否存在扫描 Web 应用程序漏洞或执行安全审核的机器人。例如,您可以使用第三方安全供应商来扫描、监控或审核 Web 应用程序的安全性。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:security

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategorySeo

检查用于搜索引擎优化的机器人。例如,您可以使用搜索引擎工具来抓取您的网站,以帮助您提高搜索引擎排名。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:seo

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategorySocialMedia

检查社交媒体平台是否使用机器人,以便在用户共享您的内容时提供内容摘要。

规则操作,仅适用于未经验证的机器人:Block

标签:awswaf:managed:aws:bot-control:bot:category:social_media

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

CategoryAI

检查是否存在人工智能(AI)机器人。

规则操作:Block

标签:awswaf:managed:aws:bot-control:bot:category:ai

SignalAutomatedBrowser

检查请求中是否显示客户端浏览器可能已自动运行。自动浏览器可用于测试或抓取。例如,您可以使用这些类型的浏览器来监控或验证您的应用程序网站。

规则操作:Block

标签:awswaf:managed:aws:bot-control:signal:automated_browser

SignalKnownBotDataCenter

检查机器人通常使用的数据中心指标。

规则操作:Block

标签:awswaf:managed:aws:bot-control:signal:known_bot_data_center

SignalNonBrowserUserAgent

检查是否存在似乎并非来自 Web 浏览器的用户代理字符串。此类别可以包括 API 请求。

规则操作:Block

标签:awswaf:managed:aws:bot-control:signal:non_browser_user_agent

TGT_VolumetricIpTokenAbsent

检查过去 5 分钟内来自客户端的 5 个或更多不包含有效质询令牌的请求。有关 Amazon WAF 网络请求令牌 令牌的更多信息,请参阅。

注意

如果来自同一客户端的请求最近缺少令牌,则此规则可能会与具有令牌的请求相匹配。

由于延迟,此规则适用的阈值可能略有不同。

此规则对缺失令牌的处理方式与令牌标签不同:awswaf:managed:token:absent。令牌标签会标记没有令牌的单个请求。此规则会为每个客户端 IP 保留缺少令牌的请求计数,并与超过限制的客户端进行匹配。

规则操作,仅适用于未已验证机器人的客户端:Challenge

标签:awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:ip:token_absent

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

TGT_VolumetricSession

检查客户端会话在任意 5 分钟窗口内是否出现异常的大量请求。该评估基于与使用历史交通模式 Amazon WAF 保持的标准体积基线的比较。

仅当 Web 请求具有令牌时,此检查才适用。令牌由应用程序集成软件开发工具包以及规则操作 CAPTCHA 和 Challenge 添加到请求中。有关更多信息,请参阅 Amazon WAF 网络请求令牌

注意

启用后,此规则可能需要 5 分钟才能生效。Bot Control 通过将当前流量与计算的流量基线进行比较来识别网络流量中的异常行为。 Amazon WAF

规则操作,仅适用于未已验证机器人的客户端:CAPTCHA

标签:awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:high

规则组将以下标签应用于高于最低阈值的中流量和较低流量的请求。对于这些级别,无论客户端是否经过验证,该规则都不采取任何行动:awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:mediumawswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:low

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

TGT_SignalAutomatedBrowser

检查请求的令牌,以了解是否有迹象表明客户端浏览器可能已自动运行。有关更多信息,请参阅 令牌特征

仅当 Web 请求具有令牌时,此检查才适用。令牌由应用程序集成软件开发工具包以及规则操作 CAPTCHA 和 Challenge 添加到请求中。有关更多信息,请参阅 Amazon WAF 网络请求令牌

规则操作,仅适用于未已验证机器人的客户端:CAPTCHA

标签:awswaf:managed:aws:bot-control:targeted:signal:automated_browser

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

TGT_SignalBrowserInconsistency

检查浏览器询问数据是否不一致。有关更多信息,请参阅 令牌特征

仅当 Web 请求具有令牌时,此检查才适用。令牌由应用程序集成软件开发工具包以及规则操作 CAPTCHA 和 Challenge 添加到请求中。有关更多信息,请参阅 Amazon WAF 网络请求令牌

规则操作,仅适用于未已验证机器人的客户端:CAPTCHA

标签:awswaf:managed:aws:bot-control:targeted:signal:browser_inconsistency

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

TGT_TokenReuseIp

检查是否存在 5 个以上不同 IP 地址中使用同一令牌的情况。

注意

由于延迟,此规则适用的阈值可能略有不同。在应用规则操作之前,一些请求可能会超出限制。

规则操作:Count

标签:awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:ip

TGT_ML_CoordinatedActivityMediumTGT_ML_CoordinatedActivityHigh

检查是否存在与分布式、协调的机器人活动一致的异常行为。规则级别表示一组请求参与协调攻击的可信度。

注意

仅当规则组配置为使用机器学习 (ML) 时,这些规则才会运行。有关配置此选择的信息,请参阅 将 Amazon WAF Bot Control 托管规则组添加到 Web ACL

Amazon WAF 通过机器学习分析网站流量统计数据来执行此检查。 Amazon WAF 每隔几分钟分析一次网络流量,并优化分析以检测分布在许多 IP 地址上的低强度、持续时间长的机器人。

在确定未进行协调攻击之前,这些规则可能与极少数请求相匹配。因此,如果您只看到一两个匹配项,则结果可能是误报。但是,如果您看到很多符合这些规则的匹配项,那么您可能正在经历协调攻击。

注意

使用 ML 选项启用机器人控制功能定向规则后,这些规则可能需要长达 24 小时才能生效。Bot Control 通过将当前流量与计算出的流量基线进行比较来识别网络流量中的异常行为。 Amazon WAF Amazon WAF 仅在您使用带有 ML 选项的 Bot Control 目标规则时才计算基线,并且最多可能需要 24 小时才能建立有意义的基准。

我们会定期更新这些规则的机器学习模型,以改善机器人预测。如果您发现这些规则所做的机器人预测突然发生重大变化,请联系您的客户经理或在 Center 提起诉Amazon Web Services Support 讼

规则操作,仅适用于未已验证机器人的客户端:

  • 中等: Count

  • High: Count

标签:awswaf:managed:aws:bot-control:targeted:aggregate:coordinated_activity:mediumawswaf:managed:aws:bot-control:targeted:aggregate:coordinated_activity:high

对于已验证机器人,规则组不采取任何行动,但会添加规则标签和标签 awswaf:managed:aws:bot-control:bot:verified

规则组还添加标签 awswaf:managed:aws:bot-control:targeted:aggregate:coordinated_activity:low 以指示低置信度,但它不应用任何规则或对这些请求采取任何操作。