Skip to main content

脆弱性の自動検証ポリシーの設定

脆弱性の自動検証ポリシーの条件を満たす脆弱性のステータスを自動的に修復済 - 自動検証に変更します。自動検証ポリシーには、セッションベース、ルートベース、または時間ペースを設定できます。

ポリシーを追加すると、デフォルトでポリシーが有効になります。ポリシーの有効/無効は、自動検証タブの「有効」の列で切り替えることができます。

RBAVPolicyEnable.png

開始する前に

  • Contrastのバージョン3.7.2以降を使用してください。

  • Contrastエージェントでサポート対象となる最小バージョン以降を使用していることを確認してください。

    • .NET Framework 20.4.1

    • .NET Core 1.0

    • Java 3.7.3.14895

    • Node.js 2.11.0

    • Python 3.4.0

    • Ruby 3.8.4

  • サポート対象のフレームワークを使用していることを確認してください。

  • セッションベースまたはルートベースの自動検証を使用する場合は、エージェントの設定ファイルに一意のセッションメタデータを設定して下さい(例、コミットハッシュ、ビルド番号、バージョンなど)。

自動検証ポリシーの設定

  1. ユーザメニューから、ポリシーの管理を選択します。

  2. 脆弱性の管理を選択します。

  3. 脆弱性ポリシーにある自動検証タブを選択します。

  4. ポリシーを追加を選択します。

  5. 名前に、ポリシーの名前を入力します。

  6. 脆弱性ルールに、ポリシーに関連付ける1つ以上の深刻度やAssessルールを選択します。

  7. アプリケーションに、ポリシーに関連付ける1つ以上の重要性やアプリケーションを選択します。

    具体的な重要性やアプリケーションを検索する場合、「アプリケーション」欄に値を入力してみて下さい。

  8. 環境には、ポリシーを適用する1つ以上のサーバ環境を選択します(全ての環境、開発環境、QA、本番環境)。

  9. トリガーでは、ポリシーに使用するトリガーの種類を選択します(トリガーのタイプを1つまたは両方選択)。

    • 時間ベースのトリガーを設定するには、指定日数以降に全ての脆弱性を自動検証によって修復済のステータスにするを選択し、脆弱性ポリシーが自動検証されたステータスになるまでの日数を選択します。

      このトリガーは、選択した期間内に脆弱性を修正し、全てのルートを疎通できることが確実な場合に便利です。Contrastで再びその脆弱性が確認された場合、その脆弱性は再オープンされます。

      ヒント

      時間ベースの自動検証を、セッションベースまたはルートベースの自動検証と併用することで、ビルドごとにルートが大きく変化する状況を検知できます。例:

      • 新しいルートを追加して、古いルートを削除するなど、コードの大幅なリファクタリングを行った場合。

      • ルートが有効ではなくなり、疎通されなくなった場合。

    • セッションベースまたはルートベースの自動検証を設定するには:

      1. ルートまたはセッションに基づく自動検証を選択します。

        セッションまたはルートベースの自動検証は、時間ベースのトリガーよりも優先されます。

      2. 以下のオプションのいずれかひとつを選択します(両方のオプションを同時に使用することはできません)。

        • セッションベースの自動検証(推奨): このタイプの自動検証ポリシーでは、セッションの終了タイミングを定義でき、ビルドの合否も判断できるなど、テストランの結果をすぐに取得できます。自動検証として推奨されるのは、セッションベースの自動検証です。このオプションを選択する場合、テストランの最後にContrast APIを呼び出すことで、セッションを終了します。

        • ルートベースの自動検証:セッションベースの自動検証を使用できない場合に、ルートベースの自動検証の使用を検討します。この場合、エージェントに設定したセッションメタデータによって、セッションが定義されます。

          ルートベースのトリガーは、ルートが識別できる特定のテクノロジに対してのみ機能します。

  10. 保存を選択します。

セッションベースの自動検証のためのテストランの設定

セッションベースの自動検証は、自動検証の方法として推奨されますが、テストランの最後にContrast SBAVRouteSession APIを呼び出す必要があります。以下に、セッションをクローズする例をいくつか示します。

認証ヘッダーとAPIキーを検索するには、Contrast Webインターフェイスにログインし、ユーザメニューよりユーザの設定を選択します。

  • セッションIDとアプリケーションIDでセッションを終了する場合。以下の例のようなコマンドを使用して下さい。

    curl --location --request POST 'https://<HOST>/Contrast/api/ng/organizations/<ORG-UUID>/agent-sessions/sbav' \
    --header 'Authorization: <Your-Auth-Header-Value>' \
    --header 'API-Key: <API-KEY>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "sessionId":"0",
        "appId":"5b4960b3-a111-4f2a-bf24-7367be7c8302"
    }'
  • セッションID、アプリケーション名、アプリケーション言語でセッションを終了する場合。以下の例のようなコマンドを使用して下さい。

    curl --location --request POST 'https://<HOST>/Contrast/api/ng/organizations/<ORG-UUID>/agent-sessions/sbav' \
    --header 'Authorization: <Your-Auth-Header-Value>' \
    --header 'API-Key: <API-KEY>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "sessionId":"0",
        "appName":"FakeRubyApp",
        "appLanguage":"JAVA"
    }'
  • アプリケーションに設定されているメタデータのキーと値のペア、およびアプリケーションIDでセッションを終了する場合。以下の例のようなコマンドを使用して下さい。

    curl --location --request POST 'https://<HOST>/Contrast/api/ng/organizations/<ORG-UUID>/agent-sessions/sbav' \
    --header 'Authorization: <Your-Auth-Header-Value>' \
    --header 'API-Key: <API-KEY>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "appId":"abc",
        "metadata":[
            {"label":"developer", "value":"carlos"},
            {"label":"repo", "value":"ts"}
        ]
    }'
  • アプリケーションに設定されているメタデータのキーと値のペア、およびアプリケーション名とアプリケーション言語でセッションを終了する場合。以下の例のようなコマンドを使用して下さい。

    curl --location --request POST 'https://<HOST>/Contrast/api/ng/organizations/<ORG-UUID>/agent-sessions/sbav' \
    --header 'Authorization: <Your-Auth-Header-Value>' \
    --header 'API-Key: <API-KEY>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "appName":"FakeJavaApp",
        "appLanguage":"JAVA",
        "metadata":[
            {"label":"developer", "value":"carlos"},
            {"label":"repo", "value":"ts"}
        ]
    }'

脆弱性ポリシーの更新

  1. ユーザメニューから、ポリシーの管理を選択します。

  2. 脆弱性の管理を選択します。

  3. 脆弱性ポリシーにある自動検証タブを選択します。

  4. 自動検証タブで、ポリシーを選択します。

  5. 必要に応じて、値を更新します。

  6. 更新を選択します。