Lambda ログパーサーの JSON ファイルを使用する - AWS WAF のセキュリティオートメーション

Lambda ログパーサーの JSON ファイルを使用する

HTTP フラッド保護に Lambda ログパーサー JSON ファイルを使用する

Activate HTTP Flood Protection テンプレートパラメータで Yes - AWS Lambda log parser を選択した場合、このソリューションは <stack_name>-waf_log_conf.json という名前の設定ファイルを作成し、AWS WAF ログファイルの保存に使用される Amazon S3 バケットにアップロードします。バケット名を確認するには、CloudFormation 出力の WafLogBucket 変数を参照してください。次の図はその一例です。

AWSWAFSecurityAutomations というラベルの画面を示し、4 つの出力を一覧表示するスクリーンショット

スタック出力

Amazon S3 で <stack_name>-waf_log_conf.json ファイルを編集して上書きすると、Log Parser Lambda 関数は新しい AWS WAF ログファイルを処理するときに新しい値を考慮します。以下は、サンプルの設定ファイルです。

サンプル設定ファイルのスクリーンショット

http フラッド設定

パラメータには、以下が含まれます。

  • 全般:

    • リクエストしきい値 (必須) – IP アドレスごとに 5 分あたりの最大許容リクエスト数。このソリューションは、CloudFormation スタックをプロビジョニングまたは更新する時に定義した値を使用します。

    • ブロック期間 (必須) – 該当する IP アドレスをブロックする期間 (分単位)。このソリューションは、CloudFormation スタックをプロビジョニングまたは更新する時に定義した値を使用します。

    • 無視されたサフィックス – このタイプのリソースにアクセスするリクエストは、リクエストのしきい値にはカウントされません。デフォルトでは、このリストは空です。

  • URI リスト – これを使用して、特定の URL のカスタムリクエストのしきい値およびブロック期間を定義します。デフォルトでは、このリストは空です。

WAF ログが WafLogBucket に到着すると、設定ファイルの設定を使用して Lambda ログパーサー関数によって処理されます。このソリューションは、同じバケット内の <stack_name>-waf_log_out.json という名前の出力ファイルに結果を書き込みます。出力ファイルに攻撃者として特定された IP アドレスのリストが含まれている場合、ソリューションはそれらを HTTP Flood の WAF IP セットに追加し、アプリケーションへのアクセスをブロックします。出力ファイルに IP アドレスがない場合は、設定ファイルが有効かどうか、または設定ファイルに従ってレート制限を超えたかどうかを確認します。

スキャナーとプローブ保護に Lambda ログパーサー JSON ファイルを使用する

Activate Scanner & Probe Protection テンプレートパラメータで Yes - AWS Lambda log parser を選択した場合、このソリューションは設定ファイル <stack_name>-app_log_conf.json を作成し、CloudFront または Application Load Balancer のログファイルを保存するのに使用される定義済みの Amazon S3 バケットにアップロードします。

Amazon S3 で <stack_name>-app_log_conf.json を編集して上書きすると、Log Parser Lambda 関数は新しい AWS WAF ログファイルを処理するときに新しい値を考慮します。以下は、サンプルの設定ファイルです。

設定ファイルのスクリーンショット

スキャナープローブ設定ファイル

パラメータには、以下が含まれます。

  • 全般:

    • エラーしきい値 (必須) – 各 IP アドレスが 1 分あたりに許容する不正なリクエストの数。このソリューションは、CloudFormation スタックをプロビジョニングまたは更新する時に定義した値を使用します。

    • ブロック期間 (必須) – 該当する IP アドレスをブロックする期間 (分単位)。このソリューションは、CloudFormation スタックをプロビジョニングまたは更新する時に定義した値を使用します。

    • エラーコード – エラーとみなされるステータスコードです。デフォルトでは、リストは次の HTTP ステータスコードをエラーと見なします。400 (Bad Request)401 (Unauthorized)403 (Forbidden)404 (Not Found)405 (Method Not Allowed)

  • URI リスト – これを使用して、特定の URL のカスタムリクエストのしきい値およびブロック期間を定義します。デフォルトでは、このリストは空です。

アプリケーションアクセスログが AppAccessLogBucket に到着すると、Log Parser Lambda 関数は設定ファイルの設定を使用してログを処理します。このソリューションは、同じバケット内の <stack_name>`-app_log_out.json` という名前の出力ファイルに結果を書き込みます。出力ファイルに攻撃者として識別される IP アドレスのリストが含まれている場合、ソリューションはそれらをスキャナーとプローブの WAF IP セットに追加し、アプリケーションへのアクセスをブロックします。出力ファイルに IP アドレスがない場合は、設定ファイルが有効かどうか、または設定ファイルに従ってレート制限を超えたかどうかを確認します。