サイズ制約条件の使用 - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サイズ制約条件の使用

注記

これは AWS WAF Classic ドキュメントです。2019 年 11 AWS WAF 月より前にルールやウェブ ACL AWS WAF などのリソースを作成していて、まだ最新バージョンに移行していない場合にのみ、このバージョンを使用してください。リソースを移行するには、「AWS WAF クラシックリソースをに移行する AWS WAF」を参照してください。

の最新バージョンについては AWS WAF、を参照してください。 AWS WAF

指定したウェブリクエスト部分の長さに基づいてリクエストを許可またはブロックする場合は、サイズ制約条件を作成します。サイズ制約条件は、Classic で検索させたいウェブリクエストの部分、 AWS WAF Classic AWS WAF に検索させたいバイト数、および演算子 (「より大きい (>)」や「より小さい (<)」などの演算子を識別します。例えば、サイズ制約条件を使用して 100 バイトよりも長いクエリ文字列を探すことができます。後でウェブ ACL を作成するときに、これらの設定に基づいてリクエストを許可するかブロックするかを指定します。

AWS WAF Classic がリクエスト本文を検査するように設定した場合(たとえば、本文から特定の文字列を検索するなど)、 AWS WAF Classic は最初の 8192 バイト(8 KB)だけを検査することに注意してください。ウェブリクエストの本文が 8192 バイトを超えない場合は、サイズ制約条件を作成して、8192 バイトを超える本文を持つリクエストをブロックできます。

サイズ制約条件の作成

サイズ制約条件を作成するときは、 AWS WAF Classic に長さを評価させたいウェブリクエストの部分を特定するフィルターを指定します。サイズ制約条件には複数のフィルターを追加できます。条件ごとに 1 つのフィルターを設定することもできます。各設定が AWS WAF Classic の動作にどのように影響するかを次に示します。

  • サイズ制約条件ごとに 1 つのフィルター — 個別のサイズ制約条件をルールに追加し、そのルールをウェブ ACL に追加する場合、ウェブリクエストはすべての条件に一致する必要があります。 AWS WAF クラシックでは、条件に基づいてリクエストを許可または拒否します。

    例えば、2 つの条件を作成するとします。1 つの条件は、クエリ文字列が 100 バイトを超えるウェブリクエストに一致します。もう 1 つの条件は、リクエストボディが 1024 バイトを超えるウェブリクエストに一致します。両方の条件を同じルールに追加し、そのルールをウェブ ACL に追加すると、 AWS WAF クラシックは両方の条件が満たされる場合にのみリクエストを許可または拒否します。

  • サイズ制約条件ごとに複数のフィルター — 複数のフィルターを含むサイズ制約条件をルールに追加し、そのルールをウェブ ACL に追加する場合、ウェブリクエストはサイズ制約条件のフィルターの 1 つと一致するだけで、 AWS WAF Classic はその条件に基づいてリクエストを許可または拒否できます。

    2 つの条件ではなく 1 つの条件を作成し、その 1 つの条件に前の例と同じ 2 つのフィルターが含まれているとします。 AWS WAF Classic では、クエリ文字列が 100 バイトを超えるか、リクエスト本文が 1024 バイトを超える場合、リクエストを許可または拒否します。

注記

サイズ制約条件をルールに追加すると、条件の値と一致しないウェブリクエストを許可または拒否するように AWS WAF Classic を設定することもできます。

サイズ制約条件を作成するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/wafv2/ AWS WAF のコンソールを開きます。

    ナビゲーションペインに [ AWS WAF クラシックに切り替え] が表示されている場合は、それを選択します。

  2. ナビゲーションペインで、[Size constraints] (サイズ制約) を選択します。

  3. [Create condition] (条件を作成) を選択します。

  4. 適用するフィルター設定を指定します。詳細については、「サイズ制約条件の作成時または編集時に指定する値」を参照してください。

  5. [Add another filter] (別のフィルターを追加) を選択します。

  6. 別のフィルターを追加する場合は、ステップ 4〜5 を繰り返します。

  7. フィルターの追加が完了したら、[Create size constraint condition] (サイズ制約の条件を作成) を選択します。

サイズ制約条件の作成時または編集時に指定する値

サイズ制約条件を作成または更新するときに、次の値を指定します。

[Name] (名前)

サイズ制約条件の名前を入力します。

名前に使用できるのは英数字 (A~Z、a~z、0~9) または特殊文字 _-!"#`+*},./ です。一度作成した条件の名前は変更できません。

[Part of the request to filter on] (フィルタリングするリクエストの一部)

各ウェブリクエストの中で、 AWS WAF Classic に長さを評価させたい部分を選択します。

[Header] (ヘッダー)

指定したリクエストヘッダー (User-AgentReferer など)。[Header] (ヘッダー) を選択した場合は、[Header] (ヘッダー) フィールドにヘッダー名を指定します。

[HTTP method] (HTTP メソッド)

リクエストがオリジンに実行を要求しているオペレーションのタイプを示す HTTP メソッド。CloudFront DELETE、、、、、GETHEADOPTIONSPATCHPOST、およびの各メソッドをサポートしますPUT

[Query string] (クエリ文字列)

URL 内で ? 文字の後に続く部分 (ある場合)。

[URI]

リクエストの URI パス。リソースを識別します (例: /images/daily-ad.jpg)。これには、URI のクエリ文字列またはフラグメントコンポーネントは含まれません。詳細については、「Uniform Resource Identifier (URI): 一般的な構文」を参照してください。

Transformation が指定されていない限り、URI は正規化されず、 AWS リクエストの一部としてクライアントから受け取った時点で検査されます。[Transformation] (変換) が指定されている場合、URI はその指定に従って形式が再設定されます。

[Body] (本文)

リクエスト内で、HTTP リクエストの本文としてウェブサーバーに送信する追加データ (フォームのデータなど) を含む部分。

[Single query parameter (value only)] (単一クエリパラメータ (値のみ))

クエリ文字列の一部として定義されているすべてのパラメータです。たとえば、URL が「www.xyz.com? UserName =abc& SalesRegion =seattle」の場合、またはパラメータにフィルタを追加できます。UserNameSalesRegion

[Single query parameter (value only)] (単一クエリパラメータ (値のみ)) を選択する場合は、[Query parameter name] (クエリパラメータ名) も指定します。これは、検査するクエリ文字列内のパラメータ (など) です。UserName[Query parameter name] (クエリパラメータ名) の最大長は 30 文字です。[Query parameter name] (クエリパラメータ名) では、大文字と小文字は区別されません。たとえば、Query UserNameパラメータ名として指定するとusername や UserName などのすべてのバリエーションにマッチします。UserName

[All query parameters (values only)] (すべてのクエリパラメータ (値のみ))

単一クエリパラメーター (値のみ) と似ていますが、 AWS WAF Classic は 1 つのパラメーターの値を検査するのではなく、クエリ文字列内のすべてのパラメーターの値にサイズ制約がないか調べます。たとえば、URL が「www.xyz.com? UserName =abc& SalesRegion =seattle」で、「すべてのクエリパラメーター (値のみ)」を選択した場合、 AWS WAF Classic は指定されたサイズのいずれかまたはそれ以上の値と一致する値をトリガーしますUserNameSalesRegion

[Header] (ヘッダー) ([Part of the request to filter on] (フィルタリングするリクエストの一部) が [Header] (ヘッダー) の場合のみ)

フィルターするリクエストの一部に Header を選択した場合は、一般的なヘッダーのリストからヘッダーを選択するか、Classic に長さを評価させたいヘッダーの名前を入力します。 AWS WAF

Comparison operator (比較演算子)

AWS WAF Classic が Size に指定した値を基準にしてウェブリクエスト内のクエリ文字列の長さを評価する方法を選択します。

たとえば、[比較演算子] に [より大きい] を選択し、[サイズ] に 100 と入力すると、 AWS WAF Classic は 100 バイトを超えるクエリ文字列のウェブリクエストを評価します。

サイズ

AWS WAF Classic がクエリ文字列で監視する長さをバイト単位で入力します。

注記

[Part of the request to filter on] (フィルタリングするリクエストの一部) の値に [URI] を選択した場合、URI の / は 1 文字としてカウントされます。例えば、URI パスの /logo.jpg は 9 文字の長さになります。

[Transformation] (変換)

AWS WAF Classic がリクエストの指定された部分の長さを評価する前に、変換によってウェブリクエストが再フォーマットされます。これにより、攻撃者が Classic をバイパスしようとしてウェブリクエストで使用する珍しいフォーマットの一部が排除されます。 AWS WAF

注記

フィルターの対象となるリクエストの一部に Body を選択した場合、検査のために最初の 8192 バイトだけが転送されるため、 AWS WAF Classic が変換を実行するように設定することはできません。ただし、HTTP リクエストボディのサイズに基づいてトラフィックをフィルタして、[None] (なし) の変換を指定することはできます。(AWS WAF Classic はリクエストヘッダーから本文の長さを取得します)。

1 種類のテキスト変換しか指定できません。

変換では次の操作を実行できます。

なし

AWS WAF Classic は、長さを確認するまではウェブリクエストのテキスト変換を一切行いません。

[Convert to lowercase] (小文字に変換)

AWS WAF Classic は大文字 (A ~ Z) を小文字 (a ~ z) に変換します。

[HTML decode] (HTML デコード)

AWS WAF Classic は HTML でエンコードされた文字をエンコードされていない文字に置き換えます。

  • &quot;& に置き換えます。

  • &nbsp; を改行なしスペースに置き換えます。

  • &lt;< に置き換えます。

  • &gt;> に置き換えます。

  • 16 進数形式の文字 (&#xhhhh;) を対応する文字に置き換えます。

  • 10 進数形式の文字 (&#nnnn;) を対応する文字に置き換えます。

[Normalize white space] (空白の正規化)

AWS WAF Classic では、次の文字がスペース文字 (10 進数 32) に置き換えられます。

  • \f、フォームフィード、10 進数 12

  • \t、タブ、10 進数 9

  • \n、改行、10 進数 10

  • \r、キャリッジリターン、10 進数 13

  • \v、垂直タブ、10 進数 11

  • 改行なしスペース、10 進数 160

さらに、このオプションでは複数のスペースを 1 つのスペースに置き換えます。

[Simplify command line] (コマンドラインを簡素化)

オペレーティングシステムのコマンドラインのコマンドが含まれているリクエストの場合、このオプションを使用して次の変換を行います。

  • 次の文字を削除します: \ " ' ^

  • 次の文字の前にあるスペースを削除します: / (

  • 次の文字をスペースに置き換えます: , ;

  • 複数のスペースを 1 つのスペースに置き換えます。

  • 大文字 (A〜Z) を小文字 (a〜z) に変換します。

[URL decode] (URL デコード)

URL エンコードされたリクエストをデコードします。

サイズ制約条件のフィルターの追加と削除

サイズ制約条件のフィルターを追加または削除できます。フィルターを変更するには、新しいフィルターを追加して古いフィルターを削除します。

サイズ制約条件のフィルターを追加または削除するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/wafv2/ AWS WAF のコンソールを開きます。

    ナビゲーションペインに [ AWS WAF クラシックに切り替え] が表示されている場合は、それを選択します。

  2. ナビゲーションペインで、[Size constraint] (サイズ制約) を選択します。

  3. フィルターを追加または削除する対象の条件を選択します。

  4. フィルターを追加するには、次のステップを実行します。

    1. [Add filter] (フィルターを追加) を選択します。

    2. 適用するフィルター設定を指定します。詳細については、「サイズ制約条件の作成時または編集時に指定する値」を参照してください。

    3. [Add] (追加) を選択します。

  5. フィルターを削除するには、次のステップを実行します。

    1. 削除するフィルターを選択します。

    2. [Delete filter] (フィルターを削除) を選択します。

サイズ制約条件の削除

サイズ制約条件を削除するには、最初にその条件からすべてのフィルターを削除し、その条件を使用しているすべてのルールから条件自体を削除します。次に手順を示します。

サイズ制約条件を削除するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/wafv2/ AWS WAF にあるコンソールを開きます。

    ナビゲーションペインに [ AWS WAF クラシックに切り替え] が表示されている場合は、それを選択します。

  2. ナビゲーションペインで、[Size constraints] (サイズ制約) を選択します。

  3. [Size constraint conditions] (サイズ制約の条件) ペインで、削除するサイズ制約の条件を選択します。

  4. 右ペインで、[Associated rules] (関連付けられたルール) タブを選択します。

    このサイズ制約条件を使用しているルールのリストが空の場合は、ステップ 6 に進みます。リストにルールが含まれている場合は、ルールを書き留めて、ステップ 5 に進みます。

  5. サイズ制約条件を使用しているルールから、この条件を削除するには、次のステップを実行します。

    1. ナビゲーションペインで [Rules] (ルール) を選択します。

    2. 削除するサイズ制約条件を使用しているルールの名前を選択します。

    3. 右ペインで、ルールから削除するサイズ制約条件を選択し、[Remove selected condition] (選択した条件を削除) を選択します。

    4. 削除するサイズ制約条件を使用しているすべての残りのルールに対してステップ b とステップ c を繰り返します。

    5. ナビゲーションペインで、[Size constraint] (サイズ制約) を選択します。

    6. [Size constraint conditions] (サイズ制約の条件) ペインで、削除するサイズ制約の条件を選択します。

  6. [Delete] (削除) を選択して、選択した条件を削除します。