

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

# 在 AWS WAF 上使用安全自动化功能自动部署单个 Web 访问控制列表，过滤基于 Web 的攻击
<a name="solution-overview"></a>

AWS WAF 安全自动化解决方案部署了一组预配置的规则，以帮助您保护应用程序免受常见 Web 漏洞的侵害。该解决方案的核心服务 [AWS WAF](https://aws.amazon.com/waf/) 可帮助保护 Web 应用程序免受可能影响应用程序可用性、危及安全性或消耗过多资源的攻击技术的侵害。您可以使用 AWS WAF 来定义可自定义的 Web 安全规则。这些规则控制允许或阻止部署在 A [mazon CloudFront](https://aws.amazon.com/cloudfront/)、Application Loa [d Balancer (ALBAPIs) 等 AWS 资源上的 Web 应用程序和应用程序](https://aws.amazon.com/elasticloadbalancing/applicationloadbalancer/)编程接口 () 的流量。有关更多支持的资源类型，请参阅 [AWS WAF、AWS](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) Fi *rewall Manager 和 AWS Shield 高级开发人员指南中的 AWS WAF*。

配置 AWS WAF 规则对大型和小型组织来说都可能具有挑战性和负担，特别是对于那些没有专门安全团队的组织而言。为了简化此过程，AWS WAF 安全自动化解决方案会自动部署一个 Web 访问控制列表 (ACL)，其中包含一组旨在过滤常见基于 Web 的攻击的 AWS WAF 规则。在初始配置此解决方案的 [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 模板时，您可以指定要包括哪些保护功能。部署此解决方案后，AWS WAF 会检查向其现有 CloudFront 分配或 ALB 发出的网络请求，并在适用时将其阻止。

 ** CloudFormation 模板部署带有 AWS WAF 筛选规则的 Web ACL。**

![\[配置 Web acl\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/security-automations-for-aws-waf/images/configuration-web-acl.png)


本实施指南讨论了在 Amazon Web Services (AWS) 云中部署此解决方案的架构注意事项、配置步骤和最佳操作实践。它包括指向 CloudFormation 模板的链接，这些模板使用 AWS 在安全和可用性方面的最佳实践，启动、配置和运行在 AWS 上部署此解决方案所需的 AWS 安全、计算、存储和其他服务。

本指南中的信息假设您熟悉 AWS 服务，例如 AWS WAF、 CloudFront ALBs、和 AWS Lamb [da](https://aws.amazon.com/lambda/)。它还需要对常见的基于 Web 的攻击和缓解策略有基本的了解。

**注意**  
[从版本 3.0.0 开始，此解决方案支持最新版本的 AWS WAF 服务 API (AWS)。 WAFV2](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html)

本指南适用于 IT 经理、安全工程师、 DevOps 工程师、开发人员、解决方案架构师和网站管理员。

**注意**  
我们建议使用此解决方案作为实施 AWS WAF 规则的起点。您可以根据需要自定义[源代码](https://github.com/aws-solutions/aws-waf-security-automations)、添加新的自定义规则并利用更多 [AWS WAF 托管规则](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html)。

使用以下导航表可快速找到这些问题的答案：


| 如果您想. . . | 阅读. . . | 
| --- | --- | 
|  了解运行此解决方案的成本。运行此解决方案的总成本取决于激活的保护以及摄取、存储和处理的数据量。  |   [成本](cost.md)   | 
|  了解此解决方案的安全注意事项。  |   [安全性](security.md)   | 
|  了解此解决方案支持哪些 AWS 区域。  |   [支持的 AWS 区域](plan-your-deployment.md#supported-aws-regions)   | 
|  查看或下载此解决方案中包含的 CloudFormation 模板，以自动部署此解决方案的基础架构资源（“堆栈”）。  |   [AWS CloudFormation 模板](aws-cloudformation-templates.md)   | 
|  使用 Support 来帮助您部署、使用解决方案或对其进行故障排除。  |   [支持](contact-aws-support.md)   | 
|  访问源代码并选择使用 AWS Cloud Development Kit (AWS CDK) 来部署解决方案  |   [GitHub 存储库](https://github.com/aws-solutions/aws-waf-security-automations/)   | 

# 功能和优势
<a name="features-and-benefits"></a>

AWS WAF 安全自动化解决方案提供以下功能和优势。

## 使用 AWS 托管规则规则组保护您的 Web 应用程序
<a name="secure-web-apps"></a>

 适用@@ [于 AWS WAF 的 AWS 托管规则](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups.html)提供针对常见应用程序漏洞或其他有害流量的保护。该解决方案包括 [AWS 托管 IP 信誉规则组](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html)、[AWS 托管基准规则组](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html)和 [AWS 托管用例特定规则](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html)组。您可以选择为 Web ACL 选择一个或多个规则组，最高不超过 Web ACL 容量单位 (WCU) 的最大配额。

## 使用预定义的 HTTP Flood 自定义规则提供第 7 层洪水防护
<a name="layer-7"></a>

**HTTP Floo** d 自定义规则可在客户定义的时间段内防御 Web 层分布式 Denial-of-Service (DDoS) 攻击。您可以选择以下选项之一来激活此规则：
+ AWS WAF 基于费率的规则
+ Lambda 日志解析器
+  [亚马逊 Athena 日志解](https://aws.amazon.com/athena/)析器

Lambda 日志解析器或 Athena 日志解析器选项允许您定义小于 100 的请求配额。这种方法可以帮助您不达到 AWS WAF 基于费[率](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-rate-based.html)的规则所要求的配额。有关更多信息，请参阅[日志解析器选项](log-parser-options.md)。

您还可以通过在筛选条件中添加国家/地区和统一资源标识符 (URI) 来增强 Athena 日志解析器。这种方法可以识别并阻止具有不可预测的 URI 模式的 HTTP 洪水攻击。有关更多信息，请参阅[在 HTTP Flood Athena 日志解析器中使用国家/地区和 URI](use-country-and-uri-in-http-flood-athena-log-parser.md)。

## 使用预定义的扫描器和探测器自定义规则阻止对漏洞的利用
<a name="block-with-scanners-and-probes"></a>

S **canners &** Probes 自定义规则解析应用程序访问日志，搜索可疑行为，例如源生成的异常错误。然后，它会在客户定义的一段时间内屏蔽这些可疑的源 IP 地址。您可以选择以下选项之一来激活此规则：Lambda 日志解析器或 Athena 日志解析器。有关更多信息，请参阅[日志解析器选项](log-parser-options.md)。

## 使用预定义的 Bad Bot 自定义规则检测和转移入侵
<a name="detect-and-deflect"></a>

Ba **d Bot** 自定义规则设置了 honeypot 端点，这是一种旨在引诱和转移未遂攻击的安全机制。您可以在网站中插入端点，以检测来自内容抓取工具和恶意机器人的入站请求。一旦检测到，来自相同来源的任何后续请求都将被阻止。有关更多信息，请参阅[在您的 Web 应用程序中嵌入 Honeypot 链接](embed-the-honeypot-link-in-your-web-application-optional.md)。

## 使用预定义 IP 信誉屏蔽恶意 IP 地址列表自定义规则
<a name="block-ip"></a>

**IP 信誉列表**自定义规则每小时都会检查第三方 IP 信誉列表，寻找要屏蔽的新 IP 范围。[这些列表包括 [Spamhaus](https://www.spamhaus.org/drop/) Don't Route Or Peer (DROP) 和 Extended DROP (EDROP) 列表、Proofpoint [新兴威胁 IP 列表和 Tor 退出节点列表](https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt)。](https://check.torproject.org/exit-addresses)

## 使用预定义的允许和拒绝 IP 列表自定义规则，提供手动 IP 配置
<a name="manual-ip"></a>

**允许和拒绝的 IP 列表**自定义规则允许您手动插入要允许或拒绝的 IP 地址。您还可以将 “[允许” 和 “拒绝 IP” 列表上的 IP 保留](configure-ip-retention-on-allowed-and-denied-aws-waf-ip-sets.md)配置为 IPs 在设定的时间过期。

## 创建自己的监控控制面板
<a name="dashboard-ip"></a>

此解决方案会发布 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 指标，例如允许的请求、已阻止的请求和其他相关指标。您可以构建自定义控制面板来可视化这些指标，并深入了解 AWS WAF 提供的攻击模式和保护。有关更多信息，请参阅[生成监控面板](build-monitoring-dashboard.md)。

# 使用案例
<a name="use-cases"></a>

以下是使用此解决方案的示例用例。您可以通过创新的方式自定义此解决方案，而不仅限于此列表。

 **自动设置 AWS WAF 规则** 

AWS WAF 可保护您的 Web 应用程序免受常见攻击；但是，设置 AWS WAF 规则可能既复杂又耗时。为了帮助您，此解决方案会自动使用模板将一组 AWS WAF 规则部署到您的账户。 CloudFormation 这样，您就无需自己配置 AWS WAF 规则，而且可以更快地开始使用 AWS WAF。

 **自定义第 7 层 HTTP 洪水防护** 

此解决方案提供了三个激活 HTTP 洪水防护的选项。您可以选择适合自己需求的选项，以获得防御 DDo S 攻击的保护。有关更多信息，请参阅 “[功能和优势](features-and-benefits.md)” 中的 “**使用预定义的 HTTP Flood 自定义规则提供第 7 层洪水防护**”。

 **利用源代码来应用自定义或构建自己的安全自动化** 

此解决方案提供了一个示例，说明如何使用 AWS WAF 和其他服务在 AWS 云上构建安全自动化。它的[开源代码 GitHub](https://github.com/aws-solutions/aws-waf-security-automations)使您可以方便地应用自定义设置或构建适合自己需求的安全自动化。

# 概念和定义
<a name="concepts-and-definitions"></a>

本节介绍关键概念，并定义了该解决方案特有的术语。

 **ALB 日志** 

此解决方案使用 ALB 资源的日志。此解决方案中的**扫描仪和探测器保护**规则会检查这些日志。

 **Athena 日志解析器** 

Amazon Athena 是一项基于开源框架的无服务器交互式分析服务，支持开放表和文件格式。此解决方案运行定时的 Athena 查询，以检查 AWS W CloudFront AF 或 ALB 日志（如果用户在激活 **HTTP 洪水**防护规则**或扫描器和探测器**保护规则时`yes - Amazon Athena log parser`选择），并且**可用于通过结构化逻辑链运行的检测来激活恶意机器人**防护。

 **AWS WAF 规则** 

AWS WAF 规则定义了：
+ 如何检查 HTTP (S) 网络请求
+ 当请求符合检查标准时要采取的操作

规则只能在规则组或 Web ACL 的上下文中进行定义。

 **CloudFront 日志** 

此解决方案使用 CloudFront 资源日志。此解决方案中的**扫描仪和探测器保护**规则会检查这些日志。

 **IP 套装** 

IP 集提供您要使用的 IP 地址和 IP 地址范围的集合

一起写在规则声明中。IP 集是 AWS 资源。

 **Lambda 日志解析器** 

[此解决方案运行由亚马逊[简单存储服务 (Ama](https://aws.amazon.com/s3/) zon S3) 对象创建事件调用的 Lambda 函数。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html)如果用户在激活 **HTTP 洪水防护、**扫描器和探测器**保护`yes - AWS Lambda log parser`**时选择 CloudFront，Lambda 函数会启动对 AWS WAF 或 ALB 日志的检查，并且可以通过通过结构化逻辑链运行的检测来执行**恶意机器人保护**规则。

 **托管规则组** 

托管规则组是 AWS 和 AWS Marketplace 卖家为您编写和维护的预定义 ready-to-use规则的集合。[AWS WAF 定价](https://aws.amazon.com/waf/pricing/)适用于您对任何托管规则组的使用。

 **资源/端点类型** 

您可以将 AWS 资源与 Web 关联 ACLs 以保护它们。这些资源是 ALB、AWS CloudFront、[AWS AppSync、A](https://aws.amazon.com/appsync/) [mazon](https://aws.amazon.com/cognito/) Cognito、[AWS App](https://aws.amazon.com/apprunner/) Runner 和 [AWS 验证访问](https://aws.amazon.com/verified-access/)资源。目前，Amazon 支持该解决方案 CloudFront 和 ALB。

 **WAF 日志** 

此解决方案使用 AWS WAF 生成的日志来存储与 Web ACL 关联的资源。此解决方案的 **HTTP 洪水防**护、**扫描器和探测器保护****以及激活恶意机器人保护**规则会检查这些日志。

 **WCU** 

AWS WAF 使用 Web 访问控制列表 (ACLWCUs) 容量单位 () 来计算和控制运行规则、规则组和 Web 所需的操作资源。 ACLs当您配置规则组和网络时，AWS WAF 会强制执行 WCU 配额。 ACLs WCUs 不影响 AWS WAF 检查网络流量的方式。

 **Web ACL** 

Web ACL 可让您精细控制受保护资源响应的 HTTP (S) Web 请求。

**注意**  
有关 AWS 术语的一般参考，请参阅 [AWS 术语表](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html)。