このセクションでは、引数の正規表現一致を使用した WAF 例外の構成について説明します。NSX Advanced Load Balancer は URL 一致の正規表現をサポートします。

NSX Advanced Load Balancer WAF は、正規表現として PCRE (Perl Compatible Regular Expressions) を使用します。NSX Advanced Load Balancer は、引数の正規表現の構成をサポートします。WAF ポリシーの [match_element] フィールドは、キーワードだけでなく正規表現を使用するように構成できます。

CLI を使用した引数の正規表現一致の構成

  1. コントローラ シェルにログインし、コマンドを入力して、必要な WAF ポリシーを編集します。

  2. スラッシュ(「/」)を入力し、その後にキーワード match_element_criteria を入力して、match_element_criteria を検索します。

  3. 次に示すように、match_element フィールドで目的の正規表現を構成します。match_element で、match_case フィールドを SENSITIVE に設定し、match_op フィールドを REGEX_MATCH に設定します。

     exclude_list:
            - match_element: ARGS:regex
              match_element_criteria:
                match_case: SENSITIVE
                match_op: REGEX_MATCH
              uri_match_criteria:
                match_case: SENSITIVE
                match_op: REGEX_MATCH
              uri_path: ^/test.php

  4. Esc キーを押し、:wq と入力します。

  5. save と入力して、構成を保存します。

    save

構成例

引数名には、固定された部分と動的な部分を複数含めることができます。次のような URL の例を考えてみます。

https://appname.com/typo/test_doc.php?data[news][1234][body]=Some_long_text_expected

ここで、data[news][" and "][body] は固定された部分で、数値 [1234] は要求ごとに異なる動的な値です。このアプリケーションに対する攻撃の例は次のようになります。

https://appname.com/typo/test_doc.php?data[news][1234][body]=%3Cscript%3Ealert(1)%3C/script%3E

この例の例外の作成に必要な正規表現は次のとおりです。

URL Regex:              ^/typo/test_doc.php
Match element Regex:    ARGS:.data\[news\]\[.*\]\[body\]

これを有効な正規表現にするには、ARGS:data の代わりに ARGS:.data を使用します。

WAF ポリシーの構成は次のとおりです。

exclude_list:
 - match_element: ARGS:data\[news\]\[.*\]\[body\]
   match_element_criteria:
     match_case: SENSITIVE
     match_op: REGEX_MATCH
   uri_match_criteria:
     match_case: SENSITIVE
     match_op: REGEX_MATCH
   uri_path: ^/typo/test_doc.php

ユーザー インターフェイスを使用した引数の正規表現一致の構成

  1. NSX Advanced Load Balancer ユーザー インターフェイスで、[テンプレート] > [WAF] > [WAF ポリシー] の順に移動します。編集するポリシーをクリックするか、必要に応じて新しいポリシーを作成します。

  2. [ルール] タブで、ルール セットの下にある関連するルールに移動します。ルールのドロップダウン メニューをクリックして、構成オプションを展開します。[+ 例外の追加] をクリックして、例外を構成します。

  3. [例外] フィールドに正規表現を入力し、[正規表現の一致] のチェックボックスを選択します。

  4. 構成を保存します。