Skip to main content

ジョブ結果ポリシーの定義

ジョブ結果ポリシー(Contrast Jenkinsプラグインのバージョン3.3以降でサポート)は、Contrastプラグインを使用するJenkinsジョブにビルド結果を割り当てます。ジョブ結果ポリシーにより、設定した基準に基づいて、ジョブのビルド結果にFAILURE(失敗)、UNSTABLE(不安定)、SUCCESS(成功)などのステータスが付けられます。

開始する前に

Contrastでジョブ結果ポリシーを定義するには、組織の管理者である必要があります。

ポリシーを定義

ジョブ結果ポリシーを定義するには:

  1. Contrast Webインターフェイスで組織の設定を選択し、左のナビゲーションでインテグレーションを選択します。

  2. ジョブ結果ポリシーの名前を定義します(必須)。

  3. アプリケーションで、ポリシーを適用するアプリケーションを指定します。アプリケーションは、名前や重要度、またはタグで指定できます。アプリケーション名で選択する場合、個々のアプリケーションやマージされたアプリケーションを選択できます。

  4. 脆弱性プロパティでは、ポリシーの対象とする脆弱性の制限や環境などを定義します。環境脆弱性ステータス最初に検知された脆弱性を使用して、ポリシーの対象とする脆弱性を絞り込みます。 脆弱性ルールと深刻度を使用して、ジョブ結果のステータス変更のトリガーとなるルール(特定の深刻度)とその数をしきい値として指定します。

    • 環境: ポリシーを適用する環境を選択します(複数選択可)。

      例えば、テスト(QA)環境にある脆弱性が本番環境で発生してしまうのを防ぐには、QAを選択します。 (ただし、この場合、開発環境の脆弱性は考慮されません。それらの脆弱性を対象とするには、開発環境も選択します。または、すべての環境の脆弱性を対象とする場合は、全ての環境を選択します。)

    • 脆弱性ステータス: どのステータスを対象とするかを選択します(複数選択可)。脆弱性のステータスは、Contrastで決定されます。

      ヒント

      ほとんどの場合、報告済確認済疑わしいなどのオープン中のステータスのみを選択します(問題無し、 修復済修正完了などのクローズのステータスではなく)。そうすれば、既に開発者が対応した脆弱性によって、Jenkinsのジョブが失敗したり不安定になることがありません。

    • 最初に検知された脆弱性: 脆弱性が最初に検知された時間に基づいて、ポリシーの対象とする脆弱性の時間範囲を設定します。

      開始終了フィールドを使用して、時間範囲の開始と終了を設定します。時間範囲の開始に、ジョブ開始時か、Contrastステップを実行する前の所定の日数、またはアプリケーションをオンボードした日を選択します。 時間範囲の終了に、Contrastステップを実行する前の所定の日数か、JenkinsでContrastステップを実行するまで、または特定の期間のオプションを選択します。カスタマイズを選択して、いずれかのフィールドに特定の日付を選択することもできます。

      脆弱性がこの時間範囲外で最初に検出された場合、その脆弱性はポリシーの対象にはなりません。

      ヒント

      開発者に一定期間(例えば、1週間)内に脆弱性を修正させるためには、7日以上前に検出された脆弱性のみをポリシー違反とさせるよう、ポリシーを定義します。これを行うには、開始アプリケーションのオンボード時を、終了過去7日間を設定します。

    • 脆弱性ルールと深刻度: このセクションを使用して、ポリシーで許可する脆弱性の件数、種類および深刻度によるしきい値を設定します。

      ルールごとに、深刻度Assessルールを選択したら、許容する脆弱性数を選択します。別のルールを追加をクリックすれば、複数のルールを登録できます。

      許容される脆弱性数は、この深刻度の脆弱性を、このビルドに影響を与えずに許容する脆弱性の数を決定します。「0」に設定すると、1つの脆弱性でビルド結果のステータスが変更されます。「10」に設定した場合は、指定した種類の脆弱性が11件検出されるまで、ビルド結果のステータスは変わりません。特定のルールや深刻度に対して、許容される脆弱性数を空欄のままにすると、そのルールや深刻度の全ての脆弱性が許容されます。

      例えば、全てのルールと1件の脆弱性を設定した場合、1つの脆弱性がポリシーのトリガーとなります。また、別のルールを追加して、このポリシーを5つの重大な脆弱性のルールと2つのクロスサイトスクリプティングの脆弱性に制限することもできます。

    • 脆弱性にフィルターをかける時にプラグインの"Query vulnerabilites by"で選択したオプションを適用しますの横のチェックボックスにチェックをします。Contrast Assessのビルド後の処理またはパイプラインステップを使用して、Jenkinsジョブの脆弱性をクエリするよう定義できます。例えば、AppVersionTagや、脆弱性が最後に検出された日などを使用できます。このチェックボックスを選択すると、ジョブ結果ポリシーの評価時にこのクエリが含まれるようになります。

    以下は、ジョブ結果ポリシーの可能なルールと設定で、これらの条件が満たされた場合にJenkinsでの結果ステータスを変更する例です。

    VulnPropertiesJenkins.png

    この例では、次のような脆弱性がポリシー違反の対象となります。

    • QA環境として指定されたサーバで検出された全ての脆弱性

    • ステータスが報告済、 確認済疑わしい全ての脆弱性

    • アプリケーションのオンボード時からJenkinsでContrastステップが実行されるまでの間に初めて検出された全ての脆弱性

    次のいずれかのうち少なくとも1つが発生すると、ポリシー違反となり、結果ステータスが変更されます。

    • 重大な脆弱性が1つ以上ある

    • SQLインジェクションを除く全てのルールで、または注意の深刻度の脆弱性が合計で4つ以上ある

    注記

    脆弱性は1回だけカウントされ、最も具体性が高い設定(例、特定の脆弱性ルール)が、最も具体性が低い設定(全てのルール)より優先されます。ルールの種類と深刻度の両方で脆弱性の制限が設定されている場合、その脆弱性はルールの種類の数としてカウントされますが、深刻度の脆弱性としてカウントされません。従って、この例では、重大な脆弱性は深刻度の脆弱性数としてカウントされますが、および注意の深刻度は全てのルールとしてまとめられます。

  5. ポリシー結果で、ポリシーの結果を選択します。選択した基準に一致するジョブをContrastで失敗(FAILURE)、 不安定(UNSTABLE)または成功(SUCCESS)のステータスにします。複数のジョブ結果ポリシーが指定されているアプリケーションには、違反しているすべてのポリシーで最も重大な結果が適用されます。

  6. このジョブ結果ポリシーを有効化の横にあるチェックボックスをオフにすると、個々のポリシーを削除しなくても、JenkinsジョブにContrastのポリシーが適用されるのを一時停止できます。