Skip to main content

Jenkinsのパイプラインで脆弱性のセキュリティ制御を定義

contrastAgentというパイプラインステップを使用すると、Contrastエージェントをダウンロードして、アプリケーションにエージェントを組み込み、実行することができます。contrastVerificationというパイプラインステップを使用すると、アプリケーションを検証し、セキュリティ制御のパラメータを設定できます。

contrastAgentでダウンロード

contrastAgentという名前のパイプラインステップは、最新のContrastエージェントをダウンロードします。

パラメータ

必須項目

説明

profile

必須

Contrastとの通信に使用するContrast接続プロファイル

MyConnection

outputDirectory

必須

ダウンロードしたエージェントを配置する場所を定義

env.WORKSPACE

agentType

applicationIdが定義されていない場合は必須

アプリケーションに組み込んだエージェントのタイプ(大文字と小文字の区別なし)

オプション: Java、 .NET、 .NET_Core、 Node、 Ruby、 Python

Java

contrastAgentという名前のパイプラインステップを追加する例を次に示します。

  • node{
      stage('Download Latest Contrast Agent'){
        contrastAgent profile:'MyConnection', outputDirectory: env.WORKSPACE, agentType: 'Java'
      }
    }

contrastVerificationでアプリケーションを検証

contrastVerificationという名前のパイプラインステップを使用して、アプリケーションが脆弱かどうか検証できます。

パラメータ

必須項目

説明

profile

必須

profileを使用して、Contrastとの通信に使用する接続を指定します。

Contrast Connection

queryBy

必須

queryByを使用して、ビルドに関連する脆弱性にフィルタをかけます。オプション1、2、4の場合、この値は、アプリケーションの実行中にContrastエージェントに渡されたcontrast.override.appversionパラメータと一致する必要があります。

脆弱性をクエリする方法をオプション番号で指定します(デフォルトの値は1):

  1. appVersionTag, format: applicationId-${BUILD_NUMBER}

  2. appVersionTag, format: applicationId-${JOB_NAME}-${BUILD_NUMBER}

  3. startDate (これはビルドのタイムスタンプです。ビルド開始後に検出された脆弱性のみを調べます。)

  4. APPVERSIONTAG (これは、ジョブパラメータか環境変数です。独自のテキストを指定する場合は、このオプションを選択し、Jenkinsジョブ内の環境変数としてAPPVERSIONTAGをエクスポートしてください。JOB_NAMEBUILD_NUMBERの両方は、既にJenkinsの環境変数として利用可能です。)

1

applicationId

applicationNameagentTypeが定義されていない場合は必須

検証しようとしているアプリケーションまたはアプリケーションモジュールのID

cb3ea678-38c8-4487-ba94-692a117e7966

applicationName

applicationIdが定義されていない場合は必須

検証しようとしているアプリケーションの名前(大文字と小文字の区別なし)

MyApp

count

オプション

許容する脆弱性の総数、デフォルトは0

10

rule

オプション

デフォルトはAll

xss

severity

オプション

デフォルトはAll。その他のオプション:Critical、 High、 MediumLow

High

appVersionTag

オプション

Contrastエージェントのcontrast.override.appversionパラメータに渡された値

v1.2.3

contrastVerificationという名前でパイプラインステップを追加する方法の例をいくつか示します。

  • queryBy startDateを使用:

    contrastVerification applicationId: '1e6ad9c6-89d4-4f06-bdf6-92c569ec89de', count: 1, profile: 'new-profile', queryBy: 3, rule: 'cache-controls-missing', severity: 'High'
  • queryByのカスタムappVersionTagパラメータを使用:

    contrastVerification applicationId: '1e6ad9c6-89d4-4f06-bdf6-92c569ec89de', count: 1, profile: 'new-profile', queryBy: 4, appVersionTag: 'v1.2.3' rule: 'cache-controls-missing', severity: 'High'
  • applicationNameAgentTypeを使用してアプリケーションを定義:

    contrastVerification applicationName: 'MyApp', agentType: 'Java', count: 1, profile: 'new-profile', queryBy: 3, rule: 'cache-controls-missing', severity: 'High'
  • 事前設定またはオーバライドされている脆弱性のセキュリティ制御でアプリケーションを検証します。

    Contrastで脆弱性のセキュリティ制御が事前に設定されていることがわかっている場合は、プロファイルおよび、applicationIdか(applicationNameagentType)のいずれかを定義するだけで良いです。

    contrastVerification applicationId: '35ae7b89-1c76-414b-b317-c444ce27608b', profile: 'ContrastConnection'