リクエストボディ、ヘッダー、cookie の検査 - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

リクエストボディ、ヘッダー、cookie の検査

AWS WAF は、本文、ヘッダー、または cookie リクエストコンポーネントの非常に大きなコンテンツの検査をサポートしていません。基盤となるホストサービスには、検査用に AWS WAF に転送する数とサイズの制限があります。例えば、ホストサービスは 200 を超えるヘッダーを AWS WAF に送信しません。したがって、205 ヘッダーを持つウェブリクエストの場合、AWS WAF では最後の 5 つのヘッダーを検査できません。AWS WAF でウェブリクエストが保護されたリソースに進むことが許可されると、ウェブリクエスト全体が送信されます。これには、AWS WAF で検査できた、数とサイズの制限外にあるコンテンツも含まれます。

制限は次のとおりです。

  • Body および JSON Body – リクエストの本文の最初の 8 KB (8,192 バイト) を検査できます。

  • Headers – 検査できるのは、最大で、リクエストヘッダーの最初の 8 KB (8,192 バイト) かつ、最初の 200 ヘッダーです。コンテンツは、最初の制限に達するまで、AWS WAF での検査に使用できます。

  • Cookies – 検査できるのは、最大で、リクエスト cookie の最初の 8 KB (8,192 バイト) かつ、最初の 200 cookie です。コンテンツは、最初の制限に達するまで、AWS WAF での検査に使用できます。

制限されたリクエストコンポーネントのいずれかを検査するルールを追加または更新する場合は、コンポーネント仕様でオーバーサイズコンテンツの処理を指定します。詳細については、過剰サイズのリクエストコンポーネントの処理 を参照してください。

別のアカウントと共有しているマネージドルールグループまたはルールグループを使用する場合、ルールグループに制限されたリクエストコンポーネントを検査するルールがあっても、そのルールではオーバーサイズコンテンツが必要な方法で処理されない場合があります。AWS マネージドルールの詳細については、「AWS マネージドルールのルールグループのリスト」を参照してください。他のルールグループの詳細については、ルールグループプロバイダーにお問い合わせください。

ウェブ ACL でオーバーサイズのコンポーネントを処理する方法は、リクエストコンポーネントのコンテンツの予想サイズ、ウェブ ACL のデフォルトリクエスト処理、ウェブ ACL 内の他のルールがリクエストと一致して処理する方法など、さまざまな要因によって異なります。

オーバーサイズのウェブリクエストコンポーネントを管理するための一般的なガイドラインを次に示します。

  • オーバーサイズのコンポーネントコンテンツを含む一部のリクエストを許可する必要がある場合は、可能な場合は、それらのリクエストのみを明示的に許可するルールを追加します。同じコンポーネントタイプを検査するウェブ ACL 内の他のルールより先に実行されるように、これらのルールの優先度を上げます。この方法では、AWS WAF を使用して、保護されたリソースに渡すことができるオーバーサイズコンポーネントのコンテンツ全体は検査できません。

  • 他のすべてのリクエストでは、次のように、制限を超えるリクエストをブロックすることで、余計なバイトが通過するのを防ぐことができます。

    • ルールとルールグループ – サイズが制限されたコンポーネントを検査するルールで、制限を超えるリクエストをブロックするようにオーバーサイズの処理を設定します。例えば、ルールで特定のヘッダーコンテンツを含むリクエストをブロックする場合、オーバーサイズのヘッダーコンテンツを持つリクエストでは、すべて一致するようにオーバーサイズの処理を設定できます。別の例として、ウェブ ACL がデフォルトでリクエストをブロックし、ルールで特定のヘッダーコンテンツが許可されている場合、オーバーサイズのヘッダーコンテンツを持つリクエストでは、すべて一致しないように、ルールのオーバーサイズ処理を設定できます。処理オプションの詳細については、「過剰サイズのリクエストコンポーネントの処理」を参照してください。

    • 管理していないルールグループ – 管理していないルールグループでオーバーサイズのリクエストコンポーネントを許可しないようにするには、リクエストコンポーネントタイプを検査して制限を超えるリクエストをブロックする別のルールを追加します。ウェブ ACL でそのルールがルールグループより先に実行されるように、ルールの優先度を上げます。例えば、ウェブ ACL で本文検査ルールを実行する前に、オーバーサイズの本文コンテンツを含むリクエストをブロックできます。次の手順では、このタイプのルールを追加する方法について説明します。

オーバーサイズのコンテンツをブロックするルールを追加するには

  1. ウェブ ACL を作成または編集するときは、ルール設定で、[Add rules] (ルールを追加)、[Add my own rules and rule groups] (独自のルールとルールグループを追加)、[Rule builder] (ルールビルダー)、[Rule visual editor] (ルールビジュアルエディタ) の順に選択します。ウェブ ACL の作成または編集のガイダンスについては、「ウェブ ACL の使用」を参照してください。

  2. ルールの名前を入力し、[Type] (タイプ) 設定を [Regular rule] (通常のルール) のままにします。

  3. 次の一致設定をデフォルトから変更します。

    1. [Statement] (ステートメント) の [Inspect] (検査) で、ドロップダウンを開き、必要なウェブリクエストコンポーネント ([Body] (本文)、[Headers] (ヘッダー)、[Cookies] (cookie) のいずれか) を選択します。

    2. [Match type] (一致タイプ) で、[Size greater than] (次より大きいサイズ:) を選択します。

    3. [Size] (サイズ) に、8192 以上の数を入力します。

    4. [Oversize handling] (オーバーサイズ処理) で、[Match] (一致) を選択します。

  4. [Action] (アクション) で、[Block] (ブロック) を選択します。

  5. [Add Rule] (ルールの追加) を選択します。

  6. ルールを追加したら、[Set rule priority] (ルールの優先度の設定) ページで、同じコンポーネントタイプを検査するウェブ ACL 内のルールまたはルールグループよりも上に移動します。これにより、優先順位の数値設定が小さくなり、AWS WAF で最初に評価されるようになります。詳細については、「ウェブ ACL でのルールおよびルールグループの処理順序」を参照してください。