脆弱性の自動検証ポリシーの設定
脆弱性の自動検証ポリシーの条件を満たす脆弱性のステータスを自動的に修復済 - 自動検証に変更します。自動検証ポリシーには、セッションベース、ルートベース、または時間ペースを設定できます。
ポリシーを追加すると、デフォルトでポリシーが有効になります。ポリシーの有効/無効は、自動検証タブの「有効」の列で切り替えることができます。
開始する前に
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つ以上の深刻度やAssessルールを選択します。
アプリケーションに、ポリシーに関連付ける1つ以上の重要性やアプリケーションを選択します。
具体的な重要性やアプリケーションを検索する場合、「アプリケーション」欄に値を入力してみて下さい。
環境には、ポリシーを適用する1つ以上のサーバ環境を選択します(全ての環境、開発環境、QA、本番環境)。
トリガーでは、ポリシーに使用するトリガーの種類を選択します(トリガーのタイプを1つまたは両方選択)。
時間ベースのトリガーを設定するには、指定日数以降に全ての脆弱性を自動検証によって修復済のステータスにするを選択し、脆弱性ポリシーが自動検証されたステータスになるまでの日数を選択します。
このトリガーは、選択した期間内に脆弱性を修正し、全てのルートを疎通できることが確実な場合に便利です。Contrastで再びその脆弱性が確認された場合、その脆弱性は再オープンされます。
ヒント
時間ベースの自動検証を、セッションベースまたはルートベースの自動検証と併用することで、ビルドごとにルートが大きく変化する状況を検知できます。例:
新しいルートを追加して、古いルートを削除するなど、コードの大幅なリファクタリングを行った場合。
ルートが有効ではなくなり、疎通されなくなった場合。
セッションベースまたはルートベースの自動検証を設定するには:
ルートまたはセッションに基づく自動検証を選択します。
セッションまたはルートベースの自動検証は、時間ベースのトリガーよりも優先されます。
以下のオプションのいずれかひとつを選択します(両方のオプションを同時に使用することはできません)。
セッションベースの自動検証(推奨): このタイプの自動検証ポリシーでは、セッションの終了タイミングを定義でき、ビルドの合否も判断できるなど、テストランの結果をすぐに取得できます。自動検証として推奨されるのは、セッションベースの自動検証です。このオプションを選択する場合、テストランの最後にContrast APIを呼び出すことで、セッションを終了します。
ルートベースの自動検証:セッションベースの自動検証を使用できない場合に、ルートベースの自動検証の使用を検討します。この場合、エージェントに設定したセッションメタデータによって、セッションが定義されます。
ルートベースのトリガーは、ルートが識別できる特定のテクノロジに対してのみ機能します。
保存を選択します。
セッションベースの自動検証のためのテストランの設定
セッションベースの自動検証は、自動検証の方法として推奨されますが、テストランの最後に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"} ] }'
脆弱性ポリシーの更新
ユーザメニューから、ポリシーの管理を選択します。
脆弱性の管理を選択します。
脆弱性ポリシーにある自動検証タブを選択します。
自動検証タブで、ポリシーを選択します。
必要に応じて、値を更新します。
更新を選択します。