

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

# 组件详细信息
<a name="component-details"></a>

如[架构图](architecture-overview.md#architecture-diagram)所述，该解决方案的四个组件使用自动化来检查 IP 地址并将其添加到 AWS WAF 阻止列表中。以下各节将更详细地解释其中的每一个组件。

## 日志解析器-应用程序
<a name="log-parser--application"></a>

应用程序日志解析器有助于防范扫描器和探测器。

 **应用程序日志解析器流程。**

![\[应用程序日志解析器流程\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/security-automations-for-aws-waf/images/app-log-parser-flow.png)


1. 当 CloudFront 或 ALB 代表您的 Web 应用程序收到请求时，它会将访问日志发送到 Amazon S3 存储桶。

   1. （可选）如果您`Yes - Amazon Athena log parser`为模板参数选择 “**激活 HTTP 防洪保护**” 和 “**激活扫描器和探测器保护**”，Lambda 函数会在访问日志到达 Amazon S3 后将其从其原始文件夹*<customer-bucket>*`/AWSLogs`移动到新分区的文件夹 *<customer-bucket>* `/AWSLogs-partitioned/` *<optional-prefix>* `/year=` *<YYYY>* `/month=` *<MM>* `/day=` *<DD>* `/hour=` *<HH>* /中。

   1. （可选）如果您选择`yes`**将数据保留在原始 S3 位置**模板参数，则日志将保留在原始位置并复制到其分区文件夹，从而复制您的日志存储。
**注意**  
对于 Athena 日志解析器，此解决方案仅在您部署此解决方案后对到达您的 Amazon S3 存储桶的新日志进行分区。如果您要对现有日志进行分区，则必须在部署此解决方案后手动将这些日志上传到 Amazon S3。

1. 根据您选择的模板参数 “**激活 HTTP 防洪保护**” 和 “**激活扫描仪和探测器保护**”，此解决方案使用以下方法之一来处理日志：

   1.  **Lambda**-每次在 Amazon S3 存储桶中存储新的访问日志时，都会启动 Lambda `Log Parser` 函数。

   1.  **Athena**-默认情况下，**扫描器和探测保护** Athena 查询每五分钟运行一次，输出将推送到 AWS WAF。此过程由事件启动，该 CloudWatch 事件启动负责运行 Athena 查询的 Lambda 函数，并将结果推送到 AWS WAF。

1. 该解决方案分析日志数据，以确定产生比定义配额更多的错误的 IP 地址。然后，该解决方案会更新 AWS WAF IP 设置条件，以便在客户定义的时间段内屏蔽这些 IP 地址。

## 日志解析器-AWS WAF
<a name="log-parser--aws-waf"></a>

如果您`yes - Amazon Athena log parser`为 “**激活 HTTP 防洪保护**” 选择`yes - AWS Lambda log parser`或，则此解决方案会预配置以下组件，这些组件会解析 AWS WAF 日志，以识别和阻止请求速率大于您定义的配额的终端节点的来源。

 **AWS WAF 日志解析器流程。**

![\[waf 日志解析器流程\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/security-automations-for-aws-waf/images/waf-log-parser-flow.png)


1. 当 AWS WAF 收到访问日志时，它会将日志发送到 Firehose 终端节点。然后 Firehose 将日志传送到亚马逊 S3 中名为的分区存储桶 *<customer-bucket>* `/AWSLogs/` *<optional-prefix>* `/year=` *<YYYY>* `/month=` *<MM>* `/day=` *<DD>* `/hour=` *<HH>* `/` 

1. 根据您选择的模板参数 “**激活 HTTP 防洪保护**” 和 “**激活扫描仪和探测器保护**”，此解决方案使用以下方法之一来处理日志：

   1.  **Lambda**：每次在 Amazon S3 存储桶中存储新的访问日志时，都会启动 Lambda `Log Parser` 函数。

   1.  **Athena**：默认情况下，每五分钟运行一次扫描器和探测器 Athena 查询，并将输出推送到 AWS WAF。此过程由亚马逊 CloudWatch 事件启动，然后启动负责执行亚马逊 Athena 查询的 Lambda 函数，并将结果推送到 AWS WAF。

1. 该解决方案分析日志数据，以确定发送的请求数超过定义配额的 IP 地址。然后，该解决方案会更新 AWS WAF IP 设置条件，以便在客户定义的时间段内屏蔽这些 IP 地址。

## 日志解析器-Bad bot
<a name="log-parser--badbot"></a>

Bad bot 日志解析器会检查向 honeypot 端点发出的请求以提取其源 IP 地址。

 **机器人日志解析器流程不正确。**

![\[badbot 日志解析器流程\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/security-automations-for-aws-waf/images/badbot-log-parser-flow.png)


1. 如果`Bad Bot Protection`已激活并禁用 HTTP 洪水防护和扫描器和探测器保护功能：系统将使用 Log Lambda 解析器，该解析器基于 [WA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html) F 标签筛选器仅记录错误的机器人请求。

1. Lambda 函数拦截并检查请求标头，以提取访问陷阱端点的源的 IP 地址。

1. 该解决方案分析日志数据，以确定发送的请求数超过定义配额的 IP 地址。然后，该解决方案会更新 AWS WAF IP 设置条件，以便在客户定义的时间段内屏蔽这些 IP 地址。

## IP 列表解析器
<a name="ip-lists-parser"></a>

`IP Lists Parser`Lambda 函数有助于抵御第三方 IP 信誉列表中识别的已知攻击者。

 **IP 声誉列出了解析器流程。**

![\[IP 信誉列表流程\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/security-automations-for-aws-waf/images/ip-reputation-lists-flow.png)


1. 每小时一次的亚马逊 CloudWatch 事件会调用 Lambda 函数`IP Lists Parser`。

1. Lambda 函数从三个来源收集和解析数据：
   + Spamhaus DROP 和 EDROP 列表
   + Proofpoint 新兴威胁 IP 列表
   + Tor 退出节点列表

1. Lambda 函数使用当前 IP 地址更新 AWS WAF 阻止列表。