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

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

Amazon WAF机器人控制规则组

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

Bot Control 托管规则组提供用于阻止和管理来自机器人的请求的规则。机器人可能会消耗多余的资源,歪曲业务指标,造成停机并执行恶意活动。

保护级别

Bot Control 托管规则组提供两种保护级别供您选择:

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

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

注意

你也可以通过以下方式获得速率限制Amazon WAF基于费率的规则声明。要进行比较,请参见基于速率的规则和目标机器人控制规则中的速率限制选项

使用此规则组

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

注意

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

为了降低成本并确保按自己的意愿管理网络流量,请按照以下指南使用此规则组智能威胁缓解的最佳实践

机器人控制规则组不提供版本控制或 SNS 更新通知。

代币标签

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

Amazon WAF在检查 Web 请求的令牌和质询时间戳时应用以下标签之一。Amazon WAF不添加有关 CAPTCHA 时间戳状态的标签。

  • awswaf:managed:token:accepted— 请求令牌存在且挑战时间戳未过期。

  • awswaf:managed:token:rejected— 请求令牌存在但要么已损坏,要么挑战时间戳已过期。

  • awswaf:managed:token:absent— 请求没有令牌。

有关更多信息,请参阅Amazon WAF网络请求令牌

机器人控制标签

Bot Control 托管规则组生成带有命名空间前缀的标签awswaf:managed:aws:bot-control:其次是自定义命名空间和标签名称。规则组可能会向请求添加多个标签。

每个标签都反映了机器人控制规则的调查结果:

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

    • awswaf:managed:aws:bot-control:bot:name:<name>— 机器人名称(如果有),例如自定义命名空间bot:name:slurpbot:name:googlebot,以及bot:name:pocket_parser

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

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

    • awswaf:managed:aws:bot-control:bot:verified— 用于表示已验证的机器人。这用于常见的理想机器人,与类别标签结合使用时可能很有用bot:category:search_engine或者像这样的名字标签bot:name:googlebot

      注意

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

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

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

  • awswaf:managed:aws:bot-control:signal:<signal-details>— 用于表示未更常用或未经过验证的机器人的请求属性。

  • awswaf:managed:aws:bot-control:targeted:<additional-details>— 由 Bot Control 有针对性的保护使用。

    • awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:ip— 表示在超过 5 个不同的 IP 地址中使用单个标记。由于延迟,此规则适用的阈值可能会略有不同。在应用标签之前,一些请求可能会超过限制。

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

Bot Control 托管规则组将标签应用于一组通常允许的可验证机器人。规则组不会屏蔽这些经过验证的机器人,也不应用任何机器人signal:标签。如果需要,您可以通过编写使用 Bot Control 托管规则组应用的标签的自定义规则来阻止它们或其中的一部分。有关这方面的更多信息以及示例,请参阅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

检查是否有代表用户获取内容的机器人。

规则操作,仅适用于未经验证的机器人: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 库。

规则操作,仅适用于未经验证的机器人: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

检查用于监控目的的机器人。

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

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

对于经过验证的机器人,规则组不执行任何操作,但会添加规则标签和标签awswaf:managed:aws:bot-control:bot:verified

CategoryScrapingFramework

检查 Web 抓取框架。

规则操作,仅适用于未经验证的机器人: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

检查是否存在与安全相关的机器人。

规则操作,仅适用于未经验证的机器人: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

SignalAutomatedBrowser

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

规则操作:Block

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

SignalKnownBotDataCenter

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

规则操作:Block

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

SignalNonBrowserUserAgent

检查似乎不是来自 Web 浏览器的用户代理字符串。

规则操作:Block

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

TGT_VolumetricIpTokenAbsent

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

注意

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

此规则处理丢失的令牌与令牌标签的处理方式不同:awswaf:managed:token:absent。令牌标签会标记没有令牌的单个请求。该规则保留了每个客户端会话中缺少令牌的请求的数量,并与超过限制的客户端进行匹配。如果来自同一客户端的请求最近缺少令牌,则此规则可能与带有令牌的请求相匹配。

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

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

对于经过验证的机器人,规则组不执行任何操作,但会添加规则标签和标签awswaf:managed:aws:bot-control:bot:verified

这条规则与代币标签不同:awswaf:managed:token:absent,它只是标记没有令牌的单个请求。该规则保留了每个客户端会话中缺少其令牌的请求的数量,并对超过限制的未经验证的机器人采取行动。

TGT_VolumetricSession

检查来自客户端会话的请求数量是否异常多。该评估基于与标准体积基线的比较Amazon WAF继续使用历史交通模式。

此检查仅在 Web 请求有令牌时适用。令牌由应用程序集成 SDK 和规则操作添加到请求中CAPTCHA和Challenge。有关更多信息,请参阅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 请求有令牌时适用。令牌由应用程序集成 SDK 和规则操作添加到请求中CAPTCHA和Challenge。有关更多信息,请参阅Amazon WAF网络请求令牌

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

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

对于经过验证的机器人,规则组不执行任何操作,但会添加规则标签和标签awswaf:managed:aws:bot-control:bot:verified

TGT_SignalBrowserInconsistency

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

此检查仅在 Web 请求有令牌时适用。令牌由应用程序集成 SDK 和规则操作添加到请求中CAPTCHA和Challenge。有关更多信息,请参阅Amazon WAF网络请求令牌

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

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

对于经过验证的机器人,规则组不执行任何操作,但会添加规则标签和标签awswaf:managed:aws:bot-control:bot:verified