アプリケーションの例外の追加

Java、.NET Frameworkおよび.NET Coreエージェントでは、アプリケーションの例外を使用して、特定のアプリケーションまたはその一部をセキュリティ分析の対象から除外できます。

アプリケーションの例外を作成するには:

  1. 管理者(Admin)またはルール管理者(Rules Admin)としてログインします。

  2. ヘッダでアプリケーションを選択し、アプリケーションの名前を選択して開きます。ポリシータブを選択して、例外を選択します。

    注記

    例外が適用されるのは、その例外が作成されたアプリケーションだけです。

  3. 例外を追加を選択します。

  4. 表示された画面で、例外の情報を入力します。この条件と一致する入力は処理が実行されません。

  5. 例外の種類を入力します。入力およびURLによる例外定義では、Perl Compatible Regular Expressions (PCRE)形式を使用できます。こちらの正規表現の例を参考としてご覧ください。以下の3つのオプションがあります。

    • コード:表示しないメソッドシグネチャを入力します。例えば、com.Acme.OldSecurityというクラス内にdoLegacySecurity()メソッドがあり、安全でない暗号化アルゴリズムの使用が報告されている場合、以下の行を入力することで、無視させることができます。

      Com.Acme.OldSecurity.DoLegacySecurity

      完全なメソッドシグネチャを指定し、末尾のパラメータ定義やその他の余分な文字を含めないでください。このメソッドシグネチャは、検出された脆弱性のスタックトレースに対して照合されます。一致を含むメソッドシグネチャが全て非表示になります。

    • 入力:入力タイプと入力名を入力します。この入力が使用される検出結果は、全て表示されなくなります。

      • ParameterHeaderCookieの場合:結果を非表示にする特定の入力名を指定する必要があります。ワイルドカード.*を使用すると、選択した入力タイプの全ての検出結果が非表示となります。

      • QueryStringBodyの場合:それぞれQueryStringとBody全体からの検出結果が表示されなくなります。QueryStringとBodyは、以下で定義されているURLの例外パターンとの組合せでのみ非表示になります。

      入力タイプでは、URLの適用方法も選択する必要があります。

      • 全てのURL:指定された入力タイプと名前が使用されている検出結果は、どこから発生したかに関係なく表示されなくなります。

        以下の表には、正規表現による入力例が含まれます。

        タイプ

        期待される結果

        正規表現

        Cookie

        値で始まるCookie名を除外

        ^App

        Appで始まるCookie名を全て除外

        Parameter

        値で終わるパラメータ名を除外

        testing$

        testingで終わるパラメータ名を全て除外

        Header

        明示的に名前が付けられたヘッダを除外

        ignore

        ヘッダignoreのみを除外

      • 以下のURL:例外を適用するパスを指定します。このオプションには正規表現を使用できます。

        ヒント

         スラッシュに続くワイルドカード(/.*)は、全てのURLをリストする代わりに使用できます。

    • URL:特定のルールで無視する必要があるURLを指定します。除外するURLパスを1行ずつリストします。

      重要

      プロトコルスキーム(http://またはhttps://)やホスト名は含めず、パス名のみを使用してください。

      .NET frameworkと.NET coreの場合は、.*を使用してPCRE形式にします。以下に例を示します。

      期待される結果

      正規表現

      全てのサブパスを除外

      /myapp/.*

      /myapp/で始まるURLがあるパスを全て除外

      1つのサブパスを明示的に除外

      ^/myapp/thispath$

      /myapp/thispathのみ除外

      パスの末尾を除外

      .*ignore$

      ignoreで終わるパスを全て除外

      指定値を含むパスを除外

      .*value.*

      valueを含むパスを全て除外

      数字を含むパスを除外

      /myapp/\d+

      /myapp/1234などのパスを全て除外

      数字以外を含むパスを除外

      /myapp/\D+

      /myapp/wordなどのパスを全て除外

      Javaエージェントは、 .* のワイルドカードを認識しません。代わりに、 * を使用してください。

  6. 対象ルールでは、例外の影響を受けるルールの範囲を指定します。

    • 全てのルールを選択すると、AssessとProtectの両方のモードで検出される全ての脆弱性に対して例外が適用されます。

    • 全てのAssessルールは、Assessが有効な場合に検出される全ての脆弱性に対して適用されます。

    • 全てのProtectルールは、Protectが有効な場合の全ての攻撃イベントに対して適用されます。

    • 特定のルールに除外を適用する1つ以上のProtectまたはAssessのルールを選択します。

    AssessまたはProtectのルールを個々に選択して、さらに範囲を絞り込みます。例外は、選択したルールによって検出された脆弱性にのみ適用されます。

  7. 既に報告されている履歴イベントを非表示にする場合は、この例外と一致する全てのイベントを消去の横のチェックボックスをオンにします。

  8. 保存を選択します。例外は、例外リストに追加されます。このリストは、アプリケーション > アプリケーション名 > ポリシー > 例外または、ユーザメニュー > ポリシーの管理 > アプリケーションの例外で確認できます。リストにあるトグルボタンを使用して、AssessまたはProtectの例外を有効/無効にできます。

ヒント

また、既存の攻撃イベントから新しい例外を作成することもできます。攻撃イベントのリストを表示するには、攻撃 > 攻撃イベントを選択し、一番右の列にある三角形を選択して、例外を追加を選択します。このボタンを選択すると、この特定のイベントの詳細をもとに例外フィールドにデータが入力されます。

作成後、この例外は例外リストに表示されます。