将 ACFP 托管规则组添加到您的 web ACL - AWS WAF、 AWS Firewall Manager AWS Shield Advanced、和 AWS Shield 网络安全总监

引入全新的主机体验 AWS WAF

现在,您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息,请参阅使用控制台

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

将 ACFP 托管规则组添加到您的 web ACL

本节介绍了如何添加和配置 AWSManagedRulesACFPRuleSet 规则组。

要将 ACFP 托管规则组配置为识别 web 流量中的账户创建欺诈活动,您需要提供有关客户端如何访问您的注册页面以及如何向您的应用程序发送账户创建请求的信息。对于受保护的 Amazon CloudFront 分配,您还需要提供有关您的应用程序如何响应账户创建请求的信息。此配置是对托管规则组的常规配置的补充。

有关规则组的描述和规则列表,请参阅 AWS WAF 欺诈控制账户创建防作弊 (ACFP) 规则组

注意

ACFP 被盗凭证数据库仅包含电子邮件格式的用户名。

本指南适用于一般了解如何创建和管理 AWS WAF 保护包 (Web ACLs)、规则和规则组的用户。这些主题将在本指南的前面章节中介绍。有关如何将托管规则组添加到保护包(web ACL)的基本信息,请参阅 通过控制台向保护包(web ACL)添加托管规则组

遵循最佳实践

按照 中智能缓解威胁的最佳实践 AWS WAF 中的最佳实践使用 ACFP 规则组。

在保护包(web ACL)中使用 AWSManagedRulesACFPRuleSet 规则组
  1. 将 AWS 托管规则组AWSManagedRulesACFPRuleSet添加到您的保护包(Web ACL)中,并在保存之前编辑规则组设置。

    注意

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

  2. 规则组配置窗格中,提供 ACFP 规则组用于检查账户创建请求的信息。

    1. 对于 “在路径中使用正则表达式”,如果您 AWS WAF 想对注册和账户创建页面路径规范执行正则表达式匹配,请将其选中。

      AWS WAF 支持 PCRE 库使用的模式语法,但libpcre有一些例外。该库记录在 PCRE:与 Perl 兼容的正则表达式中。有关 AWS WAF 支持的信息,请参阅中支持的正则表达式语法 AWS WAF

    2. 对于注册页面路径,请提供应用程序的注册页面端点路径。此页面必须接受 GET text/html 请求。规则组仅检查发往您指定的注册页面端点的 HTTP GET text/html 请求。

      注意

      端点的匹配不区分大小写。正则表达式规范不得包含标志 (?-i),该标志会禁用不区分大小写的匹配。字符串规范必须以正斜杠 / 开头。

      例如,对于 URL https://example.com/web/registration,您可以提供字符串路径规范 /web/registration。以您提供的路径开头的注册页面路径被视为匹配路径。例如,/web/registration 匹配注册路径 /web/registration/web/registration//web/registrationPage/web/registration/thisPage,但与路径 /home/web/registration/website/registration 不匹配。

      注意

      确保您的最终用户在提交账户创建请求之前加载注册页面。这有助于确保来自客户端的账户创建请求包括有效的令牌。

    3. 对于账户创建路径,请在您的网站上提供接受已完成的新用户详细信息的 URI。此页面必须接受 POST 请求。

      注意

      端点的匹配不区分大小写。正则表达式规范不得包含标志 (?-i),该标志会禁用不区分大小写的匹配。字符串规范必须以正斜杠 / 开头。

      例如,对于 URL https://example.com/web/newaccount,您可以提供字符串路径规范 /web/newaccount。以您提供的路径开头的账户创建路径被视为匹配路径。例如,/web/newaccount 匹配账户创建路径 /web/newaccount/web/newaccount//web/newaccountPage/web/newaccount/thisPage,但与路径 /home/web/newaccount/website/newaccount 不匹配。

    4. 对于请求检查,请提供请求负载类型以及请求正文中提供用户名、密码和其他账户创建详细信息的字段名称,从而指定您的应用程序如何接受账户创建尝试。

      注意

      对于主要地址和电话号码字段,请按照它们在请求负载中的显示顺序提供字段。

      字段名称的指定取决于有效载荷类型。

      • JSON 负载类型:使用 JSON 指针语法指定字段名称。有关 JSON 指针语法的信息,请参阅互联网工程任务组 (IETF) 文档JavaScript对象表示法 (JSON) 指针

        例如,对于以下 JSON 负载示例,用户名字段规范为 /signupform/username,主地址字段规范为 /signupform/addrp1/signupform/addrp2/signupform/addrp3

        { "signupform": { "username": "THE_USERNAME", "password": "THE_PASSWORD", "addrp1": "PRIMARY_ADDRESS_LINE_1", "addrp2": "PRIMARY_ADDRESS_LINE_2", "addrp3": "PRIMARY_ADDRESS_LINE_3", "phonepcode": "PRIMARY_PHONE_CODE", "phonepnumber": "PRIMARY_PHONE_NUMBER" } }
      • FORM_ENCODED 有效负载类型:使用 HTML 表单名称。

        例如,对于用户和密码输入元素名为 username1password1 的 HTML 表单,用户名字段规范为 username1,密码字段规范为 password1

    5. 如果您要保护 Amazon CloudFront 分销,请在 “响应检查” 下,指定您的应用程序在响应账户创建尝试时如何指示成功或失败。

      注意

      ACFP 响应检查仅在保护 CloudFront 发行版的保护包 (Web ACLs) 中可用。

      在账户创建响应中指定您希望 ACFP 检查的单个组件。对于 B odyJSON 组件类型, AWS WAF 可以检查组件的前 65,536 字节 (64 KB)。

      如界面所示,提供组件类型的检查条件。您必须提供成功和失败条件以供在组件中进行检查。

      例如,假设您的应用程序在响应的状态码中指示账户创建尝试的状态,并使用 200 OK 指示成功,使用 401 Unauthorized403 Forbidden 指示失败。您可以将响应检查组件类型设置为状态码,然后在成功文本框中输入 200,并在失败文本框的第一行输入 401,在第二行输入 403

      ACFP 规则组仅计算符合您的成功或失败检查条件的响应。当客户在计入的响应中成功率太高时,规则组规则会对客户端采取行动,以减少批量创建账户的尝试。为了确保规则组规则的行为准确,请务必提供成功和失败的账户创建尝试的完整信息。

      要查看检查账户创建响应的规则,请在 AWS WAF 欺诈控制账户创建防作弊 (ACFP) 规则组 中的规则列表中查找 VolumetricIPSuccessfulResponseVolumetricSessionSuccessfulResponse

  3. 为规则组提供所需的任何其他配置。

    您可以通过在托管规则组语句中添加范围缩小语句来进一步限制规则组检查的请求范围。例如,您只能检查带有特定查询参数或 Cookie 的请求。规则组将仅检查与您的范围缩小语句中的条件相匹配且发送到您在规则组配置中指定的账户注册和账户创建路径的请求。有关范围缩小语句的信息,请参阅 在中使用范围缩小语句 AWS WAF

  4. 保存对保护包(web ACL)的更改。

在为生产流量部署 ACFP 实施之前,请在暂存或测试环境中对其进行测试和调整,直到您能够适应对流量的潜在影响。然后,在启用之前,在计数模式下使用生产流量对规则进行测试和调整。有关指导,请参阅以下部分。