ADC

VPN 仮想サーバーと認証仮想サーバーの Web アプリケーションファイアウォール保護

NetScalerリリース13.1ビルド53.x以降、Webアプリケーションファイアウォール保護を適用することで、NetScaler Gateway仮想サーバー、トラフィック管理仮想サーバー、および認証仮想サーバーを悪意のある攻撃から保護できます。この機能は、受信リクエストをAPIスキーマを使用して検証してフィルタリングし、アプリケーションにアクセスするユーザーを認証するため、デプロイメントのセキュリティをさらに強化します。

注:

認証と Gateway エンドポイントの Web アプリファイアウォール保護は、Linux ベースの CPX および BLX デプロイメントではサポートされません。

Webアプリケーションファイアウォール保護を有効にすると、NetScalerは組み込みのWebアプリケーションファイアウォールプロファイルns-aaatm-default-appfw-profilens-aaa-default-appfw-profilens-vpn-default-appfw-profileを利用します。 プロファイルには関連するビルトインAPI仕様ファイルns-aaatm-specns-aaa-specns-vpn-specが含まれており、ネットワークトラフィックが安全でAPI仕様に準拠していることを保証します。

注:

最新のセキュリティ修正が含まれているため、常に最新のソフトウェアバージョンにアップグレードすることをお勧めします。

ライセンスの要件

この機能はすべてのライセンス (スタンダード、エンタープライズ、プレミアム) で使用できます。

Web アプリケーションファイアウォール保護の設定

GUI について

仮想サーバーの Web アプリケーションファイアウォール保護を構成するには:

  1. [ セキュリティ] > [AAA-アプリケーショントラフィック] > [認証設定の変更] に移動します。
  2. AAA パラメータの設定ページでWAF保護を設定します。

    以下のオプションがサポートされています:

    • 無効-選択すると、Web アプリケーションファイアウォールの保護はどの仮想サーバーにも適用されません。デフォルトでは、Web アプリケーションファイアウォールの保護はどの値にも設定されていません。

    • AUTH — 認証仮想サーバーを保護します。

    • VPN — VPN 仮想サーバーを保護します。

    • AUTH と VPN — 認証、トラフィック管理、VPN 仮想サーバーを保護します。

  3. [OK] をクリックします。

Web App Firewall 保護

CLI で

次のコマンドを実行して、仮想サーバーの Web アプリケーションファイアウォール保護を有効にします:

set aaa parameter -wafProtection <DISABLED/AUTH/VPN>

例:

以下は、認証仮想サーバーの Web アプリケーションファイアウォール保護の例です:

  • set aaa parameter -wafProtection AUTHコマンドは認証仮想サーバーを保護します。

  • set aaa parameter -wafProtection VPNコマンドは VPN 仮想サーバーを保護します。

  • set aaa parameter -wafProtection AUTH VPNコマンドは、認証、VPN、およびトラフィック管理仮想サーバーを保護します。

セキュリティインサイトの設定

組み込みの Web アプリケーションファイアウォールプロファイルによって検出された違反を表示するには、セキュリティインサイトを設定します。構成すると、NetScalerは、要求が仮想サーバーに送信されるたびに、AppFlowコレクター(分析プロファイルで構成)にインサイトレコードを送信します。セキュリティインサイトレコードは AppFlow コレクターに送信されます。

メモ:

  • セキュリティインサイトを設定する前に、前提条件として、ULFDモードとAppFlow機能が有効になっていることを確認してください。GUI では、[ システム] > [設定] > [モードと機能] に移動してこの手順を実行できます。CLI では、en ns mode ULFDおよび en ns feature appflowのコマンドを使用できます。

  • NetScalerインスタンスがNetScalerコンソールに追加されていることを確認します。詳細については、「 インスタンス管理」を参照してください。

GUI について

AAA パラメータの設定ページでセキュリティインサイトオプションを有効にします 。このパラメーターは、デフォルトでは無効になっています。

Security insights

CLI で

次のコマンドを実行して、デバッグログのセキュリティインサイトを有効にします。このパラメーターは、デフォルトでは無効になっています。

set aaa parameter -securityInsights <ENABLED/DISABLED>

GUI で AppFlow コレクターと分析プロファイルを設定する

  • [System]>[Settings] に移動します。「 モードと機能 」セクションで、ULFDモードとAppFlow機能を有効にします。

  • AppFlow コレクターを設定します。

    • [ 構成] > [システム] > [AppFlow] > [AppFlow コレクター] に移動します。必要なパラメータを設定し、「 作成」をクリックします。

    AppFlow コレクタ

  • 設定済みの AppFlow コレクターを分析プロファイルに設定します。この例では、AppFlowコレクターは組み込みの分析プロファイルns-aaa-vpn-appfw-analytics-profileに設定されています。

    • [ 設定] > [システム] > [プロファイル] > [Analytics プロファイル] に移動します。[基本情報] セクションの [コレクター] フィールドで AppFlow コレクターを選択します。

    アナリティクスプロファイル

CLI で AppFlow コレクターと分析プロファイルを設定する

-  add appflow collector col2 -IPAddress 10.146.77.19 -port 5557 -Transport logstream

-  set analytics profile ns-aaa-vpn-appfw-analytics-profile -collectors col2 -type securityinsight
<!--NeedCopy-->

AppFlow 設定の詳細については、「AppFlow 機能の設定」を参照してください。

注:

この機能のセキュリティインサイトは Logstream メッセージでのみ機能します。IPFIX メッセージでは機能しません。

NetScaler コンソールでAppFlow レコードを表示する

  1. NetScaler ConsoleのオンプレミスGUIで、[セキュリティ]>[ セキュリティ違反]に移動します。 WAF セクションで、VPN または認証仮想サーバーを選択します。詳細については、「 アプリケーションのセキュリティ違反の詳細を表示する」を参照してください。

    AppFlow レコード

    詳細を表示するには、「 リクエスト URL」フィールドで URL を選択します。

    AppFlow レコード

  2. 適切なライセンスを VPN または認証仮想サーバーに適用します。

    • 仮想サーバーにライセンスが付与されているかどうかを確認してください。

    • NetScaler Console GUIの[ 設定]>[分析構成 ]セクションで、仮想サーバーを選択し、ライセンスを適用します。詳細については、「 仮想サーバーでのライセンスの管理と分析の有効化」を参照してください。

リラクゼーションルールを設定する

エンドポイント URL または仮想サーバーの IP アドレスに緩和ルールを設定して、特定のトラフィックが API 仕様ファイルで指定されたスキーマに対して検証されないようにすることができます。

GUI について

以下は、"GET:/oauth/idp/login"認証エンドポイント URL に適用できる REST 検証緩和の例です:

  • [ **セキュリティ] > [NetScaler Web App Firewall] **[プロファイル] に移動します。

  • プロファイルns-aaa-default-appfw-profileを選択します。

  • [ 詳細設定] の [ 緩和ルール] をクリックします。

  • REST API スキーマ検証チェックボックスを選択します

  • リラクゼーションルール 」セクションの先頭に移動し、「 編集」をクリックします。

  • [追加] をクリックします。

  • REST API スキーマ検証緩和ルールページで 、必須フィールドを更新し、「 作成」をクリックします。

    リラクゼーションルール

以下は、仮想サーバーの IP アドレスに適用できる緩和の例です:

  • [ 詳細設定]で [ プロファイル設定] を選択します。

  • 共通設定 」セクションで、「 バイパスリストを有効にする 」チェックボックスを選択します。

  • [ 詳細設定] セクションに戻り、[ グローバルバイパス/拒否リスト] を選択します。

  • グローバルバイパスリスト 」セクションで、「 追加」をクリックします。

  • [AppFirewall バイパスリストバインディングの作成] ページで、必須フィールドを更新し、[作成] をクリックします。

    リラクゼーションルール

CLI で

以下は、"GET:/oauth/idp/login"認証エンドポイント URL に適用できる REST 検証緩和の例です:

bind appfwprofile ns-aaa-default-appfw-profile -restValidation "GET:/oauth/idp/login"
<!--NeedCopy-->

以下は、仮想サーバーの IP アドレスに適用できる緩和の例です:

set appfwprofile ns-aaa-default-appfw-profile -bypasslist on

bind appfwprofile ns-aaa-default-appfw-profile -bypasslist "CLIENT.IP.DST.EQ(192.0.2.255)" -valueType expression
<!--NeedCopy-->

デバッグのログ

以下は、NetScaler Webアプリケーションファイアウォールがブロックするユーザー要求に対して、ns.log ファイルに表示されるエラーメッセージの例です:

Mar 22 07:04:26 <local0.info> 192.0.2.4 03/22/2024:07:04:26 GMT 0-PPE-0 : default APPFW APPFW_SCHEMA_VALUE_INCORRECT 864 0 : 10.106.31.93 107-PPE0 - ns-aaa-default-appfw-profile Parameter value incorrect as per API Spec: (ns-aaa-spec) for Endpoint: (GET https://192.0.2.5/oauth/idp/login?client_id=test&response_type=code&scope=openid%20profile&redirect_uri=https%3A%2F%2Foauthrp.aaa.local%2Foauth%2Flogin&state=Y3R4PU9tNzJ5WkNlTGJaSVhBb1lXM21ZVm40N0ZfQ1JzNjM1OGhvWEpRWkpDVFV1ZkY5U1hoOV9Edndfa282bHZ1ejBqQUFRU0hsbnBJTzF5U0NjbThQdVlqbm1Lb01ESHk5aFVVS19WR0xiaTgtVE9GaHRZZVBYWWJ3Q2F6d2JoZk5QX3hlY09BY2t1NHJUYlFqODZiaHhaZkU3RVdzJTNEA) <blocked>

前の例では、ユーザーが緩和ルールを分析して設定しやすいように、プロファイル名とエンドポイント URL を指定しています。

次のstatコマンドは、トラフィック管理および認証仮想サーバーによってブロックされたユーザー要求のカウンタを表示します:

stat aaa | grep -i blocked

Total AAA Waf blocked hits     0        15
Total AAATM Waf blocked hits   0         1
<!--NeedCopy-->

次のstatコマンドは、API 仕様ファイルのカウンタを表示します:

stat apispec
API spec(s) Summary hits validate unmatched
ns-a...-spec 0 0 0
ns-aaa-spec 15 12 0
ns-vpn-spec 4 4 0
aaa 0 0 0
<!--NeedCopy-->

NetScalerが提供する新しいAPI仕様ファイルの動的アップデート

Webアプリケーションファイアウォール保護パラメーターが有効になっている場合、NetScalerは次の組み込みAPI仕様ファイルをAPIスキーマの検証に使用します。

  • ns-aaatm-spec: このファイルは、トラフィック管理仮想サーバーへの受信リクエストの API スキーマ検証を実行します。
  • ns-aaa-spec: このファイルは、認証仮想サーバーへの受信リクエストの API スキーマ検証を実行します。
  • ns-vpn-spec: このファイルは、VPN 仮想サーバーへの受信リクエストの API スキーマ検証を実行します。

GUIで、[ セキュリティ]>[NetScaler Web App Firewall]>[インポート]>[API仕様のインポート]の順に選択すると、これらのファイルを見つけることができます。

API 仕様ファイル

NetScalerが提供するAPI仕様ファイルを使用して、組み込みAPI仕様ファイルを動的に更新できます。GUI で次の手順を実行します:

  1. [ セキュリティ] > [NetScaler Web App Firewall] > [インポート] > [API仕様のインポート] に移動します。

  2. API 仕様ファイルを選択して [ 編集] をクリックします。

  3. API 仕様インポートオブジェクトページで、「 ファイル」をクリックします。

  4. 新しい API スキーマファイルをアップロードし、[ 続行] をクリックします。

    メモ:

    • NetScalerが提供するAPI仕様ファイルの名前は変更しないでください。
    • 暗号化 」チェックボックスが選択されていることを確認します。

    API 仕様のインポート

  5. [完了] をクリックします。

ファイルのインポートの詳細については、「 インポート」を参照してください。

制限事項

この機能は現在、デフォルトパーティションのトラフィックに適用できます。

参照ドキュメント

VPN 仮想サーバーと認証仮想サーバーの Web アプリケーションファイアウォール保護