テキスト変換 - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

テキスト変換

パターンを検索したり、制約を設定したりするステートメントでは、リクエストを検査する前に が適用 AWS WAF する変換を指定できます。変換では、 AWS WAFをバイパスするために攻撃者が使用する異常なフォーマットの一部を削除するために、ウェブリクエストが再フォーマットされます。

これを JSON 本文リクエストコンポーネントの選択で使用する場合、 AWS WAF は JSON から検査する要素を解析および抽出した後、変換を適用します。詳細については、「JSON 本文」を参照してください。

複数の変換が指定された場合、 AWS WAF は変換の適用順序も設定します。

WCU - テキスト変換ごとには 10 個の WCU。

AWS WAF コンソールと API のドキュメントには、以下の場所でのこれらの設定に関するガイダンスも記載されています。

  • コンソールのルールビルダー - [Text transformation] (テキスト変換)。このオプションは、リクエストコンポーネントの使用時に選択できます。

  • API ステートメントのコンテンツTextTransformations

テキスト変換のオプション

各変換リストには、コンソールと API の仕様が表示され、その後に説明が表示されます。

Base64 decode – BASE64_DECODE

AWS WAF は Base64-encoded文字列をデコードします。

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF は Base64-encoded文字列をデコードしますが、無効な文字を無視する強制実装を使用します。

Command line – CMD_LINE

このオプションは、攻撃者がオペレーティングシステムのコマンドラインコマンドを挿入し、異常なフォーマットを使用してコマンドの一部またはすべてを偽装する状況を軽減します。

このオプションを使用して、次の変換を実行します。

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

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

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

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

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

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF は、複数のスペースを 1 つのスペースに置き換え、次の文字をスペース文字 (ASCII 32) に置き換えることで空白を圧縮します。

  • フォームフィード (ASCII 12)

  • タブ (ASCII 9)

  • 改行 (ASCII 10)

  • キャリッジリターン (ASCII 13)

  • 垂直タブ (ASCII 11)

  • 改行なしスペース (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF は、CSS 2.x エスケープルール を使用してエンコードされた文字をデコードしますsyndata.html#characters。この関数は、デコード処理で最大 2 バイトを使用するため、通常はエンコードされない CSS エンコーディングを使用してエンコードされた ASCII 文字を発見するのに役立ちます。また、バックスラッシュと 16 進数以外の文字の組み合わせである回避対策にも役立ちます。たとえば、javascriptja\vascript を設定します。

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF は、次の ANSI C エスケープシーケンスをデコードします: \a\b\f、、\n\r\t\v、、\\、、、 \xHH (16 進数)\"\0OOO (8 \? \'進数)。有効でないエンコーディングは出力に残ります。

Hex decode – HEX_DECODE

AWS WAF は 16 進数の文字列をバイナリにデコードします。

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF は、16 進数形式&#xhhhh;または 10 進数形式で表される文字を、対応する文字&#nnnn;に置き換えます。

AWS WAF は、次の HTML エンコード文字をエンコードされていない文字に置き換えます。このリストでは小文字の HTML エンコーディングを使用していますが、大文字と小文字は区別されません。例えば、 &QuOt;"は同じように扱われます。

HTML でエンコードされた文字

以下に置き換えます

"

"

&

&

<

<

&gt;

>

&nbsp; または &NonBreakingSpace;

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

&NewLine;

\n、10 進数 10

&Tab;

\t、10 進数 9

&lcub; または &lbrace;

{

&verbar;, &vert;, または &VerticalLine;

|

&rcub; または &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; または &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; または &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; または &DiacriticalTilde;

~

&minus;

-

&lsqb; または &lbrack;

[

&bsol;

\\

&rsqb; または &rbrack;

]

&hat;

^

&lowbar; または &underbar;

_

&grave; または &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF はエス JavaScript ケープシーケンスをデコードします。\uHHHH コードが FF01-FF5E の全角 ASCII コード範囲内にある場合、高位バイトを使用して下位バイトが検出され、調整されます。そうでない場合は、下位バイトのみが使用され、上位バイトはゼロになり、情報が失われる可能性があります。

Lowercase – LOWERCASE

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

MD5 – MD5

AWS WAF は、入力のデータから MD5 ハッシュを計算します。計算されたハッシュは生のバイナリ形式です。

None – NONE

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

Normalize path – NORMALIZE_PATH

AWS WAF は、入力の先頭にない複数のスラッシュ、ディレクトリの自己参照、およびディレクトリのバックリファレンスを削除することで、入力文字列を正規化します。

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF はバックスラッシュ文字をスラッシュに変換し、NORMALIZE_PATH変換を使用して結果の文字列を処理します。

Remove nulls – REMOVE_NULLS

AWS WAF は、入力からすべてのNULLバイトを削除します。

Replace comments – REPLACE_COMMENTS

AWS WAF は、C スタイルのコメント (/* ... */) の各出現を 1 つのスペースに置き換えます。コメントが複数連続しているときは、圧縮しません。コメントの終端がないときもスペース (ASCII 0x20) に置き換えられます。コメントの終端 (*/) のみがあるときは変更されません。

Replace nulls – REPLACE_NULLS

AWS WAF は、入力の各バイトをスペース文字 (ASCII NULL 0x20) に置き換えます。

SQL hex decode – SQL_HEX_DECODE

AWS WAF は SQL 16 進データをデコードします。例えば、 は (0x414243) を () に AWS WAF デコードしますABC

URL decode – URL_DECODE

AWS WAF は、URL エンコードされた値をデコードします。

URL decode Unicode – URL_DECODE_UNI

URL_DECODE と同様ですが、Microsoft 固有の %u エンコーディングをサポートしています。コードが FF01-FF5E の全角 ASCII コード範囲内にある場合、高位バイトを使用して下位バイトが検出され、調整されます。それ以外の場合は、下位バイトのみが使用され、高位バイトはゼロになります。

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF は、すべての UTF-8 文字シーケンスを Unicode に変換します。これにより、英語以外の言語の入力を正規化し、偽陽性と偽陰性を最小限に抑えることができます。