プロファイルに関する補足情報
Web App Firewall プロファイルの特定の側面に関する補足情報を次に示します。ここでは、セキュリティチェックルールまたは緩和に特殊文字を含める方法と、プロファイルを構成するときに変数を使用する方法について説明します。
設定変数のサポート
静的な値を使用する代わりに、Web App Firewall のセキュリティチェックと設定を構成するために、標準の NetScaler 名前付き変数を使用できるようになりました。変数を作成することで、新しいNetScaler ADCアプライアンスに構成をエクスポートしてインポートしたり、単一の構成ファイルから既存のNetScaler ADCアプライアンスを更新したりすることがより簡単になります。これにより、テストベッドセットアップを使用してローカルネットワークとサーバー用に調整された複雑なWeb App Firewall構成を開発し、その構成を本番環境のNetScaler ADCアプライアンスに転送する際の更新が簡単になります。
Web App Firewall 構成変数は、NetScaler の標準的な規則に従って、ほかのNetScaler ADC の名前付き変数と同じ方法で作成します。NetScalerのコマンドラインまたはGUIを使用して、名前付き式変数を作成できます。
次の URL と式は、静的な値の代わりに変数を使用して設定できます。
- 開始 URL (-starurl)
- 拒否 URL (-denyurl)
- フォームフィールドの一貫性チェック用のフォームアクション URL (-fieldconsistency)
- XML SQL インジェクションチェックのアクションURL (-xmlSQlInjection)
- XML クロスサイトスクリプティングチェックのアクションURL (-xmlcross-site スクリプティング)
- HTML SQL インジェクションチェック用のフォームアクションURL (-sqlInjection)
- フィールドフォーマットチェック用のフォームアクション URL (-FieldFormat)
- クロスサイトリクエストフォージェリ (CSRF) チェック用のフォームオリジンURLとフォームアクション URL (-csrfTag)
- HTML クロスサイトスクリプティングチェック用のフォームアクションURL (-CrossSiteScripting)
- セーフオブジェクト (-safeObject)
- XML サービス拒否 (xDoS) チェック (-xmlDos )のアクション URL
- Webサービスの相互運用性チェックの URL (-XMLWSIURL)
- < XML 検証チェックのURL (-xmlValidationURL)
- XML 添付ファイルチェック 用のURL (-XML 添付ファイル URL)
詳細については、「 ポリシーと式」を参照してください。
構成で変数を使用するには、変数名を 2 つのアット (@) 記号で囲み、置き換える静的な値と同じように使用します。たとえば、GUI を使用して URL の拒否チェックを構成し、名前付き式変数 myDenyURL を構成に追加する場合は、[拒否 URL の追加] ダイアログボックスの [拒否 URL の拒否] テキスト領域に @myDenyURL @ と入力します。NetScaler コマンドラインを使用して同じタスクを実行するには、appfw プロファイルの追加 <name>
-denyURLAction @myDenyURL @ と入力します。
PCRE 文字エンコード形式
NetScalerオペレーティングシステムでは、印刷可能なASCII文字セット、つまり16進コードがHEX 20(ASCII 32)からHEX 7E(ASCII 127)の間の文字のみの直接入力をサポートしています 。Web App Firewall 構成にその範囲外のコードを持つ文字を含めるには、UTF-8 16 進コードを PCRE 正規表現として入力する必要があります。
Web App Firewall 構成に URL、フォームフィールド名、またはセーフオブジェクト式として含める場合、多くの文字タイプで PCRE 正規表現を使用したエンコードが必要です。それらには以下が含まれます。
-
上部 ASCII 文字。16 進数 7F (ASCII 128) から 16 進数 FF (ASCII 255) までのエンコーディングを持つ文字。使用される文字コードによっては、制御コード、アクセントまたはその他の変更を加えた ASCII 文字、非ラテンアルファベット文字、基本 ASCII セットに含まれていない記号がこれらのエンコーディングで参照される場合があります。これらの文字は、URL、フォームフィールド名、およびセーフオブジェクト式で使用できます。
-
2 バイト文字。8 バイトの単語を 2 つ使用するエンコーディングの文字。2 バイト文字は、主に中国語、日本語、韓国語のテキストを電子形式で表すために使用されます。これらの文字は、URL、フォームフィールド名、およびセーフオブジェクト式で使用できます。
-
ASCII 制御文字。プリンタにコマンドを送信するときに使用される、印刷不能な文字です。16 進数コードが HEX 20 (ASCII 32) 未満の ASCII 文字はすべて、このカテゴリに分類されます。ただし、これらの文字は URL やフォームフィールド名には絶対に使用しないでください。セーフオブジェクト式にはほとんど使用されません。
NetScaler ADCアプライアンスは、UTF-8文字セット全体をサポートするのではなく、次の8つの文字セットに含まれる文字のみをサポートします。
-
英語 (米国) (ISO-8859-1)。ラベルは「英語 US」と表示されますが、Web App Firewall は ISO-8859-1 文字セット(Latin-1 文字セットとも呼ばれる)のすべての文字をサポートしています。この文字セットは、ほとんどの現代西ヨーロッパ言語を完全に表し、残りのいくつかの珍しい文字を除いてすべてを表します。
-
繁体字中国語 (Big5)。Web App Firewall は BIG5 文字セットのすべての文字をサポートします。これには、香港、マカオ、台湾、および中国本土以外に住む多くの中国民族遺産の人々によって話され、書き込まれる現代中国語で一般的に使用されているすべての繁体字中国語(表意文字)が含まれます。
-
簡体字中国語 (GB2312)。Web App Firewall は GB2312 文字セットのすべての文字をサポートします。これには、中国本土で話され、書き込まれる現代中国語で一般的に使用されるすべての簡体字中国語(表意文字)が含まれます。
-
日本語 (SJIS)。Web App Firewall は Shift-JIS (SJIS) 文字セットのすべての文字をサポートします。この文字セットには、現代日本語で一般的に使用されるほとんどの文字 (表意文字) が含まれます。
-
日本語 (EUC-JP)。Web App Firewall は EUC-JP 文字セットのすべての文字をサポートします。これには、現代日本語で一般的に使用されるすべての文字(表意文字)が含まれます。
-
韓国語 (EUC-KR)。Web App Firewall は EUC-KR 文字セットのすべての文字をサポートします。これには、現代韓国語で一般的に使用されるすべての文字(表意文字)が含まれます。
-
トルコ語 (ISO-8859-9)。Web App Firewall は、ISO-8859-9 文字セットのすべての文字をサポートします。これには、現代トルコ語で使用されるすべての文字が含まれます。
-
ユニコード (UTF-8)。Web App Firewall は、現代ロシア語で使用されている文字を含む、UTF-8 文字セットの特定の追加文字をサポートしています。
Web App Firewall を構成するときは、UTF-8 仕様でその文字に割り当てられた 16 進コードを使用して、ASCII 以外のすべての文字を PCRE 形式の正規表現として入力します。通常の ASCII 文字セット内の記号と文字には、その文字セットで 1 桁の 2 桁のコードが割り当てられ、UTF-8 文字セットでも同じコードが割り当てられます。たとえば、感嘆符 (!)ASCII 文字セットでは 16 進コード 21 が割り当てられ、UTF-8 文字セットでは 16 進数 21 にもなります。サポートされている別の文字セットのシンボルと文字には、UTF-8 文字セットの 16 進コードのペアセットが割り当てられます。たとえば、鋭アクセント(á)の付いた文字 a には、UTF-8 コード C3 A1 が割り当てられます。
Web App Firewall 構成でこれらの UTF-8 コードを表すために使用する構文は、ASCII 文字の場合は「xnN」、英語、ロシア語、トルコ語で使用される非 ASCII 文字の場合は「\ xnN\ xNN」、中国語、日本語、韓国語で使用される文字の場合は「\ xnN\ xnN」です。たとえば、!Web App Firewall 正規表現で UTF-8 文字として入力する場合は、「\ x21」と入力します。á を含める場合は、\ xC3\ xA1 と入力します。
注:
通常、ASCII 文字を UTF-8 形式で表現する必要はありませんが、これらの文字が Web ブラウザや基盤となるオペレーティングシステムを混乱させる可能性がある場合は、文字の UTF-8 表現を使用してこの混乱を避けることができます。たとえば、URL にスペースが含まれている場合、特定のブラウザや Web サーバソフトウェアの混乱を避けるために、スペースを x20 としてエンコードできます。
Web App Firewall 構成に含めるには、PCRE 形式の正規表現として入力する必要がある ASCII 以外の文字を含む URL、フォームフィールド名、およびセーフオブジェクト式の例を次に示します。各例は、実際の URL、フィールド名、または式文字列を最初に示し、その後に PCRE 形式の正規表現が続きます。
-
拡張 ASCII 文字を含む URL。
実際の URL:
http://www.josénuñez.com
エンコードされた URL:
^http://www\[.\]jos\xC3\xA9nu\xC3\xB1ez\[.\]com$
-
拡張 ASCII 文字を含む別の URL。
実際の URL:
http://www.example.de/trömso.html
エンコードされた URL:
^http://www[.]example\[.]de/tr\xC3\xB6mso[.]html$
-
拡張 ASCII 文字を含むフォームフィールド名。
Actual Name: nome_do_usuário
エンコードされた名前:
^nome_do_usu\xC3\xA1rio$
-
拡張 ASCII 文字を含むセーフオブジェクト式。
エンコードされていない式 [A-Z] {3,6} ¥[1-9][0-9]{6,6}
エンコードされた式:[A-Z] {3,6}\ xC2\ xA5[1-9][0-9]{6,6}
Unicode文字セット全体と一致するUTF-8エンコーディングを含む多くのテーブルがインターネット上で見つけることができます。この情報を含む便利な Web サイトは、次の URL にあります。
http://www.utf8-chartable.de/unicode-utf8-table.pl
この Web サイトの表に記載されている文字を正しく表示するには、適切な Unicode フォントがコンピュータにインストールされている必要があります。そうしないと、キャラクターの視覚的な表示に誤りがある可能性があります。ただし、文字を表示するための適切なフォントがインストールされていない場合でも、この Web ページの説明と UTF-8 および UTF-16 コードは正しいものになります。
反転 PCRE 式
パターンを含むコンテンツの照合に加えて、反転 PCRE 式を使用して、パターンを含まないコンテンツも照合できます。式を反転するには、感嘆符 (!) を含めるだけです。式の最初の文字に空白文字が続きます。
注: 式が感嘆符だけで構成され、その後に何もない場合、感嘆符は反転した式を示す構文ではなく、リテラル文字として扱われます。
次の Web App Firewall コマンドは、反転 PCRE 式をサポートしています。
- 開始 URL (URL)
- 拒否 URL (URL)
- フォームフィールドの一貫性 (フォームアクション URL)
- Cookie の一貫性 (フォームアクション URL)
- クロスサイトリクエストフォージェリ (CSRF) (フォームアクション URL)
- HTML クロスサイトスクリプティング (フォームアクション URL)
- フィールド形式 (フォームアクション URL)
- フィールドタイプ (タイプ)
- 機密フィールド (URL)
注:セキュリティチェックに isRegex フラグまたはチェックボックスが含まれている場合は、[YES] に設定するか、オンにしてフィールドで正規表現を有効にする必要があります。それ以外の場合、そのフィールドの内容はリテラルとして扱われ、正規表現 (反転または非反転) は解析されません。
Web App Firewall プロファイルで許可されていない名前
次の名前は、NetScaler ADCアプライアンスの組み込みアクションとプロファイルに割り当てられ、ユーザーが作成したWeb App Firewallプロファイルの名前として使用することはできません。
- AGRESSIVE
- ALLOW
- BASIC
- CLIENTAUTH
- COMPRESS
- CSSMINIFY
- DEFLATE
- DENY
- DNS-NOP
- DROP
- GZIP
- HTMLMINIFY
- IMGOPTIMIZE
- JSMINIFY
- MODERATE
- NOCLIENTAUTH
- NOCOMPRESS
- NONE
- NOOP
- NOREWRITE
- RESET
- SETASLEARNNSLOG_ACT
- SETNSLOGPARAMS_ACT
- SETSYSLOGPARAMS_ACT
- SETTMSESSSPARAMS_ACT
- SETVPNPARAMS_ACT
- SET_PREAUTHPARAMS_ACT
- default_dns64_Action
- dns_default_act_Cachebypass
- dns_default_act_drop
- nshttp_default_profile
- nshttp_default_strict_validation
- nstcp_default_mobile_profile
- nstcp_default_XA_XD_profile
- nstcp_default_profile
- nstcp_default_tcp_interactive_stream
- nstcp_default_tcp_lan
- nstcp_default_tcp_lan_thin_stream
- nstcp_default_tcp_lfp
- nstcp_default_tcp_lfp_thin_stream
- nstcp_default_tcp_lnp
- nstcp_default_tcp_lnp_thin_stream
- nstcp_internal_apps