跳至内容

如何使用 AWS WAF 缓解 DDoS 攻击?

4 分钟阅读
0

我想使用 AWS WAF Web 访问控制列表 (Web ACL) 来缓解应用程序层的分布式阻断服务 (DDoS) 攻击。

简短描述

要使用 AWS WAF 作为抵御应用程序层 DDoS 攻击的主要防护手段,请执行以下操作:

  • 使用基于速率的规则
  • 查询 AWS WAF 日志以收集未授权活动的具体信息。
  • 创建地理匹配规则,以阻止来自业务预期范围之外的国家/地区的恶意请求。
  • 创建 IP 集匹配规则以阻止恶意请求。
  • 创建字符串匹配规则以阻止恶意请求。
  • 创建正则表达式匹配规则以阻止恶意请求。
  • 启用机器人控制功能并使用目标防护级别。
  • 使用 Amazon IP 信誉列表托管规则组。

对于基础架构层攻击,请使用 Amazon CloudFront 和弹性负载均衡 (ELB) 等 AWS 服务来提供自动 DDoS 防护。有关详细信息,请参阅 DDoS 弹性的 AWS 最佳实践。您还可以使用 AWS Shield Advanced 自动应用程序层来缓解复杂攻击(3-7 层)。要了解详细信息,请参阅使用 Shield Advanced 自动缓解应用程序层 DDoS

解决方法

使用基于速率的规则

创建基于速率的一揽子规则

使用基于速率的一揽子规则为 IP 地址可以向您的 Web 应用程序发出的请求数量设置阈值。

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  3. 对于 Region(区域),选择您创建了 Web ACL 的 AWS 区域。
    **注意:**如果该 Web ACL 为 Amazon CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. Rules(规则)下,选择 Add Rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  6. 要设置规则,请配置以下值:
    对于 Rule Type(规则类型),选择 Rule builder(规则生成器)。
    对于 Name(名称),输入规则名称。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    **注意:**如果不确定要设置哪种速率限制,请使用规则操作进行计数并监控您的请求模式。然后,根据基准设置速率限制。
    对于 Evaluation window(评估时段),输入 1、2、5 或 10 分钟。
    对于 IP address to use for rate limiting(要用于速率限制的 IP 地址),选择 Source IP address(源 IP 地址)或 IP address in header(标头中的 IP 地址)。
    对于 Rule Action(规则操作),选择 Block(阻止)。
    **注意:**在提交请求速率更改后,AWS WAF 应用或删除规则操作可能会有延迟
    对于 Scope of inspection(检查范围),选择 Consider all requests(考虑所有请求)。
  7. 选择 Add rule(添加规则)。
  8. 选择 Save(保存)。

创建基于速率的自定义键(URI 路径)规则

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  3. 对于 Region(区域),选择您创建了 Web ACL 的区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. Rules(规则)下,选择 Add Rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  6. 要设置规则,请配置以下值:
    对于 Rule Type(规则类型),选择 Rule builder(规则生成器)。
    对于 Name(名称),输入规则名称。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    **注意:**如果不确定要设置哪种速率限制,请使用规则操作进行计数并监控您的请求模式。然后,根据基准设置速率限制。
    对于 Request Aggregation(请求聚合),选择 Custom keys(自定义键)。
    对于 Request aggregation keys(请求聚合键),选择 URI path(URI 路径)。
    对于 Text transformations(文本转换),选择 None(无)。
    对于 Criteria to count request towards rate limit(将请求计入速率限制的条件),选择 Consider all requests(考虑所有请求)。
    对于 Rule Action(规则操作),选择 Block(阻止)。
  7. 选择 Add rule(添加规则)。
  8. 对于 Set Rule Priority(设置规则优先级),选择您的规则,然后更新其优先级。有关详细信息,请参阅在 Web ACL 中设置规则优先级
  9. 选择 Save(保存)。

有关详细信息,请参阅 The three most important AWS WAF rate-based rules(三条最重要的基于速率的 AWS WAF 规则)

查询 AWS WAF 日志以收集未授权活动的具体信息

启用 AWS WAF 日志记录。然后,查询 AWS WAF 日志以调查 DDoS 场景。

您可以使用以下 AWS 服务来查询 AWS WAF 日志:

使用 Amazon Athena 日志解析器或 AWS Lambda 日志解析器

AWS WAF 对基于速率的规则设置了最低可接受的速率限制。如果由于流量较小而无法使用基于速率的规则,或者您需要自定义的阻止周期,请使用 Athena 或 Lambda 中的日志解析器。这两项服务均在 Security Automations for AWS WAF 中可用。

创建地理匹配规则语句,以阻止来自业务预期范围之外的国家/地区的恶意请求

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  3. 对于 Region(区域),选择您创建了 Web ACL 的区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. Rules(规则)下,选择 Add Rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  6. 对于 Name(名称),输入规则名称,然后选择 Regular Rule(常规规则)。
  7. 对于 Request options(请求选项),选择 originates from a country in(源自国家/地区),然后选择要阻止的国家/地区代码。
  8. 对于 Rule action(规则操作),选择 Block(阻止)。
  9. 选择 Add rule(添加规则)。

有关详细信息,请参阅地理匹配规则语句

创建 IP 集匹配规则以阻止来自特定 IP 地址的恶意请求

完成以下步骤:

  1. 创建 IP 集,然后添加要阻止的 IP 地址。
  2. 打开 AWS WAF 控制台
  3. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  4. 对于 Region(区域),选择您创建了 Web ACL 的区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  5. 选择您的 Web ACL。
  6. Rules(规则)下,选择 Add Rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  7. 对于 Name(名称),输入规则名称,然后选择 Regular Rule(常规规则)。
  8. 选择 Create an IP match rule(创建 IP 匹配规则)。
  9. 对于 Request options(请求选项),选择 originates from an IP address in(源自 IP 地址),然后选择您的 IP 集。
  10. 对于 Rule Action(规则操作),选择 Block(阻止)。
  11. 选择 Add Rule(添加规则)。

有关详细信息,请参阅 IP 集匹配规则语句

创建字符串匹配规则语句以阻止恶意请求

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  3. 对于 Region(区域),选择您创建了 Web ACL 的区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. 选择 Create a string match rule(创建字符串匹配规则)。
  6. 要设置规则,请配置以下值:
    对于 Inspect(检查),选择 Header(标头)。
    对于 Header field name(标头字段名称),输入要阻止的机器人在 AWS WAF 日志中显示的名称
    对于 Match Type(匹配类型),选择 Exactly matches string(完全匹配字符串)。
    对于 String to Match(要匹配的字符串),输入要阻止的机器人在 AWS WAF 日志中显示的
    对于 Rule Action(规则操作),选择 Block(阻止)。
  7. 选择 Add Rule(添加规则)。

有关详细信息,请参阅字符串匹配规则语句

创建正则表达式匹配规则语句以阻止恶意请求

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs
  3. 对于 Region(区域),选择您创建了 Web ACL 的区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. 选择 Create a string match rule(创建字符串匹配规则)。
  6. 要设置规则,请配置以下值:
    对于检查,选择 URI 路径
    对于 Match type(匹配类型),选择 Matches regular expression(匹配正则表达式)。
    对于 String to match(要匹配的字符串),输入要阻止的正则表达式。
    对于 Rule Action(规则操作),选择 Block(阻止)。
  7. 选择 Add Rule(添加规则)。

有关详细信息,请参阅正则表达式匹配规则语句

启用机器人控制功能并使用目标防护级别

AWS WAF 机器人控制功能的目标防护级别通过结合使用速率限制、CAPTCHA(验证码)和 Challenge(质询)操作来减少机器人活动。有关目标机器人控制功能定价的信息,请参阅 AWS WAF 定价页面上的“案例 F”。

要启用机器人控制功能和目标防护级别,请完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs(Web ACL)。
  3. 对于 Region(区域),请选择在其中创建了 Web ACL 的 AWS 区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL,然后选择 Add Managed Rule groups(添加托管式规则组)。
  5. AWS Managed Rule groups(AWS 托管式规则组)下,对于 Paid rule groups(付费规则组),启用 Bot Control(机器人控制功能)。
  6. 选择 Edit(编辑),然后在 Inspection level(检查级别)中选择 Targeted(目标)。
  7. 选择 Save Rule(保存规则)。

使用 Amazon IP 信誉列表托管规则组

AmazonIpReputationList 托管规则组利用 Amazon 内部威胁情报来识别主动参与 DDoS 活动的 IP 地址。

要启用 Amazon IP 信誉列表托管规则组,请完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs(Web ACL)。
  3. 对于 Region(区域),请选择在其中创建了 Web ACL 的 AWS 区域。
    **注意:**如果该 Web ACL 为 CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL,然后选择 Add Managed Rule groups(添加托管式规则组)。
  5. AWS Managed Rule groups(AWS 托管式规则组)下,选择 AmazonIpReputationList
  6. 选择 Save Rule(保存规则)。
AWS 官方已更新 5 个月前