

# コンポーネントの詳細
<a name="component-details"></a>

[アーキテクチャの図](architecture-overview.md#architecture-diagram)で説明した通り、このソリューションの 4 つのコンポーネントはオートメーションを使用して IP アドレスを検査し、AWS WAF ブロックリストに追加します。次のセクションでは、これらの各コンポーネントについて詳しく説明します。

## ログパーサー – アプリケーション
<a name="log-parser--application"></a>

アプリケーションログパーサーは、スキャナーとプローブから保護するのに役立ちます。

 **アプリケーションログパーサーフロー。**

![\[アプリログパーサーフロー\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/security-automations-for-aws-waf/images/app-log-parser-flow.png)


1. CloudFront または ALB がウェブアプリケーションに代わってリクエストを受信すると、アクセスログを Amazon S3 バケットに送信します。

   1. (オプション) **[Activate HTTP Flood Protection]** と **[Activate Scanner & Probe Protection]** テンプレートパラメータで `Yes - Amazon Athena log parser` を選択すると、Lambda 関数はアクセスログが Amazon S3 に到着した時点で元のフォルダ *<customer-bucket>* `/AWSLogs` から新しくパーティション分割されたフォルダ *<customer-bucket>* `/AWSLogs-partitioned/` *<optional-prefix>* `/year=` *<YYYY>* `/month=` *<MM>* `/day=` *<DD>* `/hour=` *<HH>*/ に移動します。

   1. (オプション) **Keep Data in Original S3 location** テンプレートパラメータで [`yes`] を選択すると、ログは元の場所に残り、パーティション分割されたフォルダにコピーされ、ログストレージが複製されます。
**注記**  
Athena ログパーサーの場合、このソリューションは、このソリューションのデプロイ後に Amazon S3 バケットに到着する新しいログのみをパーティション分割します。パーティション分割したい既存のログがある場合は、このソリューションをデプロイした後、これらのログを手動で Amazon S3 にアップロードする必要があります。

1. **Activate HTTP Flood Protection** と **Activate Scanner & Probe Protection** のテンプレートパラメータでの選択に基づいて、このソリューションは次のいずれかを使用してログを処理します。

   1.  **Lambda** – 新しいアクセスログが Amazon S3 バケットに保存されるたびに、`Log Parser` Lambda 関数が開始されます。

   1.  **Athena** – デフォルトでは、**Scanner & Probe Protection** Athena クエリが 5 分ごとに実行され、出力が AWS WAF にプッシュされます。このプロセスは CloudWatch イベントによって開始されます。このイベントは Athena クエリの実行を担当する Lambda 関数を開始し、その結果を AWS WAF にプッシュします。

1. このソリューションは、ログデータを分析して、定義されたクォータよりも多くのエラーを生成した IP アドレスを特定します。次に、このソリューションは AWS WAF IP セット条件を更新して、お客様が定義した期間、それらの IP アドレスをブロックします。

## ログパーサー – AWS WAF
<a name="log-parser--aws-waf"></a>

**Activate HTTP Flood Protection** で [`yes - AWS Lambda log parser`] または [`yes - Amazon Athena log parser`] を選択すると、このソリューションは次のコンポーネントをプロビジョニングします。これらのコンポーネントは AWS WAF ログを解析して、定義したクォータを超えるリクエストレートでエンドポイントをフラッドするオリジンを識別してブロックします。

 **AWS WAF ログパーサーフロー。**

![\[WAF ログパーサーフロー\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/security-automations-for-aws-waf/images/waf-log-parser-flow.png)


1. AWS WAF はアクセスログを受信すると、ログを Firehose エンドポイントに送信します。その後、Firehose は Amazon S3 内のパーティション分割されたバケット *<customer-bucket>* `/AWSLogs/` *<optional-prefix>* `/year=` *<YYYY>* `/month=` *<MM>* `/day=` *<DD>* `/hour=` *<HH>* `/` にログを配信します。

1. **Activate HTTP Flood Protection** と **Activate Scanner and Probe Protection** のテンプレートパラメータでの選択に基づいて、このソリューションは次のいずれかを使用してログを処理します。

   1.  **Lambda**: 新しいアクセスログが Amazon S3 バケットに保存されるたびに、`Log Parser` Lambda 関数が開始されます。

   1.  **Athena:** デフォルトで、スキャナーとプローブの Athena クエリが 5 分ごとに実行され、その出力が AWS WAF にプッシュされます。このプロセスは、Amazon CloudWatch イベントによって開始され、その後 Amazon Athena クエリの実行を担当する Lambda 関数が開始され、その結果が AWS WAF にプッシュされます。

1. このソリューションは、ログデータを分析して、定義されたクォータよりも多くのリクエストを送信した IP アドレスを特定します。次に、このソリューションは AWS WAF IP セット条件を更新して、お客様が定義した期間、それらの IP アドレスをブロックします。

## ログパーサー - 不正なボット
<a name="log-parser--badbot"></a>

不正なボットのログパーサーは、ハニーポットエンドポイントへのリクエストを検査して、不正なボットの送信元 IP アドレスを抽出します。

 **不正なボットのログパーサーフロー。**

![\[不正なボットのログパーサーフロー\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/security-automations-for-aws-waf/images/badbot-log-parser-flow.png)


1. `Bad Bot Protection` がアクティブ化され、HTTP フラッド保護およびスキャナーとプローブ保護の両機能が無効になっている場合: システムは Log Lambda パーサーを使用し、[WAF ラベルフィルター](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html)に基づいて不正なボットリクエストのみをログに記録します。

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/ja_jp/solutions/latest/security-automations-for-aws-waf/images/ip-reputation-lists-flow.png)


1. 1 時間ごとの Amazon CloudWatch イベントにより `IP Lists Parser` Lambda 関数が起動されます。

1. Lambda 関数は、次の 3 つのソースからデータを収集して解析します。
   + Spamhaus DROP と EDROP リスト
   + Proofpoint Emerging Threats IP リスト
   + Tor exit node リスト

1. Lambda 関数は、AWS WAF ブロックリストを現在の IP アドレスで更新します。