Skip to main content

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

Java、.NET Framework、.NET Core、Node.js、Python、Go、Rubyエージェントを使用している場合、アプリケーションの例外を使用して、特定のアプリケーションやアプリケーションの一部をセキュリティ検査の対象から外すことができます。

現在、PHPエージェントは、アプリケーションの例外をサポートしていません。

開始する前に

  • アクセス制御の要件:

    • ユーザのロール :組織のRulesAdminまたは組織のAdminロール

    • ロールベースのアクセス制御(プレビュー機能)の場合:「アプリケーションの編集」アクションを含むロール

  • コードの例外は、Javaと.NETエージェントでサポートされます。

  • 入力の例外は、Java、.NET、Node.js、Python、Ruby、Goエージェントでサポートされます。

  • URLの例外は、Java、.NET、Node.js、Python、Rubyエージェントでサポートされます。

  • キュー/トピック(メッセージキュー)の例外は、Javaと.NET Coreエージェントでサポートされます。

手順

  1. Contrast Webインターフェイスのナビゲーションバーでアプリケーションを選択して、アプリケーションの一覧よりアプリケーション名をクリックします。

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

  2. ポリシータブを選択したら、例外を選択します。

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

    ヒント

    既存の攻撃イベントから例外を作成することもできます。攻撃イベントの一覧を表示する場合は、攻撃 > 攻撃イベントを選択します。一番右の列にある三角形を選択して、例外を追加を選択します。このボタンを選択すると、そのイベントの情報に基づいて例外の各フィールドにデータが事前に入力されます。

    作成後、この例外は例外の一覧に表示されます。

  4. 「例外を追加」の画面で、この例外の名前を入力します(覚えやすい名前にします)。

  5. 例外の種類を選択します。

    入力、URL、キュー/トピックベースによる例外定義には、以下の値を含むPerl互換正規表現(PCRE)のサブセットを使用できます。

    .* for 0 or more of any character
    .+ for 1 or more of any character
    .? for 0 or 1 of any character
    . for 1 of any character
    \. for an escaped literal of . for usage Examle: somefile\.jsp

    詳細は、こちらの例を参考にしてください。

    以下のいずれかの種類を選択してください。

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

      Com.Acme.OldSecurity.DoLegacySecurity

      完全なメソッドシグネチャを指定し、末尾のパラメータ定義が欠如したり他の余分な文字を含めないようにしてください。このメソッドシグネチャが、検出された脆弱性のスタックトレースに対して照合されます。一致するものが含まれるメソッドシグネチャは全て検査の対象外になります。

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

      この例外の使用に関する詳細と例は、入力の例外を参照してください。

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

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

      例外の種類が入力の場合、「適用するURL」の項目で、URLの適用範囲を選択します。

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

      • 以下のURL:例外を適用するパスを指定します。正規表現ワイルドカード表記を使用できます。

      重要

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

      スラッシュの後にワイルドカード(/.*)を指定すると、全てのURLを記述する代わりに使用できます。

      特定のルールで無視する必要があるURLを指定します。

    • URL:特定のルールで無視する必要があるURLを指定します。例外にするURLのパスを1行ずつ記述します。正規表現ワイルドカード表記を使用できます。

    • キュー/トピック: 特定のルールで無視されるべきメッセージキューやトピックを指定します。メッセージキューには1つのコンシューマがあり、トピックには複数のコンシューマがあります。

      現在、このオプションはJavaエージェントのみでサポートされています。

      キュー/トピックの例外タイプの場合、「適用するキュー」で、キューまたはトピック名の適用方法を選択します。

      • 全てのキュー/トピック:全てのキュー/トピックからの結果が表示されなくなります。

      • 以下のキュー:例外とするキュー名またはトピック名のリストを指定します。キュー名を指定するか、正規表現ワイルドカード表記を使用できます。

  6. 対象ルールには、例外の影響を受けるルールの範囲を指定します。デフォルトでは全てのルールが対象になります。チェックボックス内をクリックして複数のオプションを選択できます。

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

    • 「ASSESS」下にある全てのAssessルールを選択すると、Assessが有効になっている場合、検出された全ての脆弱性に適用されます。

    • 「PROTECT」下にある全てのProtectルールを選択すると、Protectが有効になっている場合、全ての攻撃イベントに適用されます。

    • 「ASSESS」セクションおよび「PROTECT」セクション下で、 個々のルールを選択することで、適用対象をさらに絞り込むことができます。例外は、選択したルールで検出された脆弱性にのみ適用されます。

      例外の種類として入力を選択した場合は、ユーザ入力によってトリガーされないルールのみを選択します。

    • 「ASSESS」および「PROTECT」下では、AssessとProtectで検出される個々のルールを複数選択できます。

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

  8. 追加を選択します。

    例外が、例外の一覧に追加されます。定義した条件に一致する入力は、適用したルールによって処理が行われなくなります。

    例外の一覧は、アプリケーション > アプリケーション名 > ポリシー > 例外または、ユーザメニュー > ポリシーの管理 > アプリケーションの例外で確認できます。一覧にあるトグルボタンを使用して、AssessまたはProtectの例外を有効/無効にできます。