このセクションでは、引数の正規表現一致を使用した WAF 例外の構成について説明します。NSX Advanced Load Balancer は URL 一致の正規表現をサポートします。
NSX Advanced Load Balancer WAF は、正規表現として PCRE (Perl Compatible Regular Expressions) を使用します。NSX Advanced Load Balancer は、引数の正規表現の構成をサポートします。WAF ポリシーの [match_element] フィールドは、キーワードだけでなく正規表現を使用するように構成できます。
CLI を使用した引数の正規表現一致の構成
コントローラ シェルにログインし、コマンドを入力して、必要な WAF ポリシーを編集します。
スラッシュ(「/」)を入力し、その後にキーワード
match_element_criteria
を入力して、match_element_criteria
を検索します。次に示すように、
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
Esc
キーを押し、:wq
と入力します。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
ユーザー インターフェイスを使用した引数の正規表現一致の構成
NSX Advanced Load Balancer ユーザー インターフェイスで、 の順に移動します。編集するポリシーをクリックするか、必要に応じて新しいポリシーを作成します。
[ルール] タブで、ルール セットの下にある関連するルールに移動します。ルールのドロップダウン メニューをクリックして、構成オプションを展開します。[+ 例外の追加] をクリックして、例外を構成します。
[例外] フィールドに正規表現を入力し、[正規表現の一致] のチェックボックスを選択します。
構成を保存します。