このセクションでは、WAF のアプリケーション学習について説明します。
アプリケーション学習は、WAF ポリシーによって処理された一連の受信トラフィックを分析するために NSX Advanced Load Balancer の WAF 機能を有効にします。
仮想サービスでアプリケーション学習が有効になっている場合、サービス エンジンはデータを収集し、分析のためにコントローラに送信します。したがって、すべての学習はコントローラで実行されます。アプリケーション学習のためのトラフィックの選択は、構成された WAF ポリシーに基づいて行います。
HTTP 要求の URI または BODY パラメータを含むすべてのパスを解析します。この収集は、指定した期間または間隔中に継続されます。タイマーがヒットすると、サービス エンジンは分析のためにデータを NSX Advanced Load Balancer Controller に送信します。これらの WAF 構成パラメータは、WAF ポリシー間で分散されます。
[学習] オプション
学習オプションを有効にするには、次の手順を実行します。
の順に移動します。
[アプリケーション学習] を [有効] にするポリシーを選択します。
次のスクリーンショットは、[アプリケーション学習] を有効にするオプションを示しています。
選択した WAF ポリシーの [アプリケーション学習] を有効にします。このオプションを有効にすると、次のような追加の構成オプションを編集できます。
フィールド |
説明 |
追加情報 |
---|---|---|
[認証されたクライアントのみから学習] |
この WAF ポリシーのアプリケーション学習を有効にするには、このオプションを選択します。 |
|
[信頼できる IP アドレス] |
構成されている場合、学習は、構成された IP アドレス グループ内のクライアント IP アドレスからの要求に対してのみ実行されます。 |
|
[サンプリング] |
アプリケーション学習の対象となるリクエストの割合。 |
範囲(1 ~ 100%)。 |
[ルールの自動更新を有効にする] |
WAF プロファイルでアプリケーション学習に基づくルールの更新を有効にします。ルールは、専用の WAF 学習グループでプログラミングされます。 |
チェックボックスを選択するか、選択解除します。 |
[ルールの自動昇格 (信頼度)] |
ルールの自動更新に必要な最小信頼ラベル。 |
|
[学習間隔] |
SE がアプリケーション学習データをコントローラに公開する頻度。 |
範囲(1 ~ 60 分)。例:30 分 |
[最大パラメータ] |
アプリケーションで学習するパラメータの最大数。 |
範囲(10 ~ 1000)。例:100 |
[学習する最小ヒット数] |
パラメータを学習対象にするための最小発生回数。 |
範囲(10 ~ 1000)。例:100 |
[URI ごとの学習] |
URI パスごとにパラメータを学習します。 |
チェックボックスを選択するか、選択解除します。 |
[最大 URI] |
アプリケーションで学習する URI パスの最大数。この値は、より複雑なアプリケーションの場合は高く設定できます。 |
範囲(10 ~ 10000)。 |
[URI ごとの学習] が [有効] の場合、学習アルゴリズムは、信頼スコアに達したときに URI とパラメータの組み合わせをプログラムします。[無効] の場合、学習アルゴリズムは URI とは独立してパラメータをプログラムします。これは、セッションごとに URI が生成される場合に役立ちます。
認証されたクライアントのみからのアプリケーション学習
認証されたクライアントのみから学習するオプションは、アプリケーション学習パラメータで使用できます。このパラメータのデフォルト値は false
です。Learn_from_authenticated_clients_only が true
に設定されている場合、学習は、仮想サービスの認証プロファイルで構成された認証プロセスにパスしたクライアントからの要求に対してのみ実行されます。値が true
に設定され、クライアントが認証されていない場合、要求学習データは送信されません。
認証されたクライアントからのアプリケーション学習フラグを有効にすると、仮想サービスの認可ポリシーで構成された認証にパスしたクライアントに学習を制限できます。
CLI にログインし、learning_params オプションを選択して、learn_from_authenticated_clients_only を true
に設定します。
[admin:ctr]: > configure wafpolicy Demo-WAF-Policy [admin:ctr]: wafpolicy> learning_params [admin:ctr]: wafpolicy:learning_params> learn_from_authenticated_clients_only Overwriting the previously entered value for learn_from_authenticated_clients_only [admin:ctr]: wafpolicy:learning_params> where Tenant: admin Cloud: Default-Cloud +---------------------------------------+-----------+ | Field | Value | +---------------------------------------+-----------+ | sampling_percent | 1 percent | | update_interval | 30 min | | max_uris | 500 | | max_params | 100 | | enable_per_uri_learning | True | | min_hits_to_learn | 10000 | | learn_from_authenticated_clients_only | True | +---------------------------------------+-----------+
信頼できる IP アドレスを経由したアプリケーション学習
trusted_ipgroup_ref オプションを使用して、信頼できる IP グループを既存の IP グループに設定します。
[admin:ctr]: wafpolicy:learning_params> trusted_ipgroup_ref Internal [admin:ctr]: wafpolicy:learning_params> where Tenant: admin Cloud: Default-Cloud +---------------------------------------+-----------+ | Field | Value | +---------------------------------------+-----------+ | sampling_percent | 1 percent | | update_interval | 30 min | | max_uris | 500 | | max_params | 100 | | enable_per_uri_learning | True | | min_hits_to_learn | 10000 | | learn_from_authenticated_clients_only | True | | trusted_ipgroup_ref | Internal | +---------------------------------------+-----------+
構成を保存します。
[admin:ctrl]: wafpolicy:learning_params> save [admin:ctr]: wafpolicy> save +-----------------------------------------+------------------------------------------------+ | Field | Value | +-----------------------------------------+------------------------------------------------+ | uuid | wafpolicy-e3bcd2bd-afcf-43ec-97cc-c33a978b3ebf | | name | Demo-WAF-Policy | | tenant_ref | admin | | mode | WAF_MODE_DETECTION_ONLY | | waf_profile_ref | System-WAF-Profile | | paranoia_level | WAF_PARANOIA_LEVEL_LOW | | waf_crs_ref | CRS-2021-2 | | failure_mode | WAF_FAILURE_MODE_OPEN | | allow_mode_delegation | True | | positive_security_model | | | group_refs[1] | Demo-WAF-Policy-PSM-Learning-Group | | enable_app_learning | True | | application_signatures | | | provider_ref | System-WafApplicationSignatures-Trustwave | | learning_params | | | sampling_percent | 1 percent | | update_interval | 30 min | | max_uris | 500 | | max_params | 100 | | enable_per_uri_learning | True | | min_hits_to_learn | 10000 | | learn_from_authenticated_clients_only | True | | trusted_ipgroup_ref | Internal | | min_confidence | CONFIDENCE_VERY_HIGH | | confidence_override | | | confid_very_high_value | 9999 | | confid_high_value | 9500 | | confid_probable_value | 9000 | | confid_low_value | 7500 | | enable_auto_rule_updates | True | | enable_regex_learning | False | | bypass_static_extensions | True | +-----------------------------------------+------------------------------------------------+
信頼できる IP グループが構成されているが、クライアント IP アドレスがグループに一致しない場合、要求学習データは送信されません。
「認証されたクライアントのみ」と「信頼できる IP」の両方が構成されている場合、これらのパラメータのいずれかの値が
true
に設定されている場合に学習が有効になります。Learn_from_authenticated_client_only と信頼できる IP の両方が構成されているが、クライアントが認証されておらず、信頼できる IP グループ内にもない場合、要求学習データは送信されません。