

# アーキテクチャの概要
<a name="architecture-overview"></a>

このセクションでは、このソリューションで導入されるコンポーネントのリファレンス実装のアーキテクチャ図を示します。

## アーキテクチャ図
<a name="architecture-diagram"></a>

このソリューションをデフォルトのパラメータを使用してデプロイすると、AWS アカウントに次のコンポーネントがデプロイされます。

 **CloudFormation テンプレートは、AWS WAF およびその他の AWS リソースをデプロイして、一般的な攻撃からウェブアプリケーションを保護します。**

![AWS WAF アーキテクチャの概要](http://docs.aws.amazon.com/ja_jp/solutions/latest/security-automations-for-aws-waf/images/aws-waf-architecture-overview.png)


設計の中核となるのは [AWS WAF](https://aws.amazon.com/waf/) ウェブ ACL です。このウェブ ACL は、ウェブアプリケーションへのすべての受信リクエストの一元的な検査と判断ポイントとして機能します。CloudFormation スタックの初期設定時に、ユーザーはどの保護コンポーネントをアクティブにするのかを定義します。各コンポーネントは独立して動作し、ウェブ ACL に異なるルールを追加します。

このソリューションのコンポーネントは、次の保護領域に分類できます。

**注記**  
グループのラベルは WAF ルールの優先度レベルを反映していません。
+  **AWS マネージドルール (A)** – このコンポーネントには、AWS マネージドルールの [IP 評価ルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html)、[ベースラインルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html)、および[ユースケース固有のルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html)が含まれます。これらのルールは独自のルールを作成しなくても、[OWASP](https://owasp.org/) で公開されているものを含め、一般的なアプリケーションの脆弱性やその他の望ましくないトラフィックが悪用されるのを防ぐことができます。
+  **手動 IP リスト (B および C)** – これらのコンポーネントは 2 つの AWS WAF ルールを作成します。これらのルールを使用すると、許可または拒否する IP アドレスを手動で挿入できます。[Amazon EventBridge](https://aws.amazon.com/eventbridge) [ルール](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)と [Amazon DynamoDB](https://aws.amazon.com/dynamodb) を使用して、許可または拒否された IP セットの IP 保持を設定し、期限切れの IP アドレスを削除できます。詳細については、「[許可および拒否された AWS WAF IP セットの IP 保持を設定する](configure-ip-retention-on-allowed-and-denied-aws-waf-ip-sets.md)」を参照してください。
+  **SQL インジェクション (D) および XSS (E)** – これらコンポーネントにより、URI、クエリ文字列、リクエストボディ内の一般的な SQL インジェクションやクロスサイトスクリプティング (XSS) パターンから保護するよう設計された 2 つの AWS WAF ルールが設定されます。
+  **HTTP フラッド (F)** – このコンポーネントは、アプリケーションレイヤーの DDoS 攻撃や総当たりのログインの試行など、特定の IP アドレスから大量の要求を行う攻撃から保護します。このルールでは、デフォルトの 5 分間に 1 つの IP アドレスから許可される受信リクエストの最大数を定義するクォータを設定します (**Athena Query Run Time Schedule** パラメータで設定可能)。このしきい値を超えると、IP アドレスからの追加のリクエストは一時的にブロックされます。このルールは、AWS WAF レートベースのルールを使用するか、Lambda 関数または Athena クエリを使用して AWS WAF ログを処理することで実装できます。HTTP フラッドの緩和策オプションに関連するトレードオフの詳細については、「[ログパーサーオプション](log-parser-options.md)」を参照してください。
+  **スキャナーとプローブ (G)** – このコンポーネントは、アプリケーションアクセスログを解析して、オリジンによって生成された異常な量のエラーなどの疑わしい動作を検索します。その後、疑わしい送信元 IP アドレスは、お客様が定義した期間、ブロックされます。このルールは、[Lambda](https://aws.amazon.com/lambda/) 関数または [Athena](https://aws.amazon.com/athena/) クエリを使用して実装できます。スキャナーとプローブの緩和策オプションに関連するトレードオフの詳細については、「[ログパーサーオプション](log-parser-options.md)」を参照してください。
+  **IP 評価リスト (H)** – このコンポーネントは、ブロックする新しい範囲について、毎時サードパーティーの IP 評価リストをチェックする `IP Lists Parser` Lambda 関数です。これらのリストには、Spamhaus Don’t Route Or Peer (DROP) および Extended DROP (EDROP) リスト、Proofpoint Emerging Threats IP リスト、Tor exit node リストが含まれます。
+  **不正なボット (I)** - このコンポーネントは、ハニーポットメカニズムに加えて、Application Load Balancer (ALB) または Amazon CloudFront への直接接続をモニタリングすることで、不正なボットの検出を強化します。ボットがハニーポットをバイパスして ALB または CloudFront とやり取りしようとすると、システムはリクエストパターンとログを分析して悪意のあるアクティビティを特定します。不正なボットを検出すると、その IP アドレスを抽出して AWS WAF ブロックリストに追加し、以降のアクセスを防ぎます。不正なボット検出は、構造化されたロジックチェーンを介して動作し、脅威に対して包括的に対応します。
  + HTTP フラッド保護 Lambda ログパーサー – フラッド分析中にログエントリから不正なボットの IP を収集します。
  + スキャナーとプローブ保護 Lambda ログパーサー – スキャナー関連のログエントリから不正なボットの IP を特定します。
  + HTTP フラッド保護 Athena ログパーサー – クエリ実行全体でパーティションを使用して、Athena ログから不正なボットの IP を抽出します。
  + スキャナーとプローブ保護 Athena ログパーサー – 同じパーティショニング戦略を使用して、スキャナー関連の Athena ログから不正なボットの IP を取得します。
  + フォールバック検出 - HTTP フラッド保護およびスキャナーとプローブ保護の両方が無効になっている場合、システムは Log Lambda パーサーにより、[WAF ラベルフィルター](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html)に基づいてボットアクティビティをログに記録します。

このソリューションの 3 つのカスタム Lambda 関数はそれぞれ、ランタイムメトリクスを CloudWatch に公開します。これらの Lambda 関数の詳細については、「[コンポーネントの詳細](component-details.md)」を参照してください。