ADC

Web App Firewall ポリシーのバインド

Web App Firewall ポリシーを設定したら、それらをグローバルまたはバインドポイントにバインドして有効にします。バインド後、Web App Firewall ポリシーに一致する要求または応答は、そのポリシーに関連付けられたプロファイルによって変換されます。

ポリシーをバインドするときは、そのポリシーに優先度を割り当てます。優先順位によって、定義したポリシーが評価される順序が決まります。プライオリティは任意の正の整数に設定できます。Citrix ADC OSでは、ポリシーの優先順位は逆の順序で機能します。値が大きいほど、優先順位は低くなります。

Web App Firewall 機能では、リクエストが一致する最初のポリシーだけが実装され、一致する可能性のある追加のポリシーは実装されないため、意図した結果を得るにはポリシーの優先順位が重要です。最初のポリシーに低い優先度(1000 など)を設定した場合、優先度の高い他のポリシーが要求と一致しない場合にのみ、Web App Firewall を実行するように設定します。最初のポリシーに高い優先度(1 など)を与える場合は、Web App Firewall を最初に実行するように設定し、一致する可能性のあるその他のポリシーをスキップします。ポリシーをバインドするときに、各ポリシー間に50または100の間隔で優先順位を設定することで、優先順位を再割り当てすることなく、他のポリシーを任意の順序で追加できる十分な余裕を残すことができます。

Citrix ADCアプライアンスでのポリシーのバインドの詳細については、「ポリシーと式」を参照してください。

コマンドラインインターフェイスを使用して Web App Firewall ポリシーをバインドするには

コマンドプロンプトで、次のコマンドを入力します。

  • bind appfw global <policyName>
  • bind appfw profile <profile_name> -crossSiteScripting data

次の例では、pl-blog という名前のポリシーをバインドし、プライオリティ 10 を割り当てます。

bind appfw global pl-blog 10
save ns config
<!--NeedCopy-->

ログ式の構成

Web App Firewall をバインドするためのログ式サポートは、違反が発生したときに HTTP ヘッダー情報をログに記録するために追加されます。

ログ式はアプリケーションプロファイルにバインドされ、バインディングには、違反が発生したときに評価され、ロギングフレームワークに送信される必要がある式が含まれています。

http ヘッダー情報を持つ Web App Firewall 違反ログレコードが記録されます。カスタムログ式を指定することができ、現在のフロー(要求/応答)に対して違反が生成されたときの分析と診断に役立ちます。

設定例

bind appfw profile <profile> -logexpression <string> <expression>
add policy expression headers "" HEADERS(100):"+HTTP.REQ.FULL_HEADER"
add policy expression body_100 ""BODY:"+HTTP.REQ.BODY(100)"
bind appfw profile test -logExpression log_body body_100
bind appfw profile test -logExpression log_headers  headers
bind appfw profile test -logExpression ""URL:"+HTTP.REQ.URL+" IP:"+CLIENT.IP.SRC"
<!--NeedCopy-->

ログの例

Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg= HEADERS(100):POST /test/credit.html HTTP/1.1^M User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3^M Host: 10.217.222.44^M Accept: /^M Content-Length: 33^M Content-Type: application/x-www-form-urlencoded^M ^M  cn1=58 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=BODY:ata=asdadasdasdasdddddddddddddddd cn1=59 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=URL:/test/credit.html IP:10.217.222.128 cn1=60 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Other violation logs
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_STARTURL|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Disallow Illegal URL. cn1=61 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_SAFECOMMERCE|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Maximum number of potential credit card numbers seen cn1=62 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->

  1. 監査ログのサポートのみ利用可能です。ログストリームのサポートとセキュリティ洞察の可視性は、将来のリリースバージョンで追加される予定です。

  2. 監査ログが生成される場合、ログメッセージごとに 1024 バイトのデータしか生成できません。

  3. ログストリーミングを使用する場合、制限は、サポートされるログストリーム/ipfix プロトコルのサイズ制限の最大サイズに基づきます。ログストリームの最大サポートサイズは 1024 バイトを超えています。

GUI を使用して Web App Firewall ポリシーをバインドするには

  1. 次のいずれかを行います:
    • [セキュリティ] > [Web App Firewall] に移動し、詳細ペインで [Web アプリケーションファイアウォールポリシーマネージャー] をクリックします。
    • Security > Web App Firewall > Policies > Firewall Policiesに移動し、詳細ペインでPolicy Managerを選択します。
  2. [Web App Firewall Policy Manager] ダイアログで、ポリシーをバインドするバインドポイントをドロップダウンリストから選択します。選択肢は次のとおりです。
    • [グローバルをオーバーライド]。このバインドポイントにバインドされたポリシーは、Citrix ADCアプライアンスのすべてのインターフェイスからのすべてのトラフィックを処理し、他のポリシーの前に適用されます。
    • LB 仮想サーバー。負荷分散仮想サーバーにバインドされたポリシーは、その負荷分散仮想サーバーによって処理されるトラフィックにのみ適用され、Default Global ポリシーの前に適用されます。[LB Virtual Server] を選択した後、このポリシーをバインドする特定の負荷分散仮想サーバーも選択する必要があります。
    • CS 仮想サーバ。コンテンツスイッチ仮想サーバーにバインドされたポリシーは、そのコンテンツスイッチ仮想サーバーによって処理されるトラフィックにのみ適用され、デフォルトグローバルポリシーの前に適用されます。[CS Virtual Server] を選択した後、このポリシーをバインドする特定のコンテンツスイッチ仮想サーバーも選択する必要があります。
    • デフォルトグローバル。このバインドポイントにバインドされたポリシーは、Citrix ADCアプライアンスのすべてのインターフェイスからのすべてのトラフィックを処理します。
    • ポリシーラベル。ポリシーラベルにバインドされたポリシーは、ポリシーラベルがルーティングするトラフィックを処理します。ポリシーラベルは、このトラフィックにポリシーを適用する順序を制御します。
    • なし。ポリシーをバインドポイントにバインドしないでください。
  3. [続行] をクリックします。既存の Web App Firewall ポリシーのリストが表示されます。
  4. バインドするポリシーをクリックして選択します。
  5. バインドに追加の調整を行います。
    • ポリシーの優先度を変更するには、フィールドをクリックして有効にし、新しい優先度を入力します。[優先度 を再生成] を選択して、優先度を 均等に再番号付けすることもできます。
    • ポリシー式を変更するには、そのフィールドをダブルクリックして [Web App Firewall Policy] ダイアログボックスを開き、ポリシー式を編集できます。
    • [Goto Expression] を設定するには、[Goto Expression] 列見出しの フィールド をダブルクリックしてドロップダウンリストを表示し、式を選択できます。
    • 「呼び出し」オプションを設定するには、「呼び出し」列見出しのフィールドをダブルクリックしてドロップダウンリストを表示し、式を選択できます。
  6. 手順 3 ~ 6 を繰り返して、グローバルにバインドする Web App Firewall ポリシーを追加します。
  7. [OK] をクリックします。ポリシーが正常にバインドされたことを示すメッセージがステータスバーに表示されます。
Web App Firewall ポリシーのバインド