VPN 仮想サーバーと認証仮想サーバーの Web アプリケーションファイアウォール保護
NetScalerリリース14.1ビルド21.57以降、Webアプリケーションファイアウォール保護を適用することで、NetScaler Gateway仮想サーバー、トラフィック管理仮想サーバー、および認証仮想サーバーを悪意のある攻撃から保護できます。この機能は、受信リクエストをAPIスキーマを使用して検証してフィルタリングし、アプリケーションにアクセスするユーザーを認証するため、デプロイメントのセキュリティをさらに強化します。
注:
認証用の Web アプリケーションファイアウォール保護と Gateway エンドポイント機能は、Linux ベースの CPX および BLX デプロイメントではサポートされません。
Webアプリケーションファイアウォール保護を有効にすると、NetScalerは組み込みのWebアプリケーションファイアウォールプロファイルns-aaatm-default-appfw-profile
、ns-aaa-default-appfw-profile
、ns-vpn-default-appfw-profile
を利用します。 プロファイルには関連するビルトインAPI仕様ファイルns-aaatm-spec
、ns-aaa-spec
、ns-vpn-spec
が含まれており、ネットワークトラフィックが安全でAPI仕様に準拠していることを保証します。
注:
最新のセキュリティ修正が含まれているため、常に最新のソフトウェアバージョンにアップグレードすることをお勧めします。
ライセンスの要件
この機能はすべてのライセンス (スタンダード、エンタープライズ、プレミアム) で使用できます。
Web アプリケーションファイアウォール保護の設定
GUI について
仮想サーバーの Web アプリケーションファイアウォール保護を構成するには:
- [ セキュリティ] > [AAA-アプリケーショントラフィック] > [認証設定の変更] に移動します。
-
AAA パラメータの設定ページで 、 WAF保護を設定します。
以下のオプションがサポートされています:
-
無効-選択すると、Web アプリケーションファイアウォールの保護はどの仮想サーバーにも適用されません。デフォルトでは、Web アプリケーションファイアウォールの保護はどの値にも設定されていません。
-
AUTH — 認証仮想サーバーを保護します。
-
VPN — VPN 仮想サーバーを保護します。
-
AUTH と VPN — 認証、トラフィック管理、VPN 仮想サーバーを保護します。
-
- [OK] をクリックします。
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 パラメータの設定ページで 、 セキュリティインサイトオプションを有効にします 。このパラメーターは、デフォルトでは無効になっています。
CLI で
次のコマンドを実行して、デバッグログのセキュリティインサイトを有効にします。このパラメーターは、デフォルトでは無効になっています。
set aaa parameter -securityInsights <ENABLED/DISABLED>
GUI で AppFlow コレクターと分析プロファイルを設定する
-
[System]>[Settings] に移動します。「 モードと機能 」セクションで、ULFDモードと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 レコードを表示する
-
NetScaler ConsoleのオンプレミスGUIで、[セキュリティ]>[ セキュリティ違反]に移動します。 WAF セクションで、VPN または認証仮想サーバーを選択します。詳細については、「 アプリケーションのセキュリティ違反の詳細を表示する」を参照してください。
詳細を表示するには、「 リクエスト URL」フィールドで URL を選択します。
-
適切なライセンスを VPN または認証仮想サーバーに適用します。
-
仮想サーバーにライセンスが付与されているかどうかを確認してください。
-
NetScaler Console GUIの[ 設定]>[分析構成 ]セクションで、仮想サーバーを選択し、ライセンスを適用します。詳細については、「 仮想サーバーでのライセンスの管理と分析の有効化」を参照してください。
注:
この手順は、NetScaler Consoleのオンプレミスバージョン14.1~17.38以前のバージョンを使用している場合にのみ必要です。
-
リラクゼーションルールを設定する
エンドポイント 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-->
緩和ルールの設定の詳細については、「 CLIを使用したAPIスキーマ検証の緩和ルールの設定」を参照してください。
デバッグのログ
以下は、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仕様のインポート]の順に選択すると、これらのファイルを見つけることができます。
NetScalerが提供するAPI仕様ファイルを使用して、組み込みAPI仕様ファイルを動的に更新できます。GUI で次の手順を実行します:
-
[ セキュリティ] > [NetScaler Web App Firewall] > [インポート] > [API仕様のインポート] に移動します。
-
API 仕様ファイルを選択して [ 編集] をクリックします。
-
API 仕様インポートオブジェクトページで、「 ファイル」をクリックします。
-
新しい API スキーマファイルをアップロードし、[ 続行] をクリックします。
メモ:
- NetScalerが提供するAPI仕様ファイルの名前は変更しないでください。
- 「 暗号化 」チェックボックスが選択されていることを確認します。
-
[完了] をクリックします。
ファイルのインポートの詳細については、「 インポート」を参照してください。
API 仕様の検証について詳しくは、 API 仕様の検証をご覧ください。
制限事項
この機能は現在、デフォルトパーティションのトラフィックに適用できます。
参照ドキュメント
-
NetScaler Webアプリケーションファイアウォール機能について詳しくは、「NetScaler Webアプリケーションファイアウォールの概要」を参照してください。
-
AppFlow 機能の詳細については、「 AppFlow」を参照してください。
-
FAQ の詳細については、「 認証、承認、監査」を参照してください。