View a markdown version of this page

での事前解析テキスト変換の使用 AWS WAF - AWS WAF、 AWS Firewall Manager AWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

の新しいコンソールエクスペリエンスの紹介 AWS WAF

更新されたエクスペリエンスを使用して、 コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「コンソールの使用」を参照してください。

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

での事前解析テキスト変換の使用 AWS WAF

事前解析テキスト変換は、未加工のクエリ文字列を正規化してから AWS WAF 、個々のクエリ引数に解析します。これらの変換は、パーサー差分攻撃と HTTP パラメータ汚染 (HPP) に対処し、攻撃者はクエリ文字列区切り文字をエンコードまたは操作して検査ルールをバイパスします。

事前解析テキスト変換は、リクエストコンポーネントが SingleQueryArgumentまたは の場合にのみ使用できますAllQueryArguments。 AWS WAF は、標準テキスト変換の前に事前解析テキスト変換を適用します。ルールステートメントごとに最大 10 個の事前解析テキスト変換を指定できます。事前解析テキスト変換ごとに、ルールステートメントのコストに 10 WCUs が追加されます。

API では、ルールステートメントのオプションPreParseTextTransformations設定を使用して事前解析テキスト変換を設定します。

注記

事前解析正規化が必要ない場合は、事前解析テキスト変換を指定しないでください。デフォルトの動作は でNONE、未加工のクエリ文字列は変更せずにパーサーに渡されます。

次の事前解析テキスト変換を使用できます。

None – NONE

AWS WAF は、事前解析テキスト変換なしで、受信したウェブリクエストを検査します。

URL decode – URL_DECODE

AWS WAF URL は解析前に raw クエリ文字列をデコードします。%HH シーケンスをデコードします (たとえば、%26 が & になり、%3D が = になります)。これにより、以前にエンコードされた新しいクエリパラメータの境界が公開される可能性があります。

URL decode Unicode – URL_DECODE_UNI

と同様ですがURL_DECODE、Unicode でエンコードされたシーケンス (%uHHH) もデコードします。コードが FF01-FF5E の全角 ASCII コード範囲内にある場合、高位バイトを使用して下位バイトが検出され、調整されます。それ以外の場合は、下位バイトのみが使用され、高位バイトはゼロになります。

Combine duplicate query arguments by comma – COMBINE_DUPLICATE_QUERY_ARGS_BY_COMMA

AWS WAF は、重複するクエリパラメータキーのすべての値を最初の出現位置の単一のカンマ区切り (0x2C) 文字列にマージし、後の重複を削除します。例えば、a=1&b=2&a=3a=1,3&b=2 になります。この変換は、バックエンドが重複するクエリパラメータを配列に結合する場合に使用します。これは .NET、API Gateway、Express.js で一般的です。 AWS WAF は結合された値を 1 つのユニットとして検査します。

Replace semicolons with ampersands – REPLACE_SEMICOLONS_WITH_AMPERSANDS

AWS WAF は、解析前に raw クエリ文字列内のすべてのセミコロン (0x3B) をアンパサンド (0x26) に置き換えます。 AWS API Gateway REST APIs を含む一部のウェブフレームワークとサービスは、セミコロンをアンパサンドに相当するクエリパラメータ区切り文字として扱います。この変換はクエリ文字列を正規化します。 AWS WAF その後、バックエンドと同じようにセミコロンで分割されるため、一貫したパラメータ解析が可能になります。