ADC

Web App Firewall ポリシーのバインディング

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

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

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

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